sealmetrics 0.1.1 → 0.1.3
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 +104 -7
- package/dist/agent/ndjson.d.ts +31 -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 +22 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts +13 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +267 -42
- 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,13 @@ 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: a provisioning success is a terminal `result` event carrying an `account_id`
|
|
10
|
+
> with exit `0`. Exit `6` means "needs your approval" (act on the `confirm` event, see
|
|
11
|
+
> below) — not done, not failed. On any other non-zero exit or an `error` event, STOP
|
|
12
|
+
> and report the failure — never fabricate a success summary (account id, files,
|
|
13
|
+
> snippet) from what the CLI *would* have done. See "Error-handling contract" below.
|
|
14
|
+
|
|
8
15
|
## Envelope
|
|
9
16
|
|
|
10
17
|
```json
|
|
@@ -14,7 +21,7 @@ diffs and the claim URL to its user.
|
|
|
14
21
|
| Field | Meaning |
|
|
15
22
|
|---------|---------|
|
|
16
23
|
| `v` | Protocol version (currently `1`). Bumped on breaking changes so parsers can branch. |
|
|
17
|
-
| `type` | `lifecycle` \| `file_change` \| `needs_input` \| `result` \| `error` |
|
|
24
|
+
| `type` | `lifecycle` \| `file_change` \| `needs_input` \| `confirm` \| `result` \| `error` |
|
|
18
25
|
| `level` | `info` \| `warn` \| `error` |
|
|
19
26
|
| `data` | Type-specific payload (below). |
|
|
20
27
|
|
|
@@ -25,6 +32,7 @@ Milestones. `data.stage` is the milestone id; extra fields vary.
|
|
|
25
32
|
|
|
26
33
|
```
|
|
27
34
|
start · detected:<framework|platform> · provisioned · reused
|
|
35
|
+
provision:email-exists
|
|
28
36
|
handoff:inject · handoff:plugin · handoff:already-installed · handoff:manual
|
|
29
37
|
verified:local · verify:local-pending
|
|
30
38
|
mcp:configured · mcp:handoff
|
|
@@ -32,10 +40,17 @@ instrumentation_guide · verified:pixel · verify:pending
|
|
|
32
40
|
```
|
|
33
41
|
|
|
34
42
|
Notable payloads:
|
|
43
|
+
- `start` → `{ version, protocol_doc, agent_contract }` — `agent_contract` summarises the
|
|
44
|
+
rules below in-band (the orchestrator sees it first, even if it never reads this file).
|
|
35
45
|
- `detected:*` → `{ framework, platform, strategy, recommended_location, provision_only }`
|
|
36
46
|
- `provisioned` → `{ account_id, dashboard_url, claim_url, free_quota_events }` (**never** the api_key)
|
|
37
47
|
- `handoff:inject` → `{ snippet, recommended_location, placement_hint, install_md }` — the **agent** places the snippet
|
|
38
48
|
- `instrumentation_guide` → `{ guide_path }`
|
|
49
|
+
- `provision:email-exists` (`level: warn`) → the email already has an account. No account
|
|
50
|
+
is created; a `result` with `{ provisioned: false, reason: "account_unavailable" }` follows
|
|
51
|
+
and the CLI exits `0` (anti-enumeration — it never confirms whether the email exists).
|
|
52
|
+
- `verify:pending` → `{ reason: "snippet_not_placed" }` when there was nothing to verify yet
|
|
53
|
+
(provisioning still succeeded); no `reason` when the snippet was placed but the pixel timed out.
|
|
39
54
|
|
|
40
55
|
### `file_change`
|
|
41
56
|
One per file the CLI plans/writes. The CLI only ever writes **its own**
|
|
@@ -49,30 +64,85 @@ artefacts (`.env`, `seal.config.json`, `.sealmetrics/*`, MCP config, `.gitignore
|
|
|
49
64
|
`action` is `plan` (with `diff`) before the write and `applied` after.
|
|
50
65
|
|
|
51
66
|
### `needs_input`
|
|
52
|
-
|
|
53
|
-
|
|
67
|
+
A value the CLI needs but the flags didn't supply. The stream never blocks on
|
|
68
|
+
stdin — the CLI emits this and keeps going / exits, it never waits for an answer.
|
|
69
|
+
|
|
70
|
+
In v1 every `needs_input` is **human-required**: it carries `"requires_human": true`
|
|
71
|
+
and **no `resolved`**. The orchestrator **MUST ask the human** and **MUST NOT**
|
|
72
|
+
auto-resolve, guess, or accept on their behalf — this overrides the `--agent`
|
|
73
|
+
auto-approve. After collecting the answers, re-invoke the CLI with the matching
|
|
74
|
+
flags. Fields:
|
|
75
|
+
- no `default` is sent (on purpose: a suggested value tempts the orchestrator to
|
|
76
|
+
auto-fill instead of asking — so there's nothing to reuse; ask).
|
|
77
|
+
- `options` → a closed set of valid answers (e.g. `["yes","no"]` for the ToS).
|
|
78
|
+
- `resolved` / `optional` → **reserved** fields. v1 emits neither (every input is
|
|
79
|
+
required and human-asked); if `resolved` is ever present, the value was chosen
|
|
80
|
+
automatically and needs no question.
|
|
81
|
+
|
|
82
|
+
The provisioning inputs are `email`, `site_name`, `accept_tos` and `domain` — **all
|
|
83
|
+
required**. `domain` in particular is required because the pixel rejects hits from
|
|
84
|
+
unregistered domains, so a domain-less account records **no data** at all. On a real
|
|
85
|
+
run a missing required input also yields an `error` (`code: invalid_args`) + exit `2`;
|
|
86
|
+
`--dry-run` just lists them up front (exit `0`, nothing provisioned) so the
|
|
87
|
+
orchestrator can ask for everything in one round.
|
|
88
|
+
|
|
89
|
+
> Never auto-accept the Terms of Service (`id: "accept_tos"`) or invent an email /
|
|
90
|
+
> site name. Provisioning creates a real account.
|
|
54
91
|
|
|
55
92
|
```json
|
|
56
93
|
{ "v":1, "type":"needs_input", "level":"info",
|
|
57
|
-
"data": { "id":"
|
|
94
|
+
"data": { "id":"accept_tos", "prompt":"Accept the Terms of Service (…)?",
|
|
95
|
+
"options":["yes","no"], "requires_human": true } }
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### `confirm`
|
|
99
|
+
Two-phase commit. In `--agent`, the first run does **not** provision: once all
|
|
100
|
+
required inputs are present it emits a `confirm` with the **exact payload** a real
|
|
101
|
+
run would send, then exits `6` (CONFIRM_REQUIRED) having created nothing and
|
|
102
|
+
written no files. The orchestrator **MUST** show these values to the human and,
|
|
103
|
+
**only on an explicit yes**, re-run the command in `data.reinvoke_with` (it adds
|
|
104
|
+
`--confirm`). Never add `--confirm` yourself or assume approval.
|
|
105
|
+
|
|
106
|
+
```json
|
|
107
|
+
{ "v":1, "type":"confirm", "level":"info",
|
|
108
|
+
"data": { "action":"create_free_account", "email":"…", "site_name":"…",
|
|
109
|
+
"domain":"…", "accept_tos":true, "base_url":"…",
|
|
110
|
+
"message":"Nothing has been created yet. …",
|
|
111
|
+
"reinvoke_with":"sealmetrics init --agent … --confirm" } }
|
|
58
112
|
```
|
|
59
113
|
|
|
114
|
+
`-y` (non-interactive scripting, not `--agent`) treats the flags as consent and
|
|
115
|
+
skips the gate. Interactive mode shows a summary + a `[Y/n]` prompt instead.
|
|
116
|
+
|
|
60
117
|
### `result`
|
|
61
|
-
The final structured payload.
|
|
118
|
+
The final structured payload. A **provisioning success** carries an `account_id`.
|
|
62
119
|
|
|
63
120
|
```json
|
|
64
121
|
{ "v":1, "type":"result", "level":"info",
|
|
65
|
-
"data": { "account_id":"…", "dashboard_url":"…", "claim_url":"
|
|
66
|
-
"framework":"next-app", "
|
|
122
|
+
"data": { "account_id":"…", "dashboard_url":"…", "claim_url":"…|null",
|
|
123
|
+
"framework":"next-app", "platform": null,
|
|
124
|
+
"mcp_configured": true, "verified": true,
|
|
67
125
|
"next_steps": ["…"] } }
|
|
68
126
|
```
|
|
69
127
|
|
|
128
|
+
- `verified` is `true` (pixel confirmed) · `false` (snippet placed, timed out → exit 5)
|
|
129
|
+
· `null` (nothing to verify yet, or verify skipped → exit 0).
|
|
130
|
+
- The **email-exists** variant carries `{ "provisioned": false, "reason": "account_unavailable", "next_steps": […] }`
|
|
131
|
+
and **no `account_id`** (exit 0). Treat the absence of `account_id` as "no account created".
|
|
132
|
+
- `--dry-run` adds `{ "dry_run": true, "would_provision": bool, "recommended_location",
|
|
133
|
+
"placement_hint", "terms_url" }` and uses a placeholder `account_id` — it never provisions.
|
|
134
|
+
|
|
70
135
|
### `error`
|
|
71
136
|
```json
|
|
72
137
|
{ "v":1, "type":"error", "level":"error",
|
|
73
138
|
"data": { "code":"AUTH_REQUIRED", "message":"…", "hint":"…", "command":"npx sealmetrics init --provision-key <KEY> …" } }
|
|
74
139
|
```
|
|
75
140
|
|
|
141
|
+
`data.code` (string) is one of: `invalid_args` (exit 2) · `AUTH_REQUIRED` (exit 3, carries
|
|
142
|
+
`command`) · `network_error` / `bad_response` / `rate_limited` (carries `retry_after`) /
|
|
143
|
+
`provisioning_disabled` / `backend_error` / `pixel_status_error` (all exit 4) · `cancelled`
|
|
144
|
+
(exit 130) · `unexpected` (exit 4). `hint` is an optional human-readable next step.
|
|
145
|
+
|
|
76
146
|
## Exit codes
|
|
77
147
|
|
|
78
148
|
| Code | Meaning |
|
|
@@ -82,4 +152,31 @@ The final structured payload.
|
|
|
82
152
|
| `3` | `AUTH_REQUIRED` — provision key invalid/revoked (`error.data.command` carries the re-invocation) |
|
|
83
153
|
| `4` | Network / backend unavailable / rate-limited / kill-switch (503) |
|
|
84
154
|
| `5` | Verify-failed — snippet placed but pixel did not confirm within the timeout |
|
|
155
|
+
| `6` | Confirm-required — `--agent` previewed the payload (`confirm` event); re-run with `--confirm` to provision |
|
|
85
156
|
| `130`| Cancelled (SIGINT) |
|
|
157
|
+
|
|
158
|
+
## Error-handling contract (orchestrators MUST follow)
|
|
159
|
+
|
|
160
|
+
The CLI signals failure in **two** redundant ways. An orchestrator MUST honor both:
|
|
161
|
+
|
|
162
|
+
1. A **non-zero exit code** (table above), and
|
|
163
|
+
2. An **`error` event** on the stream (`"type":"error"`).
|
|
164
|
+
|
|
165
|
+
On either signal, the orchestrator **MUST STOP and report the failure to the user**
|
|
166
|
+
— quoting `error.data.message` (and `hint`/`command` if present). It **MUST NOT**:
|
|
167
|
+
|
|
168
|
+
- claim the account was created,
|
|
169
|
+
- describe files as written, or
|
|
170
|
+
- show an `account_id` / snippet / claim URL,
|
|
171
|
+
|
|
172
|
+
unless it actually saw a **`result` event carrying an `account_id` AND exit code `0`**.
|
|
173
|
+
That is the only definition of provisioning success — a `result` with
|
|
174
|
+
`provisioned: false` (email-exists) or no `account_id` is **not** an account. On
|
|
175
|
+
failure no account is created and **no files are written** (the CLI writes its
|
|
176
|
+
artefacts only after a successful provision). Never fabricate a success summary from
|
|
177
|
+
expected behaviour — report exactly what the stream and exit code say.
|
|
178
|
+
|
|
179
|
+
> Exit `6` (confirm-required) is the **one** non-zero exit that is not a failure:
|
|
180
|
+
> the CLI previewed the payload and is waiting for approval. Show the `confirm`
|
|
181
|
+
> event's values and, on an explicit yes, re-run with `--confirm` — do not report it
|
|
182
|
+
> as an error, and do not auto-approve.
|
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,16 @@ 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
|
+
/** Reserved: when true, the human may leave this blank. v1 emits no optional
|
|
37
|
+
* inputs (every provisioning field is required). Informational. */
|
|
38
|
+
optional?: boolean;
|
|
31
39
|
}
|
|
32
40
|
export interface ErrorData {
|
|
33
41
|
code: string;
|
|
@@ -35,6 +43,22 @@ export interface ErrorData {
|
|
|
35
43
|
hint?: string;
|
|
36
44
|
[key: string]: unknown;
|
|
37
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* The exact payload a real provision WOULD send, surfaced before anything is
|
|
48
|
+
* created (two-phase commit). The orchestrator MUST show this to the human and,
|
|
49
|
+
* only on an explicit yes, re-invoke with `--confirm`. Nothing is created and no
|
|
50
|
+
* files are written until then.
|
|
51
|
+
*/
|
|
52
|
+
export interface ConfirmData {
|
|
53
|
+
action: string;
|
|
54
|
+
email: string;
|
|
55
|
+
site_name: string;
|
|
56
|
+
domain: string;
|
|
57
|
+
accept_tos: boolean;
|
|
58
|
+
base_url: string;
|
|
59
|
+
message: string;
|
|
60
|
+
reinvoke_with: string;
|
|
61
|
+
}
|
|
38
62
|
/**
|
|
39
63
|
* Reporter contract shared by the agent (NDJSON) and human renderers so the
|
|
40
64
|
* orchestrator logic in `init.ts` never branches on output mode.
|
|
@@ -44,6 +68,9 @@ export interface Reporter {
|
|
|
44
68
|
lifecycle(stage: string, data?: Record<string, unknown>, level?: Level): void;
|
|
45
69
|
fileChange(change: FileChange): void;
|
|
46
70
|
needsInput(input: NeedsInput): void;
|
|
71
|
+
/** Preview of what a real provision would send — emitted before creating
|
|
72
|
+
* anything, so the human can approve it (two-phase commit). */
|
|
73
|
+
confirm(data: ConfirmData): void;
|
|
47
74
|
result(data: Record<string, unknown>): void;
|
|
48
75
|
error(data: ErrorData): void;
|
|
49
76
|
/** Human-facing info text. Suppressed in agent mode (kept off the NDJSON stream). */
|
|
@@ -59,6 +86,7 @@ export declare class AgentReporter implements Reporter {
|
|
|
59
86
|
lifecycle(stage: string, data?: Record<string, unknown>, level?: Level): void;
|
|
60
87
|
fileChange(change: FileChange): void;
|
|
61
88
|
needsInput(input: NeedsInput): void;
|
|
89
|
+
confirm(data: ConfirmData): void;
|
|
62
90
|
result(data: Record<string, unknown>): void;
|
|
63
91
|
error(data: ErrorData): void;
|
|
64
92
|
info(_message: string): void;
|
|
@@ -74,6 +102,7 @@ export declare class HumanReporter implements Reporter {
|
|
|
74
102
|
lifecycle(stage: string, data?: Record<string, unknown>): void;
|
|
75
103
|
fileChange(change: FileChange): void;
|
|
76
104
|
needsInput(input: NeedsInput): void;
|
|
105
|
+
confirm(_data: ConfirmData): void;
|
|
77
106
|
result(data: Record<string, unknown>): void;
|
|
78
107
|
error(data: ErrorData): void;
|
|
79
108
|
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;AAgDF,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,9 @@ 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
|
|
24
|
+
--site-name <name> Site display name (required to provision; not guessed)
|
|
25
|
+
--domain <domain> Site domain, e.g. myshop.com (required — without it the
|
|
26
|
+
pixel records no data)
|
|
23
27
|
--accept-tos Accept the Terms of Service (required to provision)
|
|
24
28
|
--install-source <src> Attribution channel (default: npx)
|
|
25
29
|
--api-key <key> Reuse an existing read-only key; skips provisioning
|
|
@@ -30,8 +34,14 @@ Targeting:
|
|
|
30
34
|
--base-url <url> Override the API base URL (wins over --region)
|
|
31
35
|
--url <url> Site URL used for verify auto-ping
|
|
32
36
|
|
|
37
|
+
Env: SEALMETRICS_BASE_URL overrides the default target (below --base-url/--region);
|
|
38
|
+
SEALMETRICS_PROVISION_KEY overrides the embedded publishable provision key.
|
|
39
|
+
|
|
33
40
|
Behaviour:
|
|
34
41
|
--agent Machine mode: NDJSON on stdout, auto-approve, no prompts
|
|
42
|
+
--confirm Confirm provisioning. In --agent the first run only
|
|
43
|
+
PREVIEWS (emits a confirm event + exit 6, creates
|
|
44
|
+
nothing); re-run with --confirm to actually provision
|
|
35
45
|
-y, --yes Non-interactive (use flags/defaults, no prompts)
|
|
36
46
|
--resume Resume from the last checkpoint (no re-provision)
|
|
37
47
|
--dry-run Detect only — no provisioning, no writes
|
|
@@ -42,6 +52,9 @@ Behaviour:
|
|
|
42
52
|
|
|
43
53
|
-h, --help Show this help
|
|
44
54
|
-v, --version Show version
|
|
55
|
+
|
|
56
|
+
Agents: the --agent NDJSON contract (events, exit codes, the confirm gate) is in
|
|
57
|
+
PROTOCOL.md, bundled in this package. Honor it; key rules also ride in the stream.
|
|
45
58
|
`;
|
|
46
59
|
const BOOLEAN_FLAGS = new Set([
|
|
47
60
|
"--accept-tos",
|
|
@@ -50,6 +63,7 @@ const BOOLEAN_FLAGS = new Set([
|
|
|
50
63
|
"-y",
|
|
51
64
|
"--resume",
|
|
52
65
|
"--dry-run",
|
|
66
|
+
"--confirm",
|
|
53
67
|
"--no-inject",
|
|
54
68
|
"--no-mcp",
|
|
55
69
|
"-h",
|
|
@@ -105,8 +119,12 @@ export function parseArgs(argv) {
|
|
|
105
119
|
hint: `Valid regions: ${Object.keys(REGION_BASE_URLS).join(", ")}`,
|
|
106
120
|
});
|
|
107
121
|
}
|
|
122
|
+
// Precedence: --base-url > --region > SEALMETRICS_BASE_URL env > prod default.
|
|
123
|
+
// The env var (same name the mcp-server reads) lets a dev export the target
|
|
124
|
+
// once instead of passing --region on every invocation (local testing).
|
|
108
125
|
const baseUrl = strOf(raw["--base-url"]) ??
|
|
109
126
|
(region ? REGION_BASE_URLS[region] : undefined) ??
|
|
127
|
+
(process.env.SEALMETRICS_BASE_URL || undefined) ??
|
|
110
128
|
DEFAULT_BASE_URL;
|
|
111
129
|
let verifyTimeout = 75;
|
|
112
130
|
const vt = strOf(raw["--verify-timeout"]);
|
|
@@ -137,6 +155,7 @@ export function parseArgs(argv) {
|
|
|
137
155
|
yes: raw["--yes"] === true || raw["-y"] === true,
|
|
138
156
|
resume: raw["--resume"] === true,
|
|
139
157
|
dryRun: raw["--dry-run"] === true,
|
|
158
|
+
confirm: raw["--confirm"] === true,
|
|
140
159
|
apiKey: strOf(raw["--api-key"]),
|
|
141
160
|
provisionKey: strOf(raw["--provision-key"]),
|
|
142
161
|
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":"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"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
import { type ExitCodeValue } from "../exit-codes.js";
|
|
2
|
-
import type
|
|
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,
|
|
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,EAAE,KAAK,WAAW,EAAoB,MAAM,WAAW,CAAC;AAC/D,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,CA0U9F;AA8JD,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
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { homedir } from "node:os";
|
|
11
11
|
import { CliError, ExitCode } from "../exit-codes.js";
|
|
12
|
+
import { REGION_BASE_URLS } from "../cli.js";
|
|
12
13
|
import { ApiClient, EmailExistsError } from "../api/client.js";
|
|
13
|
-
import { EMBEDDED_PROVISION_KEY } from "../embedded.js";
|
|
14
|
+
import { EMBEDDED_PROVISION_KEY, FALLBACK_PROVISION_KEY } from "../embedded.js";
|
|
14
15
|
import { detect } from "../detect/index.js";
|
|
15
16
|
import { PLATFORM_PLUGIN_HINT } from "../detect/cms.js";
|
|
16
17
|
import { isSnippetPresent, buildInstallMarkdown } from "../handoff/install.js";
|
|
@@ -22,18 +23,66 @@ import { configureMcp } from "../mcp/configure.js";
|
|
|
22
23
|
import { writeInstrumentationGuide } from "../instrument/guide.js";
|
|
23
24
|
import { pollPixelStatus, autoPing } from "../verify/pixel.js";
|
|
24
25
|
import { ReadlinePrompter } from "../prompts.js";
|
|
25
|
-
import { join, relative } from "node:path";
|
|
26
|
+
import { basename, join, relative } from "node:path";
|
|
27
|
+
import { readFileSync } from "node:fs";
|
|
28
|
+
import { execFileSync } from "node:child_process";
|
|
26
29
|
import { getVersion } from "../version.js";
|
|
27
30
|
const PLACEHOLDER_ACCOUNT_ID = "<account_id>";
|
|
31
|
+
/** Terms of Service URL — shown so the human can read them before accepting. */
|
|
32
|
+
const TOS_URL = "https://sealmetrics.com/terms";
|
|
33
|
+
/** A local/PRE target only seeds the fallback provision key, not the prod npx key. */
|
|
34
|
+
export function isNonProdTarget(baseUrl) {
|
|
35
|
+
return /\/\/(localhost|127\.0\.0\.1|pre\.sealmetrics\.com)/.test(baseUrl);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Resolve the provision key: explicit flag > `SEALMETRICS_PROVISION_KEY` env >
|
|
39
|
+
* auto-fallback for local/PRE targets > embedded prod key. The auto-fallback lets
|
|
40
|
+
* dev testing work without exporting the env var; it never applies to prod.
|
|
41
|
+
*/
|
|
42
|
+
export function resolveProvisionKey(options) {
|
|
43
|
+
if (options.provisionKey)
|
|
44
|
+
return options.provisionKey;
|
|
45
|
+
const env = process.env.SEALMETRICS_PROVISION_KEY;
|
|
46
|
+
if (env)
|
|
47
|
+
return env;
|
|
48
|
+
if (isNonProdTarget(options.baseUrl))
|
|
49
|
+
return FALLBACK_PROVISION_KEY;
|
|
50
|
+
return EMBEDDED_PROVISION_KEY;
|
|
51
|
+
}
|
|
28
52
|
export async function runInit(options, reporter) {
|
|
29
53
|
const interactive = !options.agent && !options.yes;
|
|
30
54
|
const cwd = options.cwd;
|
|
31
|
-
|
|
55
|
+
// In-band pointer to the agent contract (the orchestrator parses this first).
|
|
56
|
+
// PROTOCOL.md is bundled in the package, but an orchestrator won't read it on
|
|
57
|
+
// its own — so the key rules ride here too, where they're guaranteed to be seen.
|
|
58
|
+
reporter.lifecycle("start", {
|
|
59
|
+
version: getVersion(),
|
|
60
|
+
protocol_doc: "PROTOCOL.md (bundled in this package)",
|
|
61
|
+
agent_contract: "Honor exit codes and events. needs_input with requires_human MUST be asked to the " +
|
|
62
|
+
"human (never auto-fill or accept on their behalf). On a confirm event, show its exact " +
|
|
63
|
+
"values to the human and only re-run with --confirm after an explicit yes. Success is a " +
|
|
64
|
+
"result event with an account_id and exit 0; exit 6 means confirmation needed (not a " +
|
|
65
|
+
"failure); any error event or other non-zero exit is a failure — never report success that " +
|
|
66
|
+
"didn't happen.",
|
|
67
|
+
});
|
|
32
68
|
// ---- detect (RF-301/302/304/305) ----
|
|
33
69
|
const detection = detect(cwd, { noInject: options.noInject });
|
|
34
70
|
emitDetected(reporter, detection);
|
|
35
71
|
// ---- dry-run: detect only, no provision, no writes (RF-104) ----
|
|
36
72
|
if (options.dryRun) {
|
|
73
|
+
// Surface the inputs a real run will need (email/site/ToS/domain), so the
|
|
74
|
+
// orchestrator can ask the human for everything in ONE round from the dry-run
|
|
75
|
+
// "plan" — instead of discovering them across runs. No suggestions here on
|
|
76
|
+
// purpose (see reportMissingProvisionInputs). Skipped when --api-key is set
|
|
77
|
+
// (that path doesn't provision).
|
|
78
|
+
if (!options.apiKey) {
|
|
79
|
+
reportMissingProvisionInputs(reporter, {
|
|
80
|
+
email: options.email,
|
|
81
|
+
siteName: options.siteName,
|
|
82
|
+
domain: options.domain,
|
|
83
|
+
acceptTos: options.acceptTos,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
37
86
|
reporter.result({
|
|
38
87
|
dry_run: true,
|
|
39
88
|
framework: detection.framework,
|
|
@@ -42,6 +91,9 @@ export async function runInit(options, reporter) {
|
|
|
42
91
|
placement_hint: detection.placementHint,
|
|
43
92
|
account_id: PLACEHOLDER_ACCOUNT_ID,
|
|
44
93
|
would_provision: !options.apiKey,
|
|
94
|
+
// Surfaced even on dry-run so the orchestrator can show the ToS link when it
|
|
95
|
+
// asks the human to accept (provisioning requires --accept-tos).
|
|
96
|
+
terms_url: TOS_URL,
|
|
45
97
|
});
|
|
46
98
|
return ExitCode.OK;
|
|
47
99
|
}
|
|
@@ -69,7 +121,7 @@ export async function runInit(options, reporter) {
|
|
|
69
121
|
confirm,
|
|
70
122
|
});
|
|
71
123
|
// Register both secrets up front so neither can leak into a diff (VAL-404).
|
|
72
|
-
writer.addSecret(options
|
|
124
|
+
writer.addSecret(resolveProvisionKey(options));
|
|
73
125
|
if (options.apiKey)
|
|
74
126
|
writer.addSecret(options.apiKey);
|
|
75
127
|
const checkpoint = makeCheckpoint(cwd, options);
|
|
@@ -105,11 +157,13 @@ export async function runInit(options, reporter) {
|
|
|
105
157
|
reporter.lifecycle("reused", { account_id: accountId });
|
|
106
158
|
}
|
|
107
159
|
else {
|
|
108
|
-
|
|
109
|
-
if (
|
|
110
|
-
//
|
|
111
|
-
|
|
160
|
+
const result = await doProvision(options, reporter, interactive, prompter);
|
|
161
|
+
if ("stop" in result) {
|
|
162
|
+
// Early stop without provisioning: email-exists/declined (exit 0) or the
|
|
163
|
+
// two-phase confirm gate (exit 6). The event was already reported.
|
|
164
|
+
return result.stop;
|
|
112
165
|
}
|
|
166
|
+
provision = result;
|
|
113
167
|
accountId = provision.account_id;
|
|
114
168
|
apiKey = provision.api_key;
|
|
115
169
|
writer.addSecret(apiKey); // VAL-404: never echo the key into a diff.
|
|
@@ -236,7 +290,7 @@ export async function runInit(options, reporter) {
|
|
|
236
290
|
// ---- verify-pixel (Bloque 6) ----
|
|
237
291
|
let verified = null;
|
|
238
292
|
if (options.verifyTimeout > 0) {
|
|
239
|
-
const client = new ApiClient(options.baseUrl, options
|
|
293
|
+
const client = new ApiClient(options.baseUrl, resolveProvisionKey(options));
|
|
240
294
|
const localPresent = detection.provisionOnly || detection.platform
|
|
241
295
|
? false
|
|
242
296
|
: alreadyInstalled || isSnippetPresent(cwd, accountId);
|
|
@@ -254,17 +308,21 @@ export async function runInit(options, reporter) {
|
|
|
254
308
|
timeoutSec: options.verifyTimeout,
|
|
255
309
|
reporter,
|
|
256
310
|
});
|
|
257
|
-
verified = res.verified;
|
|
311
|
+
verified = res.verified; // true (confirmed) | false (placed but timed out)
|
|
258
312
|
}
|
|
259
313
|
else {
|
|
260
|
-
|
|
314
|
+
// Nothing to verify yet (provision-only / snippet not placed, no --url).
|
|
315
|
+
// Provisioning SUCCEEDED — this is "pending", NOT a verify failure: leave
|
|
316
|
+
// verified=null so it stays exit 0 (only a real polled timeout → exit 5).
|
|
317
|
+
verified = null;
|
|
261
318
|
}
|
|
262
319
|
if (verified === true) {
|
|
263
320
|
reporter.lifecycle("verified:pixel");
|
|
264
321
|
checkpoint.last_step = "verified_pixel";
|
|
265
322
|
}
|
|
266
|
-
else
|
|
267
|
-
|
|
323
|
+
else {
|
|
324
|
+
// false = polled but no hit in time; null = nothing placed to verify yet.
|
|
325
|
+
reporter.lifecycle("verify:pending", verified === null ? { reason: "snippet_not_placed" } : {});
|
|
268
326
|
nextSteps.push("Deploy/reload your site and visit a page, then re-run `npx sealmetrics init --resume`.");
|
|
269
327
|
}
|
|
270
328
|
}
|
|
@@ -281,8 +339,10 @@ export async function runInit(options, reporter) {
|
|
|
281
339
|
verified,
|
|
282
340
|
next_steps: provision?.next_steps?.length ? provision.next_steps : nextSteps,
|
|
283
341
|
});
|
|
284
|
-
// RF-602: snippet placed but pixel
|
|
285
|
-
// mode (verify-failed);
|
|
342
|
+
// RF-602: snippet WAS placed but the pixel didn't confirm in time → exit 5 in
|
|
343
|
+
// agent mode (verify-failed); soft warning interactive. Only `false` (a real
|
|
344
|
+
// polled timeout) counts — `null` (nothing to verify yet) stays exit 0, since
|
|
345
|
+
// provisioning itself succeeded.
|
|
286
346
|
if (verified === false && options.verifyTimeout > 0) {
|
|
287
347
|
if (reporter.agent)
|
|
288
348
|
return ExitCode.VERIFY_FAILED;
|
|
@@ -300,41 +360,90 @@ async function doProvision(options, reporter, interactive, prompter) {
|
|
|
300
360
|
let siteName = options.siteName;
|
|
301
361
|
let domain = options.domain;
|
|
302
362
|
let acceptTos = options.acceptTos;
|
|
363
|
+
// Best-effort suggestions so a missing field comes pre-filled with a sensible
|
|
364
|
+
// default (the human/orchestrator confirms or overrides) — the email from the
|
|
365
|
+
// local git config, the site name from package.json/the directory. Computed
|
|
366
|
+
// only when the field is absent (skips the git/fs probes when flags provide it).
|
|
367
|
+
const suggestedEmail = email ? undefined : suggestEmail(options.cwd);
|
|
368
|
+
const suggestedSiteName = siteName ? undefined : suggestSiteName(options.cwd);
|
|
303
369
|
if (interactive && prompter) {
|
|
370
|
+
// Ask explicitly — never guess from the email domain (the user's complaint).
|
|
371
|
+
// email, domain and site name are all required (without a domain the pixel
|
|
372
|
+
// records nothing).
|
|
304
373
|
if (!email)
|
|
305
|
-
email = await prompter
|
|
306
|
-
if (!siteName)
|
|
307
|
-
siteName = await prompter.ask("Site name", domain ?? "My site");
|
|
374
|
+
email = await askRequired(prompter, "Email", suggestedEmail);
|
|
308
375
|
if (!domain)
|
|
309
|
-
domain = await prompter
|
|
310
|
-
if (!
|
|
376
|
+
domain = await askRequired(prompter, "Domain (e.g. myshop.com)");
|
|
377
|
+
if (!siteName) {
|
|
378
|
+
// "Site name" (user-facing wording per CLAUDE.md), matches --site-name / the
|
|
379
|
+
// site_name needs_input id.
|
|
380
|
+
siteName = await askRequired(prompter, "Site name", suggestedSiteName ?? domain);
|
|
381
|
+
}
|
|
382
|
+
if (!acceptTos) {
|
|
383
|
+
reporter.info(`Read the Terms of Service: ${TOS_URL}`);
|
|
311
384
|
acceptTos = await prompter.confirm("Accept the Terms of Service?", false);
|
|
385
|
+
}
|
|
312
386
|
}
|
|
313
|
-
// RF-103 / TEST-402:
|
|
314
|
-
//
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
387
|
+
// RF-103 / RF-203 / TEST-402: validate the required fields. Interactive mode
|
|
388
|
+
// already prompted them (email + site name loop until non-empty), so the only
|
|
389
|
+
// failure left there is a declined ToS. In --agent/-y the CLI can't prompt on
|
|
390
|
+
// stdin: instead of guessing (no site name from the email domain) it tells the
|
|
391
|
+
// orchestrator WHICH fields to collect from the human — a `needs_input` event
|
|
392
|
+
// WITHOUT a `resolved` value means "ask the human" — then exits 2 so the agent
|
|
393
|
+
// asks and re-invokes with the flags. The ToS is NEVER auto-accepted.
|
|
394
|
+
if (!email || !siteName || !acceptTos || !domain) {
|
|
395
|
+
// Interactive already prompted email/domain/site (loop until non-empty), so the
|
|
396
|
+
// only way to land here is a declined ToS.
|
|
397
|
+
if (interactive) {
|
|
398
|
+
throw new CliError(ExitCode.ARGS, "invalid_args", "You must accept the Terms of Service to provision.", {
|
|
399
|
+
hint: `Read them at ${TOS_URL} and accept to continue.`,
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
// --agent/-y: the CLI can't prompt on stdin — it tells the orchestrator which
|
|
403
|
+
// fields to collect from the human (needs_input, no `resolved`/`default`) and
|
|
404
|
+
// exits 2 so the agent asks and re-invokes with the flags.
|
|
405
|
+
const missing = reportMissingProvisionInputs(reporter, { email, siteName, domain, acceptTos });
|
|
406
|
+
throw new CliError(ExitCode.ARGS, "invalid_args", `Missing required input: ${missing.join(", ")}.`, {
|
|
407
|
+
hint: `Ask the user for these, then re-run with: ${missing.join(" ")}`,
|
|
318
408
|
});
|
|
319
409
|
}
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
410
|
+
// Two-phase commit (confirm before sending). Show EXACTLY what will be created
|
|
411
|
+
// and require explicit approval before anything is provisioned or written:
|
|
412
|
+
// - interactive → a summary + [Y/n] prompt;
|
|
413
|
+
// - --agent → emit a `confirm` event with the full payload and exit 6; nothing
|
|
414
|
+
// is created — the orchestrator MUST show it and re-run with --confirm;
|
|
415
|
+
// - -y (non-interactive scripting, not --agent) → the flags are the consent.
|
|
416
|
+
if (!options.confirm) {
|
|
417
|
+
if (interactive && prompter) {
|
|
418
|
+
reporter.info("\nAbout to create a SealMetrics account with:");
|
|
419
|
+
reporter.info(` Email: ${email}`);
|
|
420
|
+
reporter.info(` Site name: ${siteName}`);
|
|
421
|
+
reporter.info(` Domain: ${domain}`);
|
|
422
|
+
const ok = await prompter.confirm("Create the account with these details?", true);
|
|
423
|
+
if (!ok) {
|
|
424
|
+
reporter.info("Aborted — no account created.");
|
|
425
|
+
return { stop: ExitCode.OK };
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
else if (options.agent) {
|
|
429
|
+
reporter.confirm({
|
|
430
|
+
action: "create_free_account",
|
|
431
|
+
email,
|
|
432
|
+
site_name: siteName,
|
|
433
|
+
domain,
|
|
434
|
+
accept_tos: acceptTos,
|
|
435
|
+
base_url: options.baseUrl,
|
|
436
|
+
message: "Nothing has been created yet. Show these exact values to the user and, " +
|
|
437
|
+
"only on an explicit yes, re-run with --confirm. Do not assume approval.",
|
|
438
|
+
reinvoke_with: buildConfirmCommand(options, email, siteName, domain),
|
|
439
|
+
});
|
|
440
|
+
return { stop: ExitCode.CONFIRM_REQUIRED };
|
|
441
|
+
}
|
|
442
|
+
// -y without --agent: flags are the consent → proceed.
|
|
324
443
|
}
|
|
325
|
-
const provisionKey = options
|
|
444
|
+
const provisionKey = resolveProvisionKey(options);
|
|
326
445
|
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
|
-
}
|
|
446
|
+
const finalSiteName = siteName;
|
|
338
447
|
try {
|
|
339
448
|
const input = {
|
|
340
449
|
siteName: finalSiteName,
|
|
@@ -364,11 +473,127 @@ async function doProvision(options, reporter, interactive, prompter) {
|
|
|
364
473
|
"If you already have an account, log in or reset your password to add a site.",
|
|
365
474
|
],
|
|
366
475
|
});
|
|
367
|
-
return
|
|
476
|
+
return { stop: ExitCode.OK };
|
|
368
477
|
}
|
|
369
478
|
throw e;
|
|
370
479
|
}
|
|
371
480
|
}
|
|
481
|
+
/** Re-invocation command for the confirm gate: same call + the resolved values + --confirm. */
|
|
482
|
+
function buildConfirmCommand(options, email, siteName, domain) {
|
|
483
|
+
const parts = [
|
|
484
|
+
"sealmetrics init --agent",
|
|
485
|
+
`--email ${JSON.stringify(email)}`,
|
|
486
|
+
`--site-name ${JSON.stringify(siteName)}`,
|
|
487
|
+
`--domain ${JSON.stringify(domain)}`,
|
|
488
|
+
];
|
|
489
|
+
// Preserve the target so re-running the command verbatim hits the same backend
|
|
490
|
+
// (otherwise it would default to PROD even if this run used --region local).
|
|
491
|
+
if (options.region)
|
|
492
|
+
parts.push(`--region ${options.region}`);
|
|
493
|
+
else if (options.baseUrl !== REGION_BASE_URLS.prod)
|
|
494
|
+
parts.push(`--base-url ${JSON.stringify(options.baseUrl)}`);
|
|
495
|
+
parts.push("--accept-tos", "--confirm");
|
|
496
|
+
return parts.join(" ");
|
|
497
|
+
}
|
|
498
|
+
/** Suggested owner email from the local git config (read-only, best-effort). */
|
|
499
|
+
export function suggestEmail(cwd) {
|
|
500
|
+
try {
|
|
501
|
+
const email = execFileSync("git", ["config", "user.email"], {
|
|
502
|
+
cwd,
|
|
503
|
+
encoding: "utf8",
|
|
504
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
505
|
+
timeout: 2000,
|
|
506
|
+
}).trim();
|
|
507
|
+
return email || undefined;
|
|
508
|
+
}
|
|
509
|
+
catch {
|
|
510
|
+
return undefined; // no git / no email configured
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
/** Suggested site name: package.json name (sans npm scope) or the directory name. */
|
|
514
|
+
export function suggestSiteName(cwd) {
|
|
515
|
+
try {
|
|
516
|
+
const pkg = JSON.parse(readFileSync(join(cwd, "package.json"), "utf8"));
|
|
517
|
+
if (typeof pkg.name === "string" && pkg.name.trim()) {
|
|
518
|
+
const stripped = pkg.name.replace(/^@[^/]+\//, "").trim();
|
|
519
|
+
// Ignore a malformed bare scope (e.g. "@scope" with no slash) → fall back.
|
|
520
|
+
if (stripped && !stripped.startsWith("@"))
|
|
521
|
+
return stripped;
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
catch {
|
|
525
|
+
/* no package.json / unreadable / no name — fall back to the dir name */
|
|
526
|
+
}
|
|
527
|
+
const base = basename(cwd);
|
|
528
|
+
return base && base !== "." && base !== "/" ? base : undefined;
|
|
529
|
+
}
|
|
530
|
+
/**
|
|
531
|
+
* Emit a `needs_input` (no `resolved` = "ask the human") for each provisioning
|
|
532
|
+
* field the flags didn't supply. Used by BOTH `--dry-run` (so the orchestrator
|
|
533
|
+
* learns every input up front and can ask for them in one round) and the real
|
|
534
|
+
* provision when required fields are missing. Returns the missing REQUIRED flags
|
|
535
|
+
* (all four — email, site_name, accept_tos, domain — are required).
|
|
536
|
+
*
|
|
537
|
+
* NOTE: deliberately emits **no `default`/suggestion** for the agent path. A
|
|
538
|
+
* suggested value tempts the orchestrator to auto-fill it (e.g. the site name
|
|
539
|
+
* from the directory) instead of asking the human — exactly the bug this avoids.
|
|
540
|
+
* Suggestions live only in the interactive prompts, where the human is actually
|
|
541
|
+
* asked and just presses enter to accept.
|
|
542
|
+
*/
|
|
543
|
+
function reportMissingProvisionInputs(reporter, fields) {
|
|
544
|
+
// `requires_human: true` (and no `resolved`/`default`) tells the orchestrator it
|
|
545
|
+
// MUST ask the human and MUST NOT auto-resolve/guess/accept — overriding the
|
|
546
|
+
// --agent auto-approve.
|
|
547
|
+
const missing = [];
|
|
548
|
+
if (!fields.email) {
|
|
549
|
+
reporter.needsInput({ id: "email", prompt: "Account owner email", requires_human: true });
|
|
550
|
+
missing.push("--email <email>");
|
|
551
|
+
}
|
|
552
|
+
if (!fields.siteName) {
|
|
553
|
+
reporter.needsInput({
|
|
554
|
+
id: "site_name",
|
|
555
|
+
prompt: "Site name (the display name of the site to create)",
|
|
556
|
+
requires_human: true,
|
|
557
|
+
});
|
|
558
|
+
missing.push('--site-name "<name>"');
|
|
559
|
+
}
|
|
560
|
+
if (!fields.acceptTos) {
|
|
561
|
+
reporter.needsInput({
|
|
562
|
+
id: "accept_tos",
|
|
563
|
+
prompt: `Accept the Terms of Service (read them at ${TOS_URL})? Do not accept on the user's behalf.`,
|
|
564
|
+
options: ["yes", "no"],
|
|
565
|
+
requires_human: true,
|
|
566
|
+
});
|
|
567
|
+
missing.push("--accept-tos");
|
|
568
|
+
}
|
|
569
|
+
// Domain is REQUIRED: the pixel rejects hits from unregistered domains, so an
|
|
570
|
+
// account with no domain records nothing — a dead account. Treat it like the
|
|
571
|
+
// other required fields (missing → exit 2).
|
|
572
|
+
if (!fields.domain) {
|
|
573
|
+
reporter.needsInput({
|
|
574
|
+
id: "domain",
|
|
575
|
+
prompt: "Site domain (e.g. myshop.com) — required; without it the pixel records no data",
|
|
576
|
+
requires_human: true,
|
|
577
|
+
});
|
|
578
|
+
missing.push("--domain <domain>");
|
|
579
|
+
}
|
|
580
|
+
return missing;
|
|
581
|
+
}
|
|
582
|
+
/**
|
|
583
|
+
* Ask until the user gives a non-empty answer (used for required fields). Bounded
|
|
584
|
+
* so a closed/piped stdin (readline resolves "" on EOF) can't spin forever — after
|
|
585
|
+
* `maxAttempts` empty answers it errors with exit 2 instead of hanging.
|
|
586
|
+
*/
|
|
587
|
+
async function askRequired(prompter, label, def, maxAttempts = 5) {
|
|
588
|
+
for (let i = 0; i < maxAttempts; i++) {
|
|
589
|
+
const answer = (await prompter.ask(label, def)).trim();
|
|
590
|
+
if (answer)
|
|
591
|
+
return answer;
|
|
592
|
+
}
|
|
593
|
+
throw new CliError(ExitCode.ARGS, "invalid_args", `No value provided for "${label}".`, {
|
|
594
|
+
hint: "Provide it as a flag (e.g. --email / --site-name) or answer the prompt.",
|
|
595
|
+
});
|
|
596
|
+
}
|
|
372
597
|
function buildReinvokeCommand(options, email) {
|
|
373
598
|
const parts = ["npx sealmetrics init", "--provision-key <YOUR_KEY>", `--email ${email}`, "--accept-tos"];
|
|
374
599
|
if (options.siteName)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
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.3",
|
|
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",
|