@elitedcs/ghl-mcp 3.83.5 → 3.83.6
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/CHANGELOG.md +22 -0
- package/README.md +1 -1
- package/dist/index.js +21 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 3.83.6 — what a design run actually costs you, measured
|
|
6
|
+
|
|
7
|
+
3.83.5 gave a running job a clock. This gives it an honest number on it.
|
|
8
|
+
|
|
9
|
+
How long a run takes was written by hand in three places and every one was wrong.
|
|
10
|
+
The brand page said a deck takes "roughly ten minutes". The run API said "twenty
|
|
11
|
+
minutes or more". The clock added in 3.83.5 said "ten to twenty". Nobody had ever
|
|
12
|
+
timed one.
|
|
13
|
+
|
|
14
|
+
Two runs have now been measured. A six-slide deck took 12 minutes 39 seconds and
|
|
15
|
+
$1.74 for a single pass. A conversion page on a real brand took 26 minutes and
|
|
16
|
+
$3.75 across three. So a pass is 9 to 13 minutes and $1.25 to $1.75, and a run may
|
|
17
|
+
use three of them.
|
|
18
|
+
|
|
19
|
+
That sentence now lives in one file and every screen reads it, so the three cannot
|
|
20
|
+
drift apart again.
|
|
21
|
+
|
|
22
|
+
**The cost is now stated before you press the button, not discovered afterwards.**
|
|
23
|
+
These runs use your own Claude, never ours. On a Max plan that is usage rather than
|
|
24
|
+
a bill, which is exactly why the figure belongs on the screen: on pay as you go it
|
|
25
|
+
is real money, and you should know roughly what a button costs before you press it.
|
|
26
|
+
|
|
5
27
|
## 3.83.5 — the brand page's buttons work, and a run tells you it is working
|
|
6
28
|
|
|
7
29
|
If you use Design Studio, every button on a brand's own page has been dead since
|
package/README.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -27187,6 +27187,20 @@ var init_run_jobs = __esm({
|
|
|
27187
27187
|
}
|
|
27188
27188
|
});
|
|
27189
27189
|
|
|
27190
|
+
// src/command-os/design/run-expectations.ts
|
|
27191
|
+
var RUN_MAX_PASSES, RUN_PASS_MINUTES, RUN_PASS_COST, RUN_TOTAL_MINUTES, RUN_TOTAL_COST, RUN_EXPECTATION;
|
|
27192
|
+
var init_run_expectations = __esm({
|
|
27193
|
+
"src/command-os/design/run-expectations.ts"() {
|
|
27194
|
+
"use strict";
|
|
27195
|
+
RUN_MAX_PASSES = 3;
|
|
27196
|
+
RUN_PASS_MINUTES = "9 to 13 minutes";
|
|
27197
|
+
RUN_PASS_COST = "$1.25 to $1.75";
|
|
27198
|
+
RUN_TOTAL_MINUTES = "25 to 40 minutes";
|
|
27199
|
+
RUN_TOTAL_COST = "about $5";
|
|
27200
|
+
RUN_EXPECTATION = `Each pass takes ${RUN_PASS_MINUTES} and costs ${RUN_PASS_COST} of your own Claude usage, and a run may take up to ${RUN_MAX_PASSES} passes. Allow ${RUN_TOTAL_MINUTES} and up to ${RUN_TOTAL_COST}.`;
|
|
27201
|
+
}
|
|
27202
|
+
});
|
|
27203
|
+
|
|
27190
27204
|
// src/run-cost.ts
|
|
27191
27205
|
function runCostPath() {
|
|
27192
27206
|
return path18.join(appDataDir(), "command-os-run-cost.jsonl");
|
|
@@ -28591,7 +28605,7 @@ var require_package = __commonJS({
|
|
|
28591
28605
|
"package.json"(exports2, module2) {
|
|
28592
28606
|
module2.exports = {
|
|
28593
28607
|
name: "@elitedcs/ghl-mcp",
|
|
28594
|
-
version: "3.83.
|
|
28608
|
+
version: "3.83.6",
|
|
28595
28609
|
mcpName: "io.github.drjerryrelth/ghl-command",
|
|
28596
28610
|
description: "GoHighLevel MCP Server for Claude. 250 tools \u2014 full CRM, automation, marketing control, account-wide workflow audit, live funnel-capture verification, and the only programmatic GHL workflow builder, now multi-tenant across client accounts.",
|
|
28597
28611
|
main: "dist/index.js",
|
|
@@ -32369,7 +32383,7 @@ ${d.voice.samples.length ? `<h2>Voice</h2><ul>${d.voice.samples.map((s) => `<li>
|
|
|
32369
32383
|
</div>
|
|
32370
32384
|
${opts.screenshot ? `<h2>Their site, as rendered</h2><img class="shot" src="/brand/${encodeURIComponent(d.slug)}/screenshot.png" alt="Screenshot of ${esc5(d.name)}'s website">` : ""}
|
|
32371
32385
|
<h2>Make something in this brand</h2>
|
|
32372
|
-
<p class="small">Runs on <b>your own Claude</b>, on this computer
|
|
32386
|
+
<p class="small">Runs on <b>your own Claude</b>, on this computer, never our key. ${esc5(RUN_EXPECTATION)} The run keeps going if you close this tab. Write the headline and the points you want made, not instructions.</p>
|
|
32373
32387
|
<form id="make"><div class="two">
|
|
32374
32388
|
<div><label for="mk-medium">What</label><select id="mk-medium"><option value="deck">A deck</option><option value="site">A landing page</option><option value="report">A report</option></select></div>
|
|
32375
32389
|
<div><label for="mk-slides">Slides (a deck only)</label><input id="mk-slides" type="number" min="1" max="40" value="6"></div>
|
|
@@ -32398,6 +32412,7 @@ ${opts.dir ? `<p class="small">Stored at ${esc5(opts.dir)}</p>` : ""}
|
|
|
32398
32412
|
${foot(SHELL_JS(opts.seatToken ?? "") + `
|
|
32399
32413
|
(function(){
|
|
32400
32414
|
var poll=null,runId=null,started=0,ticker=null,passes=0;
|
|
32415
|
+
var EXPECT=${scriptJson(RUN_EXPECTATION)};
|
|
32401
32416
|
function stopPolling(){if(poll){clearInterval(poll);poll=null}if(ticker){clearInterval(ticker);ticker=null}}
|
|
32402
32417
|
function elapsed(ms){var s=Math.floor(ms/1000),m=Math.floor(s/60);s=s%60;return m?(m+"m "+(s<10?"0":"")+s+"s"):(s+"s")}
|
|
32403
32418
|
/* The run prints NOTHING while Claude writes - it answers in one go, so the log
|
|
@@ -32407,7 +32422,7 @@ function elapsed(ms){var s=Math.floor(ms/1000),m=Math.floor(s/60);s=s%60;return
|
|
|
32407
32422
|
from the child process, and it ticks every second, not every poll. */
|
|
32408
32423
|
function tick(){
|
|
32409
32424
|
if(!started)return;
|
|
32410
|
-
say("mk-status","Working on your Claude: "+elapsed(Date.now()-started)+" so far"+(passes?(", on pass "+(passes+1)):"")+". Claude writes the whole file in one answer, so nothing appears below until a pass finishes.
|
|
32425
|
+
say("mk-status","Working on your Claude: "+elapsed(Date.now()-started)+" so far"+(passes?(", on pass "+(passes+1)):"")+". Claude writes the whole file in one answer, so nothing appears below until a pass finishes. "+EXPECT+" Closing this tab does not stop it.");
|
|
32411
32426
|
}
|
|
32412
32427
|
function show(t){var el=document.getElementById("mk-log");el.hidden=false;el.textContent=t}
|
|
32413
32428
|
document.getElementById("make").addEventListener("submit",async function(e){
|
|
@@ -32453,6 +32468,7 @@ var esc5, STYLE, SHELL_JS, foot;
|
|
|
32453
32468
|
var init_brand_page = __esm({
|
|
32454
32469
|
"src/command-os/design/brand-page.ts"() {
|
|
32455
32470
|
"use strict";
|
|
32471
|
+
init_run_expectations();
|
|
32456
32472
|
init_fonts();
|
|
32457
32473
|
init_cockpit_shell();
|
|
32458
32474
|
init_script_json();
|
|
@@ -36536,7 +36552,7 @@ async function runDashboard(argv) {
|
|
|
36536
36552
|
}
|
|
36537
36553
|
const job = startDesignRun(checked.value);
|
|
36538
36554
|
res.writeHead(200, { "Content-Type": "application/json" });
|
|
36539
|
-
res.end(JSON.stringify({ ok: true, id: job.id, outDir: job.outDir, note:
|
|
36555
|
+
res.end(JSON.stringify({ ok: true, id: job.id, outDir: job.outDir, note: `Started on your own Claude. ${RUN_EXPECTATION} Poll /api/design/run?id= for progress.` }));
|
|
36540
36556
|
} catch (e) {
|
|
36541
36557
|
res.writeHead(400, { "Content-Type": "application/json" });
|
|
36542
36558
|
res.end(JSON.stringify({ ok: false, error: e.message }));
|
|
@@ -37294,6 +37310,7 @@ var init_dashboard = __esm({
|
|
|
37294
37310
|
init_claude_cli();
|
|
37295
37311
|
init_token_registry();
|
|
37296
37312
|
init_run_jobs();
|
|
37313
|
+
init_run_expectations();
|
|
37297
37314
|
init_stage_runner();
|
|
37298
37315
|
init_account_rules();
|
|
37299
37316
|
init_claude_call();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elitedcs/ghl-mcp",
|
|
3
|
-
"version": "3.83.
|
|
3
|
+
"version": "3.83.6",
|
|
4
4
|
"mcpName": "io.github.drjerryrelth/ghl-command",
|
|
5
5
|
"description": "GoHighLevel MCP Server for Claude. 250 tools — full CRM, automation, marketing control, account-wide workflow audit, live funnel-capture verification, and the only programmatic GHL workflow builder, now multi-tenant across client accounts.",
|
|
6
6
|
"main": "dist/index.js",
|