@elitedcs/ghl-mcp 3.91.1 → 3.92.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.
@@ -5,6 +5,14 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __esm = (fn, res, err) => function __init() {
9
+ if (err) throw err[0];
10
+ try {
11
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
12
+ } catch (e) {
13
+ throw err = [e], e;
14
+ }
15
+ };
8
16
  var __copyProps = (to, from, except, desc) => {
9
17
  if (from && typeof from === "object" || typeof from === "function") {
10
18
  for (let key of __getOwnPropNames(from))
@@ -22,61 +30,14 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
22
30
  mod
23
31
  ));
24
32
 
25
- // src/interactive-capture.ts
26
- var fs = __toESM(require("fs"));
27
- var path2 = __toESM(require("path"));
28
- var import_zod2 = require("zod");
33
+ // src/attestation.ts
34
+ var init_attestation = __esm({
35
+ "src/attestation.ts"() {
36
+ "use strict";
37
+ }
38
+ });
29
39
 
30
40
  // src/credentials-store.ts
31
- var path = __toESM(require("path"));
32
- var os = __toESM(require("os"));
33
- var import_zod = require("zod");
34
- var APP_NAME = "elitedcs-ghl-mcp";
35
- var CredentialsSchema = import_zod.z.object({
36
- license_key: import_zod.z.string().min(1),
37
- email: import_zod.z.string().email(),
38
- verified_at: import_zod.z.string().min(1),
39
- ghl_api_key: import_zod.z.string().min(1),
40
- ghl_location_id: import_zod.z.string().min(1),
41
- ghl_company_id: import_zod.z.string().optional(),
42
- ghl_user_id: import_zod.z.string().optional(),
43
- ghl_firebase_api_key: import_zod.z.string().optional(),
44
- ghl_firebase_refresh_token: import_zod.z.string().optional(),
45
- // Ed25519-signed attestation from elitedcs.com/api/validate-license.
46
- // v3.24.0+ writes this on every successful online validation; index.ts
47
- // verifies on startup and refuses to load tools without it (closing the
48
- // hand-crafted-credentials.json bypass that existed through v3.23.0).
49
- // Optional in the schema only so files written by earlier versions still
50
- // parse — index.ts's gate forces a re-validate when the field is missing.
51
- signed_attestation: import_zod.z.string().optional(),
52
- /** Stable machine id (2026-07-28). Replaces the hostname-derived
53
- * fingerprint, which changed with the network on laptops and silently ate
54
- * install slots. Written once and reused forever. */
55
- device_id: import_zod.z.string().optional(),
56
- /** Per-seat cockpit key (2026-08-27, Command OS PRD row 0). The cockpit binds
57
- * 127.0.0.1, which stops other machines reaching the port but not other
58
- * PROGRAMS and other browsers on this one — and on a shared team machine that
59
- * is everybody. Every state-changing cockpit request must carry this value;
60
- * the served page gets it injected so the operator never types anything.
61
- * Written once on the first cockpit run, replaced by
62
- * `ghl-mcp dashboard --rotate-token`. Optional in the schema so files written
63
- * by earlier versions still parse. NEVER printed, logged or displayed. */
64
- cockpit_seat_token: import_zod.z.string().optional(),
65
- /** The operator's OWN Anthropic key (2026-09-05, hub audit). Command OS runs
66
- * the build stages and Design Studio on the member's Claude account — ours is
67
- * not on offer — and until now that key had no home in setup at all: it had to
68
- * be typed into the Claude Desktop settings file, passed to `claude mcp add -e`,
69
- * or exported in the shell before `dashboard`, and a member who did none of
70
- * those met a stage that simply failed. Saved here from the cockpit's Your
71
- * agency screen and folded into the environment the run inherits.
72
- * NEVER printed, logged or sent back to the page — the screen shows only the
73
- * last four characters of what is saved. */
74
- anthropic_api_key: import_zod.z.string().optional(),
75
- anthropic_key_check: import_zod.z.object({ fingerprint: import_zod.z.string(), at: import_zod.z.string(), ok: import_zod.z.boolean() }).optional(),
76
- // Desktop OAuth app configuration. Never returned by calendar tools.
77
- google_oauth_client_id: import_zod.z.string().optional(),
78
- google_oauth_client_secret: import_zod.z.string().optional()
79
- });
80
41
  function appDataDir() {
81
42
  const override = process.env.GHL_MCP_CONFIG_DIR?.trim();
82
43
  if (override) {
@@ -98,8 +59,78 @@ function appDataDir() {
98
59
  const xdg = process.env.XDG_CONFIG_HOME || path.join(home, ".config");
99
60
  return path.join(xdg, APP_NAME);
100
61
  }
62
+ var path, os, import_zod, APP_NAME, CredentialsSchema;
63
+ var init_credentials_store = __esm({
64
+ "src/credentials-store.ts"() {
65
+ "use strict";
66
+ path = __toESM(require("path"));
67
+ os = __toESM(require("os"));
68
+ import_zod = require("zod");
69
+ init_attestation();
70
+ APP_NAME = "elitedcs-ghl-mcp";
71
+ CredentialsSchema = import_zod.z.object({
72
+ license_key: import_zod.z.string().min(1),
73
+ email: import_zod.z.string().email(),
74
+ verified_at: import_zod.z.string().min(1),
75
+ ghl_api_key: import_zod.z.string().min(1),
76
+ ghl_location_id: import_zod.z.string().min(1),
77
+ ghl_company_id: import_zod.z.string().optional(),
78
+ ghl_user_id: import_zod.z.string().optional(),
79
+ ghl_firebase_api_key: import_zod.z.string().optional(),
80
+ ghl_firebase_refresh_token: import_zod.z.string().optional(),
81
+ // Ed25519-signed attestation from elitedcs.com/api/validate-license.
82
+ // v3.24.0+ writes this on every successful online validation; index.ts
83
+ // verifies on startup and refuses to load tools without it (closing the
84
+ // hand-crafted-credentials.json bypass that existed through v3.23.0).
85
+ // Optional in the schema only so files written by earlier versions still
86
+ // parse — index.ts's gate forces a re-validate when the field is missing.
87
+ signed_attestation: import_zod.z.string().optional(),
88
+ /** The last signed pass, kept when a "no" wipes signed_attestation (Codex final #2, 2026-10-27).
89
+ * NEVER a license: nothing reads it for tool access. Setup-only startup reads it only to confirm,
90
+ * from a verified signature, that the person on this computer is the license OWNER, the one
91
+ * who may still export or switch off a client brain after a cancel. */
92
+ last_signed_attestation: import_zod.z.string().optional(),
93
+ /** The client brain's admission credential for elitedcs.com/api/license-status (website security review
94
+ * round 4, 2026-10-17): returned by validate-license to an active Command OS owner, replaced on every
95
+ * validation, removed when an answer has none. brain_setup saves it in the member's own Supabase project
96
+ * (BRAIN_LICENSE_ADMISSION). It only lets the brain ASK whether this key is active. Never printed. */
97
+ license_status_admission: import_zod.z.string().optional(),
98
+ /** Stable machine id (2026-07-28). Replaces the hostname-derived
99
+ * fingerprint, which changed with the network on laptops and silently ate
100
+ * install slots. Written once and reused forever. */
101
+ device_id: import_zod.z.string().optional(),
102
+ /** Per-seat cockpit key (2026-08-27, Command OS PRD row 0). The cockpit binds
103
+ * 127.0.0.1, which stops other machines reaching the port but not other
104
+ * PROGRAMS and other browsers on this one — and on a shared team machine that
105
+ * is everybody. Every state-changing cockpit request must carry this value;
106
+ * the served page gets it injected so the operator never types anything.
107
+ * Written once on the first cockpit run, replaced by
108
+ * `ghl-mcp dashboard --rotate-token`. Optional in the schema so files written
109
+ * by earlier versions still parse. NEVER printed, logged or displayed. */
110
+ cockpit_seat_token: import_zod.z.string().optional(),
111
+ /** The operator's OWN Anthropic key (2026-09-05, hub audit). Command OS runs
112
+ * the build stages and Design Studio on the member's Claude account — ours is
113
+ * not on offer — and until now that key had no home in setup at all: it had to
114
+ * be typed into the Claude Desktop settings file, passed to `claude mcp add -e`,
115
+ * or exported in the shell before `dashboard`, and a member who did none of
116
+ * those met a stage that simply failed. Saved here from the cockpit's Your
117
+ * agency screen and folded into the environment the run inherits.
118
+ * NEVER printed, logged or sent back to the page — the screen shows only the
119
+ * last four characters of what is saved. */
120
+ anthropic_api_key: import_zod.z.string().optional(),
121
+ anthropic_key_check: import_zod.z.object({ fingerprint: import_zod.z.string(), at: import_zod.z.string(), ok: import_zod.z.boolean() }).optional(),
122
+ // Desktop OAuth app configuration. Never returned by calendar tools.
123
+ google_oauth_client_id: import_zod.z.string().optional(),
124
+ google_oauth_client_secret: import_zod.z.string().optional()
125
+ });
126
+ }
127
+ });
101
128
 
102
129
  // src/interactive-capture.ts
130
+ var fs = __toESM(require("fs"));
131
+ var path2 = __toESM(require("path"));
132
+ var import_zod2 = require("zod");
133
+ init_credentials_store();
103
134
  function chromeProfileDir() {
104
135
  return path2.join(appDataDir(), "chrome-profile");
105
136
  }