@growthub/cli 0.13.4 → 0.13.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/assets/worker-kits/growthub-custom-workspace-starter-v1/QUICKSTART.md +19 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/.env.example +8 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/README.md +4 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/integrations/nango/action/execute/route.js +60 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/integrations/nango/actions/route.js +50 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/integrations/nango/connect-session/route.js +68 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/integrations/nango/connection-status/route.js +56 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/integrations/nango/proxy/route.js +67 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/integrations/nango/status/route.js +50 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/metadata-graph/route.js +184 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/sandbox-run/route.js +25 -2
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/AgentSwarmPanel.jsx +326 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/DataModelShell.jsx +161 -50
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/NangoConnectionPanel.jsx +496 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/OrchestrationGraphEmptyCanvas.jsx +6 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/OrchestrationNodeConfigPanel.jsx +88 -1
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/OrchestrationRunTracePanel.jsx +41 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/WorkspaceGraphInspectorPanel.jsx +226 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/globals.css +120 -17
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/settings/integrations/nango/page.jsx +167 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/settings/integrations/page.jsx +1 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/workflows/WorkflowSurface.jsx +67 -11
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/workspace-builder.jsx +31 -10
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/workspace-rail.jsx +16 -14
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/adapters/env.js +7 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/adapters/integrations/nango/index.js +38 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/adapters/integrations/nango/nango-adapter.js +552 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/adapters/integrations/nango/nango-config-loader.js +202 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/adapters/integrations/nango/nango-schema.js +303 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/adapters/integrations/resolver-loader.js +49 -10
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/adapters/integrations/source-resolver-registry.js +1 -1
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/adapters/integrations/templates/nango.js +49 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/adapters/integrations/templates/template-registry.js +4 -2
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/orchestration-agent-swarm.js +923 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/orchestration-graph-runner.js +14 -1
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/orchestration-graph.js +218 -7
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/orchestration-run-console.js +28 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/orchestration-run-inputs.js +43 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/orchestration-run-trace.js +3 -1
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/sandbox-agent-auth.js +36 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/workspace-chart-values.js +53 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/workspace-data-model.js +2 -1
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/workspace-metadata-graph.js +646 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/workspace-metadata-selectors.js +249 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/workspace-metadata-store.js +1186 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/workspace-schema.js +102 -3
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/package.json +1 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/bundles/growthub-custom-workspace-starter-v1.json +1 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/kit.json +7 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/templates/seeded-configs/project-management.config.json +276 -0
- package/dist/index.js +127 -44
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -24679,6 +24679,33 @@ var TYPE_CONFIG = {
|
|
|
24679
24679
|
specialized_agents: { color: pc32.magenta, emoji: "\u{1F9E0}", label: "Specialized Agents" },
|
|
24680
24680
|
ops: { color: pc32.yellow, emoji: "\u2699\uFE0F ", label: "Ops" }
|
|
24681
24681
|
};
|
|
24682
|
+
var PROJECT_MANAGEMENT_TEMPLATE_ID = "project-management-workspace-template-v1";
|
|
24683
|
+
var PROJECT_MANAGEMENT_TEMPLATE = {
|
|
24684
|
+
id: PROJECT_MANAGEMENT_TEMPLATE_ID,
|
|
24685
|
+
version: "1.0.0",
|
|
24686
|
+
name: "Project Management Workspace Template",
|
|
24687
|
+
description: "Opinionated workspace template for API-backed project task workflows. Built from the blank workspace starter with a sanitized project-management seed.",
|
|
24688
|
+
type: "worker",
|
|
24689
|
+
family: "studio",
|
|
24690
|
+
executionMode: "export",
|
|
24691
|
+
activationModes: ["export"],
|
|
24692
|
+
bundleId: "growthub-custom-workspace-starter-v1",
|
|
24693
|
+
bundleVersion: "1.0.0",
|
|
24694
|
+
briefType: "workspace-template"
|
|
24695
|
+
};
|
|
24696
|
+
var RETIRED_CUSTOM_WORKSPACE_KIT_IDS = /* @__PURE__ */ new Set([
|
|
24697
|
+
"growthub-open-higgsfield-studio-v1",
|
|
24698
|
+
"growthub-geo-seo-v1",
|
|
24699
|
+
"growthub-postiz-social-v1",
|
|
24700
|
+
"growthub-open-montage-studio-v1",
|
|
24701
|
+
"growthub-ai-website-cloner-v1",
|
|
24702
|
+
"growthub-agency-portal-starter-v1",
|
|
24703
|
+
"growthub-creative-video-pipeline-v1",
|
|
24704
|
+
"growthub-twenty-crm-v1",
|
|
24705
|
+
"growthub-zernio-social-v1",
|
|
24706
|
+
"growthub-hyperframes-studio-v1",
|
|
24707
|
+
"growthub-video-use-studio-v1"
|
|
24708
|
+
]);
|
|
24682
24709
|
function displayTypeForFamily(family) {
|
|
24683
24710
|
if (family === "workflow" || family === "operator") return "specialized_agents";
|
|
24684
24711
|
if (family === "studio" || family === "ops") return family;
|
|
@@ -24701,6 +24728,37 @@ function truncate2(str, max) {
|
|
|
24701
24728
|
function displayKitName(name) {
|
|
24702
24729
|
return name.replace(/^Growthub Agent Worker Kit\s+[—-]\s+/u, "").trim();
|
|
24703
24730
|
}
|
|
24731
|
+
function isWorkspaceTemplateId(id) {
|
|
24732
|
+
const normalized = String(id || "").trim().toLowerCase();
|
|
24733
|
+
return normalized === PROJECT_MANAGEMENT_TEMPLATE_ID || normalized === "project-management" || normalized === "project-management-workspace";
|
|
24734
|
+
}
|
|
24735
|
+
function isRetiredCustomWorkspaceKit(id) {
|
|
24736
|
+
return RETIRED_CUSTOM_WORKSPACE_KIT_IDS.has(id);
|
|
24737
|
+
}
|
|
24738
|
+
function listKitAndWorkspaceTemplates() {
|
|
24739
|
+
const activeBundled = listBundledKits().filter((kit) => !RETIRED_CUSTOM_WORKSPACE_KIT_IDS.has(kit.id));
|
|
24740
|
+
const starter = activeBundled.find((kit) => kit.id === "growthub-custom-workspace-starter-v1");
|
|
24741
|
+
return [
|
|
24742
|
+
...starter ? [starter] : [],
|
|
24743
|
+
PROJECT_MANAGEMENT_TEMPLATE
|
|
24744
|
+
];
|
|
24745
|
+
}
|
|
24746
|
+
async function createProjectManagementWorkspace(opts) {
|
|
24747
|
+
const output = opts.out || (opts.yes ? "./project-management-workspace" : await p20.text({
|
|
24748
|
+
message: "Output directory",
|
|
24749
|
+
placeholder: "./project-management-workspace",
|
|
24750
|
+
defaultValue: "./project-management-workspace"
|
|
24751
|
+
}));
|
|
24752
|
+
if (p20.isCancel(output)) {
|
|
24753
|
+
p20.cancel("Cancelled.");
|
|
24754
|
+
process.exit(0);
|
|
24755
|
+
}
|
|
24756
|
+
await runStarterInit({
|
|
24757
|
+
out: String(output || "./project-management-workspace"),
|
|
24758
|
+
name: "Project Management Workspace",
|
|
24759
|
+
seedConfig: "project-management"
|
|
24760
|
+
});
|
|
24761
|
+
}
|
|
24704
24762
|
function hr4(width = 72) {
|
|
24705
24763
|
return pc32.dim("\u2500".repeat(width));
|
|
24706
24764
|
}
|
|
@@ -24789,7 +24847,7 @@ function printGroupedList(kits) {
|
|
|
24789
24847
|
const totalTypes = types.length;
|
|
24790
24848
|
console.log("");
|
|
24791
24849
|
console.log(
|
|
24792
|
-
pc32.bold("Growthub
|
|
24850
|
+
pc32.bold("Growthub Custom Workspaces") + pc32.dim(` ${kits.length} kit${kits.length !== 1 ? "s" : ""} \xB7 ${totalTypes} type${totalTypes !== 1 ? "s" : ""}`)
|
|
24793
24851
|
);
|
|
24794
24852
|
console.log(hr4());
|
|
24795
24853
|
for (const type of types) {
|
|
@@ -24810,10 +24868,10 @@ ${header} ${pc32.dim("(" + groupKits.length + ")")}`);
|
|
|
24810
24868
|
}
|
|
24811
24869
|
async function runInteractivePicker(opts) {
|
|
24812
24870
|
printPaperclipCliBanner();
|
|
24813
|
-
p20.intro(pc32.bold("Growthub
|
|
24871
|
+
p20.intro(pc32.bold("Growthub Custom Workspaces"));
|
|
24814
24872
|
let kits;
|
|
24815
24873
|
try {
|
|
24816
|
-
kits =
|
|
24874
|
+
kits = listKitAndWorkspaceTemplates();
|
|
24817
24875
|
} catch (err) {
|
|
24818
24876
|
p20.log.error("Failed to load kits: " + err.message);
|
|
24819
24877
|
process.exit(1);
|
|
@@ -24939,10 +24997,23 @@ async function runInteractivePicker(opts) {
|
|
|
24939
24997
|
return "done";
|
|
24940
24998
|
}
|
|
24941
24999
|
if (action === "inspect") {
|
|
25000
|
+
if (isWorkspaceTemplateId(selected.id)) {
|
|
25001
|
+
printKitCard(PROJECT_MANAGEMENT_TEMPLATE);
|
|
25002
|
+
console.log("");
|
|
25003
|
+
console.log(pc32.bold("Create command:"));
|
|
25004
|
+
console.log(" " + pc32.cyan("growthub starter init --out ./project-management-workspace --seed-config project-management"));
|
|
25005
|
+
p20.outro(pc32.dim("Done."));
|
|
25006
|
+
return "done";
|
|
25007
|
+
}
|
|
24942
25008
|
runInspect(selected.id, opts.out);
|
|
24943
25009
|
p20.outro(pc32.dim("Done."));
|
|
24944
25010
|
return "done";
|
|
24945
25011
|
}
|
|
25012
|
+
if (isWorkspaceTemplateId(selected.id)) {
|
|
25013
|
+
await createProjectManagementWorkspace(opts);
|
|
25014
|
+
p20.outro(pc32.green("Workspace template exported successfully."));
|
|
25015
|
+
return "done";
|
|
25016
|
+
}
|
|
24946
25017
|
await runDownload(selected.id, opts);
|
|
24947
25018
|
p20.outro(pc32.green("Kit exported successfully."));
|
|
24948
25019
|
return "done";
|
|
@@ -24956,6 +25027,10 @@ async function runDownload(kitId, opts) {
|
|
|
24956
25027
|
console.error(pc32.red("Unknown kit '" + kitId + "'.") + pc32.dim(" Run `growthub kit list` to browse."));
|
|
24957
25028
|
process.exit(1);
|
|
24958
25029
|
}
|
|
25030
|
+
if (isRetiredCustomWorkspaceKit(resolvedId)) {
|
|
25031
|
+
console.error(pc32.yellow("That custom workspace kit is deprecated.") + pc32.dim(" Use `growthub kit list --family studio` for the official workspace templates."));
|
|
25032
|
+
process.exit(1);
|
|
25033
|
+
}
|
|
24959
25034
|
if (resolvedId !== kitId) {
|
|
24960
25035
|
console.log(pc32.dim("Resolved '" + kitId + "' \u2192 " + resolvedId));
|
|
24961
25036
|
}
|
|
@@ -25030,15 +25105,9 @@ Examples:
|
|
|
25030
25105
|
$ growthub kit list # all kits grouped by type
|
|
25031
25106
|
$ growthub kit list --family studio # filter by family
|
|
25032
25107
|
$ growthub kit list --json # machine-readable output
|
|
25033
|
-
$ growthub kit download
|
|
25034
|
-
$ growthub kit download
|
|
25035
|
-
$ growthub kit
|
|
25036
|
-
$ growthub kit download growthub-open-higgsfield-studio-v1
|
|
25037
|
-
$ growthub kit download growthub-hyperframes-studio-v1
|
|
25038
|
-
$ growthub kit download growthub-video-use-studio-v1
|
|
25039
|
-
$ growthub kit inspect higgsfield-studio-v1
|
|
25040
|
-
$ growthub kit inspect hyperframes
|
|
25041
|
-
$ growthub kit inspect video-use
|
|
25108
|
+
$ growthub kit download growthub-custom-workspace-starter-v1
|
|
25109
|
+
$ growthub kit download project-management --out ./project-management-workspace
|
|
25110
|
+
$ growthub kit inspect growthub-custom-workspace-starter-v1
|
|
25042
25111
|
$ growthub kit families # show family taxonomy
|
|
25043
25112
|
|
|
25044
25113
|
Pipeline Kit Contract v1 (PIPELINE_KIT_CONTRACT_V1):
|
|
@@ -25063,7 +25132,7 @@ Examples:
|
|
|
25063
25132
|
$ growthub kit list --family studio,operator
|
|
25064
25133
|
$ growthub kit list --json
|
|
25065
25134
|
`).action((opts) => {
|
|
25066
|
-
let kits =
|
|
25135
|
+
let kits = listKitAndWorkspaceTemplates();
|
|
25067
25136
|
if (opts.family) {
|
|
25068
25137
|
const wanted = opts.family.split(",").map((f) => f.trim().toLowerCase());
|
|
25069
25138
|
kits = kits.filter((k) => wanted.includes(k.family));
|
|
@@ -25080,17 +25149,33 @@ Examples:
|
|
|
25080
25149
|
}
|
|
25081
25150
|
printGroupedList(kits);
|
|
25082
25151
|
});
|
|
25083
|
-
kit.command("inspect").description("Inspect a kit manifest (supports fuzzy slug)").argument("<kit-id>", "Kit id or slug
|
|
25152
|
+
kit.command("inspect").description("Inspect a kit manifest (supports fuzzy slug)").argument("<kit-id>", "Kit id or slug").option("--out <path>", "Override the export root for resolved paths").option("--json", "Output raw JSON").addHelpText("after", `
|
|
25084
25153
|
Examples:
|
|
25085
|
-
$ growthub kit inspect
|
|
25086
|
-
$ growthub kit inspect
|
|
25154
|
+
$ growthub kit inspect growthub-custom-workspace-starter-v1
|
|
25155
|
+
$ growthub kit inspect project-management --json
|
|
25087
25156
|
`).action((kitId, opts) => {
|
|
25088
25157
|
const resolvedId = fuzzyResolveKitId(kitId);
|
|
25158
|
+
if (!resolvedId && isWorkspaceTemplateId(kitId)) {
|
|
25159
|
+
if (opts.json) {
|
|
25160
|
+
console.log(JSON.stringify(PROJECT_MANAGEMENT_TEMPLATE, null, 2));
|
|
25161
|
+
return;
|
|
25162
|
+
}
|
|
25163
|
+
printKitCard(PROJECT_MANAGEMENT_TEMPLATE);
|
|
25164
|
+
console.log(pc32.bold("Create with:"));
|
|
25165
|
+
console.log(" " + pc32.cyan("growthub starter init --out ./project-management-workspace --seed-config project-management"));
|
|
25166
|
+
console.log("");
|
|
25167
|
+
return;
|
|
25168
|
+
}
|
|
25089
25169
|
if (!resolvedId) {
|
|
25090
25170
|
console.error(pc32.red("Unknown kit '" + kitId + "'.") + pc32.dim(" Run `growthub kit list` to browse."));
|
|
25091
25171
|
process.exitCode = 1;
|
|
25092
25172
|
return;
|
|
25093
25173
|
}
|
|
25174
|
+
if (isRetiredCustomWorkspaceKit(resolvedId)) {
|
|
25175
|
+
console.error(pc32.yellow("That custom workspace kit is deprecated.") + pc32.dim(" Use `growthub kit list --family studio` for the official workspace templates."));
|
|
25176
|
+
process.exitCode = 1;
|
|
25177
|
+
return;
|
|
25178
|
+
}
|
|
25094
25179
|
if (opts.json) {
|
|
25095
25180
|
console.log(JSON.stringify(inspectBundledKit(resolvedId, opts.out), null, 2));
|
|
25096
25181
|
return;
|
|
@@ -25100,23 +25185,29 @@ Examples:
|
|
|
25100
25185
|
kit.command("download").description("Download a kit \u2014 interactive if no kit-id given").argument("[kit-id]", "Kit id or fuzzy slug (omit for interactive picker)").option("--out <path>", "Output directory for the generated artifacts").option("--yes", "Skip confirmation prompt").addHelpText("after", `
|
|
25101
25186
|
Examples:
|
|
25102
25187
|
$ growthub kit download # interactive
|
|
25103
|
-
$ growthub kit download
|
|
25104
|
-
$ growthub kit download
|
|
25105
|
-
$ growthub kit download growthub-
|
|
25106
|
-
$ growthub kit download growthub-hyperframes-studio-v1
|
|
25107
|
-
$ growthub kit download studio-v1 --out ~/kits
|
|
25108
|
-
$ growthub kit download studio-v1 --yes
|
|
25188
|
+
$ growthub kit download growthub-custom-workspace-starter-v1
|
|
25189
|
+
$ growthub kit download project-management --out ./project-management-workspace
|
|
25190
|
+
$ growthub kit download growthub-custom-workspace-starter-v1 --out ./my-workspace
|
|
25109
25191
|
`).action(async (kitId, opts) => {
|
|
25110
25192
|
if (!kitId) {
|
|
25111
25193
|
await runInteractivePicker(opts);
|
|
25112
25194
|
return;
|
|
25113
25195
|
}
|
|
25114
25196
|
const resolvedId = fuzzyResolveKitId(kitId);
|
|
25197
|
+
if (!resolvedId && isWorkspaceTemplateId(kitId)) {
|
|
25198
|
+
await createProjectManagementWorkspace(opts);
|
|
25199
|
+
return;
|
|
25200
|
+
}
|
|
25115
25201
|
if (!resolvedId) {
|
|
25116
25202
|
console.error(pc32.red("Unknown kit '" + kitId + "'.") + pc32.dim(" Run `growthub kit list` to browse."));
|
|
25117
25203
|
process.exitCode = 1;
|
|
25118
25204
|
return;
|
|
25119
25205
|
}
|
|
25206
|
+
if (isRetiredCustomWorkspaceKit(resolvedId)) {
|
|
25207
|
+
console.error(pc32.yellow("That custom workspace kit is deprecated.") + pc32.dim(" Use `growthub kit list --family studio` for the official workspace templates."));
|
|
25208
|
+
process.exitCode = 1;
|
|
25209
|
+
return;
|
|
25210
|
+
}
|
|
25120
25211
|
if (opts.yes) {
|
|
25121
25212
|
const result = downloadBundledKit(resolvedId, opts.out, {
|
|
25122
25213
|
onProgress: renderProgressBar2
|
|
@@ -25149,7 +25240,7 @@ Examples:
|
|
|
25149
25240
|
kit.command("validate").description("Validate a kit directory against the kit contract schema").argument("<path>", "Path to the kit directory").addHelpText("after", `
|
|
25150
25241
|
Examples:
|
|
25151
25242
|
$ growthub kit validate ./my-kit
|
|
25152
|
-
$ growthub kit validate
|
|
25243
|
+
$ growthub kit validate ./my-workspace
|
|
25153
25244
|
`).action((kitPath) => {
|
|
25154
25245
|
const resolvedPath = path43.resolve(kitPath);
|
|
25155
25246
|
const result = validateKitDirectory(resolvedPath);
|
|
@@ -25173,7 +25264,7 @@ Examples:
|
|
|
25173
25264
|
});
|
|
25174
25265
|
kit.command("families").description("Show the kit family taxonomy with descriptions and examples").action(() => {
|
|
25175
25266
|
const defs = [
|
|
25176
|
-
{ family: "studio", tagline: "
|
|
25267
|
+
{ family: "studio", tagline: "Governed Workspace templates and app starters", surfaces: "workspace-app, data-model, workflows", example: "growthub-custom-workspace-starter-v1, project-management-workspace-template-v1" },
|
|
25177
25268
|
{ family: "workflow", tagline: "Multi-step pipeline operator across tools or APIs", surfaces: "browser-hosted (primary)", example: "creative-strategist-v1" },
|
|
25178
25269
|
{ family: "operator", tagline: "Domain vertical specialist \u2014 one provider, structured deliverables", surfaces: "browser-hosted", example: "growthub-email-marketing-v1" },
|
|
25179
25270
|
{ family: "ops", tagline: "Infrastructure / toolchain operator (provider optional)", surfaces: "local-fork (primary)", example: "(coming soon)" }
|
|
@@ -41823,7 +41914,7 @@ async function runCreateGovernedWorkspaceFlow(opts) {
|
|
|
41823
41914
|
...opts?.importOnly ? [] : [
|
|
41824
41915
|
{
|
|
41825
41916
|
value: "worker-kit",
|
|
41826
|
-
label: "\u{
|
|
41917
|
+
label: "\u{1F50E} Browse Custom Workspaces"
|
|
41827
41918
|
}
|
|
41828
41919
|
],
|
|
41829
41920
|
opts?.firstRun ? { value: "__full_menu", label: "\u{1F440} Open full discovery menu" } : { value: "__back", label: opts?.backLabel ?? "\u2190 Back" }
|
|
@@ -42045,7 +42136,7 @@ async function runDiscoveryHub(opts) {
|
|
|
42045
42136
|
"\u{1F916} Agent Harness: filter by type \u2014 Paperclip Local App (GTM/DX profiles), Open Agents (durable workflow orchestration), Qwen Code CLI, or T3 Code CLI (pingdotgg/t3code).",
|
|
42046
42137
|
"Custom AI Governed Workspace: start from a starter, repo, skills.sh skill, or worker kit.",
|
|
42047
42138
|
"\u{1F3D7}\uFE0F Workspace Operations: status, QA, persistent memory, deploy checks, upstream sync, and portal prep.",
|
|
42048
|
-
"\u{
|
|
42139
|
+
"\u{1F50E} Browse Custom Workspaces: choose an official governed workspace template.",
|
|
42049
42140
|
"\u2699\uFE0F Settings: GitHub, Fork Sync, workflows, templates, local models, service status, starter, fleet.",
|
|
42050
42141
|
` Locked state: ${workflowAccess.reason}.`,
|
|
42051
42142
|
"\u{1F500} Fork Sync Agent: register, track, and heal your forked worker kits \u2014 preserves all customisations while syncing to the latest upstream version.",
|
|
@@ -42224,7 +42315,7 @@ async function runDiscoveryHub(opts) {
|
|
|
42224
42315
|
const advancedChoice = await p42.select({
|
|
42225
42316
|
message: "Advanced \u2014 capabilities & admin",
|
|
42226
42317
|
options: [
|
|
42227
|
-
{ value: "kits", label: "\u{
|
|
42318
|
+
{ value: "kits", label: "\u{1F50E} Browse Custom Workspaces", hint: "Official governed workspace templates" },
|
|
42228
42319
|
{
|
|
42229
42320
|
value: "workflows",
|
|
42230
42321
|
label: workflowAccess.state === "ready" ? "\u{1F517} Workflows" : "\u{1F517} Workflows" + pc63.dim(" (locked)"),
|
|
@@ -42513,27 +42604,19 @@ loadPaperclipEnvFile(bootstrapOptions.config);
|
|
|
42513
42604
|
var bootstrapConfig = readConfig(resolveConfigPath(bootstrapOptions.config));
|
|
42514
42605
|
var surfaceRuntime = initializeSurfaceRuntimeContract(resolveSurfaceProfile(bootstrapConfig) ?? void 0);
|
|
42515
42606
|
program.name("growthub").description("Growthub CLI \u2014 setup, configure, and run your local Growthub instance").version(resolveCliVersion2()).addHelpText("after", `
|
|
42516
|
-
|
|
42607
|
+
Custom Workspaces:
|
|
42517
42608
|
|
|
42518
42609
|
Discovery:
|
|
42519
|
-
$ growthub kit
|
|
42520
|
-
$ growthub kit list
|
|
42521
|
-
|
|
42522
|
-
|
|
42523
|
-
|
|
42524
|
-
|
|
42525
|
-
$ growthub kit download Interactive (no arg = picker)
|
|
42526
|
-
$ growthub kit download higgsfield Fuzzy slug \u2014 resolves automatically
|
|
42527
|
-
$ growthub kit download hyperframes Hyperframes custom workspace
|
|
42528
|
-
$ growthub kit download postiz Postiz Social Media Studio
|
|
42529
|
-
$ growthub kit download zernio Zernio Social Media Studio (Postiz UI Shell + Zernio Engine)
|
|
42530
|
-
$ growthub kit download growthub-hyperframes-studio-v1
|
|
42531
|
-
$ growthub kit download higgsfield --yes Skip confirmation (scripting / agent use)
|
|
42532
|
-
$ growthub kit download growthub-open-higgsfield-studio-v1 --out ~/kits
|
|
42610
|
+
$ growthub kit Browse official workspace templates
|
|
42611
|
+
$ growthub kit list --family studio Show the official workspace templates
|
|
42612
|
+
|
|
42613
|
+
Create:
|
|
42614
|
+
$ growthub kit download growthub-custom-workspace-starter-v1 --out ./my-workspace
|
|
42615
|
+
$ growthub kit download project-management --out ./project-management-workspace
|
|
42533
42616
|
|
|
42534
42617
|
Inspect & validate:
|
|
42535
|
-
$ growthub kit inspect
|
|
42536
|
-
$ growthub kit inspect
|
|
42618
|
+
$ growthub kit inspect growthub-custom-workspace-starter-v1
|
|
42619
|
+
$ growthub kit inspect project-management --json
|
|
42537
42620
|
$ growthub kit validate ./path/to/kit
|
|
42538
42621
|
|
|
42539
42622
|
Fork Sync (keep your forked kits in sync):
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@growthub/cli",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.6",
|
|
4
4
|
"description": "CLI control plane for Growthub Local and Agent Workspace as Code: export, fork, inspect, operate, sync, and optionally activate governed AI workspaces.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|