sealmetrics 0.1.1 → 0.1.2
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/PROTOCOL.md +69 -3
- package/dist/agent/ndjson.d.ts +30 -2
- package/dist/agent/ndjson.d.ts.map +1 -1
- package/dist/agent/ndjson.js +6 -0
- package/dist/agent/ndjson.js.map +1 -1
- package/dist/cli.d.ts +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +18 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts +12 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +243 -40
- package/dist/commands/init.js.map +1 -1
- package/dist/embedded.d.ts +7 -0
- package/dist/embedded.d.ts.map +1 -1
- package/dist/embedded.js +7 -0
- package/dist/embedded.js.map +1 -1
- package/dist/exit-codes.d.ts +2 -0
- package/dist/exit-codes.d.ts.map +1 -1
- package/dist/exit-codes.js +2 -0
- package/dist/exit-codes.js.map +1 -1
- package/package.json +1 -1
package/PROTOCOL.md
CHANGED
|
@@ -5,6 +5,12 @@ object terminated by `\n` (never multiline). Debug logs go to **stderr** only.
|
|
|
5
5
|
An orchestrating agent parses the stream line by line and renders progress,
|
|
6
6
|
diffs and the claim URL to its user.
|
|
7
7
|
|
|
8
|
+
> **Report only what actually happened.** Treat the **exit code** as the source of
|
|
9
|
+
> truth: success is a terminal `result` event with exit `0`. On a non-zero exit or
|
|
10
|
+
> an `error` event, STOP and report the failure — never fabricate a success summary
|
|
11
|
+
> (account id, files, snippet) from what the CLI *would* have done. See
|
|
12
|
+
> "Error-handling contract" below.
|
|
13
|
+
|
|
8
14
|
## Envelope
|
|
9
15
|
|
|
10
16
|
```json
|
|
@@ -14,7 +20,7 @@ diffs and the claim URL to its user.
|
|
|
14
20
|
| Field | Meaning |
|
|
15
21
|
|---------|---------|
|
|
16
22
|
| `v` | Protocol version (currently `1`). Bumped on breaking changes so parsers can branch. |
|
|
17
|
-
| `type` | `lifecycle` \| `file_change` \| `needs_input` \| `result` \| `error` |
|
|
23
|
+
| `type` | `lifecycle` \| `file_change` \| `needs_input` \| `confirm` \| `result` \| `error` |
|
|
18
24
|
| `level` | `info` \| `warn` \| `error` |
|
|
19
25
|
| `data` | Type-specific payload (below). |
|
|
20
26
|
|
|
@@ -49,14 +55,53 @@ artefacts (`.env`, `seal.config.json`, `.sealmetrics/*`, MCP config, `.gitignore
|
|
|
49
55
|
`action` is `plan` (with `diff`) before the write and `applied` after.
|
|
50
56
|
|
|
51
57
|
### `needs_input`
|
|
52
|
-
|
|
53
|
-
|
|
58
|
+
The stream never blocks on stdin. There are **two** kinds, distinguished by the
|
|
59
|
+
payload — do not treat them the same:
|
|
60
|
+
|
|
61
|
+
1. **Auto-resolved** — carries `resolved`. The CLI already picked a safe value
|
|
62
|
+
(from a flag or a safe default) and reports it. The orchestrator just renders
|
|
63
|
+
it; nothing to ask.
|
|
64
|
+
2. **Human-required** — carries `"requires_human": true` and **no** `resolved`.
|
|
65
|
+
The orchestrator **MUST ask the human** and **MUST NOT** auto-resolve, guess,
|
|
66
|
+
or accept on their behalf. This overrides the `--agent` auto-approve. After
|
|
67
|
+
collecting the answers, re-invoke the CLI with the corresponding flags.
|
|
68
|
+
These intentionally carry **no `default`** — there is no value to reuse, so do
|
|
69
|
+
not pre-fill or assume one; ask. `optional: true` means the human may leave it
|
|
70
|
+
blank (e.g. domain), but must still be offered the choice.
|
|
71
|
+
|
|
72
|
+
> Never auto-accept the Terms of Service (`id: "accept_tos"`) or invent an email /
|
|
73
|
+
> site name — those are `requires_human`. Provisioning creates a real account.
|
|
54
74
|
|
|
55
75
|
```json
|
|
76
|
+
// auto-resolved
|
|
56
77
|
{ "v":1, "type":"needs_input", "level":"info",
|
|
57
78
|
"data": { "id":"…", "prompt":"…", "default":"…", "resolved":"…" } }
|
|
79
|
+
|
|
80
|
+
// human-required (ask the user; do not guess)
|
|
81
|
+
{ "v":1, "type":"needs_input", "level":"info",
|
|
82
|
+
"data": { "id":"accept_tos", "prompt":"Accept the Terms of Service (…)?",
|
|
83
|
+
"options":["yes","no"], "requires_human": true } }
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### `confirm`
|
|
87
|
+
Two-phase commit. In `--agent`, the first run does **not** provision: once all
|
|
88
|
+
required inputs are present it emits a `confirm` with the **exact payload** a real
|
|
89
|
+
run would send, then exits `6` (CONFIRM_REQUIRED) having created nothing and
|
|
90
|
+
written no files. The orchestrator **MUST** show these values to the human and,
|
|
91
|
+
**only on an explicit yes**, re-run the command in `data.reinvoke_with` (it adds
|
|
92
|
+
`--confirm`). Never add `--confirm` yourself or assume approval.
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
{ "v":1, "type":"confirm", "level":"info",
|
|
96
|
+
"data": { "action":"create_free_account", "email":"…", "site_name":"…",
|
|
97
|
+
"domain":"…|null", "accept_tos":true, "base_url":"…",
|
|
98
|
+
"message":"Nothing has been created yet. …",
|
|
99
|
+
"reinvoke_with":"sealmetrics init --agent … --confirm" } }
|
|
58
100
|
```
|
|
59
101
|
|
|
102
|
+
`-y` (non-interactive scripting, not `--agent`) treats the flags as consent and
|
|
103
|
+
skips the gate. Interactive mode shows a summary + a `[Y/n]` prompt instead.
|
|
104
|
+
|
|
60
105
|
### `result`
|
|
61
106
|
The final structured payload.
|
|
62
107
|
|
|
@@ -82,4 +127,25 @@ The final structured payload.
|
|
|
82
127
|
| `3` | `AUTH_REQUIRED` — provision key invalid/revoked (`error.data.command` carries the re-invocation) |
|
|
83
128
|
| `4` | Network / backend unavailable / rate-limited / kill-switch (503) |
|
|
84
129
|
| `5` | Verify-failed — snippet placed but pixel did not confirm within the timeout |
|
|
130
|
+
| `6` | Confirm-required — `--agent` previewed the payload (`confirm` event); re-run with `--confirm` to provision |
|
|
85
131
|
| `130`| Cancelled (SIGINT) |
|
|
132
|
+
|
|
133
|
+
## Error-handling contract (orchestrators MUST follow)
|
|
134
|
+
|
|
135
|
+
The CLI signals failure in **two** redundant ways. An orchestrator MUST honor both:
|
|
136
|
+
|
|
137
|
+
1. A **non-zero exit code** (table above), and
|
|
138
|
+
2. An **`error` event** on the stream (`"type":"error"`).
|
|
139
|
+
|
|
140
|
+
On either signal, the orchestrator **MUST STOP and report the failure to the user**
|
|
141
|
+
— quoting `error.data.message` (and `hint`/`command` if present). It **MUST NOT**:
|
|
142
|
+
|
|
143
|
+
- claim the account was created,
|
|
144
|
+
- describe files as written, or
|
|
145
|
+
- show an `account_id` / snippet / claim URL,
|
|
146
|
+
|
|
147
|
+
unless it actually saw a **`result` event AND exit code `0`**. Success is **only** a
|
|
148
|
+
terminal `result` with exit `0`; anything else is a failure. On failure no account
|
|
149
|
+
is created and **no files are written** (the CLI writes its artefacts only after a
|
|
150
|
+
successful provision). Never fabricate a success summary from expected behaviour —
|
|
151
|
+
report exactly what the stream and exit code say.
|
package/dist/agent/ndjson.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* (VAL-201), so an orchestrator can parse the stream line by line.
|
|
8
8
|
*/
|
|
9
9
|
export declare const PROTOCOL_VERSION = 1;
|
|
10
|
-
export type EventType = "lifecycle" | "file_change" | "needs_input" | "result" | "error";
|
|
10
|
+
export type EventType = "lifecycle" | "file_change" | "needs_input" | "confirm" | "result" | "error";
|
|
11
11
|
export type Level = "info" | "warn" | "error";
|
|
12
12
|
export interface Envelope {
|
|
13
13
|
v: number;
|
|
@@ -26,8 +26,15 @@ export interface NeedsInput {
|
|
|
26
26
|
prompt: string;
|
|
27
27
|
default?: string;
|
|
28
28
|
options?: string[];
|
|
29
|
-
/**
|
|
29
|
+
/** Auto-resolved value (RF-203). Present ONLY for inputs the agent may resolve
|
|
30
|
+
* on its own; its presence is what makes auto-approve legal for this input. */
|
|
30
31
|
resolved?: string;
|
|
32
|
+
/** When true, the orchestrator MUST ask the human and MUST NOT auto-resolve,
|
|
33
|
+
* guess, or accept on their behalf (e.g. Terms of Service, identity fields).
|
|
34
|
+
* Such inputs never carry `resolved`. */
|
|
35
|
+
requires_human?: boolean;
|
|
36
|
+
/** When true, the human may leave this blank (e.g. domain). Informational. */
|
|
37
|
+
optional?: boolean;
|
|
31
38
|
}
|
|
32
39
|
export interface ErrorData {
|
|
33
40
|
code: string;
|
|
@@ -35,6 +42,22 @@ export interface ErrorData {
|
|
|
35
42
|
hint?: string;
|
|
36
43
|
[key: string]: unknown;
|
|
37
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* The exact payload a real provision WOULD send, surfaced before anything is
|
|
47
|
+
* created (two-phase commit). The orchestrator MUST show this to the human and,
|
|
48
|
+
* only on an explicit yes, re-invoke with `--confirm`. Nothing is created and no
|
|
49
|
+
* files are written until then.
|
|
50
|
+
*/
|
|
51
|
+
export interface ConfirmData {
|
|
52
|
+
action: string;
|
|
53
|
+
email: string;
|
|
54
|
+
site_name: string;
|
|
55
|
+
domain: string | null;
|
|
56
|
+
accept_tos: boolean;
|
|
57
|
+
base_url: string;
|
|
58
|
+
message: string;
|
|
59
|
+
reinvoke_with: string;
|
|
60
|
+
}
|
|
38
61
|
/**
|
|
39
62
|
* Reporter contract shared by the agent (NDJSON) and human renderers so the
|
|
40
63
|
* orchestrator logic in `init.ts` never branches on output mode.
|
|
@@ -44,6 +67,9 @@ export interface Reporter {
|
|
|
44
67
|
lifecycle(stage: string, data?: Record<string, unknown>, level?: Level): void;
|
|
45
68
|
fileChange(change: FileChange): void;
|
|
46
69
|
needsInput(input: NeedsInput): void;
|
|
70
|
+
/** Preview of what a real provision would send — emitted before creating
|
|
71
|
+
* anything, so the human can approve it (two-phase commit). */
|
|
72
|
+
confirm(data: ConfirmData): void;
|
|
47
73
|
result(data: Record<string, unknown>): void;
|
|
48
74
|
error(data: ErrorData): void;
|
|
49
75
|
/** Human-facing info text. Suppressed in agent mode (kept off the NDJSON stream). */
|
|
@@ -59,6 +85,7 @@ export declare class AgentReporter implements Reporter {
|
|
|
59
85
|
lifecycle(stage: string, data?: Record<string, unknown>, level?: Level): void;
|
|
60
86
|
fileChange(change: FileChange): void;
|
|
61
87
|
needsInput(input: NeedsInput): void;
|
|
88
|
+
confirm(data: ConfirmData): void;
|
|
62
89
|
result(data: Record<string, unknown>): void;
|
|
63
90
|
error(data: ErrorData): void;
|
|
64
91
|
info(_message: string): void;
|
|
@@ -74,6 +101,7 @@ export declare class HumanReporter implements Reporter {
|
|
|
74
101
|
lifecycle(stage: string, data?: Record<string, unknown>): void;
|
|
75
102
|
fileChange(change: FileChange): void;
|
|
76
103
|
needsInput(input: NeedsInput): void;
|
|
104
|
+
confirm(_data: ConfirmData): void;
|
|
77
105
|
result(data: Record<string, unknown>): void;
|
|
78
106
|
error(data: ErrorData): void;
|
|
79
107
|
info(message: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ndjson.d.ts","sourceRoot":"","sources":["../../src/agent/ndjson.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,MAAM,MAAM,SAAS,GACjB,WAAW,GACX,aAAa,GACb,aAAa,GACb,QAAQ,GACR,OAAO,CAAC;AAEZ,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE9C,MAAM,WAAW,QAAQ;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB
|
|
1
|
+
{"version":3,"file":"ndjson.d.ts","sourceRoot":"","sources":["../../src/agent/ndjson.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/ndjson.js
CHANGED
|
@@ -28,6 +28,9 @@ export class AgentReporter {
|
|
|
28
28
|
needsInput(input) {
|
|
29
29
|
this.emit("needs_input", "info", { ...input });
|
|
30
30
|
}
|
|
31
|
+
confirm(data) {
|
|
32
|
+
this.emit("confirm", "info", { ...data });
|
|
33
|
+
}
|
|
31
34
|
result(data) {
|
|
32
35
|
this.emit("result", "info", data);
|
|
33
36
|
}
|
|
@@ -75,6 +78,9 @@ export class HumanReporter {
|
|
|
75
78
|
write(` ${this.c(dim, input.prompt)} ${input.resolved}`);
|
|
76
79
|
}
|
|
77
80
|
}
|
|
81
|
+
confirm(_data) {
|
|
82
|
+
// Human mode confirms via an interactive prompt (see init.ts), not this event.
|
|
83
|
+
}
|
|
78
84
|
result(data) {
|
|
79
85
|
write("");
|
|
80
86
|
write(this.c(bold, "Done."));
|
package/dist/agent/ndjson.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ndjson.js","sourceRoot":"","sources":["../../src/agent/ndjson.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ndjson.js","sourceRoot":"","sources":["../../src/agent/ndjson.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
CHANGED
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOnD,CAAC;AA4CF,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAkBD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAkGrD;AAMD,wBAAgB,QAAQ,IAAI,MAAM,CAEjC"}
|
package/dist/cli.js
CHANGED
|
@@ -7,7 +7,10 @@ import { CliError, ExitCode } from "./exit-codes.js";
|
|
|
7
7
|
export const REGION_BASE_URLS = {
|
|
8
8
|
prod: "https://my.sealmetrics.com/api/v1",
|
|
9
9
|
pre: "https://pre.sealmetrics.com/api/v1",
|
|
10
|
-
|
|
10
|
+
// Local dev exposes the API replicas on host ports 8001-8004 (docker-compose
|
|
11
|
+
// maps API_PORT_1=8001→8000); the dashboard talks to :8001 too. Nothing listens
|
|
12
|
+
// on host :8000, so the CLI's `--region local` must target :8001.
|
|
13
|
+
local: "http://localhost:8001/api/v1",
|
|
11
14
|
};
|
|
12
15
|
const DEFAULT_BASE_URL = REGION_BASE_URLS.prod;
|
|
13
16
|
const HELP = `sealmetrics init — provision a free analytics account and wire up tracking
|
|
@@ -18,8 +21,8 @@ Usage:
|
|
|
18
21
|
Provisioning:
|
|
19
22
|
--email <email> Account owner email (required to provision)
|
|
20
23
|
--name <name> Owner name
|
|
21
|
-
--site-name <name> Site display name
|
|
22
|
-
--domain <domain> Site domain (e.g. myshop.com)
|
|
24
|
+
--site-name <name> Site display name (required to provision; not guessed)
|
|
25
|
+
--domain <domain> Site domain (e.g. myshop.com) — optional
|
|
23
26
|
--accept-tos Accept the Terms of Service (required to provision)
|
|
24
27
|
--install-source <src> Attribution channel (default: npx)
|
|
25
28
|
--api-key <key> Reuse an existing read-only key; skips provisioning
|
|
@@ -30,8 +33,14 @@ Targeting:
|
|
|
30
33
|
--base-url <url> Override the API base URL (wins over --region)
|
|
31
34
|
--url <url> Site URL used for verify auto-ping
|
|
32
35
|
|
|
36
|
+
Env: SEALMETRICS_BASE_URL overrides the default target (below --base-url/--region);
|
|
37
|
+
SEALMETRICS_PROVISION_KEY overrides the embedded publishable provision key.
|
|
38
|
+
|
|
33
39
|
Behaviour:
|
|
34
40
|
--agent Machine mode: NDJSON on stdout, auto-approve, no prompts
|
|
41
|
+
--confirm Confirm provisioning. In --agent the first run only
|
|
42
|
+
PREVIEWS (emits a confirm event + exit 6, creates
|
|
43
|
+
nothing); re-run with --confirm to actually provision
|
|
35
44
|
-y, --yes Non-interactive (use flags/defaults, no prompts)
|
|
36
45
|
--resume Resume from the last checkpoint (no re-provision)
|
|
37
46
|
--dry-run Detect only — no provisioning, no writes
|
|
@@ -50,6 +59,7 @@ const BOOLEAN_FLAGS = new Set([
|
|
|
50
59
|
"-y",
|
|
51
60
|
"--resume",
|
|
52
61
|
"--dry-run",
|
|
62
|
+
"--confirm",
|
|
53
63
|
"--no-inject",
|
|
54
64
|
"--no-mcp",
|
|
55
65
|
"-h",
|
|
@@ -105,8 +115,12 @@ export function parseArgs(argv) {
|
|
|
105
115
|
hint: `Valid regions: ${Object.keys(REGION_BASE_URLS).join(", ")}`,
|
|
106
116
|
});
|
|
107
117
|
}
|
|
118
|
+
// Precedence: --base-url > --region > SEALMETRICS_BASE_URL env > prod default.
|
|
119
|
+
// The env var (same name the mcp-server reads) lets a dev export the target
|
|
120
|
+
// once instead of passing --region on every invocation (local testing).
|
|
108
121
|
const baseUrl = strOf(raw["--base-url"]) ??
|
|
109
122
|
(region ? REGION_BASE_URLS[region] : undefined) ??
|
|
123
|
+
(process.env.SEALMETRICS_BASE_URL || undefined) ??
|
|
110
124
|
DEFAULT_BASE_URL;
|
|
111
125
|
let verifyTimeout = 75;
|
|
112
126
|
const vt = strOf(raw["--verify-timeout"]);
|
|
@@ -137,6 +151,7 @@ export function parseArgs(argv) {
|
|
|
137
151
|
yes: raw["--yes"] === true || raw["-y"] === true,
|
|
138
152
|
resume: raw["--resume"] === true,
|
|
139
153
|
dryRun: raw["--dry-run"] === true,
|
|
154
|
+
confirm: raw["--confirm"] === true,
|
|
140
155
|
apiKey: strOf(raw["--api-key"]),
|
|
141
156
|
provisionKey: strOf(raw["--provision-key"]),
|
|
142
157
|
noInject: raw["--no-inject"] === true,
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AA0BrD,iFAAiF;AACjF,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,IAAI,EAAE,mCAAmC;IACzC,GAAG,EAAE,oCAAoC;IACzC,6EAA6E;IAC7E,gFAAgF;IAChF,kEAAkE;IAClE,KAAK,EAAE,8BAA8B;CACtC,CAAC;AAEF,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC;AAE/C,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCZ,CAAC;AAQF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,cAAc;IACd,SAAS;IACT,OAAO;IACP,IAAI;IACJ,UAAU;IACV,WAAW;IACX,WAAW;IACX,aAAa;IACb,UAAU;IACV,IAAI;IACJ,QAAQ;IACR,IAAI;IACJ,WAAW;CACZ,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM;QAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAErC,gEAAgE;IAChE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1E,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEhF,MAAM,GAAG,GAAqC,EAAE,CAAC;IAEjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,wBAAwB,GAAG,EAAE,EAAE;gBAC/E,IAAI,EAAE,0CAA0C;aACjD,CAAC,CAAC;QACL,CAAC;QACD,uBAAuB;QACvB,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7B,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAChB,SAAS;QACX,CAAC;QACD,sCAAsC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,qBAAqB,GAAG,EAAE,EAAE;gBAC5E,IAAI,EAAE,0CAA0C;aACjD,CAAC,CAAC;QACL,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAChB,CAAC,EAAE,CAAC;IACN,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACtC,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,IAAI,gBAAgB,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,mBAAmB,MAAM,EAAE,EAAE;YAC7E,IAAI,EAAE,kBAAkB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACnE,CAAC,CAAC;IACL,CAAC;IAED,+EAA+E;IAC/E,4EAA4E;IAC5E,wEAAwE;IACxE,MAAM,OAAO,GACX,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACxB,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/C,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,SAAS,CAAC;QAC/C,gBAAgB,CAAC;IAEnB,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC1C,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,6BAA6B,EAAE,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,aAAa,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACtE,IAAI,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,qBAAqB,MAAM,EAAE,EAAE;YAC/E,IAAI,EAAE,kBAAkB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACnD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAgB;QAC3B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5B,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1B,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACnC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9B,SAAS,EAAE,GAAG,CAAC,cAAc,CAAC,KAAK,IAAI;QACvC,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,KAAK;QACtD,OAAO;QACP,MAAM;QACN,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI;QAC9B,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI;QAChD,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI;QAChC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI;QACjC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI;QAClC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/B,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC3C,QAAQ,EAAE,GAAG,CAAC,aAAa,CAAC,KAAK,IAAI;QACrC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxB,aAAa;QACb,MAAM;QACN,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI;QAC/B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;KACnB,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,KAAK,CAAC,CAA+B;IAC5C,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
import { type ExitCodeValue } from "../exit-codes.js";
|
|
2
2
|
import type { InitOptions } from "../cli.js";
|
|
3
3
|
import type { Reporter } from "../agent/ndjson.js";
|
|
4
|
+
/** A local/PRE target only seeds the fallback provision key, not the prod npx key. */
|
|
5
|
+
export declare function isNonProdTarget(baseUrl: string): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Resolve the provision key: explicit flag > `SEALMETRICS_PROVISION_KEY` env >
|
|
8
|
+
* auto-fallback for local/PRE targets > embedded prod key. The auto-fallback lets
|
|
9
|
+
* dev testing work without exporting the env var; it never applies to prod.
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveProvisionKey(options: InitOptions): string;
|
|
4
12
|
export declare function runInit(options: InitOptions, reporter: Reporter): Promise<ExitCodeValue>;
|
|
13
|
+
/** Suggested owner email from the local git config (read-only, best-effort). */
|
|
14
|
+
export declare function suggestEmail(cwd: string): string | undefined;
|
|
15
|
+
/** Suggested site name: package.json name (sans npm scope) or the directory name. */
|
|
16
|
+
export declare function suggestSiteName(cwd: string): string | undefined;
|
|
5
17
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAUA,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAUA,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AA8BnD,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAMhE;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CA6T9F;AAqJD,gFAAgF;AAChF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAY5D;AAED,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAa/D"}
|
package/dist/commands/init.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
import { homedir } from "node:os";
|
|
11
11
|
import { CliError, ExitCode } from "../exit-codes.js";
|
|
12
12
|
import { ApiClient, EmailExistsError } from "../api/client.js";
|
|
13
|
-
import { EMBEDDED_PROVISION_KEY } from "../embedded.js";
|
|
13
|
+
import { EMBEDDED_PROVISION_KEY, FALLBACK_PROVISION_KEY } from "../embedded.js";
|
|
14
14
|
import { detect } from "../detect/index.js";
|
|
15
15
|
import { PLATFORM_PLUGIN_HINT } from "../detect/cms.js";
|
|
16
16
|
import { isSnippetPresent, buildInstallMarkdown } from "../handoff/install.js";
|
|
@@ -22,9 +22,32 @@ import { configureMcp } from "../mcp/configure.js";
|
|
|
22
22
|
import { writeInstrumentationGuide } from "../instrument/guide.js";
|
|
23
23
|
import { pollPixelStatus, autoPing } from "../verify/pixel.js";
|
|
24
24
|
import { ReadlinePrompter } from "../prompts.js";
|
|
25
|
-
import { join, relative } from "node:path";
|
|
25
|
+
import { basename, join, relative } from "node:path";
|
|
26
|
+
import { readFileSync } from "node:fs";
|
|
27
|
+
import { execFileSync } from "node:child_process";
|
|
26
28
|
import { getVersion } from "../version.js";
|
|
27
29
|
const PLACEHOLDER_ACCOUNT_ID = "<account_id>";
|
|
30
|
+
/** Terms of Service URL — shown so the human can read them before accepting. */
|
|
31
|
+
const TOS_URL = "https://sealmetrics.com/terms";
|
|
32
|
+
/** A local/PRE target only seeds the fallback provision key, not the prod npx key. */
|
|
33
|
+
export function isNonProdTarget(baseUrl) {
|
|
34
|
+
return /\/\/(localhost|127\.0\.0\.1|pre\.sealmetrics\.com)/.test(baseUrl);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Resolve the provision key: explicit flag > `SEALMETRICS_PROVISION_KEY` env >
|
|
38
|
+
* auto-fallback for local/PRE targets > embedded prod key. The auto-fallback lets
|
|
39
|
+
* dev testing work without exporting the env var; it never applies to prod.
|
|
40
|
+
*/
|
|
41
|
+
export function resolveProvisionKey(options) {
|
|
42
|
+
if (options.provisionKey)
|
|
43
|
+
return options.provisionKey;
|
|
44
|
+
const env = process.env.SEALMETRICS_PROVISION_KEY;
|
|
45
|
+
if (env)
|
|
46
|
+
return env;
|
|
47
|
+
if (isNonProdTarget(options.baseUrl))
|
|
48
|
+
return FALLBACK_PROVISION_KEY;
|
|
49
|
+
return EMBEDDED_PROVISION_KEY;
|
|
50
|
+
}
|
|
28
51
|
export async function runInit(options, reporter) {
|
|
29
52
|
const interactive = !options.agent && !options.yes;
|
|
30
53
|
const cwd = options.cwd;
|
|
@@ -34,6 +57,19 @@ export async function runInit(options, reporter) {
|
|
|
34
57
|
emitDetected(reporter, detection);
|
|
35
58
|
// ---- dry-run: detect only, no provision, no writes (RF-104) ----
|
|
36
59
|
if (options.dryRun) {
|
|
60
|
+
// Surface the inputs a real run will need (email/site/ToS/domain), so the
|
|
61
|
+
// orchestrator can ask the human for everything in ONE round from the dry-run
|
|
62
|
+
// "plan" — instead of discovering them across runs. No suggestions here on
|
|
63
|
+
// purpose (see reportMissingProvisionInputs). Skipped when --api-key is set
|
|
64
|
+
// (that path doesn't provision).
|
|
65
|
+
if (!options.apiKey) {
|
|
66
|
+
reportMissingProvisionInputs(reporter, {
|
|
67
|
+
email: options.email,
|
|
68
|
+
siteName: options.siteName,
|
|
69
|
+
domain: options.domain,
|
|
70
|
+
acceptTos: options.acceptTos,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
37
73
|
reporter.result({
|
|
38
74
|
dry_run: true,
|
|
39
75
|
framework: detection.framework,
|
|
@@ -42,6 +78,9 @@ export async function runInit(options, reporter) {
|
|
|
42
78
|
placement_hint: detection.placementHint,
|
|
43
79
|
account_id: PLACEHOLDER_ACCOUNT_ID,
|
|
44
80
|
would_provision: !options.apiKey,
|
|
81
|
+
// Surfaced even on dry-run so the orchestrator can show the ToS link when it
|
|
82
|
+
// asks the human to accept (provisioning requires --accept-tos).
|
|
83
|
+
terms_url: TOS_URL,
|
|
45
84
|
});
|
|
46
85
|
return ExitCode.OK;
|
|
47
86
|
}
|
|
@@ -69,7 +108,7 @@ export async function runInit(options, reporter) {
|
|
|
69
108
|
confirm,
|
|
70
109
|
});
|
|
71
110
|
// Register both secrets up front so neither can leak into a diff (VAL-404).
|
|
72
|
-
writer.addSecret(options
|
|
111
|
+
writer.addSecret(resolveProvisionKey(options));
|
|
73
112
|
if (options.apiKey)
|
|
74
113
|
writer.addSecret(options.apiKey);
|
|
75
114
|
const checkpoint = makeCheckpoint(cwd, options);
|
|
@@ -105,11 +144,13 @@ export async function runInit(options, reporter) {
|
|
|
105
144
|
reporter.lifecycle("reused", { account_id: accountId });
|
|
106
145
|
}
|
|
107
146
|
else {
|
|
108
|
-
|
|
109
|
-
if (
|
|
110
|
-
//
|
|
111
|
-
|
|
147
|
+
const result = await doProvision(options, reporter, interactive, prompter);
|
|
148
|
+
if ("stop" in result) {
|
|
149
|
+
// Early stop without provisioning: email-exists/declined (exit 0) or the
|
|
150
|
+
// two-phase confirm gate (exit 6). The event was already reported.
|
|
151
|
+
return result.stop;
|
|
112
152
|
}
|
|
153
|
+
provision = result;
|
|
113
154
|
accountId = provision.account_id;
|
|
114
155
|
apiKey = provision.api_key;
|
|
115
156
|
writer.addSecret(apiKey); // VAL-404: never echo the key into a diff.
|
|
@@ -236,7 +277,7 @@ export async function runInit(options, reporter) {
|
|
|
236
277
|
// ---- verify-pixel (Bloque 6) ----
|
|
237
278
|
let verified = null;
|
|
238
279
|
if (options.verifyTimeout > 0) {
|
|
239
|
-
const client = new ApiClient(options.baseUrl, options
|
|
280
|
+
const client = new ApiClient(options.baseUrl, resolveProvisionKey(options));
|
|
240
281
|
const localPresent = detection.provisionOnly || detection.platform
|
|
241
282
|
? false
|
|
242
283
|
: alreadyInstalled || isSnippetPresent(cwd, accountId);
|
|
@@ -254,17 +295,21 @@ export async function runInit(options, reporter) {
|
|
|
254
295
|
timeoutSec: options.verifyTimeout,
|
|
255
296
|
reporter,
|
|
256
297
|
});
|
|
257
|
-
verified = res.verified;
|
|
298
|
+
verified = res.verified; // true (confirmed) | false (placed but timed out)
|
|
258
299
|
}
|
|
259
300
|
else {
|
|
260
|
-
|
|
301
|
+
// Nothing to verify yet (provision-only / snippet not placed, no --url).
|
|
302
|
+
// Provisioning SUCCEEDED — this is "pending", NOT a verify failure: leave
|
|
303
|
+
// verified=null so it stays exit 0 (only a real polled timeout → exit 5).
|
|
304
|
+
verified = null;
|
|
261
305
|
}
|
|
262
306
|
if (verified === true) {
|
|
263
307
|
reporter.lifecycle("verified:pixel");
|
|
264
308
|
checkpoint.last_step = "verified_pixel";
|
|
265
309
|
}
|
|
266
|
-
else
|
|
267
|
-
|
|
310
|
+
else {
|
|
311
|
+
// false = polled but no hit in time; null = nothing placed to verify yet.
|
|
312
|
+
reporter.lifecycle("verify:pending", verified === null ? { reason: "snippet_not_placed" } : {});
|
|
268
313
|
nextSteps.push("Deploy/reload your site and visit a page, then re-run `npx sealmetrics init --resume`.");
|
|
269
314
|
}
|
|
270
315
|
}
|
|
@@ -281,8 +326,10 @@ export async function runInit(options, reporter) {
|
|
|
281
326
|
verified,
|
|
282
327
|
next_steps: provision?.next_steps?.length ? provision.next_steps : nextSteps,
|
|
283
328
|
});
|
|
284
|
-
// RF-602: snippet placed but pixel
|
|
285
|
-
// mode (verify-failed);
|
|
329
|
+
// RF-602: snippet WAS placed but the pixel didn't confirm in time → exit 5 in
|
|
330
|
+
// agent mode (verify-failed); soft warning interactive. Only `false` (a real
|
|
331
|
+
// polled timeout) counts — `null` (nothing to verify yet) stays exit 0, since
|
|
332
|
+
// provisioning itself succeeded.
|
|
286
333
|
if (verified === false && options.verifyTimeout > 0) {
|
|
287
334
|
if (reporter.agent)
|
|
288
335
|
return ExitCode.VERIFY_FAILED;
|
|
@@ -300,41 +347,89 @@ async function doProvision(options, reporter, interactive, prompter) {
|
|
|
300
347
|
let siteName = options.siteName;
|
|
301
348
|
let domain = options.domain;
|
|
302
349
|
let acceptTos = options.acceptTos;
|
|
350
|
+
// Best-effort suggestions so a missing field comes pre-filled with a sensible
|
|
351
|
+
// default (the human/orchestrator confirms or overrides) — the email from the
|
|
352
|
+
// local git config, the site name from package.json/the directory. Computed
|
|
353
|
+
// only when the field is absent (skips the git/fs probes when flags provide it).
|
|
354
|
+
const suggestedEmail = email ? undefined : suggestEmail(options.cwd);
|
|
355
|
+
const suggestedSiteName = siteName ? undefined : suggestSiteName(options.cwd);
|
|
303
356
|
if (interactive && prompter) {
|
|
357
|
+
// Ask explicitly — never guess from the email domain (the user's complaint).
|
|
358
|
+
// email + account name are required; domain is asked but optional.
|
|
304
359
|
if (!email)
|
|
305
|
-
email = await prompter
|
|
306
|
-
if (!siteName)
|
|
307
|
-
siteName = await prompter.ask("Site name", domain ?? "My site");
|
|
360
|
+
email = await askRequired(prompter, "Email", suggestedEmail);
|
|
308
361
|
if (!domain)
|
|
309
362
|
domain = await prompter.ask("Domain (optional)", "");
|
|
310
|
-
if (!
|
|
363
|
+
if (!siteName) {
|
|
364
|
+
// "Site name" (user-facing wording per CLAUDE.md), matches --site-name / the
|
|
365
|
+
// site_name needs_input id.
|
|
366
|
+
siteName = await askRequired(prompter, "Site name", suggestedSiteName ?? (domain || undefined));
|
|
367
|
+
}
|
|
368
|
+
if (!acceptTos) {
|
|
369
|
+
reporter.info(`Read the Terms of Service: ${TOS_URL}`);
|
|
311
370
|
acceptTos = await prompter.confirm("Accept the Terms of Service?", false);
|
|
371
|
+
}
|
|
312
372
|
}
|
|
313
|
-
// RF-103 / TEST-402:
|
|
314
|
-
//
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
373
|
+
// RF-103 / RF-203 / TEST-402: validate the required fields. Interactive mode
|
|
374
|
+
// already prompted them (email + site name loop until non-empty), so the only
|
|
375
|
+
// failure left there is a declined ToS. In --agent/-y the CLI can't prompt on
|
|
376
|
+
// stdin: instead of guessing (no site name from the email domain) it tells the
|
|
377
|
+
// orchestrator WHICH fields to collect from the human — a `needs_input` event
|
|
378
|
+
// WITHOUT a `resolved` value means "ask the human" — then exits 2 so the agent
|
|
379
|
+
// asks and re-invokes with the flags. The ToS is NEVER auto-accepted.
|
|
380
|
+
if (!email || !siteName || !acceptTos) {
|
|
381
|
+
// Interactive already prompted email + site (loop until non-empty), so the
|
|
382
|
+
// only way to land here is a declined ToS.
|
|
383
|
+
if (interactive) {
|
|
384
|
+
throw new CliError(ExitCode.ARGS, "invalid_args", "You must accept the Terms of Service to provision.", {
|
|
385
|
+
hint: `Read them at ${TOS_URL} and accept to continue.`,
|
|
386
|
+
});
|
|
387
|
+
}
|
|
388
|
+
// --agent/-y: the CLI can't prompt on stdin — it tells the orchestrator which
|
|
389
|
+
// fields to collect from the human (needs_input, no `resolved`/`default`) and
|
|
390
|
+
// exits 2 so the agent asks and re-invokes with the flags.
|
|
391
|
+
const missing = reportMissingProvisionInputs(reporter, { email, siteName, domain, acceptTos });
|
|
392
|
+
throw new CliError(ExitCode.ARGS, "invalid_args", `Missing required input: ${missing.join(", ")}.`, {
|
|
393
|
+
hint: `Ask the user for these, then re-run with: ${missing.join(" ")} [--domain <domain>]`,
|
|
318
394
|
});
|
|
319
395
|
}
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
396
|
+
// Two-phase commit (confirm before sending). Show EXACTLY what will be created
|
|
397
|
+
// and require explicit approval before anything is provisioned or written:
|
|
398
|
+
// - interactive → a summary + [Y/n] prompt;
|
|
399
|
+
// - --agent → emit a `confirm` event with the full payload and exit 6; nothing
|
|
400
|
+
// is created — the orchestrator MUST show it and re-run with --confirm;
|
|
401
|
+
// - -y (non-interactive scripting, not --agent) → the flags are the consent.
|
|
402
|
+
if (!options.confirm) {
|
|
403
|
+
if (interactive && prompter) {
|
|
404
|
+
reporter.info("\nAbout to create a SealMetrics account with:");
|
|
405
|
+
reporter.info(` Email: ${email}`);
|
|
406
|
+
reporter.info(` Site name: ${siteName}`);
|
|
407
|
+
reporter.info(` Domain: ${domain || "(none)"}`);
|
|
408
|
+
const ok = await prompter.confirm("Create the account with these details?", true);
|
|
409
|
+
if (!ok) {
|
|
410
|
+
reporter.info("Aborted — no account created.");
|
|
411
|
+
return { stop: ExitCode.OK };
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
else if (options.agent) {
|
|
415
|
+
reporter.confirm({
|
|
416
|
+
action: "create_free_account",
|
|
417
|
+
email,
|
|
418
|
+
site_name: siteName,
|
|
419
|
+
domain: domain || null,
|
|
420
|
+
accept_tos: acceptTos,
|
|
421
|
+
base_url: options.baseUrl,
|
|
422
|
+
message: "Nothing has been created yet. Show these exact values to the user and, " +
|
|
423
|
+
"only on an explicit yes, re-run with --confirm. Do not assume approval.",
|
|
424
|
+
reinvoke_with: buildConfirmCommand(options, email, siteName, domain),
|
|
425
|
+
});
|
|
426
|
+
return { stop: ExitCode.CONFIRM_REQUIRED };
|
|
427
|
+
}
|
|
428
|
+
// -y without --agent: flags are the consent → proceed.
|
|
324
429
|
}
|
|
325
|
-
const provisionKey = options
|
|
430
|
+
const provisionKey = resolveProvisionKey(options);
|
|
326
431
|
const client = new ApiClient(options.baseUrl, provisionKey);
|
|
327
|
-
const finalSiteName = siteName
|
|
328
|
-
// RF-203: in --agent/-y a missing optional field is auto-resolved (never blocks
|
|
329
|
-
// on stdin); report the prompt + its resolution so the orchestrator can render it.
|
|
330
|
-
if (!interactive && !siteName) {
|
|
331
|
-
reporter.needsInput({
|
|
332
|
-
id: "site_name",
|
|
333
|
-
prompt: "Site name",
|
|
334
|
-
default: finalSiteName,
|
|
335
|
-
resolved: finalSiteName,
|
|
336
|
-
});
|
|
337
|
-
}
|
|
432
|
+
const finalSiteName = siteName;
|
|
338
433
|
try {
|
|
339
434
|
const input = {
|
|
340
435
|
siteName: finalSiteName,
|
|
@@ -364,11 +459,119 @@ async function doProvision(options, reporter, interactive, prompter) {
|
|
|
364
459
|
"If you already have an account, log in or reset your password to add a site.",
|
|
365
460
|
],
|
|
366
461
|
});
|
|
367
|
-
return
|
|
462
|
+
return { stop: ExitCode.OK };
|
|
368
463
|
}
|
|
369
464
|
throw e;
|
|
370
465
|
}
|
|
371
466
|
}
|
|
467
|
+
/** Re-invocation command for the confirm gate: same call + the resolved values + --confirm. */
|
|
468
|
+
function buildConfirmCommand(options, email, siteName, domain) {
|
|
469
|
+
const parts = ["sealmetrics init --agent", `--email ${email}`, `--site-name ${JSON.stringify(siteName)}`];
|
|
470
|
+
if (domain)
|
|
471
|
+
parts.push(`--domain ${domain}`);
|
|
472
|
+
parts.push("--accept-tos", "--confirm");
|
|
473
|
+
return parts.join(" ");
|
|
474
|
+
}
|
|
475
|
+
/** Suggested owner email from the local git config (read-only, best-effort). */
|
|
476
|
+
export function suggestEmail(cwd) {
|
|
477
|
+
try {
|
|
478
|
+
const email = execFileSync("git", ["config", "user.email"], {
|
|
479
|
+
cwd,
|
|
480
|
+
encoding: "utf8",
|
|
481
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
482
|
+
timeout: 2000,
|
|
483
|
+
}).trim();
|
|
484
|
+
return email || undefined;
|
|
485
|
+
}
|
|
486
|
+
catch {
|
|
487
|
+
return undefined; // no git / no email configured
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
/** Suggested site name: package.json name (sans npm scope) or the directory name. */
|
|
491
|
+
export function suggestSiteName(cwd) {
|
|
492
|
+
try {
|
|
493
|
+
const pkg = JSON.parse(readFileSync(join(cwd, "package.json"), "utf8"));
|
|
494
|
+
if (typeof pkg.name === "string" && pkg.name.trim()) {
|
|
495
|
+
const stripped = pkg.name.replace(/^@[^/]+\//, "").trim();
|
|
496
|
+
// Ignore a malformed bare scope (e.g. "@scope" with no slash) → fall back.
|
|
497
|
+
if (stripped && !stripped.startsWith("@"))
|
|
498
|
+
return stripped;
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
catch {
|
|
502
|
+
/* no package.json / unreadable / no name — fall back to the dir name */
|
|
503
|
+
}
|
|
504
|
+
const base = basename(cwd);
|
|
505
|
+
return base && base !== "." && base !== "/" ? base : undefined;
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* Emit a `needs_input` (no `resolved` = "ask the human") for each provisioning
|
|
509
|
+
* field the flags didn't supply. Used by BOTH `--dry-run` (so the orchestrator
|
|
510
|
+
* learns every input up front and can ask for them in one round) and the real
|
|
511
|
+
* provision when required fields are missing. Returns the missing REQUIRED flags
|
|
512
|
+
* (domain is optional → excluded).
|
|
513
|
+
*
|
|
514
|
+
* NOTE: deliberately emits **no `default`/suggestion** for the agent path. A
|
|
515
|
+
* suggested value tempts the orchestrator to auto-fill it (e.g. the site name
|
|
516
|
+
* from the directory) instead of asking the human — exactly the bug this avoids.
|
|
517
|
+
* Suggestions live only in the interactive prompts, where the human is actually
|
|
518
|
+
* asked and just presses enter to accept.
|
|
519
|
+
*/
|
|
520
|
+
function reportMissingProvisionInputs(reporter, fields) {
|
|
521
|
+
// `requires_human: true` (and no `resolved`/`default`) tells the orchestrator it
|
|
522
|
+
// MUST ask the human and MUST NOT auto-resolve/guess/accept — overriding the
|
|
523
|
+
// --agent auto-approve.
|
|
524
|
+
const missing = [];
|
|
525
|
+
if (!fields.email) {
|
|
526
|
+
reporter.needsInput({ id: "email", prompt: "Account owner email", requires_human: true });
|
|
527
|
+
missing.push("--email <email>");
|
|
528
|
+
}
|
|
529
|
+
if (!fields.siteName) {
|
|
530
|
+
reporter.needsInput({
|
|
531
|
+
id: "site_name",
|
|
532
|
+
prompt: "Site name (the display name of the site to create)",
|
|
533
|
+
requires_human: true,
|
|
534
|
+
});
|
|
535
|
+
missing.push('--site-name "<name>"');
|
|
536
|
+
}
|
|
537
|
+
if (!fields.acceptTos) {
|
|
538
|
+
reporter.needsInput({
|
|
539
|
+
id: "accept_tos",
|
|
540
|
+
prompt: `Accept the Terms of Service (read them at ${TOS_URL})? Do not accept on the user's behalf.`,
|
|
541
|
+
options: ["yes", "no"],
|
|
542
|
+
requires_human: true,
|
|
543
|
+
});
|
|
544
|
+
missing.push("--accept-tos");
|
|
545
|
+
}
|
|
546
|
+
// Domain must be asked too (requires_human) but the human may leave it blank
|
|
547
|
+
// (optional) — so it's surfaced, never silently skipped, yet never blocks
|
|
548
|
+
// provisioning, hence it's not part of the returned `missing` list. Only when
|
|
549
|
+
// truly unset: `--domain ""` is an explicit "no domain", so don't re-ask it.
|
|
550
|
+
if (fields.domain === undefined) {
|
|
551
|
+
reporter.needsInput({
|
|
552
|
+
id: "domain",
|
|
553
|
+
prompt: "Site domain (e.g. myshop.com)",
|
|
554
|
+
requires_human: true,
|
|
555
|
+
optional: true,
|
|
556
|
+
});
|
|
557
|
+
}
|
|
558
|
+
return missing;
|
|
559
|
+
}
|
|
560
|
+
/**
|
|
561
|
+
* Ask until the user gives a non-empty answer (used for required fields). Bounded
|
|
562
|
+
* so a closed/piped stdin (readline resolves "" on EOF) can't spin forever — after
|
|
563
|
+
* `maxAttempts` empty answers it errors with exit 2 instead of hanging.
|
|
564
|
+
*/
|
|
565
|
+
async function askRequired(prompter, label, def, maxAttempts = 5) {
|
|
566
|
+
for (let i = 0; i < maxAttempts; i++) {
|
|
567
|
+
const answer = (await prompter.ask(label, def)).trim();
|
|
568
|
+
if (answer)
|
|
569
|
+
return answer;
|
|
570
|
+
}
|
|
571
|
+
throw new CliError(ExitCode.ARGS, "invalid_args", `No value provided for "${label}".`, {
|
|
572
|
+
hint: "Provide it as a flag (e.g. --email / --site-name) or answer the prompt.",
|
|
573
|
+
});
|
|
574
|
+
}
|
|
372
575
|
function buildReinvokeCommand(options, email) {
|
|
373
576
|
const parts = ["npx sealmetrics init", "--provision-key <YOUR_KEY>", `--email ${email}`, "--accept-tos"];
|
|
374
577
|
if (options.siteName)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAsB,MAAM,kBAAkB,CAAC;AAG1E,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAW,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAiB,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,sBAAsB,GAAG,cAAc,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAoB,EAAE,QAAkB;IACpE,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IACnD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAExB,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAEvD,wCAAwC;IACxC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAElC,mEAAmE;IACnE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,MAAM,CAAC;YACd,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,IAAI;YACpC,oBAAoB,EAAE,SAAS,CAAC,mBAAmB;YACnD,cAAc,EAAE,SAAS,CAAC,aAAa;YACvC,UAAU,EAAE,sBAAsB;YAClC,eAAe,EAAE,CAAC,OAAO,CAAC,MAAM;SACjC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,EAAE,CAAC;IACrB,CAAC;IAED,sDAAsD;IACtD,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,IAAI,CAAC;QACH,kEAAkE;QAClE,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,MAAM,OAAO,GAAG,WAAW;YACzB,CAAC,CAAC,KAAK,EAAE,GAAW,EAAE,IAAY,EAAoB,EAAE;gBACpD,yEAAyE;gBACzE,QAAQ,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;gBACjC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,IAAI,UAAU;oBAAE,OAAO,IAAI,CAAC;gBAC5B,MAAM,GAAG,GAAG,MAAM,QAAS,CAAC,OAAO,CAAC,qCAAqC,EAAE,IAAI,CAAC,CAAC;gBACjF,IAAI,GAAG;oBAAE,UAAU,GAAG,IAAI,CAAC;gBAC3B,OAAO,GAAG,CAAC;YACb,CAAC;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE;YACtC,MAAM,EAAE,KAAK;YACb,YAAY,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;YAC9B,OAAO;SACR,CAAC,CAAC;QACH,4EAA4E;QAC5E,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,IAAI,sBAAsB,CAAC,CAAC;QACjE,IAAI,OAAO,CAAC,MAAM;YAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAErD,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEhD,4CAA4C;QAC5C,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,cAAc,GAAG,cAAc,EAAE,UAAU,IAAI,UAAU,EAAE,UAAU,CAAC;QAC5E,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC;QAEhD,IAAI,SAAS,GAA2B,IAAI,CAAC;QAC7C,IAAI,SAAiB,CAAC;QACtB,IAAI,MAAc,CAAC;QAEnB,iFAAiF;QACjF,+EAA+E;QAC/E,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YACtC,MAAM,IAAI,QAAQ,CAChB,QAAQ,CAAC,IAAI,EACb,cAAc,EACd,mEAAmE,EACnE,EAAE,IAAI,EAAE,2FAA2F,EAAE,CACtG,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GACjB,CAAC,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC;YAClC,CAAC,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC;YAClC,CAAC,cAAc,IAAI,WAAW,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAE3F,IAAI,aAAa,IAAI,cAAc,IAAI,WAAW,EAAE,CAAC;YACnD,+EAA+E;YAC/E,SAAS,GAAG,cAAc,CAAC;YAC3B,MAAM,GAAG,WAAW,CAAC;YACrB,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;YAClC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,cAAc,IAAI,WAAW,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC/E,kFAAkF;YAClF,SAAS,GAAG,cAAc,CAAC,UAAU,CAAC;YACtC,MAAM,GAAG,WAAW,CAAC;YACrB,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;YAClC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;YACxE,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,kEAAkE;gBAClE,OAAO,QAAQ,CAAC,EAAE,CAAC;YACrB,CAAC;YACD,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC;YACjC,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;YAC3B,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,2CAA2C;YAErE,wDAAwD;YACxD,MAAM,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAe;gBACzB,UAAU,EAAE,SAAS;gBACrB,QAAQ,EAAE,OAAO,CAAC,OAAO;gBACzB,cAAc,EAAE,OAAO,CAAC,aAAa;gBACrC,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC;YACF,IAAI,SAAS,CAAC,QAAQ;gBAAE,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;YAC7D,MAAM,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAE3C,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;YAClC,UAAU,CAAC,SAAS,GAAG,aAAa,CAAC;YACrC,MAAM,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YACzD,2EAA2E;YAC3E,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE;gBAChC,UAAU,EAAE,SAAS;gBACrB,aAAa,EAAE,SAAS,CAAC,aAAa;gBACtC,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,iBAAiB,EAAE,SAAS,CAAC,UAAU,CAAC,YAAY;aACrD,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,4DAA4D;QAEtF,+EAA+E;QAC/E,iFAAiF;QACjF,gDAAgD;QAChD,MAAM,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC,CAAC;QAE7E,MAAM,OAAO,GACX,SAAS,EAAE,OAAO;YAClB,wDAAwD,SAAS,aAAa,CAAC;QACjF,MAAM,YAAY,GAAG,SAAS,EAAE,aAAa,IAAI,4BAA4B,CAAC;QAC9E,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,2EAA2E;QAC3E,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;QACvC,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACpD,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACvB,0EAA0E;YAC1E,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzD,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzE,CAAC;aAAM,IAAI,gBAAgB,EAAE,CAAC;YAC5B,2EAA2E;YAC3E,QAAQ,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,YAAY,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,oBAAoB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;YACxF,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;YAC3E,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;YACjC,MAAM,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YACzD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,wEAAwE;gBACxE,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE;oBACnC,OAAO;oBACP,oBAAoB,EAAE,SAAS,CAAC,mBAAmB;oBACnD,cAAc,EAAE,SAAS,CAAC,aAAa;oBACvC,UAAU,EAAE,yBAAyB;iBACtC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,kEAAkE;gBAClE,QAAQ,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;gBAClD,QAAQ,CAAC,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC;gBAChC,QAAQ,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,mBAAmB,KAAK,SAAS,CAAC,aAAa,GAAG,CAAC,CAAC;gBACjF,QAAQ,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACzE,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,wBAAwB,SAAS,CAAC,mBAAmB,KAAK,SAAS,CAAC,aAAa,IAAI,CAAC,CAAC;QACxG,CAAC;aAAM,CAAC;YACN,8EAA8E;YAC9E,SAAS,CAAC,IAAI,CAAC,mDAAmD,GAAG,OAAO,CAAC,CAAC;YAC9E,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,0DAA0D;QAC1D,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,gBAAgB,IAAI,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACnE,IAAI,KAAK,EAAE,CAAC;gBACV,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;gBACrC,UAAU,CAAC,SAAS,GAAG,gBAAgB,CAAC;gBACxC,MAAM,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;gBAChC,GAAG;gBACH,MAAM;gBACN,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,MAAM;gBACN,QAAQ;gBACR,YAAY,EAAE,OAAO,CAAC,MAA8B;gBACpD,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;aAC9D,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,wDAAwD;gBACxD,SAAS,CAAC,IAAI,CACZ,sGAAsG,CACvG,CAAC;gBACF,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;gBACrE,MAAM,uBAAuB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACnE,2EAA2E;gBAC3E,MAAM,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YACvE,CAAC;YACD,UAAU,CAAC,SAAS,GAAG,gBAAgB,CAAC;YACxC,MAAM,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC;QAED,gEAAgE;QAChE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,yBAAyB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YAC1E,QAAQ,CAAC,SAAS,CAAC,uBAAuB,EAAE;gBAC1C,UAAU,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;aAClC,CAAC,CAAC;YACH,SAAS,CAAC,IAAI,CACZ,gGAAgG,CACjG,CAAC;QACJ,CAAC;QAED,oCAAoC;QACpC,IAAI,QAAQ,GAAmB,IAAI,CAAC;QACpC,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,IAAI,sBAAsB,CAAC,CAAC;YAC9F,MAAM,YAAY,GAChB,SAAS,CAAC,aAAa,IAAI,SAAS,CAAC,QAAQ;gBAC3C,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAE3D,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBAChB,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACxC,CAAC;YAED,2EAA2E;YAC3E,uEAAuE;YACvE,0EAA0E;YAC1E,0EAA0E;YAC1E,oDAAoD;YACpD,MAAM,YAAY,GAAG,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1D,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE;oBAC3D,UAAU,EAAE,OAAO,CAAC,aAAa;oBACjC,QAAQ;iBACT,CAAC,CAAC;gBACH,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC;YAED,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;gBACrC,UAAU,CAAC,SAAS,GAAG,gBAAgB,CAAC;YAC1C,CAAC;iBAAM,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBAC9B,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;gBACrC,SAAS,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;YAC3G,CAAC;QACH,CAAC;QAED,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC;QAC9B,MAAM,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAEzD,4BAA4B;QAC5B,QAAQ,CAAC,MAAM,CAAC;YACd,UAAU,EAAE,SAAS;YACrB,aAAa,EAAE,YAAY;YAC3B,SAAS,EAAE,SAAS,EAAE,SAAS,IAAI,IAAI;YACvC,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,IAAI;YACpC,cAAc,EAAE,CAAC,OAAO,CAAC,KAAK;YAC9B,QAAQ;YACR,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;SAC7E,CAAC,CAAC;QAEH,2EAA2E;QAC3E,gFAAgF;QAChF,IAAI,QAAQ,KAAK,KAAK,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YACpD,IAAI,QAAQ,CAAC,KAAK;gBAAE,OAAO,QAAQ,CAAC,aAAa,CAAC;YAClD,QAAQ,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;QAChG,CAAC;QAED,OAAO,QAAQ,CAAC,EAAE,CAAC;IACrB,CAAC;YAAS,CAAC;QACT,QAAQ,EAAE,KAAK,EAAE,CAAC;IACpB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,OAAoB,EACpB,QAAkB,EAClB,WAAoB,EACpB,QAAiC;IAEjC,0BAA0B;IAC1B,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC1B,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAChC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC5B,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAElC,IAAI,WAAW,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK;YAAE,KAAK,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,QAAQ,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,IAAI,SAAS,CAAC,CAAC;QAC/E,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS;YAAE,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;IAC5F,CAAC;IAED,6EAA6E;IAC7E,gFAAgF;IAChF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,2BAA2B,EAAE;YAC7E,IAAI,EAAE,0CAA0C;SACjD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,uCAAuC,EAAE;YACzF,IAAI,EAAE,4CAA4C;SACnD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,sBAAsB,CAAC;IACpE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,QAAQ,IAAI,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IAE7E,gFAAgF;IAChF,mFAAmF;IACnF,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,QAAQ,CAAC,UAAU,CAAC;YAClB,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,aAAa;SACxB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAA0C;YACnD,QAAQ,EAAE,aAAa;YACvB,KAAK;YACL,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,eAAe,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC;SACtD,CAAC;QACF,IAAI,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAClC,IAAI,OAAO,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC5C,OAAO,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,gBAAgB,EAAE,CAAC;YAClC,4DAA4D;YAC5D,QAAQ,CAAC,SAAS,CAChB,wBAAwB,EACxB;gBACE,UAAU,EAAE;oBACV,8EAA8E;oBAC9E,4DAA4D;iBAC7D;aACF,EACD,MAAM,CACP,CAAC;YACF,QAAQ,CAAC,MAAM,CAAC;gBACd,WAAW,EAAE,KAAK;gBAClB,MAAM,EAAE,qBAAqB;gBAC7B,UAAU,EAAE;oBACV,8EAA8E;iBAC/E;aACF,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAoB,EAAE,KAAa;IAC/D,MAAM,KAAK,GAAG,CAAC,sBAAsB,EAAE,4BAA4B,EAAE,WAAW,KAAK,EAAE,EAAE,cAAc,CAAC,CAAC;IACzG,IAAI,OAAO,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtE,IAAI,OAAO,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7D,IAAI,OAAO,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,YAAY,CAAC,QAAkB,EAAE,CAAY;IACpD,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;IAChF,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE;QACxB,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI;QAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,oBAAoB,EAAE,CAAC,CAAC,mBAAmB;QAC3C,cAAc,EAAE,CAAC,CAAC,aAAa;KAChC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,OAAoB;IACxD,OAAO;QACL,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,OAAO,CAAC,OAAO;QACzB,cAAc,EAAE,OAAO,CAAC,aAAa;QACrC,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,EAAE;QACjB,cAAc,EAAE,EAAE;KACnB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,MAAkB,EAClB,GAAW,EACX,EAAc,EACd,MAAkB;IAElB,EAAE,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;IACzC,8EAA8E;IAC9E,EAAE,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9D,EAAE,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,MAAkB,EAClB,GAAW,EACX,KAAa,EACb,QAAkB;IAElB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,uGAAuG,KAAK,YAAY,CAAC;IACzI,IAAI,CAAC;QACH,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAAE,OAAO;QAC3F,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,CAAC,CAAC,YAAY,SAAS,CAAC;YAAE,QAAQ,CAAC,KAAK,CAAC,+BAA+B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,GAAW,EAAE,CAAS;IACnC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC3B,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/embedded.d.ts
CHANGED
|
@@ -13,6 +13,13 @@
|
|
|
13
13
|
* the PROD key doesn't exist — use `pk_provision_fallback`, seeded everywhere).
|
|
14
14
|
*/
|
|
15
15
|
export declare const EMBEDDED_PROVISION_KEY: string;
|
|
16
|
+
/**
|
|
17
|
+
* Publishable fallback key seeded in **non-prod** DBs (local/PRE) but NOT in PROD.
|
|
18
|
+
* Used automatically when targeting a local/PRE base URL with no explicit key, so
|
|
19
|
+
* dev testing "just works" without exporting `SEALMETRICS_PROVISION_KEY`. Harmless
|
|
20
|
+
* in PROD: it isn't applied there and wouldn't validate anyway.
|
|
21
|
+
*/
|
|
22
|
+
export declare const FALLBACK_PROVISION_KEY = "pk_provision_fallback";
|
|
16
23
|
/** Marker comment placed alongside the snippet so re-runs detect prior installs (RF-503). */
|
|
17
24
|
export declare const SNIPPET_MARKER = "<!-- Sealmetrics Analytics -->";
|
|
18
25
|
/** The pixel host the snippet loads from (informative; the real snippet comes from /provision). */
|
package/dist/embedded.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedded.d.ts","sourceRoot":"","sources":["../src/embedded.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB,QACyC,CAAC;AAE7E,6FAA6F;AAC7F,eAAO,MAAM,cAAc,mCAAmC,CAAC;AAE/D,mGAAmG;AACnG,eAAO,MAAM,UAAU,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"embedded.d.ts","sourceRoot":"","sources":["../src/embedded.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB,QACyC,CAAC;AAE7E;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAE9D,6FAA6F;AAC7F,eAAO,MAAM,cAAc,mCAAmC,CAAC;AAE/D,mGAAmG;AACnG,eAAO,MAAM,UAAU,8BAA8B,CAAC"}
|
package/dist/embedded.js
CHANGED
|
@@ -13,6 +13,13 @@
|
|
|
13
13
|
* the PROD key doesn't exist — use `pk_provision_fallback`, seeded everywhere).
|
|
14
14
|
*/
|
|
15
15
|
export const EMBEDDED_PROVISION_KEY = process.env.SEALMETRICS_PROVISION_KEY ?? "pk_npx_7da006b47d5f4b86c2dc0f1b";
|
|
16
|
+
/**
|
|
17
|
+
* Publishable fallback key seeded in **non-prod** DBs (local/PRE) but NOT in PROD.
|
|
18
|
+
* Used automatically when targeting a local/PRE base URL with no explicit key, so
|
|
19
|
+
* dev testing "just works" without exporting `SEALMETRICS_PROVISION_KEY`. Harmless
|
|
20
|
+
* in PROD: it isn't applied there and wouldn't validate anyway.
|
|
21
|
+
*/
|
|
22
|
+
export const FALLBACK_PROVISION_KEY = "pk_provision_fallback";
|
|
16
23
|
/** Marker comment placed alongside the snippet so re-runs detect prior installs (RF-503). */
|
|
17
24
|
export const SNIPPET_MARKER = "<!-- Sealmetrics Analytics -->";
|
|
18
25
|
/** The pixel host the snippet loads from (informative; the real snippet comes from /provision). */
|
package/dist/embedded.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedded.js","sourceRoot":"","sources":["../src/embedded.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,sBAAsB,GACjC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,iCAAiC,CAAC;AAE7E,6FAA6F;AAC7F,MAAM,CAAC,MAAM,cAAc,GAAG,gCAAgC,CAAC;AAE/D,mGAAmG;AACnG,MAAM,CAAC,MAAM,UAAU,GAAG,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"embedded.js","sourceRoot":"","sources":["../src/embedded.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,sBAAsB,GACjC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,iCAAiC,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AAE9D,6FAA6F;AAC7F,MAAM,CAAC,MAAM,cAAc,GAAG,gCAAgC,CAAC;AAE/D,mGAAmG;AACnG,MAAM,CAAC,MAAM,UAAU,GAAG,2BAA2B,CAAC"}
|
package/dist/exit-codes.d.ts
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* re-invocation command)
|
|
9
9
|
* 4 network / backend unavailable / rate-limited / kill-switch (503)
|
|
10
10
|
* 5 verify-failed (snippet placed but pixel did not confirm within timeout)
|
|
11
|
+
* 6 confirm-required (--agent two-phase: payload previewed, re-run with --confirm)
|
|
11
12
|
* 130 cancelled (SIGINT)
|
|
12
13
|
*/
|
|
13
14
|
export declare const ExitCode: {
|
|
@@ -16,6 +17,7 @@ export declare const ExitCode: {
|
|
|
16
17
|
readonly AUTH_REQUIRED: 3;
|
|
17
18
|
readonly NETWORK: 4;
|
|
18
19
|
readonly VERIFY_FAILED: 5;
|
|
20
|
+
readonly CONFIRM_REQUIRED: 6;
|
|
19
21
|
readonly CANCELLED: 130;
|
|
20
22
|
};
|
|
21
23
|
export type ExitCodeValue = (typeof ExitCode)[keyof typeof ExitCode];
|
package/dist/exit-codes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../src/exit-codes.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../src/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ;;;;;;;;CAQX,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAErE,gFAAgF;AAChF,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,qFAAqF;IACrF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAGvC,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE;CAS5D"}
|
package/dist/exit-codes.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* re-invocation command)
|
|
9
9
|
* 4 network / backend unavailable / rate-limited / kill-switch (503)
|
|
10
10
|
* 5 verify-failed (snippet placed but pixel did not confirm within timeout)
|
|
11
|
+
* 6 confirm-required (--agent two-phase: payload previewed, re-run with --confirm)
|
|
11
12
|
* 130 cancelled (SIGINT)
|
|
12
13
|
*/
|
|
13
14
|
export const ExitCode = {
|
|
@@ -16,6 +17,7 @@ export const ExitCode = {
|
|
|
16
17
|
AUTH_REQUIRED: 3,
|
|
17
18
|
NETWORK: 4,
|
|
18
19
|
VERIFY_FAILED: 5,
|
|
20
|
+
CONFIRM_REQUIRED: 6,
|
|
19
21
|
CANCELLED: 130,
|
|
20
22
|
};
|
|
21
23
|
/** Error thrown internally to short-circuit the flow with a known exit code. */
|
package/dist/exit-codes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../src/exit-codes.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../src/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,EAAE,EAAE,CAAC;IACL,IAAI,EAAE,CAAC;IACP,aAAa,EAAE,CAAC;IAChB,OAAO,EAAE,CAAC;IACV,aAAa,EAAE,CAAC;IAChB,gBAAgB,EAAE,CAAC;IACnB,SAAS,EAAE,GAAG;CACN,CAAC;AAIX,gFAAgF;AAChF,MAAM,OAAO,QAAS,SAAQ,KAAK;IACxB,QAAQ,CAAgB;IACxB,IAAI,CAAS;IACb,IAAI,CAAU;IACvB,qFAAqF;IAC5E,KAAK,CAA2B;IAEzC,YACE,QAAuB,EACvB,IAAY,EACZ,OAAe,EACf,IAAyD;QAEzD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,IAAI,EAAE,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACpD,IAAI,IAAI,EAAE,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzD,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sealmetrics",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "SealMetrics setup CLI — provision a free analytics account, place the tracker, and auto-configure the MCP server in one turn",
|
|
5
5
|
"author": "SealMetrics <dev@sealmetrics.com> (https://sealmetrics.com)",
|
|
6
6
|
"homepage": "https://github.com/adinton/sealmetrics2/tree/main/cli#readme",
|