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 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
- In `--agent` every prompt is **auto-resolved** (from flags or a safe default)
53
- and the resolution is reported the stream never blocks on stdin.
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.
@@ -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
- /** In --agent the prompt is auto-resolved; the resolution is reported (RF-203). */
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,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAC9E,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IACrC,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACpC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5C,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,qFAAqF;IACrF,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,2CAA2C;IAC3C,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AASD,8CAA8C;AAC9C,qBAAa,aAAc,YAAW,QAAQ;IAC5C,QAAQ,CAAC,KAAK,QAAQ;IAEtB,OAAO,CAAC,IAAI;IAKZ,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAE,KAAK,GAAE,KAAc,GAAG,IAAI;IAIzF,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAIpC,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAInC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI3C,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAI5B,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAG7B;AAQD,gEAAgE;AAChE,qBAAa,aAAc,YAAW,QAAQ;IAC5C,QAAQ,CAAC,KAAK,SAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;;IAMhC,OAAO,CAAC,CAAC;IAIT,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,IAAI;IAMlE,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAKpC,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAMnC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAW3C,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAK5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAG7B"}
1
+ {"version":3,"file":"ndjson.d.ts","sourceRoot":"","sources":["../../src/agent/ndjson.ts"],"names":[],"mappings":"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"}
@@ -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."));
@@ -1 +1 @@
1
- {"version":3,"file":"ndjson.js","sourceRoot":"","sources":["../../src/agent/ndjson.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ndjson.js","sourceRoot":"","sources":["../../src/agent/ndjson.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts CHANGED
@@ -11,6 +11,7 @@ export interface InitOptions {
11
11
  yes: boolean;
12
12
  resume: boolean;
13
13
  dryRun: boolean;
14
+ confirm: boolean;
14
15
  apiKey?: string;
15
16
  provisionKey?: string;
16
17
  noInject: boolean;
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,CAInD,CAAC;AAsCF,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAiBD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CA6FrD;AAMD,wBAAgB,QAAQ,IAAI,MAAM,CAEjC"}
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
- local: "http://localhost:8000/api/v1",
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":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -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;AAyBnD,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAqS9F"}
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"}
@@ -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.provisionKey ?? EMBEDDED_PROVISION_KEY);
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
- provision = await doProvision(options, reporter, interactive, prompter);
109
- if (provision === null) {
110
- // EmailExists informative path already reported; exit 0 (RF-402).
111
- return ExitCode.OK;
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.provisionKey ?? EMBEDDED_PROVISION_KEY);
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
- verified = false;
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 if (verified === false) {
267
- reporter.lifecycle("verify:pending");
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 not confirmed in time → exit 5 in agent
285
- // mode (verify-failed); a soft warning in interactive (site may be undeployed).
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.ask("Email");
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 (!acceptTos)
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: in --agent/-y missing obligatorios exit 2; accept-tos
314
- // is mandatory and is NEVER auto-accepted (the human must opt in via the flag).
315
- if (!email) {
316
- throw new CliError(ExitCode.ARGS, "invalid_args", "Missing required --email.", {
317
- hint: "Pass --email <email> (and --accept-tos).",
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
- if (!acceptTos) {
321
- throw new CliError(ExitCode.ARGS, "invalid_args", "You must accept the Terms of Service.", {
322
- hint: "Pass --accept-tos to provision an account.",
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.provisionKey ?? EMBEDDED_PROVISION_KEY;
430
+ const provisionKey = resolveProvisionKey(options);
326
431
  const client = new ApiClient(options.baseUrl, provisionKey);
327
- const finalSiteName = siteName ?? domain ?? email.split("@")[1] ?? "My site";
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 null;
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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"}
@@ -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). */
@@ -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). */
@@ -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"}
@@ -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];
@@ -1 +1 @@
1
- {"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../src/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,QAAQ;;;;;;;CAOX,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"}
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"}
@@ -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. */
@@ -1 +1 @@
1
- {"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../src/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;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,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"}
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.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",