tapline-host 1.4.0 → 1.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/accounts.d.ts +72 -0
- package/dist/accounts.js +208 -0
- package/dist/accounts.js.map +1 -0
- package/dist/actionlog.d.ts +20 -0
- package/dist/actionlog.js.map +1 -1
- package/dist/animations.d.ts +39 -0
- package/dist/animations.js +124 -0
- package/dist/animations.js.map +1 -0
- package/dist/api.d.ts +43 -0
- package/dist/api.js +154 -0
- package/dist/api.js.map +1 -0
- package/dist/audit.d.ts +3 -0
- package/dist/audit.js +1 -1
- package/dist/audit.js.map +1 -1
- package/dist/bin.d.ts +2 -0
- package/dist/bin.js +19 -0
- package/dist/bin.js.map +1 -0
- package/dist/brief.d.ts +41 -0
- package/dist/brief.js +78 -0
- package/dist/brief.js.map +1 -0
- package/dist/cli.d.ts +41 -1
- package/dist/cli.js +100 -53
- package/dist/cli.js.map +1 -1
- package/dist/conditions.d.ts +36 -0
- package/dist/conditions.js +67 -0
- package/dist/conditions.js.map +1 -0
- package/dist/confirm.d.ts +21 -2
- package/dist/confirm.js +39 -6
- package/dist/confirm.js.map +1 -1
- package/dist/dispatch.d.ts +27 -0
- package/dist/dispatch.js +114 -0
- package/dist/dispatch.js.map +1 -0
- package/dist/doctor.d.ts +5 -0
- package/dist/doctor.js +20 -0
- package/dist/doctor.js.map +1 -1
- package/dist/drive.d.ts +184 -0
- package/dist/drive.js +908 -0
- package/dist/drive.js.map +1 -0
- package/dist/elicit.d.ts +90 -0
- package/dist/elicit.js +179 -0
- package/dist/elicit.js.map +1 -0
- package/dist/format.d.ts +16 -0
- package/dist/format.js +81 -24
- package/dist/format.js.map +1 -1
- package/dist/images.d.ts +35 -0
- package/dist/images.js +76 -6
- package/dist/images.js.map +1 -1
- package/dist/inspect.d.ts +1 -0
- package/dist/journey.d.ts +276 -0
- package/dist/journey.js +368 -0
- package/dist/journey.js.map +1 -0
- package/dist/journeyexport.d.ts +58 -0
- package/dist/journeyexport.js +318 -0
- package/dist/journeyexport.js.map +1 -0
- package/dist/journeygif.d.ts +62 -0
- package/dist/journeygif.js +192 -0
- package/dist/journeygif.js.map +1 -0
- package/dist/journeyreport.d.ts +202 -0
- package/dist/journeyreport.js +666 -0
- package/dist/journeyreport.js.map +1 -0
- package/dist/mapcmd.d.ts +200 -0
- package/dist/mapcmd.js +412 -0
- package/dist/mapcmd.js.map +1 -0
- package/dist/mapfile.d.ts +155 -0
- package/dist/mapfile.js +575 -0
- package/dist/mapfile.js.map +1 -0
- package/dist/mcp.d.ts +14 -11
- package/dist/mcp.js +50 -318
- package/dist/mcp.js.map +1 -1
- package/dist/media.d.ts +88 -0
- package/dist/media.js +263 -0
- package/dist/media.js.map +1 -0
- package/dist/nochange.d.ts +77 -0
- package/dist/nochange.js +77 -0
- package/dist/nochange.js.map +1 -0
- package/dist/places.d.ts +239 -0
- package/dist/places.js +823 -0
- package/dist/places.js.map +1 -0
- package/dist/policy.d.ts +18 -0
- package/dist/policy.js +52 -0
- package/dist/policy.js.map +1 -1
- package/dist/protocol.d.ts +27 -1
- package/dist/protocol.js +25 -0
- package/dist/protocol.js.map +1 -1
- package/dist/reflexes.d.ts +59 -0
- package/dist/reflexes.js +133 -0
- package/dist/reflexes.js.map +1 -0
- package/dist/report.d.ts +32 -2
- package/dist/report.js +154 -9
- package/dist/report.js.map +1 -1
- package/dist/routes.d.ts +115 -0
- package/dist/routes.js +287 -0
- package/dist/routes.js.map +1 -0
- package/dist/run.d.ts +28 -1
- package/dist/run.js +32 -3
- package/dist/run.js.map +1 -1
- package/dist/runtime.d.ts +60 -0
- package/dist/runtime.js +255 -0
- package/dist/runtime.js.map +1 -0
- package/dist/script.d.ts +114 -10
- package/dist/script.js +30 -2
- package/dist/script.js.map +1 -1
- package/dist/server.d.ts +48 -2
- package/dist/server.js +88 -13
- package/dist/server.js.map +1 -1
- package/dist/thincall.d.ts +13 -0
- package/dist/thincall.js +335 -0
- package/dist/thincall.js.map +1 -0
- package/dist/tool-text-data.d.ts +10 -5
- package/dist/tool-text-data.js +11 -6
- package/dist/tool-text-data.js.map +1 -1
- package/dist/tool-text.d.ts +1 -1
- package/dist/tools.d.ts +585 -5
- package/dist/tools.js +2926 -185
- package/dist/tools.js.map +1 -1
- package/dist/uxcheck.d.ts +103 -0
- package/dist/uxcheck.js +128 -0
- package/dist/uxcheck.js.map +1 -0
- package/package.json +3 -2
- package/skills/tapline/SKILL.md +57 -11
- package/skills/tapline/references/personas.md +45 -0
- package/skills/tapline/references/setup.md +6 -1
package/dist/cli.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { realpathSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
2
4
|
import { spawn } from "node:child_process";
|
|
3
|
-
import { writeFileSync } from "node:fs";
|
|
4
5
|
import { join } from "node:path";
|
|
5
6
|
import { parseArgs } from "node:util";
|
|
6
7
|
import { toString as qrText } from "qrcode";
|
|
@@ -11,6 +12,7 @@ import { formatLogs } from "./format.js";
|
|
|
11
12
|
import { runInit } from "./init.js";
|
|
12
13
|
import { runReport } from "./report.js";
|
|
13
14
|
import { runMcp } from "./mcp.js";
|
|
15
|
+
import { createRuntime } from "./runtime.js";
|
|
14
16
|
import { createPairCode, forgetLink, pairingLink } from "./pairing.js";
|
|
15
17
|
import { failureWithDiff, junitXml } from "./script.js";
|
|
16
18
|
import { TaplineHost } from "./server.js";
|
|
@@ -22,7 +24,10 @@ Usage: tapline <command> [options]
|
|
|
22
24
|
|
|
23
25
|
Commands:
|
|
24
26
|
mcp Run the host plus an MCP server on stdio (for Claude Code and other agents)
|
|
25
|
-
host Run
|
|
27
|
+
host Run a standalone host in the foreground: apps connect to it, and it serves the live view and
|
|
28
|
+
"tapline call" (it takes the options of mcp)
|
|
29
|
+
call Send one tool call to a running "tapline host": tapline call <tool> '<json>' [--client NAME] [--json]
|
|
30
|
+
(exit 0: an answer, 2: a refusal, 3: no host reachable)
|
|
26
31
|
pair Print a pairing link and QR code for a phone (needs --scheme)
|
|
27
32
|
info Show this computer's address and how to add Tapline to an app
|
|
28
33
|
doctor Check the setup (Node, the Wi-Fi address, Tailscale if used, token, ports, firewall);
|
|
@@ -48,9 +53,22 @@ Options:
|
|
|
48
53
|
--screenshots <inline|file>
|
|
49
54
|
For mcp: put screenshots in the tool result (default), or save them in
|
|
50
55
|
~/.tapline/shots and return the path (or TAPLINE_SCREENSHOTS)
|
|
56
|
+
--client <name> For call: the agent's name, so its report and journey stay its own (default: the parent process id)
|
|
57
|
+
--json For call: print {"text", "image_path"} instead of the text
|
|
51
58
|
--no-log For mcp: don't write the action log (~/.tapline/log/actions-YYYY-MM-DD.jsonl)
|
|
52
59
|
--policy <file> For mcp: the safety policy (JSON: words that need a person's OK, words that are blocked)
|
|
53
60
|
--no-policy For mcp: no confirmation and nothing blocked (a test device with test data)
|
|
61
|
+
--no-dialog For mcp: don't ask a person's OK in the host's dialog, only in the live view (for a host that
|
|
62
|
+
passes dialogs to the model instead of showing them to a person)
|
|
63
|
+
--brief For mcp and host: actions answer briefly (a call's brief: false overrides it); look is never brief
|
|
64
|
+
--ux-rules <file> For mcp: the user's UX house rules for ux_check and journeys (JSON: text rules to judge,
|
|
65
|
+
{"max_taps_to_goal": N}, {"way_back": true})
|
|
66
|
+
--accounts <file> For mcp and host: test accounts (JSON; the tool types an account's username and password so the
|
|
67
|
+
agent never sees them). The file must sit outside any git repo, or be ignored by it.
|
|
68
|
+
A password stays out of pictures only while its field is secure (a "show password" toggle shows it).
|
|
69
|
+
Keep the file outside the folders the agent may read
|
|
70
|
+
--maps <dir> For mcp and host: keep each app's map (its places, roads and links) in <dir>/<app id>/ instead of
|
|
71
|
+
~/.tapline/maps/<app id>/, so a team and both tools can share one folder with a project
|
|
54
72
|
--viewer-link For mcp: the viewer tool gives the agent the live view's link (benchmarks, scripts); by
|
|
55
73
|
default it opens the live view in a browser here and keeps the link (its key) from the agent
|
|
56
74
|
(or TAPLINE_VIEWER_LINK=1)
|
|
@@ -97,43 +115,37 @@ async function printPairing(config, url, scheme) {
|
|
|
97
115
|
out.write(`\nScan with the phone's camera, then tap Connect in the app (valid 10 minutes, works once):\n\n${qr}\n`);
|
|
98
116
|
out.write(`${link}\n\nTo unpair the phone, open ${forgetLink(scheme)} on it.\n`);
|
|
99
117
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
hosts: config.hosts,
|
|
106
|
-
});
|
|
118
|
+
/**
|
|
119
|
+
* The standalone host: apps connect to it, it serves the live viewer (a person's OK is given there) and the thin
|
|
120
|
+
* call, `POST /api/<tool>` (AGENT-TOOLS 1.13 §18.10). It takes the options `mcp` takes.
|
|
121
|
+
*/
|
|
122
|
+
async function runHost(options, scheme) {
|
|
107
123
|
const stamp = () => new Date().toISOString().slice(11, 19);
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
124
|
+
let runtime;
|
|
125
|
+
try {
|
|
126
|
+
runtime = await createRuntime({ ...options, api: true, log: (message) => console.log(`${stamp()} ${message}`) });
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
for (const line of (error instanceof Error ? error.message : String(error)).split("\n"))
|
|
130
|
+
console.error(line);
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
const { host, config } = runtime;
|
|
114
134
|
host.on("log", (s, entry) => console.log(`${stamp()} [${s.app.name}] ${formatLogs([entry])}`));
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
const url = hostUrl({ advertisedHost: reachableHost(config, result.listening) }, port);
|
|
119
|
-
console.log("Tapline host running.\n");
|
|
120
|
-
console.log(` Apps connect to ${url}`);
|
|
121
|
-
for (const note of config.notes)
|
|
122
|
-
console.log(`\n Note: ${note}`);
|
|
123
|
-
for (const { host: h, port: p } of result.listening)
|
|
124
|
-
console.log(` listening on ws://${h}:${p}/`);
|
|
125
|
-
for (const { host: h, error } of result.failed)
|
|
126
|
-
console.warn(` could not listen on ${h}: ${error}`);
|
|
135
|
+
console.log("\nTapline host running.\n");
|
|
136
|
+
console.log(` Apps connect to ${runtime.url}`);
|
|
137
|
+
console.log(` Agents without an MCP connection: tapline call <tool> '<json>' (port ${runtime.port})`);
|
|
127
138
|
if (scheme !== undefined)
|
|
128
|
-
await printPairing(config, url, scheme);
|
|
139
|
+
await printPairing(config, runtime.url, scheme);
|
|
129
140
|
else
|
|
130
|
-
console.log(`\n Pair a phone: tapline pair --scheme <your app's scheme> --port ${port}`);
|
|
141
|
+
console.log(`\n Pair a phone: tapline pair --scheme <your app's scheme> --port ${runtime.port}`);
|
|
131
142
|
console.log("\nWaiting for apps. Ctrl+C to stop.\n");
|
|
132
143
|
const stop = () => {
|
|
133
|
-
void
|
|
144
|
+
void runtime.close().finally(() => process.exit(0));
|
|
134
145
|
};
|
|
135
146
|
process.once("SIGINT", stop);
|
|
136
147
|
process.once("SIGTERM", stop);
|
|
148
|
+
return true;
|
|
137
149
|
}
|
|
138
150
|
function portOption(raw, name) {
|
|
139
151
|
if (raw === undefined)
|
|
@@ -227,8 +239,9 @@ async function runReplay(config, scripts, waitRaw, junitPath, updateReferences =
|
|
|
227
239
|
await host.close();
|
|
228
240
|
}
|
|
229
241
|
}
|
|
230
|
-
|
|
231
|
-
|
|
242
|
+
/** The command line's words and options, in one place so a test can read them without starting a host. */
|
|
243
|
+
export function parseCli(argv) {
|
|
244
|
+
return parseArgs({
|
|
232
245
|
args: argv,
|
|
233
246
|
allowPositionals: true,
|
|
234
247
|
options: {
|
|
@@ -247,6 +260,11 @@ async function main(argv) {
|
|
|
247
260
|
"no-log": { type: "boolean" },
|
|
248
261
|
policy: { type: "string" },
|
|
249
262
|
"no-policy": { type: "boolean" },
|
|
263
|
+
"no-dialog": { type: "boolean" },
|
|
264
|
+
brief: { type: "boolean" },
|
|
265
|
+
"ux-rules": { type: "string" },
|
|
266
|
+
accounts: { type: "string" },
|
|
267
|
+
maps: { type: "string" },
|
|
250
268
|
"viewer-link": { type: "boolean" },
|
|
251
269
|
project: { type: "string" },
|
|
252
270
|
"dry-run": { type: "boolean" },
|
|
@@ -255,6 +273,31 @@ async function main(argv) {
|
|
|
255
273
|
help: { type: "boolean", short: "h" },
|
|
256
274
|
},
|
|
257
275
|
});
|
|
276
|
+
}
|
|
277
|
+
/** What `mcp` and the standalone host both take, from the parsed options (`--brief` and the rest). */
|
|
278
|
+
export function runtimeOptionsOf(values, options) {
|
|
279
|
+
return {
|
|
280
|
+
...options,
|
|
281
|
+
...(values.screenshots !== undefined ? { screenshots: values.screenshots } : {}),
|
|
282
|
+
...(values.viewer !== undefined ? { viewer: values.viewer } : {}),
|
|
283
|
+
...(values["no-log"] === true ? { noLog: true } : {}),
|
|
284
|
+
...(values.policy !== undefined ? { policy: values.policy } : {}),
|
|
285
|
+
...(values["no-policy"] === true ? { noPolicy: true } : {}),
|
|
286
|
+
...(values["no-dialog"] === true ? { noDialog: true } : {}),
|
|
287
|
+
...(values.brief === true ? { brief: true } : {}),
|
|
288
|
+
...(values["ux-rules"] !== undefined ? { uxRules: values["ux-rules"] } : {}),
|
|
289
|
+
...(values.accounts !== undefined ? { accounts: values.accounts } : {}),
|
|
290
|
+
...(values.maps !== undefined ? { maps: values.maps } : {}),
|
|
291
|
+
...(values["viewer-link"] === true ? { viewerLink: true } : {}),
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
export async function main(argv) {
|
|
295
|
+
// The thin call has its own light entry (bin.ts); this keeps "node dist/cli.js call" working too.
|
|
296
|
+
if (argv[0] === "call") {
|
|
297
|
+
const { runThinCall } = await import("./thincall.js");
|
|
298
|
+
return runThinCall(argv.slice(1));
|
|
299
|
+
}
|
|
300
|
+
const { values, positionals } = parseCli(argv);
|
|
258
301
|
const command = positionals[0];
|
|
259
302
|
if (values.help === true || command === undefined || command === "help") {
|
|
260
303
|
process.stdout.write(HELP);
|
|
@@ -264,22 +307,12 @@ async function main(argv) {
|
|
|
264
307
|
...(values.port !== undefined ? { port: values.port } : {}),
|
|
265
308
|
...(values.host !== undefined ? { host: values.host } : {}),
|
|
266
309
|
};
|
|
310
|
+
const runtimeOptions = runtimeOptionsOf(values, options);
|
|
267
311
|
switch (command) {
|
|
268
312
|
case "mcp":
|
|
269
|
-
return (await runMcp(
|
|
270
|
-
...options,
|
|
271
|
-
...(values.screenshots !== undefined ? { screenshots: values.screenshots } : {}),
|
|
272
|
-
...(values.viewer !== undefined ? { viewer: values.viewer } : {}),
|
|
273
|
-
...(values["no-log"] === true ? { noLog: true } : {}),
|
|
274
|
-
...(values.policy !== undefined ? { policy: values.policy } : {}),
|
|
275
|
-
...(values["no-policy"] === true ? { noPolicy: true } : {}),
|
|
276
|
-
...(values["viewer-link"] === true ? { viewerLink: true } : {}),
|
|
277
|
-
}))
|
|
278
|
-
? -1 // keep running
|
|
279
|
-
: 1;
|
|
313
|
+
return (await runMcp(runtimeOptions)) ? -1 /* keep running */ : 1;
|
|
280
314
|
case "host":
|
|
281
|
-
|
|
282
|
-
return -1;
|
|
315
|
+
return (await runHost(runtimeOptions, values.scheme)) ? -1 : 1;
|
|
283
316
|
case "pair": {
|
|
284
317
|
if (values.scheme === undefined) {
|
|
285
318
|
process.stderr.write(`pair needs the app's URL scheme: tapline pair --scheme myapp\n`);
|
|
@@ -294,7 +327,7 @@ async function main(argv) {
|
|
|
294
327
|
return 0;
|
|
295
328
|
}
|
|
296
329
|
case "doctor": {
|
|
297
|
-
const results = await runDoctor();
|
|
330
|
+
const results = await runDoctor(values.accounts !== undefined ? { accountsFile: values.accounts } : {});
|
|
298
331
|
process.stdout.write(`${formatDoctor(results, needsAPerson(results))}\n`);
|
|
299
332
|
let failed = results.some((r) => r.status === "fail");
|
|
300
333
|
if (values.app === true) {
|
|
@@ -354,11 +387,25 @@ async function main(argv) {
|
|
|
354
387
|
return 1;
|
|
355
388
|
}
|
|
356
389
|
}
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
});
|
|
390
|
+
/** Runs the command line and exits with its code (a negative code means a host keeps running). */
|
|
391
|
+
export function runMain(argv) {
|
|
392
|
+
main(argv).then((code) => {
|
|
393
|
+
if (code >= 0)
|
|
394
|
+
process.exit(code);
|
|
395
|
+
}, (error) => {
|
|
396
|
+
process.stderr.write(`tapline: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
397
|
+
process.exit(1);
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
// "node dist/cli.js ..." still works; the tapline bin is bin.js, which loads this file only for commands other than call.
|
|
401
|
+
const entry = process.argv[1];
|
|
402
|
+
if (entry !== undefined) {
|
|
403
|
+
try {
|
|
404
|
+
if (realpathSync(entry) === realpathSync(fileURLToPath(import.meta.url)))
|
|
405
|
+
runMain(process.argv.slice(2));
|
|
406
|
+
}
|
|
407
|
+
catch {
|
|
408
|
+
// not run as a script
|
|
409
|
+
}
|
|
410
|
+
}
|
|
364
411
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EACL,SAAS,EACT,cAAc,EACd,OAAO,EACP,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,aAAa,GAEd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,aAAa,EAAqC,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwEZ,CAAC;AAEF,SAAS,SAAS,CAAC,MAAkB;IACnC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;IAC/C,GAAG,CAAC,KAAK,CAAC,eAAe,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IAC1C,GAAG,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,cAAc,KAAK,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACjM,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;QAC5B,GAAG,CAAC,KAAK,CAAC,eAAe,MAAM,CAAC,IAAI,cAAc,IAAI,2CAA2C,CAAC,CAAC;IACrG,CAAC;IACD,GAAG,CAAC,KAAK,CAAC,eAAe,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IAC/C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK;QAAE,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;IAChE,GAAG,CAAC,KAAK,CAAC,yEAAyE,cAAc,EAAE,IAAI,CAAC,CAAC;IACzG,GAAG,CAAC,KAAK,CAAC,4GAA4G,mBAAmB,EAAE,IAAI,CAAC,CAAC;IACjJ,GAAG,CAAC,KAAK,CAAC,sGAAsG,CAAC,CAAC;IAClH,GAAG,CAAC,KAAK,CAAC,0GAA0G,CAAC,CAAC;IACtH,GAAG,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;AACjE,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,MAAkB,EAAE,GAAW,EAAE,MAAc;IACzE,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACjG,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5F,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B,GAAG,CAAC,KAAK,CAAC,kGAAkG,EAAE,IAAI,CAAC,CAAC;IACpH,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,iCAAiC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACnF,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,OAAO,CAAC,OAAuB,EAAE,MAA0B;IACxE,MAAM,KAAK,GAAG,GAAW,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACnE,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,aAAa,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACnH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7G,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACjC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,qBAAqB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,0EAA0E,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;IACvG,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;;QACrE,OAAO,CAAC,GAAG,CAAC,sEAAsE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACvG,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAErD,MAAM,IAAI,GAAG,GAAS,EAAE;QACtB,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,GAAuB,EAAE,IAAY;IACvD,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,gCAAgC,GAAG,GAAG,CAAC,CAAC;IACxH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,MAAM,CACnB,MAAwE,EACxE,OAAiB;IAEjB,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;QACjC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,CAAC;IACzB,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC;IACnC,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,iCAAiC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;IACtG,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YACjC,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,uBAAuB,EAAE,MAAM,CAAC,GAAG,EAAE;YAC5D,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,uCAAuC;SAC7E,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YACpE,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,SAAS,CACtB,MAAkB,EAClB,OAAiB,EACjB,OAA2B,EAC3B,SAA6B,EAC7B,gBAAgB,GAAG,KAAK;IAExB,MAAM,WAAW,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACxD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACjI,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC;IAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,cAAc,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACvF,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE;QACnC,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;QACnC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC;QACxC,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,WAAW,CAAC;KAC7C,CAAC,CAAC;IACH,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,WAAW,qCAAqC,IAAI,4BAA4B,CAAC,CAAC;QACxH,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;YACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,QAAQ,MAAM,CAAC,IAAI,2HAA2H,CAC/I,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,IAAI,CAAC;QACjD,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ;YAAE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3G,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;YAClG,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,MAAM,OAAO,GAAqE,EAAE,CAAC;QACrF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACvG,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,KAAK,OAAO,MAAM,CAAC,CAAC;YAClD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,uDAAuD,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClK,IAAI,YAAY;gBAAE,IAAI,GAAG,CAAC,CAAC;iBACtB,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC;gBAAE,IAAI,GAAG,CAAC,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9I,CAAC;QACD,IAAI,SAAS,KAAK,SAAS;YAAE,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;AACH,CAAC;AAED,0GAA0G;AAC1G,MAAM,UAAU,QAAQ,CAAC,IAAc;IACrC,OAAO,SAAS,CAAC;QACf,IAAI,EAAE,IAAI;QACV,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE;YACP,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,mBAAmB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACxC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAChC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAChC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC9B,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACxB,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACjC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;SACtC;KACF,CAAC,CAAC;AACL,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,gBAAgB,CAAC,MAA6C,EAAE,OAAyC;IACvH,OAAO;QACL,GAAG,OAAO;QACV,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc;IACvC,kGAAkG;IAClG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QACtD,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACxE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC;IAEF,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEzD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK;YACR,OAAO,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,KAAK,MAAM;YACT,OAAO,CAAC,MAAM,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;gBACvF,OAAO,CAAC,CAAC;YACX,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxE,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kCAAkC,MAAM,CAAC,IAAI,+CAA+C;oBAC1F,UAAU,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,+CAA+C,CAC7F,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1E,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;YACtD,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;gBACxB,+DAA+D;gBAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBACnE,MAAM,GAAG,GAAG,OAAO,CACjB,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EACtG,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CACnG,CAAC;gBACF,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO;oBAAE,MAAM,GAAG,IAAI,CAAC;YACvD,CAAC;YACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QACD,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;gBACrG,OAAO,CAAC,CAAC;YACX,CAAC;YACD,OAAO,SAAS,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC,CAAC;QAC3H,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,kDAAkD;YAClD,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7H,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;YAClF,OAAO,OAAO,CAAC,IAAI,CAAC;QACtB,CAAC;QACD,KAAK,OAAO;YACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAClE,OAAO,CAAC,CAAC;QACX,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,EAAE,IAAI,CAAC,CAAC;gBAC3C,OAAO,CAAC,CAAC;YACX,CAAC;YACD,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAC;gBACpG,OAAO,CAAC,CAAC;YACX,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAClG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,MAAM,GAAG,OAAO,CACpB;gBACE,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7D,EACD,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CACvD,CAAC;YACF,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QACD,KAAK,MAAM;YACT,SAAS,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,CAAC;QACX;YACE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,SAAS,IAAI,EAAE,CAAC,CAAC;YACjE,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,OAAO,CAAC,IAAc;IACpC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CACb,CAAC,IAAI,EAAE,EAAE;QACP,IAAI,IAAI,IAAI,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CACF,CAAC;AACJ,CAAC;AAED,0HAA0H;AAC1H,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;IACxB,IAAI,CAAC;QACH,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3G,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { TreeElement } from "./protocol.js";
|
|
2
|
+
import type { Step } from "./run.js";
|
|
3
|
+
/**
|
|
4
|
+
* AGENT-TOOLS 1.13 §9.1: the check behind a step's `if` and `optional`. One look, made once right after the
|
|
5
|
+
* step before settled, with no wait of its own; `wait_for` is the step that waits.
|
|
6
|
+
*/
|
|
7
|
+
/** The app cuts an element's text at this many characters on the wire (`…(+57)`); a longer probe can't be matched by the host. */
|
|
8
|
+
export declare const WIRE_TEXT_MAX = 200;
|
|
9
|
+
/** What to look for. `ref` is read against the app's current list; the others go to the app as one `waitFor`. */
|
|
10
|
+
export type Probe = {
|
|
11
|
+
text: string;
|
|
12
|
+
} | {
|
|
13
|
+
testID: string;
|
|
14
|
+
} | {
|
|
15
|
+
label: string;
|
|
16
|
+
} | {
|
|
17
|
+
ref: string;
|
|
18
|
+
};
|
|
19
|
+
export interface Condition {
|
|
20
|
+
kind: "if" | "optional";
|
|
21
|
+
probe: Probe;
|
|
22
|
+
/** True: the step runs when the thing is NOT there (`if` with `gone: true`). */
|
|
23
|
+
gone: boolean;
|
|
24
|
+
/** How the thing reads in the skipped line: `"Not now"`, `id=save`, `e3`. */
|
|
25
|
+
label: string;
|
|
26
|
+
}
|
|
27
|
+
/** The step's `if`, then its `optional`: every check that must hold for the step to run. */
|
|
28
|
+
export declare function conditionsOf(step: Step): Condition[];
|
|
29
|
+
/** The first check of a step, or null when it has none. */
|
|
30
|
+
export declare function conditionOf(step: Step): Condition | null;
|
|
31
|
+
/** Whether a probe matches an element, as the app's `waitFor` matches (text contains, id equal, label equal; case-insensitive text and label). */
|
|
32
|
+
export declare function matchesProbe(element: TreeElement, probe: Probe): boolean;
|
|
33
|
+
/** Whether the check holds on a list: the thing is in it (or, with `gone`, isn't). The whole list counts, off screen too (§9.1). */
|
|
34
|
+
export declare function holdsIn(elements: TreeElement[], condition: Condition): boolean;
|
|
35
|
+
/** The wire params of the one `waitFor` that makes the check (never a `ref`). */
|
|
36
|
+
export declare function waitParams(condition: Condition, glass: boolean): Record<string, unknown> | null;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { describeProbe } from "./run.js";
|
|
2
|
+
/**
|
|
3
|
+
* AGENT-TOOLS 1.13 §9.1: the check behind a step's `if` and `optional`. One look, made once right after the
|
|
4
|
+
* step before settled, with no wait of its own; `wait_for` is the step that waits.
|
|
5
|
+
*/
|
|
6
|
+
/** The app cuts an element's text at this many characters on the wire (`…(+57)`); a longer probe can't be matched by the host. */
|
|
7
|
+
export const WIRE_TEXT_MAX = 200;
|
|
8
|
+
function str(value) {
|
|
9
|
+
return typeof value === "string" && value !== "" ? value : undefined;
|
|
10
|
+
}
|
|
11
|
+
function probeOf(source) {
|
|
12
|
+
const text = str(source["text"]);
|
|
13
|
+
if (text !== undefined)
|
|
14
|
+
return { text };
|
|
15
|
+
const id = str(source["id"] ?? source["testID"]);
|
|
16
|
+
if (id !== undefined)
|
|
17
|
+
return { testID: id };
|
|
18
|
+
const label = str(source["label"]);
|
|
19
|
+
if (label !== undefined)
|
|
20
|
+
return { label };
|
|
21
|
+
const ref = str(source["ref"]);
|
|
22
|
+
return ref !== undefined ? { ref } : null;
|
|
23
|
+
}
|
|
24
|
+
/** The step's `if`, then its `optional`: every check that must hold for the step to run. */
|
|
25
|
+
export function conditionsOf(step) {
|
|
26
|
+
const found = [];
|
|
27
|
+
const given = step["if"];
|
|
28
|
+
if (typeof given === "object" && given !== null) {
|
|
29
|
+
const source = given;
|
|
30
|
+
const probe = probeOf(source);
|
|
31
|
+
if (probe !== null)
|
|
32
|
+
found.push({ kind: "if", probe, gone: source["gone"] === true, label: describeProbe(probe) });
|
|
33
|
+
}
|
|
34
|
+
if (step["optional"] === true) {
|
|
35
|
+
const target = step["target"];
|
|
36
|
+
// `target.index` is ignored: the check is "any match is there". A point target, or a step with no target (`back`, `wait`), has nothing to look for: it always counts as there.
|
|
37
|
+
const probe = typeof target === "object" && target !== null ? probeOf(target) : null;
|
|
38
|
+
if (probe !== null)
|
|
39
|
+
found.push({ kind: "optional", probe, gone: false, label: describeProbe(probe) });
|
|
40
|
+
}
|
|
41
|
+
return found;
|
|
42
|
+
}
|
|
43
|
+
/** The first check of a step, or null when it has none. */
|
|
44
|
+
export function conditionOf(step) {
|
|
45
|
+
return conditionsOf(step)[0] ?? null;
|
|
46
|
+
}
|
|
47
|
+
/** Whether a probe matches an element, as the app's `waitFor` matches (text contains, id equal, label equal; case-insensitive text and label). */
|
|
48
|
+
export function matchesProbe(element, probe) {
|
|
49
|
+
if ("ref" in probe)
|
|
50
|
+
return element.ref === probe.ref;
|
|
51
|
+
if ("testID" in probe)
|
|
52
|
+
return element.testID === probe.testID;
|
|
53
|
+
if ("label" in probe)
|
|
54
|
+
return (element.label ?? element.text ?? "").toLowerCase() === probe.label.toLowerCase();
|
|
55
|
+
return (element.text ?? "").toLowerCase().includes(probe.text.toLowerCase());
|
|
56
|
+
}
|
|
57
|
+
/** Whether the check holds on a list: the thing is in it (or, with `gone`, isn't). The whole list counts, off screen too (§9.1). */
|
|
58
|
+
export function holdsIn(elements, condition) {
|
|
59
|
+
return elements.some((element) => matchesProbe(element, condition.probe)) !== condition.gone;
|
|
60
|
+
}
|
|
61
|
+
/** The wire params of the one `waitFor` that makes the check (never a `ref`). */
|
|
62
|
+
export function waitParams(condition, glass) {
|
|
63
|
+
if ("ref" in condition.probe)
|
|
64
|
+
return null;
|
|
65
|
+
return { ...condition.probe, ...(condition.gone ? { gone: true } : {}), ...(glass ? { glass: true } : {}), once: true };
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=conditions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conditions.js","sourceRoot":"","sources":["../src/conditions.ts"],"names":[],"mappings":"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"}
|
package/dist/confirm.d.ts
CHANGED
|
@@ -15,15 +15,27 @@ export interface ConfirmRequest {
|
|
|
15
15
|
/** When the request lapses, ms since the epoch. */
|
|
16
16
|
expires: number;
|
|
17
17
|
}
|
|
18
|
+
/** Where a person's OK was given: the host's dialog, or the live view (AGENT-TOOLS 1.13 §11.3). */
|
|
19
|
+
export type OkVia = "chat" | "live view";
|
|
18
20
|
export interface ConfirmClosed {
|
|
19
21
|
type: "confirm_closed";
|
|
20
22
|
id: string;
|
|
21
23
|
allow: boolean;
|
|
24
|
+
/** Set when the host's dialog answered, so the live view can say so. Absent for an answer in the live view. */
|
|
25
|
+
by?: "chat";
|
|
22
26
|
}
|
|
23
27
|
export type ConfirmEvent = ConfirmRequest | ConfirmClosed;
|
|
28
|
+
/** How a request ended, for a call that waited on it. */
|
|
29
|
+
export interface Settled {
|
|
30
|
+
allow: boolean;
|
|
31
|
+
via: OkVia;
|
|
32
|
+
/** Nobody answered in time (or the server stopped). */
|
|
33
|
+
expired: boolean;
|
|
34
|
+
}
|
|
24
35
|
/** What a guarded call may do now. */
|
|
25
36
|
export type ConfirmCheck = {
|
|
26
37
|
granted: true;
|
|
38
|
+
via: OkVia;
|
|
27
39
|
}
|
|
28
40
|
/** A person said no a moment ago: nobody is asked again yet. */
|
|
29
41
|
| {
|
|
@@ -40,6 +52,8 @@ export declare class Confirmations {
|
|
|
40
52
|
private readonly pending;
|
|
41
53
|
/** key → when the allow lapses */
|
|
42
54
|
private readonly grants;
|
|
55
|
+
/** request id → calls waiting for its end */
|
|
56
|
+
private readonly waiters;
|
|
43
57
|
/** key → how the last ask ended without an allow */
|
|
44
58
|
private readonly endings;
|
|
45
59
|
/** key → when a person last declined it */
|
|
@@ -60,10 +74,15 @@ export declare class Confirmations {
|
|
|
60
74
|
caption: string;
|
|
61
75
|
word: string;
|
|
62
76
|
}): ConfirmCheck;
|
|
63
|
-
/**
|
|
64
|
-
|
|
77
|
+
/** Resolves when the request ends: an answer from either place, its expiry, or the server stopping. */
|
|
78
|
+
wait(id: string): Promise<Settled>;
|
|
79
|
+
/** The first answer wins; later ones and unknown ids are ignored. `via` is the host's dialog or a viewer. */
|
|
80
|
+
answer(id: string, allow: boolean, via?: OkVia): boolean;
|
|
81
|
+
/** The call that asked was cancelled: the request closes everywhere, and nobody is held to it (no "declined", no "expired"). */
|
|
82
|
+
withdraw(id: string): void;
|
|
65
83
|
/** Closes everything (the server stops). */
|
|
66
84
|
close(): void;
|
|
67
85
|
private lapse;
|
|
86
|
+
private settle;
|
|
68
87
|
private emit;
|
|
69
88
|
}
|
package/dist/confirm.js
CHANGED
|
@@ -12,6 +12,8 @@ export class Confirmations {
|
|
|
12
12
|
pending = new Map();
|
|
13
13
|
/** key → when the allow lapses */
|
|
14
14
|
grants = new Map();
|
|
15
|
+
/** request id → calls waiting for its end */
|
|
16
|
+
waiters = new Map();
|
|
15
17
|
/** key → how the last ask ended without an allow */
|
|
16
18
|
endings = new Map();
|
|
17
19
|
/** key → when a person last declined it */
|
|
@@ -39,8 +41,8 @@ export class Confirmations {
|
|
|
39
41
|
const grant = this.grants.get(key);
|
|
40
42
|
if (grant !== undefined) {
|
|
41
43
|
this.grants.delete(key);
|
|
42
|
-
if (grant > this.now())
|
|
43
|
-
return { granted: true };
|
|
44
|
+
if (grant.until > this.now())
|
|
45
|
+
return { granted: true, via: grant.via };
|
|
44
46
|
}
|
|
45
47
|
// A person said no a moment ago: asking again at once would only wear them down.
|
|
46
48
|
const declined = this.declinedAt.get(key);
|
|
@@ -70,8 +72,18 @@ export class Confirmations {
|
|
|
70
72
|
this.emit(request);
|
|
71
73
|
return { granted: false, request, suffix };
|
|
72
74
|
}
|
|
73
|
-
/**
|
|
74
|
-
|
|
75
|
+
/** Resolves when the request ends: an answer from either place, its expiry, or the server stopping. */
|
|
76
|
+
wait(id) {
|
|
77
|
+
return new Promise((resolve) => {
|
|
78
|
+
if (!this.pending.has(id)) {
|
|
79
|
+
resolve({ allow: false, via: "live view", expired: true });
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
this.waiters.set(id, [...(this.waiters.get(id) ?? []), resolve]);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/** The first answer wins; later ones and unknown ids are ignored. `via` is the host's dialog or a viewer. */
|
|
86
|
+
answer(id, allow, via = "live view") {
|
|
75
87
|
const p = this.pending.get(id);
|
|
76
88
|
if (p === undefined)
|
|
77
89
|
return false;
|
|
@@ -80,21 +92,35 @@ export class Confirmations {
|
|
|
80
92
|
if (p.request.expires <= this.now()) {
|
|
81
93
|
this.endings.set(p.key, "expired");
|
|
82
94
|
this.emit({ type: "confirm_closed", id, allow: false });
|
|
95
|
+
this.settle(id, { allow: false, via, expired: true });
|
|
83
96
|
return false;
|
|
84
97
|
}
|
|
85
98
|
if (allow)
|
|
86
|
-
this.grants.set(p.key, this.now() + this.ttlMs);
|
|
99
|
+
this.grants.set(p.key, { until: this.now() + this.ttlMs, via });
|
|
87
100
|
else {
|
|
88
101
|
this.endings.set(p.key, "declined");
|
|
89
102
|
this.declinedAt.set(p.key, this.now());
|
|
90
103
|
}
|
|
91
|
-
this.emit({ type: "confirm_closed", id, allow });
|
|
104
|
+
this.emit({ type: "confirm_closed", id, allow, ...(via === "chat" ? { by: "chat" } : {}) });
|
|
105
|
+
this.settle(id, { allow, via, expired: false });
|
|
92
106
|
return true;
|
|
93
107
|
}
|
|
108
|
+
/** The call that asked was cancelled: the request closes everywhere, and nobody is held to it (no "declined", no "expired"). */
|
|
109
|
+
withdraw(id) {
|
|
110
|
+
const p = this.pending.get(id);
|
|
111
|
+
if (p === undefined)
|
|
112
|
+
return;
|
|
113
|
+
clearTimeout(p.timer);
|
|
114
|
+
this.pending.delete(id);
|
|
115
|
+
this.emit({ type: "confirm_closed", id, allow: false });
|
|
116
|
+
this.settle(id, { allow: false, via: "live view", expired: true });
|
|
117
|
+
}
|
|
94
118
|
/** Closes everything (the server stops). */
|
|
95
119
|
close() {
|
|
96
120
|
for (const p of this.pending.values())
|
|
97
121
|
clearTimeout(p.timer);
|
|
122
|
+
for (const id of this.pending.keys())
|
|
123
|
+
this.settle(id, { allow: false, via: "live view", expired: true });
|
|
98
124
|
this.pending.clear();
|
|
99
125
|
this.grants.clear();
|
|
100
126
|
}
|
|
@@ -105,6 +131,13 @@ export class Confirmations {
|
|
|
105
131
|
this.pending.delete(id);
|
|
106
132
|
this.endings.set(p.key, "expired");
|
|
107
133
|
this.emit({ type: "confirm_closed", id, allow: false });
|
|
134
|
+
this.settle(id, { allow: false, via: "live view", expired: true });
|
|
135
|
+
}
|
|
136
|
+
settle(id, settled) {
|
|
137
|
+
const list = this.waiters.get(id);
|
|
138
|
+
this.waiters.delete(id);
|
|
139
|
+
for (const resolve of list ?? [])
|
|
140
|
+
resolve(settled);
|
|
108
141
|
}
|
|
109
142
|
emit(event) {
|
|
110
143
|
for (const listener of this.listeners) {
|
package/dist/confirm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confirm.js","sourceRoot":"","sources":["../src/confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;;;GAGG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AACtC,gGAAgG;AAChG,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"confirm.js","sourceRoot":"","sources":["../src/confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;;;GAGG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AACtC,gGAAgG;AAChG,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AA6CtC,MAAM,OAAO,aAAa;IAcL;IACA;IAdF,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;IACtD,kCAAkC;IACjB,MAAM,GAAG,IAAI,GAAG,EAAyC,CAAC;IAC3E,6CAA6C;IAC5B,OAAO,GAAG,IAAI,GAAG,EAA6C,CAAC;IAChF,oDAAoD;IACnC,OAAO,GAAG,IAAI,GAAG,EAAkC,CAAC;IACrE,2CAA2C;IAC1B,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;IAC9D,IAAI,GAAG,CAAC,CAAC;IAEjB,YACmB,MAAoB,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EACpC,QAAgB,cAAc;QAD9B,QAAG,GAAH,GAAG,CAAiC;QACpC,UAAK,GAAL,KAAK,CAAyB;IAC9C,CAAC;IAEJ,4DAA4D;IAC5D,OAAO,CAAC,QAAuC;QAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,0DAA0D;IAC1D,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAChG,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAW,EAAE,GAAoD;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;QACzE,CAAC;QACD,iFAAiF;QACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,eAAe;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC7G,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3G,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE;gBAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC7G,CAAC;QACD,MAAM,OAAO,GAAmB;YAC9B,IAAI,EAAE,SAAS;YACf,mEAAmE;YACnE,EAAE,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACvD,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK;SACjC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7C,CAAC;IAED,uGAAuG;IACvG,IAAI,CAAC,EAAU;QACb,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3D,OAAO;YACT,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6GAA6G;IAC7G,MAAM,CAAC,EAAU,EAAE,KAAc,EAAE,MAAa,WAAW;QACzD,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAClC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,KAAK;YAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;aACtE,CAAC;YACJ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACrG,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gIAAgI;IAChI,QAAQ,CAAC,EAAU;QACjB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO;QAC5B,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,4CAA4C;IAC5C,KAAK;QACH,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7D,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACzG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,EAAU;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO;QAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAEO,MAAM,CAAC,EAAU,EAAE,OAAgB;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,KAAK,MAAM,OAAO,IAAI,IAAI,IAAI,EAAE;YAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IAEO,IAAI,CAAC,KAAmB;QAC9B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YAAC,MAAM,CAAC;gBACP,oDAAoD;YACtD,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import { TaplineTools, toolShapes } from "./tools.js";
|
|
3
|
+
/**
|
|
4
|
+
* One table from a tool's name to its handler (AGENT-TOOLS 1.13 §18.10). The MCP server registers its tools from
|
|
5
|
+
* it and `POST /api/<tool>` runs them through it, so both ways in answer the same text and apply the same checks.
|
|
6
|
+
*/
|
|
7
|
+
export type ToolName = keyof typeof toolShapes;
|
|
8
|
+
export declare const TOOL_NAMES: readonly ToolName[];
|
|
9
|
+
type ToolAnswer = CallToolResult | Promise<CallToolResult>;
|
|
10
|
+
export interface ToolMeta {
|
|
11
|
+
title: string;
|
|
12
|
+
readOnly: boolean;
|
|
13
|
+
}
|
|
14
|
+
/** Titles and read-only hints for the MCP list, in the order the list has always had. */
|
|
15
|
+
export declare const TOOL_META: Record<ToolName, ToolMeta>;
|
|
16
|
+
export declare function isToolName(name: string): name is ToolName;
|
|
17
|
+
/**
|
|
18
|
+
* Runs a tool's handler for arguments a schema has already parsed (the MCP SDK does that). An argument the tool
|
|
19
|
+
* doesn't have is refused, and the refusal is numbered and logged like any call so the session report counts it.
|
|
20
|
+
*/
|
|
21
|
+
export declare function runTool(tools: TaplineTools, name: ToolName, args: Record<string, unknown>): ToolAnswer;
|
|
22
|
+
/**
|
|
23
|
+
* Runs one tool by name from raw JSON (the thin call). An unknown tool, an unknown argument or an argument of the
|
|
24
|
+
* wrong kind answers `Error bad_params:` the way the MCP server does.
|
|
25
|
+
*/
|
|
26
|
+
export declare function callTool(tools: TaplineTools, name: string, args: Record<string, unknown>): Promise<CallToolResult>;
|
|
27
|
+
export {};
|