wholestack 0.6.2 → 0.7.0
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/dist/{chunk-UBDW5N5G.js → chunk-NHABZZTE.js} +736 -186
- package/dist/cli.js +68 -2
- package/dist/index.d.ts +181 -13
- package/dist/index.js +1 -1
- package/package.json +3 -3
package/dist/cli.js
CHANGED
|
@@ -67,6 +67,7 @@ import {
|
|
|
67
67
|
rollbackDeployment,
|
|
68
68
|
runProver,
|
|
69
69
|
runRepoAuditStream,
|
|
70
|
+
runVolitionSubcommand,
|
|
70
71
|
saveKey,
|
|
71
72
|
searchLessons,
|
|
72
73
|
stateDir,
|
|
@@ -80,7 +81,7 @@ import {
|
|
|
80
81
|
webBaseUrl,
|
|
81
82
|
writeProjectLink,
|
|
82
83
|
writeWorkingTree
|
|
83
|
-
} from "./chunk-
|
|
84
|
+
} from "./chunk-NHABZZTE.js";
|
|
84
85
|
|
|
85
86
|
// src/cli.ts
|
|
86
87
|
import { createInterface } from "readline/promises";
|
|
@@ -872,13 +873,34 @@ ${c.bold("OPTIONS")}
|
|
|
872
873
|
--theme ${c.dim("<id>")} force a theme id
|
|
873
874
|
--style ${c.dim("<id>")} force a Launch Style id (e.g. mono-noir, voltage)
|
|
874
875
|
--color ${c.dim("<d|l>")} force dark or light
|
|
876
|
+
--tier ${c.dim("<t>")} app size: solo\xB7team\xB7enterprise ${c.dim("(default: inferred from the idea)")}
|
|
877
|
+
--feature ${c.dim("<f>")} force a feature on (repeatable); prefix ${c.dim("no-")} to force off
|
|
878
|
+
--mobile add the Capacitor store-shippable iOS/Android shell
|
|
879
|
+
--archetype ${c.dim("<a>")} pin the interior layout: analytics\xB7document-editor\xB7collaboration\xB7kanban\xB7calendar\xB7marketplace\xB7studio
|
|
880
|
+
--vibe ${c.dim("<v>")} look filter: cinematic-dark\xB7editorial-luxe\xB7warm-minimal\xB7bold-brutalist\xB7glass-futuristic\xB7vibrant-playful\xB7corporate-clean
|
|
875
881
|
--verbose stream the engine's build phases
|
|
876
882
|
-h, --help show this help
|
|
877
883
|
|
|
884
|
+
${c.bold("FEATURES")} ${c.dim("(for --feature)")}
|
|
885
|
+
${c.dim("socialAuth \xB7 multiTenant \xB7 billing \xB7 search \xB7 files \xB7 admin \xB7 compliance \xB7 infra \xB7 mobile \xB7 analytics")}
|
|
886
|
+
${c.dim("e.g. --tier solo --feature billing --feature no-infra (a lean app + payments, no terraform)")}
|
|
887
|
+
|
|
878
888
|
${c.bold("NOTES")}
|
|
879
889
|
\u2022 Delivering code requires a Wholestack membership and spends one build credit per
|
|
880
890
|
app. Run ${c.cyan("wholestack login")} first. ${c.dim("--boot is free but keeps no code.")}
|
|
881
891
|
\u2022 Exit code is 0 only when every requested app shipped.`;
|
|
892
|
+
var FEATURE_KEYS = [
|
|
893
|
+
"socialAuth",
|
|
894
|
+
"multiTenant",
|
|
895
|
+
"billing",
|
|
896
|
+
"search",
|
|
897
|
+
"files",
|
|
898
|
+
"admin",
|
|
899
|
+
"compliance",
|
|
900
|
+
"infra",
|
|
901
|
+
"mobile",
|
|
902
|
+
"analytics"
|
|
903
|
+
];
|
|
882
904
|
var KNOWN = /* @__PURE__ */ new Set([
|
|
883
905
|
"--out",
|
|
884
906
|
"--batch",
|
|
@@ -890,6 +912,11 @@ var KNOWN = /* @__PURE__ */ new Set([
|
|
|
890
912
|
"--theme",
|
|
891
913
|
"--style",
|
|
892
914
|
"--color",
|
|
915
|
+
"--tier",
|
|
916
|
+
"--feature",
|
|
917
|
+
"--mobile",
|
|
918
|
+
"--archetype",
|
|
919
|
+
"--vibe",
|
|
893
920
|
"--verbose",
|
|
894
921
|
"-h",
|
|
895
922
|
"--help"
|
|
@@ -959,6 +986,31 @@ function parseFlags(rest) {
|
|
|
959
986
|
else throw new Error("--color must be dark or light");
|
|
960
987
|
break;
|
|
961
988
|
}
|
|
989
|
+
case "--tier": {
|
|
990
|
+
const v = need("--tier").toLowerCase();
|
|
991
|
+
if (v !== "solo" && v !== "team" && v !== "enterprise")
|
|
992
|
+
throw new Error("--tier must be solo, team, or enterprise");
|
|
993
|
+
f.tier = v;
|
|
994
|
+
break;
|
|
995
|
+
}
|
|
996
|
+
case "--feature": {
|
|
997
|
+
const raw = need("--feature");
|
|
998
|
+
const off = raw.startsWith("no-");
|
|
999
|
+
const key = off ? raw.slice(3) : raw;
|
|
1000
|
+
if (!FEATURE_KEYS.includes(key))
|
|
1001
|
+
throw new Error(`unknown --feature "${raw}" (one of: ${FEATURE_KEYS.join(", ")}, optionally no-<feature>)`);
|
|
1002
|
+
(f.features ??= {})[key] = !off;
|
|
1003
|
+
break;
|
|
1004
|
+
}
|
|
1005
|
+
case "--mobile":
|
|
1006
|
+
f.mobile = true;
|
|
1007
|
+
break;
|
|
1008
|
+
case "--archetype":
|
|
1009
|
+
f.archetype = need("--archetype");
|
|
1010
|
+
break;
|
|
1011
|
+
case "--vibe":
|
|
1012
|
+
f.styleVibe = need("--vibe");
|
|
1013
|
+
break;
|
|
962
1014
|
default:
|
|
963
1015
|
if (a.startsWith("-") && !KNOWN.has(a)) throw new Error(`unknown flag: ${a}`);
|
|
964
1016
|
f.ideaParts.push(a);
|
|
@@ -1002,6 +1054,7 @@ async function buildOne(engine, idea, flags, outRoot, onPhase) {
|
|
|
1002
1054
|
}
|
|
1003
1055
|
return { idea, slug: slug2, ok: false, error: booted.error ?? "boot failed" };
|
|
1004
1056
|
}
|
|
1057
|
+
const appScope = flags.tier || flags.features ? { ...flags.tier ? { tier: flags.tier } : {}, ...flags.features ? { features: flags.features } : {} } : void 0;
|
|
1005
1058
|
const result = await httpBuild(
|
|
1006
1059
|
engine,
|
|
1007
1060
|
{
|
|
@@ -1012,6 +1065,10 @@ async function buildOne(engine, idea, flags, outRoot, onPhase) {
|
|
|
1012
1065
|
...flags.themeId ? { themeId: flags.themeId } : {},
|
|
1013
1066
|
...flags.styleId ? { styleId: flags.styleId } : {},
|
|
1014
1067
|
...flags.colorScheme ? { colorScheme: flags.colorScheme } : {},
|
|
1068
|
+
...appScope ? { appScope } : {},
|
|
1069
|
+
...flags.mobile ? { platform: "mobile" } : {},
|
|
1070
|
+
...flags.archetype ? { archetype: flags.archetype } : {},
|
|
1071
|
+
...flags.styleVibe ? { styleVibe: flags.styleVibe } : {},
|
|
1015
1072
|
lean: true
|
|
1016
1073
|
},
|
|
1017
1074
|
onPhase
|
|
@@ -1713,7 +1770,7 @@ function showPaywall(loggedIn, webUrl) {
|
|
|
1713
1770
|
}
|
|
1714
1771
|
row("");
|
|
1715
1772
|
row(c.dim("Free: make \xB7 edit \xB7 preview (watermarked)"));
|
|
1716
|
-
row(c.dim("
|
|
1773
|
+
row(c.dim("Starter $49/mo \xB7 Pro $99/mo \u2014 ship & own apps"));
|
|
1717
1774
|
row(c.cyan(`${webUrl.replace(/\/$/, "")}/pricing`));
|
|
1718
1775
|
line(" " + c.cyan("\u2570" + "\u2500".repeat(w) + "\u256F"));
|
|
1719
1776
|
line();
|
|
@@ -1824,6 +1881,13 @@ ${c.bold("Launch")} ${c.dim("(the studio's Launch HQ \u2014 go-to-market, in the
|
|
|
1824
1881
|
wholestack business [buildId] one workspace + its readiness scorecard
|
|
1825
1882
|
${c.dim("add --json for machine-readable output")}
|
|
1826
1883
|
|
|
1884
|
+
${c.bold("Operation Volition")} ${c.dim("(the autonomous operate-plane \u2014 a proof-gated crew RUNS the business)")}
|
|
1885
|
+
wholestack volition <name|projectId> [--live] hand a business to the crew (sandbox default)
|
|
1886
|
+
wholestack volition status [projectId] operator state + recent shifts
|
|
1887
|
+
wholestack volition actions [projectId] the action ledger (every move has a proof hash)
|
|
1888
|
+
wholestack volition run [projectId] run one crew cycle right now
|
|
1889
|
+
${c.dim("sandbox simulates external actions; --live goes real ($99/mo add-on, gated server-side)")}
|
|
1890
|
+
|
|
1827
1891
|
${c.bold("Prove gate (web2)")} ${c.dim("(deterministic \xB7 fail-closed \xB7 blocking exit code)")}
|
|
1828
1892
|
wholestack prove <dir> [--json] gate a checked-out repo (local lockstep mirror)
|
|
1829
1893
|
wholestack prove --remote --github o/r [--ref b] hosted, HMAC-signed verdict via /api/v1/prove
|
|
@@ -2554,6 +2618,8 @@ async function main() {
|
|
|
2554
2618
|
if (eyes !== null) exit(eyes);
|
|
2555
2619
|
const ops = await runOpsSubcommand(rawArgs);
|
|
2556
2620
|
if (ops !== null) exit(ops);
|
|
2621
|
+
const volition = await runVolitionSubcommand(rawArgs);
|
|
2622
|
+
if (volition !== null) exit(volition);
|
|
2557
2623
|
const skillsSub = await runSkillsSubcommand(rawArgs);
|
|
2558
2624
|
if (skillsSub !== null) exit(skillsSub);
|
|
2559
2625
|
const args = parse(rawArgs);
|
package/dist/index.d.ts
CHANGED
|
@@ -179,6 +179,12 @@ interface BuildResult {
|
|
|
179
179
|
* polls {@link pollProofStatus} to flip to the real verdict.
|
|
180
180
|
*/
|
|
181
181
|
proofPending?: boolean;
|
|
182
|
+
/**
|
|
183
|
+
* True when this was an UNHINGED build — ALL ShipGate proofs/gates were skipped. The verdict
|
|
184
|
+
* is emit+compile only (never proven); render it as "shipped UNVERIFIED", never a trust claim,
|
|
185
|
+
* and do NOT poll for a background re-prove (none is coming).
|
|
186
|
+
*/
|
|
187
|
+
unverified?: boolean;
|
|
182
188
|
themeId?: unknown;
|
|
183
189
|
fileCount?: number;
|
|
184
190
|
spec?: string | null;
|
|
@@ -362,11 +368,11 @@ declare function buildTools(ctx: ToolContext): {
|
|
|
362
368
|
githubRepo?: string | undefined;
|
|
363
369
|
gitUrl?: string | undefined;
|
|
364
370
|
installationId?: number | undefined;
|
|
365
|
-
source?: string | undefined;
|
|
366
371
|
sources?: {
|
|
367
372
|
name: string;
|
|
368
373
|
source: string;
|
|
369
374
|
}[] | undefined;
|
|
375
|
+
source?: string | undefined;
|
|
370
376
|
maxContracts?: number | undefined;
|
|
371
377
|
}, {
|
|
372
378
|
ok: false;
|
|
@@ -386,12 +392,12 @@ declare function buildTools(ctx: ToolContext): {
|
|
|
386
392
|
subject?: string | undefined;
|
|
387
393
|
findings?: {
|
|
388
394
|
title: string;
|
|
389
|
-
severity: "
|
|
395
|
+
severity: "high" | "low" | "info" | "critical" | "medium";
|
|
390
396
|
description?: string | undefined;
|
|
397
|
+
tool?: string | undefined;
|
|
391
398
|
category?: string | undefined;
|
|
392
399
|
location?: string | undefined;
|
|
393
400
|
recommendation?: string | undefined;
|
|
394
|
-
tool?: string | undefined;
|
|
395
401
|
}[] | undefined;
|
|
396
402
|
auditBundle?: any;
|
|
397
403
|
walletGuard?: any;
|
|
@@ -476,10 +482,30 @@ declare function buildTools(ctx: ToolContext): {
|
|
|
476
482
|
scope: "full" | "static" | "component" | "page";
|
|
477
483
|
buildModel: "zeta-g1" | "zeta-g1-max";
|
|
478
484
|
keep: boolean;
|
|
485
|
+
unhinged: boolean;
|
|
479
486
|
themeId?: "slate-minimal" | "clean-inter" | "friendly-nunito" | "geometric-jakarta" | "techno-mono" | undefined;
|
|
480
487
|
styleId?: string | undefined;
|
|
481
488
|
colorScheme?: "dark" | "light" | undefined;
|
|
482
|
-
|
|
489
|
+
platform?: "web" | "mobile" | undefined;
|
|
490
|
+
archetype?: "analytics" | "document-editor" | "collaboration" | "kanban" | "calendar" | "marketplace" | "studio" | undefined;
|
|
491
|
+
styleVibe?: "cinematic-dark" | "editorial-luxe" | "warm-minimal" | "bold-brutalist" | "glass-futuristic" | "vibrant-playful" | "corporate-clean" | undefined;
|
|
492
|
+
}, BuildResult | ({
|
|
493
|
+
verdict: string;
|
|
494
|
+
proofPending: boolean;
|
|
495
|
+
ok: boolean;
|
|
496
|
+
error?: string;
|
|
497
|
+
buildId?: unknown;
|
|
498
|
+
unverified?: boolean;
|
|
499
|
+
themeId?: unknown;
|
|
500
|
+
fileCount?: number;
|
|
501
|
+
spec?: string | null;
|
|
502
|
+
verifyErrors?: string[];
|
|
503
|
+
fileList?: (string | null | undefined)[];
|
|
504
|
+
paywalled?: boolean;
|
|
505
|
+
upgradeUrl?: string;
|
|
506
|
+
} & {
|
|
507
|
+
passportUrl: string;
|
|
508
|
+
}) | {
|
|
483
509
|
ok: boolean;
|
|
484
510
|
liveUrl: string | undefined;
|
|
485
511
|
buildId: string | undefined;
|
|
@@ -498,6 +524,30 @@ declare function buildTools(ctx: ToolContext): {
|
|
|
498
524
|
buildId?: unknown;
|
|
499
525
|
verdict?: "SHIP" | "NO_SHIP";
|
|
500
526
|
proofPending?: boolean;
|
|
527
|
+
unverified?: boolean;
|
|
528
|
+
themeId?: unknown;
|
|
529
|
+
fileCount?: number;
|
|
530
|
+
spec?: string | null;
|
|
531
|
+
verifyErrors?: string[];
|
|
532
|
+
fileList?: (string | null | undefined)[];
|
|
533
|
+
paywalled?: boolean;
|
|
534
|
+
upgradeUrl?: string;
|
|
535
|
+
liveUrl?: undefined;
|
|
536
|
+
files?: undefined;
|
|
537
|
+
loc?: undefined;
|
|
538
|
+
trust?: undefined;
|
|
539
|
+
note?: undefined;
|
|
540
|
+
} | {
|
|
541
|
+
delivered: DeliverResult;
|
|
542
|
+
dir: string;
|
|
543
|
+
installed: boolean;
|
|
544
|
+
nextStep: string;
|
|
545
|
+
verdict: string;
|
|
546
|
+
proofPending: boolean;
|
|
547
|
+
ok: boolean;
|
|
548
|
+
error?: string;
|
|
549
|
+
buildId?: unknown;
|
|
550
|
+
unverified?: boolean;
|
|
501
551
|
themeId?: unknown;
|
|
502
552
|
fileCount?: number;
|
|
503
553
|
spec?: string | null;
|
|
@@ -520,6 +570,7 @@ declare function buildTools(ctx: ToolContext): {
|
|
|
520
570
|
ok: boolean;
|
|
521
571
|
error?: string;
|
|
522
572
|
buildId?: unknown;
|
|
573
|
+
unverified?: boolean;
|
|
523
574
|
themeId?: unknown;
|
|
524
575
|
fileCount?: number;
|
|
525
576
|
spec?: string | null;
|
|
@@ -527,6 +578,7 @@ declare function buildTools(ctx: ToolContext): {
|
|
|
527
578
|
fileList?: (string | null | undefined)[];
|
|
528
579
|
paywalled?: boolean;
|
|
529
580
|
upgradeUrl?: string;
|
|
581
|
+
passportUrl: string;
|
|
530
582
|
liveUrl?: undefined;
|
|
531
583
|
files?: undefined;
|
|
532
584
|
loc?: undefined;
|
|
@@ -540,6 +592,7 @@ declare function buildTools(ctx: ToolContext): {
|
|
|
540
592
|
buildId?: unknown;
|
|
541
593
|
verdict?: "SHIP" | "NO_SHIP";
|
|
542
594
|
proofPending?: boolean;
|
|
595
|
+
unverified?: boolean;
|
|
543
596
|
themeId?: unknown;
|
|
544
597
|
fileCount?: number;
|
|
545
598
|
spec?: string | null;
|
|
@@ -560,6 +613,7 @@ declare function buildTools(ctx: ToolContext): {
|
|
|
560
613
|
ok: boolean;
|
|
561
614
|
error?: string;
|
|
562
615
|
buildId?: unknown;
|
|
616
|
+
unverified?: boolean;
|
|
563
617
|
themeId?: unknown;
|
|
564
618
|
fileCount?: number;
|
|
565
619
|
spec?: string | null;
|
|
@@ -567,17 +621,40 @@ declare function buildTools(ctx: ToolContext): {
|
|
|
567
621
|
fileList?: (string | null | undefined)[];
|
|
568
622
|
paywalled?: boolean;
|
|
569
623
|
upgradeUrl?: string;
|
|
624
|
+
passportUrl: string;
|
|
570
625
|
liveUrl?: undefined;
|
|
571
626
|
files?: undefined;
|
|
572
627
|
loc?: undefined;
|
|
573
628
|
trust?: undefined;
|
|
574
629
|
note?: undefined;
|
|
575
630
|
} | {
|
|
631
|
+
delivered: DeliverResult;
|
|
632
|
+
dir: string;
|
|
576
633
|
verdict: string;
|
|
577
634
|
proofPending: boolean;
|
|
578
635
|
ok: boolean;
|
|
579
636
|
error?: string;
|
|
580
637
|
buildId?: unknown;
|
|
638
|
+
unverified?: boolean;
|
|
639
|
+
themeId?: unknown;
|
|
640
|
+
fileCount?: number;
|
|
641
|
+
spec?: string | null;
|
|
642
|
+
verifyErrors?: string[];
|
|
643
|
+
fileList?: (string | null | undefined)[];
|
|
644
|
+
paywalled?: boolean;
|
|
645
|
+
upgradeUrl?: string;
|
|
646
|
+
liveUrl?: undefined;
|
|
647
|
+
files?: undefined;
|
|
648
|
+
loc?: undefined;
|
|
649
|
+
trust?: undefined;
|
|
650
|
+
note?: undefined;
|
|
651
|
+
} | {
|
|
652
|
+
verdict: string;
|
|
653
|
+
proofPending: boolean;
|
|
654
|
+
ok: boolean;
|
|
655
|
+
error?: string;
|
|
656
|
+
buildId?: unknown;
|
|
657
|
+
unverified?: boolean;
|
|
581
658
|
themeId?: unknown;
|
|
582
659
|
fileCount?: number;
|
|
583
660
|
spec?: string | null;
|
|
@@ -617,6 +694,97 @@ declare function buildTools(ctx: ToolContext): {
|
|
|
617
694
|
note: string;
|
|
618
695
|
error?: undefined;
|
|
619
696
|
}>;
|
|
697
|
+
launch_volition: ai.Tool<{
|
|
698
|
+
description?: string | undefined;
|
|
699
|
+
live?: boolean | undefined;
|
|
700
|
+
target?: string | undefined;
|
|
701
|
+
}, {
|
|
702
|
+
ok: boolean;
|
|
703
|
+
error: string;
|
|
704
|
+
} | {
|
|
705
|
+
activated?: boolean;
|
|
706
|
+
enabled?: boolean;
|
|
707
|
+
live?: boolean;
|
|
708
|
+
sandbox?: boolean;
|
|
709
|
+
firstRun?: {
|
|
710
|
+
runId: string;
|
|
711
|
+
summary?: string | null;
|
|
712
|
+
} | null;
|
|
713
|
+
error: string;
|
|
714
|
+
reason?: string;
|
|
715
|
+
checkoutPath?: string;
|
|
716
|
+
priceUsdCents?: number;
|
|
717
|
+
readiness?: {
|
|
718
|
+
inferenceReady?: boolean;
|
|
719
|
+
inferenceSource?: string | null;
|
|
720
|
+
};
|
|
721
|
+
signInUrl?: string;
|
|
722
|
+
ok: boolean;
|
|
723
|
+
status: number | undefined;
|
|
724
|
+
} | {
|
|
725
|
+
activated?: boolean;
|
|
726
|
+
enabled?: boolean;
|
|
727
|
+
live?: boolean;
|
|
728
|
+
sandbox?: boolean;
|
|
729
|
+
firstRun?: {
|
|
730
|
+
runId: string;
|
|
731
|
+
summary?: string | null;
|
|
732
|
+
} | null;
|
|
733
|
+
error?: string;
|
|
734
|
+
reason?: string;
|
|
735
|
+
checkoutPath?: string;
|
|
736
|
+
priceUsdCents?: number;
|
|
737
|
+
readiness?: {
|
|
738
|
+
inferenceReady?: boolean;
|
|
739
|
+
inferenceSource?: string | null;
|
|
740
|
+
};
|
|
741
|
+
signInUrl?: string;
|
|
742
|
+
ok: boolean;
|
|
743
|
+
projectId: string | undefined;
|
|
744
|
+
consoleUrl: string | undefined;
|
|
745
|
+
}>;
|
|
746
|
+
volition_status: ai.Tool<{
|
|
747
|
+
target?: string | undefined;
|
|
748
|
+
}, {
|
|
749
|
+
ok: boolean;
|
|
750
|
+
error: string;
|
|
751
|
+
status?: undefined;
|
|
752
|
+
} | {
|
|
753
|
+
ok: boolean;
|
|
754
|
+
error: string;
|
|
755
|
+
status: number | undefined;
|
|
756
|
+
} | {
|
|
757
|
+
operator?: {
|
|
758
|
+
enabled?: boolean;
|
|
759
|
+
sandbox?: boolean;
|
|
760
|
+
[k: string]: unknown;
|
|
761
|
+
};
|
|
762
|
+
agents?: Array<{
|
|
763
|
+
id: string;
|
|
764
|
+
name?: string;
|
|
765
|
+
}>;
|
|
766
|
+
billing?: {
|
|
767
|
+
entitled?: boolean;
|
|
768
|
+
inferenceReady?: boolean;
|
|
769
|
+
priceUsdCents?: number;
|
|
770
|
+
};
|
|
771
|
+
recentRuns?: Array<{
|
|
772
|
+
runId?: string;
|
|
773
|
+
status?: string;
|
|
774
|
+
trigger?: string;
|
|
775
|
+
summary?: string | null;
|
|
776
|
+
createdAt?: string;
|
|
777
|
+
}>;
|
|
778
|
+
actionCounts?: Record<string, number>;
|
|
779
|
+
metabolism?: {
|
|
780
|
+
factCount?: number;
|
|
781
|
+
topTopics?: string[];
|
|
782
|
+
};
|
|
783
|
+
error?: string;
|
|
784
|
+
ok: boolean;
|
|
785
|
+
projectId: string;
|
|
786
|
+
status?: undefined;
|
|
787
|
+
}>;
|
|
620
788
|
promote_app: ai.Tool<{
|
|
621
789
|
domain?: string | undefined;
|
|
622
790
|
buildId?: string | undefined;
|
|
@@ -649,13 +817,13 @@ declare function buildTools(ctx: ToolContext): {
|
|
|
649
817
|
sections: {
|
|
650
818
|
id: string;
|
|
651
819
|
title: string;
|
|
652
|
-
lane: string;
|
|
653
|
-
render: string;
|
|
654
|
-
summary: string;
|
|
655
820
|
items: {
|
|
656
821
|
label: string;
|
|
657
822
|
detail?: string | undefined;
|
|
658
823
|
}[];
|
|
824
|
+
summary: string;
|
|
825
|
+
lane: string;
|
|
826
|
+
render: string;
|
|
659
827
|
}[];
|
|
660
828
|
};
|
|
661
829
|
answers: {
|
|
@@ -782,8 +950,8 @@ declare function buildTools(ctx: ToolContext): {
|
|
|
782
950
|
error?: undefined;
|
|
783
951
|
}>;
|
|
784
952
|
send_launch_email: ai.Tool<{
|
|
785
|
-
subject: string;
|
|
786
953
|
body: string;
|
|
954
|
+
subject: string;
|
|
787
955
|
brandName?: string | undefined;
|
|
788
956
|
to?: string | undefined;
|
|
789
957
|
when?: string | undefined;
|
|
@@ -799,7 +967,6 @@ declare function buildTools(ctx: ToolContext): {
|
|
|
799
967
|
network: "meta" | "google" | "linkedin" | "tiktok" | "reddit";
|
|
800
968
|
objective: string;
|
|
801
969
|
adSet: {
|
|
802
|
-
budgetDaily: number;
|
|
803
970
|
audience: {
|
|
804
971
|
locations?: string[] | undefined;
|
|
805
972
|
ageMin?: number | undefined;
|
|
@@ -810,6 +977,7 @@ declare function buildTools(ctx: ToolContext): {
|
|
|
810
977
|
} & {
|
|
811
978
|
[k: string]: unknown;
|
|
812
979
|
};
|
|
980
|
+
budgetDaily: number;
|
|
813
981
|
optimizationGoal?: string | undefined;
|
|
814
982
|
};
|
|
815
983
|
name?: string | undefined;
|
|
@@ -851,13 +1019,13 @@ declare function buildTools(ctx: ToolContext): {
|
|
|
851
1019
|
section: {
|
|
852
1020
|
id: string;
|
|
853
1021
|
title: string;
|
|
854
|
-
lane: string;
|
|
855
|
-
render: string;
|
|
856
|
-
summary: string;
|
|
857
1022
|
items: {
|
|
858
1023
|
label: string;
|
|
859
1024
|
detail?: string | undefined;
|
|
860
1025
|
}[];
|
|
1026
|
+
summary: string;
|
|
1027
|
+
lane: string;
|
|
1028
|
+
render: string;
|
|
861
1029
|
};
|
|
862
1030
|
instruction: string;
|
|
863
1031
|
brief?: string | undefined;
|
|
@@ -956,8 +1124,8 @@ declare function buildTools(ctx: ToolContext): {
|
|
|
956
1124
|
}>;
|
|
957
1125
|
read_file: ai.Tool<{
|
|
958
1126
|
path: string;
|
|
959
|
-
offset?: number | undefined;
|
|
960
1127
|
limit?: number | undefined;
|
|
1128
|
+
offset?: number | undefined;
|
|
961
1129
|
}, {
|
|
962
1130
|
ok: boolean;
|
|
963
1131
|
path: string;
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wholestack",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Wholestack — a pro-grade conversational terminal agent for the Wholestack codegen engine. Talk to it in plain language: it writes ISL, generates full-stack or Solidity apps, and proves them with ShipGate. Browser login, membership-gated builds, slash commands, sessions, plan mode, diffs, MCP, plugins.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"bin": {
|
|
16
|
-
"wholestack": "
|
|
17
|
-
"zeta": "
|
|
16
|
+
"wholestack": "dist/cli.js",
|
|
17
|
+
"zeta": "dist/cli.js"
|
|
18
18
|
},
|
|
19
19
|
"keywords": [
|
|
20
20
|
"ai",
|