run402-mcp 4.124.3 → 4.126.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/README.md +3 -1
- package/core/dist/binding-file.js.map +1 -1
- package/core/dist/config.js.map +1 -1
- package/core/dist/control-plane-session.js.map +1 -1
- package/core/dist/keystore.js.map +1 -1
- package/core/dist/profile-state.js.map +1 -1
- package/core/dist/wallet-auth.d.ts.map +1 -1
- package/core/dist/write-approvals.js.map +1 -1
- package/dist/docs/llms-sdk.txt +34 -0
- package/dist/docs/run.md +12 -3
- package/dist/errors.js.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/input-guard.d.ts +1 -1
- package/dist/input-guard.d.ts.map +1 -1
- package/dist/result-store.js.map +1 -1
- package/dist/sandbox-proxy.d.ts.map +1 -1
- package/dist/sandbox-proxy.js.map +1 -1
- package/dist/sandbox.d.ts +5 -0
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +4 -3
- package/dist/sandbox.js.map +1 -1
- package/dist/snippet-check.d.ts +137 -0
- package/dist/snippet-check.d.ts.map +1 -0
- package/dist/snippet-check.js +331 -0
- package/dist/snippet-check.js.map +1 -0
- package/dist/structured.d.ts +2706 -0
- package/dist/structured.d.ts.map +1 -1
- package/dist/structured.js +4 -0
- package/dist/structured.js.map +1 -1
- package/dist/tools/deploy.d.ts +97 -97
- package/dist/tools/deploy.d.ts.map +1 -1
- package/dist/tools/docs.d.ts.map +1 -1
- package/dist/tools/docs.js.map +1 -1
- package/dist/tools/doctor.d.ts.map +1 -1
- package/dist/tools/doctor.js.map +1 -1
- package/dist/tools/expand-result.d.ts.map +1 -1
- package/dist/tools/run.d.ts +20 -1
- package/dist/tools/run.d.ts.map +1 -1
- package/dist/tools/run.js +81 -9
- package/dist/tools/run.js.map +1 -1
- package/dist/tools/up.d.ts.map +1 -1
- package/package.json +5 -4
- package/sdk/README.md +1 -0
- package/sdk/dist/actions.d.ts.map +1 -1
- package/sdk/dist/app-up.d.ts.map +1 -1
- package/sdk/dist/app-up.js.map +1 -1
- package/sdk/dist/config.js.map +1 -1
- package/sdk/dist/errors.d.ts.map +1 -1
- package/sdk/dist/errors.js.map +1 -1
- package/sdk/dist/grant-key-credentials.js.map +1 -1
- package/sdk/dist/index.d.ts +10 -0
- package/sdk/dist/index.d.ts.map +1 -1
- package/sdk/dist/index.js +10 -0
- package/sdk/dist/index.js.map +1 -1
- package/sdk/dist/namespaces/admin.d.ts.map +1 -1
- package/sdk/dist/namespaces/admin.js.map +1 -1
- package/sdk/dist/namespaces/agent.d.ts.map +1 -1
- package/sdk/dist/namespaces/agent.js.map +1 -1
- package/sdk/dist/namespaces/ai.d.ts.map +1 -1
- package/sdk/dist/namespaces/ai.js.map +1 -1
- package/sdk/dist/namespaces/apps.d.ts.map +1 -1
- package/sdk/dist/namespaces/apps.js.map +1 -1
- package/sdk/dist/namespaces/archives.d.ts.map +1 -1
- package/sdk/dist/namespaces/archives.js.map +1 -1
- package/sdk/dist/namespaces/assets.d.ts.map +1 -1
- package/sdk/dist/namespaces/assets.js.map +1 -1
- package/sdk/dist/namespaces/auth.d.ts.map +1 -1
- package/sdk/dist/namespaces/auth.js.map +1 -1
- package/sdk/dist/namespaces/billing.d.ts.map +1 -1
- package/sdk/dist/namespaces/billing.js.map +1 -1
- package/sdk/dist/namespaces/branches.d.ts.map +1 -1
- package/sdk/dist/namespaces/branches.js.map +1 -1
- package/sdk/dist/namespaces/buzz.d.ts.map +1 -1
- package/sdk/dist/namespaces/buzz.js.map +1 -1
- package/sdk/dist/namespaces/cache.d.ts.map +1 -1
- package/sdk/dist/namespaces/cache.js.map +1 -1
- package/sdk/dist/namespaces/ci.d.ts.map +1 -1
- package/sdk/dist/namespaces/ci.js.map +1 -1
- package/sdk/dist/namespaces/ci.types.d.ts.map +1 -1
- package/sdk/dist/namespaces/contracts.d.ts.map +1 -1
- package/sdk/dist/namespaces/contracts.js.map +1 -1
- package/sdk/dist/namespaces/credentials.d.ts.map +1 -1
- package/sdk/dist/namespaces/credentials.js.map +1 -1
- package/sdk/dist/namespaces/deploy.d.ts.map +1 -1
- package/sdk/dist/namespaces/deploy.js.map +1 -1
- package/sdk/dist/namespaces/deploy.types.d.ts.map +1 -1
- package/sdk/dist/namespaces/deploy.types.js.map +1 -1
- package/sdk/dist/namespaces/domains.d.ts.map +1 -1
- package/sdk/dist/namespaces/domains.js.map +1 -1
- package/sdk/dist/namespaces/edge-evidence.d.ts +7 -7
- package/sdk/dist/namespaces/email.d.ts.map +1 -1
- package/sdk/dist/namespaces/email.js.map +1 -1
- package/sdk/dist/namespaces/errors.d.ts.map +1 -1
- package/sdk/dist/namespaces/errors.js.map +1 -1
- package/sdk/dist/namespaces/escalations.d.ts.map +1 -1
- package/sdk/dist/namespaces/escalations.js.map +1 -1
- package/sdk/dist/namespaces/events.d.ts.map +1 -1
- package/sdk/dist/namespaces/events.js.map +1 -1
- package/sdk/dist/namespaces/functions.d.ts.map +1 -1
- package/sdk/dist/namespaces/functions.js.map +1 -1
- package/sdk/dist/namespaces/grants.d.ts.map +1 -1
- package/sdk/dist/namespaces/grants.js.map +1 -1
- package/sdk/dist/namespaces/identity-links.d.ts.map +1 -1
- package/sdk/dist/namespaces/identity-links.js.map +1 -1
- package/sdk/dist/namespaces/jobs.d.ts.map +1 -1
- package/sdk/dist/namespaces/jobs.js.map +1 -1
- package/sdk/dist/namespaces/live.d.ts.map +1 -1
- package/sdk/dist/namespaces/live.js.map +1 -1
- package/sdk/dist/namespaces/me.d.ts.map +1 -1
- package/sdk/dist/namespaces/me.js.map +1 -1
- package/sdk/dist/namespaces/org.d.ts.map +1 -1
- package/sdk/dist/namespaces/org.js.map +1 -1
- package/sdk/dist/namespaces/pay.d.ts.map +1 -1
- package/sdk/dist/namespaces/pay.js.map +1 -1
- package/sdk/dist/namespaces/projects.d.ts.map +1 -1
- package/sdk/dist/namespaces/projects.js.map +1 -1
- package/sdk/dist/namespaces/push.d.ts +31 -0
- package/sdk/dist/namespaces/push.d.ts.map +1 -0
- package/sdk/dist/namespaces/push.js +54 -0
- package/sdk/dist/namespaces/push.js.map +1 -0
- package/sdk/dist/namespaces/push.types.d.ts +113 -0
- package/sdk/dist/namespaces/push.types.d.ts.map +1 -0
- package/sdk/dist/namespaces/push.types.js +13 -0
- package/sdk/dist/namespaces/push.types.js.map +1 -0
- package/sdk/dist/namespaces/repos.d.ts.map +1 -1
- package/sdk/dist/namespaces/repos.js.map +1 -1
- package/sdk/dist/namespaces/rooms.d.ts.map +1 -1
- package/sdk/dist/namespaces/rooms.js.map +1 -1
- package/sdk/dist/namespaces/secrets.d.ts.map +1 -1
- package/sdk/dist/namespaces/secrets.js.map +1 -1
- package/sdk/dist/namespaces/service.d.ts.map +1 -1
- package/sdk/dist/namespaces/service.js.map +1 -1
- package/sdk/dist/namespaces/session.d.ts.map +1 -1
- package/sdk/dist/namespaces/session.js.map +1 -1
- package/sdk/dist/namespaces/site-removal-summary.js.map +1 -1
- package/sdk/dist/namespaces/sites.d.ts.map +1 -1
- package/sdk/dist/namespaces/sites.js.map +1 -1
- package/sdk/dist/namespaces/snapshots.d.ts.map +1 -1
- package/sdk/dist/namespaces/snapshots.js.map +1 -1
- package/sdk/dist/namespaces/stripe.d.ts.map +1 -1
- package/sdk/dist/namespaces/stripe.js.map +1 -1
- package/sdk/dist/namespaces/subdomains.d.ts.map +1 -1
- package/sdk/dist/namespaces/subdomains.js.map +1 -1
- package/sdk/dist/namespaces/tier.d.ts.map +1 -1
- package/sdk/dist/namespaces/tier.js.map +1 -1
- package/sdk/dist/namespaces/transfers.d.ts.map +1 -1
- package/sdk/dist/namespaces/transfers.js.map +1 -1
- package/sdk/dist/namespaces/vault.crypto.d.ts +7 -7
- package/sdk/dist/namespaces/vault.crypto.d.ts.map +1 -1
- package/sdk/dist/namespaces/vault.crypto.js.map +1 -1
- package/sdk/dist/namespaces/vouchers.d.ts.map +1 -1
- package/sdk/dist/namespaces/vouchers.js.map +1 -1
- package/sdk/dist/namespaces/wallets.d.ts.map +1 -1
- package/sdk/dist/namespaces/wallets.js.map +1 -1
- package/sdk/dist/namespaces/write-approval.d.ts.map +1 -1
- package/sdk/dist/namespaces/write-approval.js.map +1 -1
- package/sdk/dist/node/_paid-stack.d.ts.map +1 -1
- package/sdk/dist/node/actions-node.d.ts.map +1 -1
- package/sdk/dist/node/actions-node.js.map +1 -1
- package/sdk/dist/node/app-scope.d.ts.map +1 -1
- package/sdk/dist/node/app-scope.js.map +1 -1
- package/sdk/dist/node/archives-node.d.ts.map +1 -1
- package/sdk/dist/node/archives-node.js.map +1 -1
- package/sdk/dist/node/assets-node.d.ts.map +1 -1
- package/sdk/dist/node/assets-node.js.map +1 -1
- package/sdk/dist/node/bearer-redeem-key.js.map +1 -1
- package/sdk/dist/node/buzz-doctor-contract.d.ts.map +1 -1
- package/sdk/dist/node/buzz-doctor-contract.js.map +1 -1
- package/sdk/dist/node/buzz-doctor.d.ts.map +1 -1
- package/sdk/dist/node/buzz-doctor.js.map +1 -1
- package/sdk/dist/node/ci.js.map +1 -1
- package/sdk/dist/node/client-detect.js.map +1 -1
- package/sdk/dist/node/credentials.d.ts.map +1 -1
- package/sdk/dist/node/credentials.js.map +1 -1
- package/sdk/dist/node/deploy-manifest.js.map +1 -1
- package/sdk/dist/node/diagnostics.d.ts.map +1 -1
- package/sdk/dist/node/diagnostics.js.map +1 -1
- package/sdk/dist/node/doctor.d.ts.map +1 -1
- package/sdk/dist/node/doctor.js.map +1 -1
- package/sdk/dist/node/files.js.map +1 -1
- package/sdk/dist/node/funded-payment.js.map +1 -1
- package/sdk/dist/node/http-dispatcher.d.ts.map +1 -1
- package/sdk/dist/node/index.js.map +1 -1
- package/sdk/dist/node/init.js.map +1 -1
- package/sdk/dist/node/lightning-paid-fetch.d.ts.map +1 -1
- package/sdk/dist/node/lightning-paid-fetch.js.map +1 -1
- package/sdk/dist/node/lightning-wallet.js.map +1 -1
- package/sdk/dist/node/local-actions.js.map +1 -1
- package/sdk/dist/node/mpp-pay-executor.js.map +1 -1
- package/sdk/dist/node/nwc.d.ts.map +1 -1
- package/sdk/dist/node/nwc.js.map +1 -1
- package/sdk/dist/node/onchain-balances.js.map +1 -1
- package/sdk/dist/node/org-adopt.js.map +1 -1
- package/sdk/dist/node/org-context.d.ts.map +1 -1
- package/sdk/dist/node/org-context.js.map +1 -1
- package/sdk/dist/node/paid-fetch.d.ts.map +1 -1
- package/sdk/dist/node/paid-fetch.js.map +1 -1
- package/sdk/dist/node/payment-attempts.js.map +1 -1
- package/sdk/dist/node/preflight.d.ts +11 -11
- package/sdk/dist/node/preflight.d.ts.map +1 -1
- package/sdk/dist/node/signers/index.js.map +1 -1
- package/sdk/dist/node/signers/kms.js.map +1 -1
- package/sdk/dist/node/sites-node.d.ts.map +1 -1
- package/sdk/dist/node/source-scan.js.map +1 -1
- package/sdk/dist/node/target-profile.js.map +1 -1
- package/sdk/dist/node/tempo.js.map +1 -1
- package/sdk/dist/node/vault-byo-config.js.map +1 -1
- package/sdk/dist/node/vault-creation-journal.d.ts.map +1 -1
- package/sdk/dist/node/vault-deploy.d.ts.map +1 -1
- package/sdk/dist/node/vault-deploy.js.map +1 -1
- package/sdk/dist/node/vault-edge-fetch.js.map +1 -1
- package/sdk/dist/node/vault-handoff.js.map +1 -1
- package/sdk/dist/node/vault-keystore.d.ts.map +1 -1
- package/sdk/dist/node/vault-keystore.js.map +1 -1
- package/sdk/dist/node/vault-mirror-backend.d.ts.map +1 -1
- package/sdk/dist/node/vault-mirror-backend.js.map +1 -1
- package/sdk/dist/node/vault-mirror-config.js.map +1 -1
- package/sdk/dist/node/vault-mirror.js.map +1 -1
- package/sdk/dist/node/vault-native-crypto.js.map +1 -1
- package/sdk/dist/node/vault-profile-scan.js.map +1 -1
- package/sdk/dist/node/vault-prune.d.ts.map +1 -1
- package/sdk/dist/node/vault-publication.d.ts.map +1 -1
- package/sdk/dist/node/vault-publication.js.map +1 -1
- package/sdk/dist/node/vault-recover.js.map +1 -1
- package/sdk/dist/node/vault-snapshot.d.ts.map +1 -1
- package/sdk/dist/node/vault-snapshot.js.map +1 -1
- package/sdk/dist/node/vault-target.js.map +1 -1
- package/sdk/dist/node/vendor/x402-lnbtc/constants.d.ts.map +1 -1
- package/sdk/dist/node/vendor/x402-lnbtc/constants.js.map +1 -1
- package/sdk/dist/node/vendor/x402-lnbtc/exact/client/scheme.d.ts.map +1 -1
- package/sdk/dist/node/wallets-send.js.map +1 -1
- package/sdk/dist/node/wallets.d.ts.map +1 -1
- package/sdk/dist/node/wallets.js.map +1 -1
- package/sdk/dist/node/workflow-output.js.map +1 -1
- package/sdk/dist/project-auth-classification.d.ts.map +1 -1
- package/sdk/dist/rest-diagnostics.d.ts.map +1 -1
- package/sdk/dist/retry.js.map +1 -1
- package/sdk/dist/scoped.d.ts +12 -0
- package/sdk/dist/scoped.d.ts.map +1 -1
- package/sdk/dist/scoped.js +19 -0
- package/sdk/dist/scoped.js.map +1 -1
- package/sdk/dist/secret-gate.d.ts +15 -14
- package/sdk/dist/secret-gate.d.ts.map +1 -1
- package/sdk/dist/wait.js.map +1 -1
package/dist/sandbox.d.ts
CHANGED
|
@@ -36,6 +36,9 @@ export declare const SANDBOX_MAX_VALUE_BYTES: number;
|
|
|
36
36
|
export declare const SANDBOX_MAX_LOG_LINES = 500;
|
|
37
37
|
/** Characters retained per console line. */
|
|
38
38
|
export declare const SANDBOX_MAX_LOG_LINE_CHARS = 2048;
|
|
39
|
+
/** The wrapper's head sits on line 1, so line numbers match the source and only line 1's columns shift. */
|
|
40
|
+
export declare const WRAP_HEAD = "(async function () {";
|
|
41
|
+
export declare const WRAP_TAIL = "\n})";
|
|
39
42
|
/**
|
|
40
43
|
* The snippet's global inventory, sorted. `r` is present when the chain proxy
|
|
41
44
|
* is installed (always, in the `run` tool). A new global is a deliberate diff
|
|
@@ -114,6 +117,8 @@ export type PreparedSnippet = {
|
|
|
114
117
|
* `return`. The result is the source of one async function expression.
|
|
115
118
|
*/
|
|
116
119
|
export declare function prepareSnippet(code: string): PreparedSnippet;
|
|
120
|
+
/** A column in the wrapped source, as a column in the snippet. */
|
|
121
|
+
export declare function shiftColumn(line: number, column: number): number;
|
|
117
122
|
/** Run one snippet to completion (or to its bound) and describe how it ended. */
|
|
118
123
|
export declare function runInSandbox(opts: SandboxRunOptions): Promise<SandboxOutcome>;
|
|
119
124
|
//# sourceMappingURL=sandbox.d.ts.map
|
package/dist/sandbox.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAWH,+CAA+C;AAC/C,eAAO,MAAM,0BAA0B,QAAmB,CAAC;AAC3D,8EAA8E;AAC9E,eAAO,MAAM,yBAAyB,QAAa,CAAC;AACpD,4DAA4D;AAC5D,eAAO,MAAM,uBAAuB,QAAkB,CAAC;AACvD,sCAAsC;AACtC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,4CAA4C;AAC5C,eAAO,MAAM,0BAA0B,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
|
package/dist/sandbox.js
CHANGED
|
@@ -43,8 +43,8 @@ export const SANDBOX_MAX_LOG_LINE_CHARS = 2048;
|
|
|
43
43
|
/** The file name QuickJS reports in stack traces. */
|
|
44
44
|
const SNIPPET_FILE = "snippet.ts";
|
|
45
45
|
/** The wrapper's head sits on line 1, so line numbers match the source and only line 1's columns shift. */
|
|
46
|
-
const WRAP_HEAD = "(async function () {";
|
|
47
|
-
const WRAP_TAIL = "\n})";
|
|
46
|
+
export const WRAP_HEAD = "(async function () {";
|
|
47
|
+
export const WRAP_TAIL = "\n})";
|
|
48
48
|
/**
|
|
49
49
|
* The snippet's global inventory, sorted. `r` is present when the chain proxy
|
|
50
50
|
* is installed (always, in the `run` tool). A new global is a deliberate diff
|
|
@@ -102,7 +102,8 @@ export function prepareSnippet(code) {
|
|
|
102
102
|
stripped.slice(last.end);
|
|
103
103
|
return { ok: true, source };
|
|
104
104
|
}
|
|
105
|
-
|
|
105
|
+
/** A column in the wrapped source, as a column in the snippet. */
|
|
106
|
+
export function shiftColumn(line, column) {
|
|
106
107
|
return line === 1 ? Math.max(1, column - WRAP_HEAD.length) : column;
|
|
107
108
|
}
|
|
108
109
|
function syntaxErrorFromStrip(err) {
|
package/dist/sandbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,KAAK,IAAI,OAAO,EAA0B,MAAM,OAAO,CAAC;AACjE,OAAO,EACL,yBAAyB,GAG1B,MAAM,oBAAoB,CAAC;AAE5B,+CAA+C;AAC/C,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC3D,8EAA8E;AAC9E,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,GAAG,IAAI,CAAC;AACpD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AACvD,sCAAsC;AACtC,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AACzC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAE/C,qDAAqD;AACrD,MAAM,YAAY,GAAG,YAAY,CAAC;AAClC,2GAA2G;AAC3G,MAAM,CAAC,MAAM,SAAS,GAAG,sBAAsB,CAAC;AAChD,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC;AAEhC;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,gBAAgB,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS;IAChG,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,cAAc,EAAE,cAAc;IAChG,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe;IAChG,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY;IAC9F,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa;IACpG,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY;IACxG,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW;IACtF,oBAAoB,EAAE,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU;IACnG,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU;CAC1E,CAAC;AAiFX;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,OAAO,GAAG,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC;IAClD,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;IACzD,CAAC;IAED,IAAI,OAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAA4B,CAAC;IAC3H,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;IACzD,CAAC;IAED,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,MAAM,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,oBAAoB,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QAC3E,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,gEAAgE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;SACnI,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;IAChC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9E,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACrG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACxC,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;IAC7B,MAAM,MAAM,GACV,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;QAC7B,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI;QACxD,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAaD,kEAAkE;AAClE,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,MAAc;IACtD,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACtE,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAY;IACxC,MAAM,CAAC,GAAG,GAA6C,CAAC;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,yFAAyF;IACzF,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;AACxF,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAY;IACxC,MAAM,CAAC,GAAG,GAAsE,CAAC;IACjF,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACnD,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;AACxF,CAAC;AAED,kGAAkG;AAClG,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3F,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7E,CAAC;AAED,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwL5B,CAAC;AAkBJ,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAuB;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;IAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,uBAAuB,CAAC;IACpE,MAAM,IAAI,GAAqB,EAAE,CAAC;IAClC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,OAAO,GAAmB,IAAI,CAAC;IAEnC,MAAM,MAAM,GAAG,CAAC,MAA4D,EAAkB,EAAE,CAAC,CAAC;QAChG,IAAI;QACJ,YAAY,EAAE,WAAW;QACzB,SAAS,EAAE,WAAW;QACtB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;QACjC,GAAG,MAAM;KACV,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAE5E,MAAM,MAAM,GAAG,MAAM,yBAAyB,EAAE,CAAC;IACjD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACpC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,IAAI,0BAA0B,CAAC,CAAC;IAC5E,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC;IACnD,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE;QAC/B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ;YAAE,WAAW,GAAG,IAAI,CAAC;QAC9C,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAEjC,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAiB,CAAC;IAC1C,IAAI,IAAI,GAAwB,IAAI,CAAC;IACrC,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,MAAM,CAAC,GAAG,IAAI,CAAC;QACf,IAAI,GAAG,IAAI,CAAC;QACZ,CAAC,EAAE,EAAE,CAAC;IACR,CAAC,CAAC;IACF,IAAI,KAAK,GAAG,IAAI,CAAC;IAEjB,MAAM,QAAQ,GAAG;QACf,IAAI,EAAE;YACJ,GAAG,EAAE,CAAC,KAAc,EAAE,IAAa,EAAE,EAAE;gBACrC,IAAI,IAAI,CAAC,MAAM,IAAI,qBAAqB,EAAE,CAAC;oBACzC,WAAW,EAAE,CAAC;oBACd,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC;oBACR,KAAK,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;oBAClF,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,0BAA0B,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;iBACxG,CAAC,CAAC;gBACH,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,EAAE,CAAC,IAAa,EAAE,OAAgB,EAAE,EAAE;gBAC1C,IAAI,OAAO;oBAAE,OAAO,SAAS,CAAC;gBAC9B,IAAI,IAAI,KAAK,IAAI;oBAAE,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,IAAI,MAAM,EAAE,CAAC;qBAChE,IAAI,IAAI,KAAK,WAAW;oBAAE,OAAO,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;qBAC1D,IAAI,IAAI,KAAK,kBAAkB;oBAAE,OAAO,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;qBAChG,CAAC;oBACJ,IAAI,MAAyB,CAAC;oBAC9B,IAAI,CAAC;wBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;oBACvC,CAAC;oBAAC,MAAM,CAAC;wBACP,MAAM,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,wDAAwD,EAAE,CAAC;oBAChG,CAAC;oBACD,OAAO,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;gBACtC,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,IAAI,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;YACxB,GAAG,EAAE,CAAC,KAAc,EAAE,IAAa,EAAE,EAAE;gBACrC,IAAI,CAAC;oBACH,MAAM,CAAC,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;oBACjF,OAAO,IAAI,CAAC,SAAS,CAAC;wBACpB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;wBAChG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;qBACvG,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;SAC4E;KAChF,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,GAA6C,EAAiB,EAAE;QAClF,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;YAC1D,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;gBAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzD,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAC3B,EAAE,CAAC,OAAO,EAAE,CAAC;QACf,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;YAC3D,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;gBAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpD,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE;qBAC3B,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;qBAC5B,IAAI,CACH,CAAC,KAAK,EAAE,EAAE;oBACR,IAAI,CAAC,KAAK;wBAAE,OAAO;oBACnB,MAAM,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBAC/B,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACpB,CAAC,CAAC,OAAO,EAAE,CAAC;gBACd,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;oBACN,IAAI,CAAC,KAAK;wBAAE,OAAO;oBACnB,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oBACzE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACnB,CAAC,CAAC,OAAO,EAAE,CAAC;gBACd,CAAC,CACF;qBACA,OAAO,CAAC,GAAG,EAAE;oBACZ,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACnB,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACtB,MAAM,EAAE,CAAC;gBACX,CAAC,CAAC,CAAC;gBACL,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACnB,OAAO,QAAQ,CAAC,MAAM,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAC3B,EAAE,CAAC,OAAO,EAAE,CAAC;QACf,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,uGAAuG;IACvG,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,GAA6C,EAAiB,EAAE;QAC/F,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC,CAAC;QACrF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC;YACH,OAAO,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;QACjF,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,OAAO,EAAE,CAAC;YACrB,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,OAAuB,CAAC;IAC5B,uEAAuE;IACvE,2EAA2E;IAC3E,oEAAoE;IACpE,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC9C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QAE7E,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC7D,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC9C,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACzB,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,GAAG,MAAM,CAAC;gBACf,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;aAC3D,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YACtE,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACzB,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,SAAS,GAAwB,IAAI,CAAC;YAC1C,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBAClF,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACzB,CAAC;YAED,wEAAwE;YACxE,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;gBAC1C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;oBAChF,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBACrB,MAAM;gBACR,CAAC;gBACD,IAAI,OAAO,IAAI,WAAW;oBAAE,MAAM;gBAClC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;oBAC1B,WAAW,GAAG,IAAI,CAAC;oBACnB,MAAM;gBACR,CAAC;gBACD,IAAI,OAAO,CAAC,aAAa,EAAE;oBAAE,SAAS;gBACtC,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACxB,SAAS,GAAG;wBACV,IAAI,EAAE,eAAe;wBACrB,OAAO,EACL,wIAAwI;qBAC3I,CAAC;oBACF,MAAM;gBACR,CAAC;gBACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBAClC,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC1E,IAAI,GAAG,GAAG,EAAE;wBACV,YAAY,CAAC,KAAK,CAAC,CAAC;wBACpB,OAAO,EAAE,CAAC;oBACZ,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;YAED,uEAAuE;YACvE,qEAAqE;YACrE,IAAI,WAAW;gBAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;YAEzD,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,QAAQ,GAAG,IAAI,CAAC;QAChB,IAAI,WAAW;YAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,GAAG,YAAY,UAAU,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9E,OAAO,GAAG,MAAM,CACd,IAAI,EACJ;YACE,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,QAAQ;gBACf,CAAC,CAAC,4EAA4E;gBAC9E,CAAC,CAAC,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SAC/E,EACD,WAAW,EACX,aAAa,EACb,MAAM,CACP,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,KAAK,GAAG,KAAK,CAAC;QACd,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,wEAAwE;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,MAAM,CACb,OAAuB,EACvB,SAA8B,EAC9B,WAAoB,EACpB,aAAqB,EACrB,MAAwF;IAExF,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC;YACZ,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,iHAAiH,EAAE;SAC3J,CAAC,CAAC;IACL,CAAC;IACD,IAAI,SAAS;QAAE,OAAO,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACpE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,qCAAqC,EAAE,EAAE,CAAC,CAAC;IACvH,CAAC;IACD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,WAAW;YACd,OAAO,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;QAC3D,KAAK,kBAAkB;YACrB,OAAO,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,2BAA2B,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3I,KAAK,IAAI,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACtD,IAAI,KAAK,GAAG,aAAa,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC;oBACZ,MAAM,EAAE,OAAO;oBACf,KAAK,EAAE;wBACL,IAAI,EAAE,qBAAqB;wBAC3B,OAAO,EAAE,4BAA4B,KAAK,oBAAoB,aAAa,gGAAgG;qBAC5K;iBACF,CAAC,CAAC;YACL,CAAC;YACD,OAAO,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,KAAK,OAAO;YACV,OAAO,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACvG,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,CAAoB,EAAE,GAAuD;IAC7F,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;IAC1E,CAAC;IACD,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,2BAA2B,0BAA0B,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC5I,CAAC;IACD,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACxD,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;IAClH,CAAC;IACD,MAAM,MAAM,GAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IACnE,IAAI,CAAC,CAAC,IAAI;QAAE,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IACjC,IAAI,CAAC,CAAC,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;IAChD,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO;QAC7E,GAAG,QAAQ;QACX,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,GAAwB,EAAE,MAAqB;IAChE,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,MAAiC,CAAC;QAC5C,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;YACnD,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;YAC5E,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvE,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AAChH,CAAC;AAED,SAAS,UAAU,CAAC,GAAwB,EAAE,CAAgB;IAC5D,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,MAAc;IACvC,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IACjC,OAAO,CAAC,WAAW,GAAG,SAAS,iBAAiB,CAAgB,OAAuB,EAAE,GAAG,IAAe;QACzG,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC,CAAoC,EAAE,IAAI,CAAC;QACvG,MAAM,OAAO,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;QAC/E,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC;QACrE,IAAI,CAAC,IAAI,KAAK,qBAAqB,IAAI,IAAI,KAAK,qBAAqB,CAAC,IAAI,kCAAkC,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO;QACnI,OAAQ,IAAqC,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAChF,CAA+B,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,oBAAoB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAC7B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The type check `run` makes before any call.
|
|
3
|
+
*
|
|
4
|
+
* The snippet, wrapped exactly as the sandbox wraps it (`WRAP_HEAD` /
|
|
5
|
+
* `WRAP_TAIL` from `./sandbox.ts`), is type-checked against the declarations
|
|
6
|
+
* of the client the host replays against (`NodeRun402`, from the SDK
|
|
7
|
+
* declarations packaged beside this server in `sdk/dist`), with only the
|
|
8
|
+
* bindings the sandbox installs declared: `r`, `console`, and the builtins.
|
|
9
|
+
* No DOM and no Node types, so `fetch` and `process` stay undeclared, as they
|
|
10
|
+
* are in the sandbox. `strict`, with `noImplicitAny` off: snippets are scratch
|
|
11
|
+
* code, and an untyped helper parameter is not a mistake.
|
|
12
|
+
*
|
|
13
|
+
* The checker is TypeScript 7's API (`@typescript/native/unstable/async`): one
|
|
14
|
+
* native child process per server, started on the first check and kept warm,
|
|
15
|
+
* so a check costs milliseconds. Checks are serialized, because each one
|
|
16
|
+
* rewrites the one snippet file the checker's project holds.
|
|
17
|
+
*
|
|
18
|
+
* The check refuses only what the sandbox cannot run as written. Two shapes
|
|
19
|
+
* type-check badly yet run: an undeclared name read under `typeof` (the
|
|
20
|
+
* sandbox's global-inventory probe), and a member reached through an
|
|
21
|
+
* un-awaited `r` chain, which the replay resolves by awaiting every
|
|
22
|
+
* intermediate. Both are exempt.
|
|
23
|
+
*
|
|
24
|
+
* A missing member on an SDK object (an instance of an SDK class, or `r`
|
|
25
|
+
* itself) is reported with the replay's own `did_you_mean` search, run on
|
|
26
|
+
* types instead of objects: the receiver's closest public members, else where
|
|
27
|
+
* a member of that exact name lives (the receiver's namespaces, then the root,
|
|
28
|
+
* then the root's namespaces). The checker never calls the SDK.
|
|
29
|
+
*
|
|
30
|
+
* When the checker cannot start or answer, the check is skipped and the
|
|
31
|
+
* snippet runs unchecked: a checker fault must not take `run` away.
|
|
32
|
+
*/
|
|
33
|
+
import { UnknownMember } from "./sandbox-proxy.js";
|
|
34
|
+
/** Starting the checker (spawn, load the SDK's declarations) may take this long before the check is skipped. */
|
|
35
|
+
export declare const SNIPPET_CHECK_START_TIMEOUT_MS = 15000;
|
|
36
|
+
/** One check may take this long before it is skipped. */
|
|
37
|
+
export declare const SNIPPET_CHECK_TIMEOUT_MS = 5000;
|
|
38
|
+
export interface SnippetDiagnostic {
|
|
39
|
+
/** 1-based, in the snippet's own coordinates. */
|
|
40
|
+
line: number;
|
|
41
|
+
column: number;
|
|
42
|
+
/** TypeScript's code, e.g. `TS2551`. */
|
|
43
|
+
code: string;
|
|
44
|
+
message: string;
|
|
45
|
+
}
|
|
46
|
+
export type SnippetCheck = {
|
|
47
|
+
status: "passed";
|
|
48
|
+
} | {
|
|
49
|
+
status: "skipped";
|
|
50
|
+
reason: string;
|
|
51
|
+
} | {
|
|
52
|
+
status: "refused";
|
|
53
|
+
/** Every error diagnostic, in source order. */
|
|
54
|
+
diagnostics: SnippetDiagnostic[];
|
|
55
|
+
/** Set when the first diagnostic is a member an SDK object does not have. */
|
|
56
|
+
unknownMember?: UnknownMember;
|
|
57
|
+
};
|
|
58
|
+
interface TsType {
|
|
59
|
+
readonly id: number;
|
|
60
|
+
getSymbol(): Promise<TsSymbol | undefined>;
|
|
61
|
+
}
|
|
62
|
+
interface TsSymbol {
|
|
63
|
+
readonly name: string;
|
|
64
|
+
readonly flags: number;
|
|
65
|
+
}
|
|
66
|
+
interface TsDiagnostic {
|
|
67
|
+
readonly pos: number;
|
|
68
|
+
readonly code: number;
|
|
69
|
+
readonly category: number;
|
|
70
|
+
readonly text: string;
|
|
71
|
+
readonly messageChain?: readonly TsDiagnostic[];
|
|
72
|
+
}
|
|
73
|
+
interface TsNode {
|
|
74
|
+
readonly kind: number;
|
|
75
|
+
readonly parent: TsNode;
|
|
76
|
+
readonly expression?: TsNode;
|
|
77
|
+
readonly name?: TsNode & {
|
|
78
|
+
readonly text: string;
|
|
79
|
+
};
|
|
80
|
+
readonly text?: string;
|
|
81
|
+
}
|
|
82
|
+
interface TsChecker {
|
|
83
|
+
getTypeAtLocation(node: TsNode): Promise<TsType | undefined>;
|
|
84
|
+
getPropertiesOfType(type: TsType): Promise<readonly TsSymbol[]>;
|
|
85
|
+
getTypeOfSymbol(symbols: readonly TsSymbol[]): Promise<(TsType | undefined)[]>;
|
|
86
|
+
getTypeOfSymbol(symbol: TsSymbol): Promise<TsType | undefined>;
|
|
87
|
+
getTypeArguments(type: TsType): Promise<readonly TsType[]>;
|
|
88
|
+
resolveName(name: string, meaning: number, location?: {
|
|
89
|
+
document: string;
|
|
90
|
+
position: number;
|
|
91
|
+
}): Promise<TsSymbol | undefined>;
|
|
92
|
+
}
|
|
93
|
+
interface TsProject {
|
|
94
|
+
readonly program: {
|
|
95
|
+
getSourceFile(file: string): Promise<unknown>;
|
|
96
|
+
getSyntacticDiagnostics(file: string): Promise<readonly TsDiagnostic[]>;
|
|
97
|
+
getSemanticDiagnostics(file: string): Promise<readonly TsDiagnostic[]>;
|
|
98
|
+
};
|
|
99
|
+
readonly checker: TsChecker;
|
|
100
|
+
}
|
|
101
|
+
interface TsApi {
|
|
102
|
+
updateSnapshot(params: unknown): Promise<{
|
|
103
|
+
getProject(configFileName: string): TsProject | undefined;
|
|
104
|
+
}>;
|
|
105
|
+
close(): Promise<void>;
|
|
106
|
+
}
|
|
107
|
+
interface TsAst {
|
|
108
|
+
getTokenAtPosition(sourceFile: unknown, position: number): TsNode;
|
|
109
|
+
isPropertyAccessExpression(node: TsNode): boolean;
|
|
110
|
+
isCallExpression(node: TsNode): boolean;
|
|
111
|
+
isElementAccessExpression(node: TsNode): boolean;
|
|
112
|
+
isParenthesizedExpression(node: TsNode): boolean;
|
|
113
|
+
isNonNullExpression(node: TsNode): boolean;
|
|
114
|
+
isAwaitExpression(node: TsNode): boolean;
|
|
115
|
+
isTypeOfExpression(node: TsNode): boolean;
|
|
116
|
+
isIdentifier(node: TsNode): boolean;
|
|
117
|
+
}
|
|
118
|
+
interface Checker {
|
|
119
|
+
api: TsApi;
|
|
120
|
+
ast: TsAst;
|
|
121
|
+
dir: string;
|
|
122
|
+
file: string;
|
|
123
|
+
config: string;
|
|
124
|
+
}
|
|
125
|
+
/** Starts the checker. Replaced in tests to exercise a checker that cannot start. */
|
|
126
|
+
type StartChecker = () => Promise<Checker>;
|
|
127
|
+
/** Stop the checker process. The next check starts a new one. */
|
|
128
|
+
export declare function closeSnippetChecker(): Promise<void>;
|
|
129
|
+
/** Tests: start the checker with `start` instead of TypeScript (null restores TypeScript). */
|
|
130
|
+
export declare function _setSnippetCheckerStart(start: StartChecker | null): Promise<void>;
|
|
131
|
+
/**
|
|
132
|
+
* Type-check a snippet that already parses. Never throws: a checker that
|
|
133
|
+
* cannot start or answer makes the check `skipped`.
|
|
134
|
+
*/
|
|
135
|
+
export declare function checkSnippet(code: string): Promise<SnippetCheck>;
|
|
136
|
+
export {};
|
|
137
|
+
//# sourceMappingURL=snippet-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snippet-check.d.ts","sourceRoot":"","sources":["../src/snippet-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The type check `run` makes before any call.
|
|
3
|
+
*
|
|
4
|
+
* The snippet, wrapped exactly as the sandbox wraps it (`WRAP_HEAD` /
|
|
5
|
+
* `WRAP_TAIL` from `./sandbox.ts`), is type-checked against the declarations
|
|
6
|
+
* of the client the host replays against (`NodeRun402`, from the SDK
|
|
7
|
+
* declarations packaged beside this server in `sdk/dist`), with only the
|
|
8
|
+
* bindings the sandbox installs declared: `r`, `console`, and the builtins.
|
|
9
|
+
* No DOM and no Node types, so `fetch` and `process` stay undeclared, as they
|
|
10
|
+
* are in the sandbox. `strict`, with `noImplicitAny` off: snippets are scratch
|
|
11
|
+
* code, and an untyped helper parameter is not a mistake.
|
|
12
|
+
*
|
|
13
|
+
* The checker is TypeScript 7's API (`@typescript/native/unstable/async`): one
|
|
14
|
+
* native child process per server, started on the first check and kept warm,
|
|
15
|
+
* so a check costs milliseconds. Checks are serialized, because each one
|
|
16
|
+
* rewrites the one snippet file the checker's project holds.
|
|
17
|
+
*
|
|
18
|
+
* The check refuses only what the sandbox cannot run as written. Two shapes
|
|
19
|
+
* type-check badly yet run: an undeclared name read under `typeof` (the
|
|
20
|
+
* sandbox's global-inventory probe), and a member reached through an
|
|
21
|
+
* un-awaited `r` chain, which the replay resolves by awaiting every
|
|
22
|
+
* intermediate. Both are exempt.
|
|
23
|
+
*
|
|
24
|
+
* A missing member on an SDK object (an instance of an SDK class, or `r`
|
|
25
|
+
* itself) is reported with the replay's own `did_you_mean` search, run on
|
|
26
|
+
* types instead of objects: the receiver's closest public members, else where
|
|
27
|
+
* a member of that exact name lives (the receiver's namespaces, then the root,
|
|
28
|
+
* then the root's namespaces). The checker never calls the SDK.
|
|
29
|
+
*
|
|
30
|
+
* When the checker cannot start or answer, the check is skipped and the
|
|
31
|
+
* snippet runs unchecked: a checker fault must not take `run` away.
|
|
32
|
+
*/
|
|
33
|
+
import { existsSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
34
|
+
import { tmpdir } from "node:os";
|
|
35
|
+
import { join } from "node:path";
|
|
36
|
+
import { fileURLToPath } from "node:url";
|
|
37
|
+
import { closestMembers, sdkPrivateMembers, UnknownMember } from "./sandbox-proxy.js";
|
|
38
|
+
import { shiftColumn, WRAP_HEAD, WRAP_TAIL } from "./sandbox.js";
|
|
39
|
+
/** Starting the checker (spawn, load the SDK's declarations) may take this long before the check is skipped. */
|
|
40
|
+
export const SNIPPET_CHECK_START_TIMEOUT_MS = 15_000;
|
|
41
|
+
/** One check may take this long before it is skipped. */
|
|
42
|
+
export const SNIPPET_CHECK_TIMEOUT_MS = 5_000;
|
|
43
|
+
/** TypeScript's `DiagnosticCategory.Error`, `SymbolFlags.Class`, and `SymbolFlags.Value`. */
|
|
44
|
+
const CATEGORY_ERROR = 1;
|
|
45
|
+
const SYMBOL_CLASS = 32;
|
|
46
|
+
const SYMBOL_VALUE = 111551;
|
|
47
|
+
/** "Property 'x' does not exist on type 'T'" and its "Did you mean" form. */
|
|
48
|
+
const MISSING_PROPERTY = new Set([2339, 2551]);
|
|
49
|
+
let startChecker = startTypeScriptChecker;
|
|
50
|
+
let checker = null;
|
|
51
|
+
/** Checks run one at a time: each rewrites the one snippet file. */
|
|
52
|
+
let queue = Promise.resolve();
|
|
53
|
+
/** The SDK declarations this server replays against, packaged beside it (`src/` and `dist/` both sit next to `sdk/`). */
|
|
54
|
+
function sdkNodeDeclarations() {
|
|
55
|
+
return fileURLToPath(new URL("../sdk/dist/node/index.d.ts", import.meta.url));
|
|
56
|
+
}
|
|
57
|
+
/** The sandbox's bindings (`SANDBOX_GLOBALS` in `./sandbox.ts`) beyond what the ECMAScript library declares. */
|
|
58
|
+
function globalsSource(sdkDeclarations) {
|
|
59
|
+
const sdk = JSON.stringify(sdkDeclarations.replace(/\\/g, "/").replace(/\.d\.ts$/, ".js"));
|
|
60
|
+
return [
|
|
61
|
+
`declare const r: import(${sdk}).NodeRun402;`,
|
|
62
|
+
"declare const console: { log(...data: unknown[]): void; info(...data: unknown[]): void; warn(...data: unknown[]): void; error(...data: unknown[]): void };",
|
|
63
|
+
"declare const crypto: { randomUUID(): string };",
|
|
64
|
+
"declare function structuredClone<T>(value: T): T;",
|
|
65
|
+
"declare const InternalError: ErrorConstructor;",
|
|
66
|
+
"declare class URL { constructor(input: string, base?: string); static canParse(input: string, base?: string): boolean; readonly href: string; readonly origin: string; readonly protocol: string; readonly username: string; readonly password: string; readonly host: string; readonly hostname: string; readonly port: string; readonly pathname: string; readonly search: string; readonly hash: string; toString(): string; toJSON(): string }",
|
|
67
|
+
"declare class TextEncoder { readonly encoding: string; encode(input?: string): Uint8Array }",
|
|
68
|
+
"declare class TextDecoder { constructor(label?: string); readonly encoding: string; decode(input?: ArrayBuffer | ArrayBufferView): string }",
|
|
69
|
+
"",
|
|
70
|
+
].join("\n");
|
|
71
|
+
}
|
|
72
|
+
async function startTypeScriptChecker() {
|
|
73
|
+
const sdk = sdkNodeDeclarations();
|
|
74
|
+
if (!existsSync(sdk))
|
|
75
|
+
throw new Error(`the SDK declarations are missing (${sdk})`);
|
|
76
|
+
const { API } = await import("@typescript/native/unstable/async");
|
|
77
|
+
const ast = await import("@typescript/native/unstable/ast");
|
|
78
|
+
const dir = mkdtempSync(join(tmpdir(), "run402-mcp-check-"));
|
|
79
|
+
const file = join(dir, "snippet.ts");
|
|
80
|
+
const config = join(dir, "tsconfig.json");
|
|
81
|
+
writeFileSync(join(dir, "globals.d.ts"), globalsSource(sdk));
|
|
82
|
+
writeFileSync(config, JSON.stringify({
|
|
83
|
+
compilerOptions: {
|
|
84
|
+
target: "ESNext", lib: ["ESNext"], module: "ESNext", moduleResolution: "bundler",
|
|
85
|
+
strict: true, noImplicitAny: false, noEmit: true, skipLibCheck: true, types: [],
|
|
86
|
+
},
|
|
87
|
+
files: ["globals.d.ts", "snippet.ts"],
|
|
88
|
+
}));
|
|
89
|
+
writeFileSync(file, `${WRAP_HEAD}${WRAP_TAIL}`);
|
|
90
|
+
const api = new API({ cwd: dir });
|
|
91
|
+
try {
|
|
92
|
+
const snapshot = await api.updateSnapshot({ openProjects: [config] });
|
|
93
|
+
const project = snapshot.getProject(config);
|
|
94
|
+
if (!project)
|
|
95
|
+
throw new Error("the checker opened no project");
|
|
96
|
+
await project.program.getSemanticDiagnostics(file);
|
|
97
|
+
}
|
|
98
|
+
catch (err) {
|
|
99
|
+
await api.close().catch(() => undefined);
|
|
100
|
+
rmSync(dir, { recursive: true, force: true });
|
|
101
|
+
throw err;
|
|
102
|
+
}
|
|
103
|
+
return { api, ast, dir, file, config };
|
|
104
|
+
}
|
|
105
|
+
function withTimeout(promise, ms, what) {
|
|
106
|
+
let timer;
|
|
107
|
+
const deadline = new Promise((_, reject) => {
|
|
108
|
+
timer = setTimeout(() => reject(new Error(`${what} took longer than ${ms} ms`)), ms);
|
|
109
|
+
});
|
|
110
|
+
return Promise.race([promise, deadline]).finally(() => clearTimeout(timer));
|
|
111
|
+
}
|
|
112
|
+
/** Stop the checker process. The next check starts a new one. */
|
|
113
|
+
export async function closeSnippetChecker() {
|
|
114
|
+
const current = checker;
|
|
115
|
+
checker = null;
|
|
116
|
+
if (!current)
|
|
117
|
+
return;
|
|
118
|
+
try {
|
|
119
|
+
const c = await current;
|
|
120
|
+
await c.api.close().catch(() => undefined);
|
|
121
|
+
rmSync(c.dir, { recursive: true, force: true });
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
// It never started; there is nothing to stop.
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/** Tests: start the checker with `start` instead of TypeScript (null restores TypeScript). */
|
|
128
|
+
export async function _setSnippetCheckerStart(start) {
|
|
129
|
+
await closeSnippetChecker();
|
|
130
|
+
startChecker = start ?? startTypeScriptChecker;
|
|
131
|
+
}
|
|
132
|
+
// ─── the check ───────────────────────────────────────────────────────────────
|
|
133
|
+
/**
|
|
134
|
+
* Type-check a snippet that already parses. Never throws: a checker that
|
|
135
|
+
* cannot start or answer makes the check `skipped`.
|
|
136
|
+
*/
|
|
137
|
+
export function checkSnippet(code) {
|
|
138
|
+
const run = queue.then(() => checkNow(code));
|
|
139
|
+
queue = run.catch(() => undefined);
|
|
140
|
+
return run;
|
|
141
|
+
}
|
|
142
|
+
async function checkNow(code) {
|
|
143
|
+
let c;
|
|
144
|
+
try {
|
|
145
|
+
checker ??= withTimeout(startChecker(), SNIPPET_CHECK_START_TIMEOUT_MS, "starting the type checker");
|
|
146
|
+
c = await checker;
|
|
147
|
+
}
|
|
148
|
+
catch (err) {
|
|
149
|
+
checker = null;
|
|
150
|
+
return { status: "skipped", reason: reasonOf(err) };
|
|
151
|
+
}
|
|
152
|
+
try {
|
|
153
|
+
return await withTimeout(diagnose(c, code), SNIPPET_CHECK_TIMEOUT_MS, "the type check");
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
// A checker that failed once is not trusted again: the next check starts a new one.
|
|
157
|
+
await closeSnippetChecker();
|
|
158
|
+
return { status: "skipped", reason: reasonOf(err) };
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
function reasonOf(err) {
|
|
162
|
+
return err instanceof Error ? err.message : String(err);
|
|
163
|
+
}
|
|
164
|
+
async function diagnose(c, code) {
|
|
165
|
+
const text = `${WRAP_HEAD}${code}${WRAP_TAIL}`;
|
|
166
|
+
writeFileSync(c.file, text);
|
|
167
|
+
const snapshot = await c.api.updateSnapshot({ fileChanges: { changed: [c.file] } });
|
|
168
|
+
const project = snapshot.getProject(c.config);
|
|
169
|
+
if (!project)
|
|
170
|
+
throw new Error("the checker lost its project");
|
|
171
|
+
const { program, checker: types } = project;
|
|
172
|
+
const all = [...await program.getSyntacticDiagnostics(c.file), ...await program.getSemanticDiagnostics(c.file)]
|
|
173
|
+
.filter((d) => d.category === CATEGORY_ERROR)
|
|
174
|
+
.sort((a, b) => a.pos - b.pos);
|
|
175
|
+
if (all.length === 0)
|
|
176
|
+
return { status: "passed" };
|
|
177
|
+
const sourceFile = await program.getSourceFile(c.file);
|
|
178
|
+
const kept = [];
|
|
179
|
+
for (const d of all) {
|
|
180
|
+
const node = sourceFile ? c.ast.getTokenAtPosition(sourceFile, d.pos) : undefined;
|
|
181
|
+
if (node && c.ast.isIdentifier(node) && c.ast.isTypeOfExpression(node.parent))
|
|
182
|
+
continue;
|
|
183
|
+
if (node && MISSING_PROPERTY.has(d.code) && c.ast.isPropertyAccessExpression(node.parent) && node.parent.name === node) {
|
|
184
|
+
const verdict = await missingMember(c, types, node.parent, node.text ?? "", text);
|
|
185
|
+
if (verdict === "exempt")
|
|
186
|
+
continue;
|
|
187
|
+
kept.push({ diagnostic: d, ...(verdict ? { member: verdict } : {}) });
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
kept.push({ diagnostic: d });
|
|
191
|
+
}
|
|
192
|
+
if (kept.length === 0)
|
|
193
|
+
return { status: "passed" };
|
|
194
|
+
const diagnostics = kept.map(({ diagnostic }) => ({
|
|
195
|
+
...position(text, diagnostic.pos),
|
|
196
|
+
code: `TS${diagnostic.code}`,
|
|
197
|
+
message: flatten(diagnostic),
|
|
198
|
+
}));
|
|
199
|
+
const first = kept[0].member;
|
|
200
|
+
return {
|
|
201
|
+
status: "refused",
|
|
202
|
+
diagnostics,
|
|
203
|
+
...(first ? { unknownMember: first } : {}),
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
/** A diagnostic's offset in the wrapped text, as a 1-based line and column in the snippet. */
|
|
207
|
+
function position(text, pos) {
|
|
208
|
+
const before = text.slice(0, pos).split("\n");
|
|
209
|
+
const line = before.length;
|
|
210
|
+
return { line, column: shiftColumn(line, before[before.length - 1].length + 1) };
|
|
211
|
+
}
|
|
212
|
+
/** TypeScript's message with its chain, on one line. */
|
|
213
|
+
function flatten(d) {
|
|
214
|
+
const parts = [d.text];
|
|
215
|
+
for (const next of d.messageChain ?? [])
|
|
216
|
+
parts.push(flatten(next));
|
|
217
|
+
return parts.join(" ");
|
|
218
|
+
}
|
|
219
|
+
// ─── a missing member ────────────────────────────────────────────────────────
|
|
220
|
+
/**
|
|
221
|
+
* For `receiver.key` where TypeScript found no `key`: `exempt` when the
|
|
222
|
+
* replay would resolve it (an un-awaited chain whose awaited value has `key`),
|
|
223
|
+
* an `UnknownMember` when the receiver is an SDK object, and undefined for
|
|
224
|
+
* anything else (data, a string), which stays an ordinary type error.
|
|
225
|
+
*/
|
|
226
|
+
async function missingMember(c, types, access, key, text) {
|
|
227
|
+
const receiverNode = access.expression;
|
|
228
|
+
const receiver = await types.getTypeAtLocation(receiverNode);
|
|
229
|
+
if (!receiver)
|
|
230
|
+
return undefined;
|
|
231
|
+
const chain = chainOf(c.ast, receiverNode);
|
|
232
|
+
const symbol = await receiver.getSymbol();
|
|
233
|
+
// An un-awaited chain: the replay awaits every intermediate, so `key` on the awaited value works.
|
|
234
|
+
if (symbol?.name === "Promise") {
|
|
235
|
+
const [awaited] = await types.getTypeArguments(receiver);
|
|
236
|
+
if (!awaited)
|
|
237
|
+
return undefined;
|
|
238
|
+
const awaitedSymbol = await awaited.getSymbol();
|
|
239
|
+
const fromR = chain.root === "r" || isSdkClass(awaitedSymbol);
|
|
240
|
+
if (fromR && (await memberNames(types, awaited)).includes(key))
|
|
241
|
+
return "exempt";
|
|
242
|
+
return undefined;
|
|
243
|
+
}
|
|
244
|
+
const isRoot = chain.root === "r" && chain.display === "r";
|
|
245
|
+
if (!isRoot && !isSdkClass(symbol))
|
|
246
|
+
return undefined;
|
|
247
|
+
const root = await rootType(types, c.file, text);
|
|
248
|
+
const members = await memberNames(types, receiver);
|
|
249
|
+
const near = closestMembers(key, members).map((m) => `${chain.display}.${m}`);
|
|
250
|
+
const suggestions = near.length > 0 ? near : await findElsewhere(types, key, receiver, chain.display, root);
|
|
251
|
+
return new UnknownMember(`${chain.display}.${key}`, suggestions, members);
|
|
252
|
+
}
|
|
253
|
+
function isSdkClass(symbol) {
|
|
254
|
+
return symbol !== undefined && (symbol.flags & SYMBOL_CLASS) !== 0;
|
|
255
|
+
}
|
|
256
|
+
/** The chain as a snippet writes it, a call shown as `(…)` (`r.project(…)`), and the identifier it starts from. */
|
|
257
|
+
function chainOf(ast, node) {
|
|
258
|
+
const segments = [];
|
|
259
|
+
let e = node;
|
|
260
|
+
for (;;) {
|
|
261
|
+
if (ast.isPropertyAccessExpression(e)) {
|
|
262
|
+
segments.unshift(`.${e.name.text}`);
|
|
263
|
+
e = e.expression;
|
|
264
|
+
}
|
|
265
|
+
else if (ast.isCallExpression(e)) {
|
|
266
|
+
segments.unshift("(…)");
|
|
267
|
+
e = e.expression;
|
|
268
|
+
}
|
|
269
|
+
else if (ast.isElementAccessExpression(e)) {
|
|
270
|
+
segments.unshift("[…]");
|
|
271
|
+
e = e.expression;
|
|
272
|
+
}
|
|
273
|
+
else if (ast.isParenthesizedExpression(e) || ast.isNonNullExpression(e) || ast.isAwaitExpression(e)) {
|
|
274
|
+
e = e.expression;
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
break;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
const root = ast.isIdentifier(e) ? e.text ?? null : null;
|
|
281
|
+
return { display: `${root ?? "…"}${segments.join("")}`, root };
|
|
282
|
+
}
|
|
283
|
+
/** The type of `r`, the client the host replays against. */
|
|
284
|
+
async function rootType(types, file, text) {
|
|
285
|
+
const symbol = await types.resolveName("r", SYMBOL_VALUE, { document: file, position: text.length - 1 });
|
|
286
|
+
return symbol ? types.getTypeOfSymbol(symbol) : undefined;
|
|
287
|
+
}
|
|
288
|
+
/** A type's public members, as the replay's `publicMembers` counts them: no private, internal, or intrinsic names. */
|
|
289
|
+
async function memberNames(types, type) {
|
|
290
|
+
const symbol = await type.getSymbol();
|
|
291
|
+
const hidden = symbol ? sdkPrivateMembers().get(symbol.name) : undefined;
|
|
292
|
+
const names = (await types.getPropertiesOfType(type)).map((p) => p.name);
|
|
293
|
+
return [...new Set(names.filter((n) => !(n.startsWith("_") || n.startsWith("#") || n.startsWith("__@") || n === "constructor" || hidden?.has(n))))].sort();
|
|
294
|
+
}
|
|
295
|
+
/** The namespaces among a type's members: the ones whose type is an SDK class. */
|
|
296
|
+
async function namespacesOf(types, type) {
|
|
297
|
+
const names = new Set(await memberNames(types, type));
|
|
298
|
+
const props = (await types.getPropertiesOfType(type)).filter((p) => names.has(p.name));
|
|
299
|
+
const propTypes = props.length > 0 ? await types.getTypeOfSymbol(props) : [];
|
|
300
|
+
const out = [];
|
|
301
|
+
for (let i = 0; i < props.length; i++) {
|
|
302
|
+
const t = propTypes[i];
|
|
303
|
+
if (t && isSdkClass(await t.getSymbol()))
|
|
304
|
+
out.push({ name: props[i].name, type: t });
|
|
305
|
+
}
|
|
306
|
+
return out;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Where else `key` lives, as the replay's `findElsewhere` searches objects:
|
|
310
|
+
* the receiver's own namespaces first (`r.project(…).projects.sql`), then the
|
|
311
|
+
* root and the root's namespaces (`r.projects.sql`). At most three.
|
|
312
|
+
*/
|
|
313
|
+
async function findElsewhere(types, key, receiver, display, root) {
|
|
314
|
+
const found = [];
|
|
315
|
+
const add = (p) => { if (!found.includes(p))
|
|
316
|
+
found.push(p); };
|
|
317
|
+
for (const ns of await namespacesOf(types, receiver)) {
|
|
318
|
+
if ((await memberNames(types, ns.type)).includes(key))
|
|
319
|
+
add(`${display}.${ns.name}.${key}`);
|
|
320
|
+
}
|
|
321
|
+
if (root && root.id !== receiver.id) {
|
|
322
|
+
if ((await memberNames(types, root)).includes(key))
|
|
323
|
+
add(`r.${key}`);
|
|
324
|
+
for (const ns of await namespacesOf(types, root)) {
|
|
325
|
+
if (ns.type.id !== receiver.id && (await memberNames(types, ns.type)).includes(key))
|
|
326
|
+
add(`r.${ns.name}.${key}`);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
return found.slice(0, 3);
|
|
330
|
+
}
|
|
331
|
+
//# sourceMappingURL=snippet-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snippet-check.js","sourceRoot":"","sources":["../src/snippet-check.ts"],"names":[],"mappings":"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"}
|