@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.
Files changed (52) hide show
  1. package/assets/worker-kits/growthub-custom-workspace-starter-v1/QUICKSTART.md +19 -0
  2. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/.env.example +8 -0
  3. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/README.md +4 -0
  4. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/integrations/nango/action/execute/route.js +60 -0
  5. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/integrations/nango/actions/route.js +50 -0
  6. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/integrations/nango/connect-session/route.js +68 -0
  7. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/integrations/nango/connection-status/route.js +56 -0
  8. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/integrations/nango/proxy/route.js +67 -0
  9. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/integrations/nango/status/route.js +50 -0
  10. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/metadata-graph/route.js +184 -0
  11. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/api/workspace/sandbox-run/route.js +25 -2
  12. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/AgentSwarmPanel.jsx +326 -0
  13. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/DataModelShell.jsx +161 -50
  14. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/NangoConnectionPanel.jsx +496 -0
  15. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/OrchestrationGraphEmptyCanvas.jsx +6 -0
  16. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/OrchestrationNodeConfigPanel.jsx +88 -1
  17. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/OrchestrationRunTracePanel.jsx +41 -0
  18. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/data-model/components/WorkspaceGraphInspectorPanel.jsx +226 -0
  19. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/globals.css +120 -17
  20. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/settings/integrations/nango/page.jsx +167 -0
  21. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/settings/integrations/page.jsx +1 -0
  22. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/workflows/WorkflowSurface.jsx +67 -11
  23. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/workspace-builder.jsx +31 -10
  24. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/app/workspace-rail.jsx +16 -14
  25. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/adapters/env.js +7 -0
  26. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/adapters/integrations/nango/index.js +38 -0
  27. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/adapters/integrations/nango/nango-adapter.js +552 -0
  28. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/adapters/integrations/nango/nango-config-loader.js +202 -0
  29. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/adapters/integrations/nango/nango-schema.js +303 -0
  30. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/adapters/integrations/resolver-loader.js +49 -10
  31. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/adapters/integrations/source-resolver-registry.js +1 -1
  32. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/adapters/integrations/templates/nango.js +49 -0
  33. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/adapters/integrations/templates/template-registry.js +4 -2
  34. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/orchestration-agent-swarm.js +923 -0
  35. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/orchestration-graph-runner.js +14 -1
  36. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/orchestration-graph.js +218 -7
  37. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/orchestration-run-console.js +28 -0
  38. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/orchestration-run-inputs.js +43 -0
  39. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/orchestration-run-trace.js +3 -1
  40. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/sandbox-agent-auth.js +36 -0
  41. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/workspace-chart-values.js +53 -0
  42. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/workspace-data-model.js +2 -1
  43. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/workspace-metadata-graph.js +646 -0
  44. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/workspace-metadata-selectors.js +249 -0
  45. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/workspace-metadata-store.js +1186 -0
  46. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/lib/workspace-schema.js +102 -3
  47. package/assets/worker-kits/growthub-custom-workspace-starter-v1/apps/workspace/package.json +1 -0
  48. package/assets/worker-kits/growthub-custom-workspace-starter-v1/bundles/growthub-custom-workspace-starter-v1.json +1 -0
  49. package/assets/worker-kits/growthub-custom-workspace-starter-v1/kit.json +7 -0
  50. package/assets/worker-kits/growthub-custom-workspace-starter-v1/templates/seeded-configs/project-management.config.json +276 -0
  51. package/dist/index.js +127 -44
  52. 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 Agent Worker Kits") + pc32.dim(` ${kits.length} kit${kits.length !== 1 ? "s" : ""} \xB7 ${totalTypes} type${totalTypes !== 1 ? "s" : ""}`)
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 Agent Worker Kits"));
24871
+ p20.intro(pc32.bold("Growthub Custom Workspaces"));
24814
24872
  let kits;
24815
24873
  try {
24816
- kits = listBundledKits();
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 higgsfield # fuzzy slug \u2014 resolves automatically
25034
- $ growthub kit download hyperframes # Hyperframes custom workspace
25035
- $ growthub kit download video-use # browser-use/video-use custom workspace
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 = listBundledKits();
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 (e.g. 'higgsfield', 'studio-v1')").option("--out <path>", "Override the export root for resolved paths").option("--json", "Output raw JSON").addHelpText("after", `
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 higgsfield-studio-v1
25086
- $ growthub kit inspect growthub-email-marketing-v1 --json
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 higgsfield # fuzzy slug
25104
- $ growthub kit download hyperframes # fuzzy slug
25105
- $ growthub kit download growthub-open-higgsfield-studio-v1
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 ~/kits/growthub-open-higgsfield-studio-v1
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: "AI generation studio backed by a local fork", surfaces: "local-fork, browser-hosted, desktop-app", example: "growthub-open-higgsfield-studio-v1, growthub-hyperframes-studio-v1, growthub-video-use-studio-v1, growthub-zernio-social-v1" },
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{1F9F0} Start from worker kit"
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{1F9F0} Browse Worker Kits: browse specialized agents and custom workspaces.",
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{1F9F0} Browse Worker Kits", hint: "Self-contained workspace environments for agents" },
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
- Worker Kits (agent execution environments):
42607
+ Custom Workspaces:
42517
42608
 
42518
42609
  Discovery:
42519
- $ growthub kit Interactive browser \u2014 pick, preview, download
42520
- $ growthub kit list All kits grouped by family (studio \xB7 workflow \xB7 operator \xB7 ops)
42521
- $ growthub kit list --family studio Filter by family
42522
- $ growthub kit families Show family taxonomy with descriptions
42523
-
42524
- Download:
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 higgsfield-studio-v1
42536
- $ growthub kit inspect growthub-email-marketing-v1 --json
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.4",
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": {