primitive-admin 1.0.5 → 1.0.7

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.
@@ -1,5 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from "commander";
3
+ import { readFileSync } from "fs";
4
+ import { fileURLToPath } from "url";
5
+ import { dirname, resolve } from "path";
3
6
  import { registerAuthCommands } from "../src/commands/auth.js";
4
7
  import { registerAppsCommands } from "../src/commands/apps.js";
5
8
  import { registerUsersCommands } from "../src/commands/users.js";
@@ -13,8 +16,12 @@ import { registerAnalyticsCommands } from "../src/commands/analytics.js";
13
16
  import { registerSyncCommands } from "../src/commands/sync.js";
14
17
  import { registerLlmCommands } from "../src/commands/llm.js";
15
18
  import { registerComparisonsCommands } from "../src/commands/comparisons.js";
19
+ import { registerGuidesCommands } from "../src/commands/guides.js";
16
20
  import { error } from "../src/lib/output.js";
17
21
  import { ApiError } from "../src/lib/api-client.js";
22
+ const __filename = fileURLToPath(import.meta.url);
23
+ const __dirname = dirname(__filename);
24
+ const pkg = JSON.parse(readFileSync(resolve(__dirname, "../../package.json"), "utf-8"));
18
25
  const program = new Command();
19
26
  program
20
27
  .name("primitive")
@@ -22,7 +29,7 @@ program
22
29
 
23
30
  Manage apps, users, integrations, prompts, workflows, and more from the command line.
24
31
  Supports TOML-based configuration sync for version-controlled app settings.`)
25
- .version("1.0.0")
32
+ .version(pkg.version)
26
33
  .addHelpText("after", `
27
34
  Examples:
28
35
  $ primitive login # Authenticate via browser OAuth
@@ -55,6 +62,7 @@ registerAnalyticsCommands(program);
55
62
  registerSyncCommands(program);
56
63
  registerLlmCommands(program);
57
64
  registerComparisonsCommands(program);
65
+ registerGuidesCommands(program);
58
66
  // Global error handler
59
67
  program.hook("preAction", () => {
60
68
  // Reset API client state before each command
@@ -1 +1 @@
1
- {"version":3,"file":"primitive.js","sourceRoot":"","sources":["../../bin/primitive.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC;;;4EAG6D,CAAC;KAC1E,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;CAiBvB,CAAC,CAAC;AAEH,8BAA8B;AAC9B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,4BAA4B,CAAC,OAAO,CAAC,CAAC;AACtC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACnC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACnC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,2BAA2B,CAAC,OAAO,CAAC,CAAC;AAErC,uBAAuB;AACvB,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;IAC7B,6CAA6C;AAC/C,CAAC,CAAC,CAAC;AAEH,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC7C,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;QAC5B,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnB,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YAC3B,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,8BAA8B,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"primitive.js","sourceRoot":"","sources":["../../bin/primitive.ts"],"names":[],"mappings":"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"}
@@ -42,9 +42,9 @@ Examples:
42
42
  // Create app
43
43
  apps
44
44
  .command("create")
45
- .description("Create a new app (super-admin only)")
45
+ .description("Create a new app")
46
46
  .argument("<name>", "App name")
47
- .option("--admin-email <email>", "Initial admin email (defaults to your email)")
47
+ .option("--admin-email <email>", "Initial admin email (super-admin only, defaults to your email)")
48
48
  .option("--json", "Output as JSON")
49
49
  .action(async (name, options) => {
50
50
  const client = new ApiClient();
@@ -1 +1 @@
1
- {"version":3,"file":"apps.js","sourceRoot":"","sources":["../../../src/commands/apps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAY,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EACL,OAAO,EACP,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,QAAQ,EAGR,IAAI,EACJ,OAAO,GACR,MAAM,kBAAkB,CAAC;AAE1B,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,yCAAyC,CAAC;SACtD,WAAW,CAAC,OAAO,EAAE;;;;;CAKzB,CAAC,CAAC;IAED,YAAY;IACZ,IAAI;SACD,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YAEnD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACf,OAAO;YACT,CAAC;YAED,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACvB,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CACT,WAAW,CAAC,QAAQ,EAAE;gBACpB,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE;gBAC7C,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;gBAC/B,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;aAChC,CAAC,CACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,aAAa;IACb,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,qCAAqC,CAAC;SAClD,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;SAC9B,MAAM,CAAC,uBAAuB,EAAE,8CAA8C,CAAC;SAC/E,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;QAEtC,IAAI,CAAC;YACH,MAAM,OAAO,GAAQ,EAAE,IAAI,EAAE,CAAC;YAC9B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,OAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;YACjD,CAAC;iBAAM,IAAI,WAAW,EAAE,KAAK,EAAE,CAAC;gBAC9B,OAAO,CAAC,iBAAiB,GAAG,WAAW,CAAC,KAAK,CAAC;YAChD,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAE/C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,CAAC;gBACb,OAAO;YACT,CAAC;YAED,OAAO,CAAC,gBAAgB,MAAM,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;YACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,kBAAkB;IAClB,IAAI;SACD,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,8BAA8B,CAAC;SAC3C,QAAQ,CAAC,UAAU,EAAE,4CAA4C,CAAC;SAClE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/B,MAAM,aAAa,GAAG,KAAK,IAAI,eAAe,EAAE,CAAC;QACjD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,KAAK,CAAC,yEAAyE,CAAC,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC5C,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC5B,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;aACvD,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC/B,OAAO;YACT,CAAC;YAED,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,aAAa,CAAC,CAAC;YAChD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAE/B,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,EAAE,CAAC;gBACV,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAChC,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;gBACvD,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAEvC,OAAO,EAAE,CAAC;gBACV,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACxB,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;gBACxD,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;gBAC/C,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBACpD,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAEpD,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBACnC,OAAO,EAAE,CAAC;oBACV,IAAI,CAAC,OAAO,CAAC,CAAC;oBACd,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACtC,QAAQ,CAAC,mBAAmB,EAAE,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;oBAC9E,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,aAAa;IACb,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,qBAAqB,CAAC;SAClC,QAAQ,CAAC,UAAU,EAAE,4CAA4C,CAAC;SAClE,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC;SACnC,MAAM,CAAC,eAAe,EAAE,0CAA0C,CAAC;SACnE,MAAM,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;SACtD,MAAM,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;SAClD,MAAM,CAAC,uBAAuB,EAAE,6BAA6B,CAAC;SAC9D,MAAM,CAAC,kBAAkB,EAAE,uCAAuC,CAAC;SACnE,MAAM,CAAC,qBAAqB,EAAE,0CAA0C,CAAC;SACzE,MAAM,CAAC,cAAc,EAAE,gDAAgD,CAAC;SACxE,MAAM,CAAC,oBAAoB,EAAE,8BAA8B,CAAC;SAC5D,MAAM,CAAC,0BAA0B,EAAE,yCAAyC,CAAC;SAC7E,MAAM,CAAC,2BAA2B,EAAE,2BAA2B,CAAC;SAChE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/B,MAAM,aAAa,GAAG,KAAK,IAAI,eAAe,EAAE,CAAC;QACjD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,KAAK,CAAC,yEAAyE,CAAC,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,oCAAoC;QACpC,MAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,IAAI,OAAO,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC9C,IAAI,OAAO,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC9C,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,QAAQ,KAAK,MAAM,CAAC;QAC1F,IAAI,OAAO,CAAC,OAAO;YAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACvD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,CAAC,kBAAkB,GAAG,OAAO,CAAC,WAAW,KAAK,MAAM,CAAC;QACnG,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC;QACvF,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,SAAS,KAAK,MAAM,CAAC;QAC7F,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,KAAK,MAAM,CAAC;QAC3E,IAAI,OAAO,CAAC,QAAQ;YAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC1D,IAAI,OAAO,CAAC,WAAW;YAAE,OAAO,CAAC,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAClH,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO,CAAC,oBAAoB,GAAG,OAAO,CAAC,eAAe,KAAK,MAAM,CAAC;QAE7G,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAEtE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,CAAC;gBACb,OAAO;YACT,CAAC;YAED,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,aAAa;IACb,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;SACxC,MAAM,CAAC,kBAAkB,EAAE,+CAA+C,CAAC;SAC3E,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,0CAA0C;QAC1C,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3C,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,wBAAwB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,mBAAmB;QACnB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,oDAAoD;YACpD,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;gBAChC,KAAK,CAAC,sCAAsC,OAAO,WAAW,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;gBACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,2CAA2C;YAC3C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;gBAClD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,wCAAwC;iBAClD;aACF,CAAC,CAAC;YACH,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;gBAC1B,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9B,OAAO,CAAC,QAAQ,OAAO,MAAM,KAAK,YAAY,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"apps.js","sourceRoot":"","sources":["../../../src/commands/apps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,353 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
2
+ import { homedir } from "os";
3
+ import { join, basename } from "path";
4
+ import { error, info, warn, formatTable, json, keyValue, } from "../lib/output.js";
5
+ const GUIDES_CACHE_DIR = process.env.PRIMITIVE_CONFIG_DIR
6
+ ? join(process.env.PRIMITIVE_CONFIG_DIR, "guides")
7
+ : join(homedir(), ".primitive", "guides");
8
+ const CACHE_META_FILE = join(GUIDES_CACHE_DIR, "cache-meta.json");
9
+ const GITHUB_RAW_BASE = "https://raw.githubusercontent.com/Primitive-Labs/primitive-docs/main/guides";
10
+ const CACHE_TTL_MS = 24 * 60 * 60 * 1000; // 24 hours
11
+ const CLIENT_PACKAGE_NAME = "js-bao-wss-client";
12
+ function detectClientVersion() {
13
+ const clientPkgPath = join(process.cwd(), "node_modules", CLIENT_PACKAGE_NAME, "package.json");
14
+ try {
15
+ if (existsSync(clientPkgPath)) {
16
+ const pkg = JSON.parse(readFileSync(clientPkgPath, "utf-8"));
17
+ const version = pkg.version;
18
+ const major = parseInt(version.split(".")[0], 10);
19
+ if (!isNaN(major)) {
20
+ return { major, full: version };
21
+ }
22
+ }
23
+ }
24
+ catch {
25
+ // Ignore errors
26
+ }
27
+ return null;
28
+ }
29
+ function resolveVersion(explicitVersion) {
30
+ const detected = detectClientVersion();
31
+ // 1. Explicit --version flag
32
+ if (explicitVersion !== undefined) {
33
+ const version = explicitVersion === "latest" ? "latest" : `v${explicitVersion}`;
34
+ return { version, source: "flag", clientVersion: detected?.full };
35
+ }
36
+ // 2. Detect from installed client
37
+ if (detected) {
38
+ return {
39
+ version: `v${detected.major}`,
40
+ source: "detected",
41
+ clientVersion: detected.full,
42
+ };
43
+ }
44
+ // 3. Default to latest (no client detected)
45
+ return {
46
+ version: "latest",
47
+ source: "default",
48
+ };
49
+ }
50
+ function formatClientVersion(info) {
51
+ if (info.clientVersion) {
52
+ return info.clientVersion;
53
+ }
54
+ return "not found";
55
+ }
56
+ function formatGuidesVersion(info) {
57
+ return info.version;
58
+ }
59
+ function getVersionCacheDir(version) {
60
+ return join(GUIDES_CACHE_DIR, version);
61
+ }
62
+ function getManifestPath(version) {
63
+ return join(getVersionCacheDir(version), "manifest.json");
64
+ }
65
+ function getGuidesCacheDir(version) {
66
+ return join(getVersionCacheDir(version), "guides");
67
+ }
68
+ function ensureCacheDir(version) {
69
+ const versionDir = getVersionCacheDir(version);
70
+ const guidesDir = getGuidesCacheDir(version);
71
+ if (!existsSync(versionDir)) {
72
+ mkdirSync(versionDir, { recursive: true });
73
+ }
74
+ if (!existsSync(guidesDir)) {
75
+ mkdirSync(guidesDir, { recursive: true });
76
+ }
77
+ }
78
+ function loadCacheMeta() {
79
+ try {
80
+ if (existsSync(CACHE_META_FILE)) {
81
+ return JSON.parse(readFileSync(CACHE_META_FILE, "utf-8"));
82
+ }
83
+ }
84
+ catch {
85
+ // Ignore parse errors
86
+ }
87
+ return {};
88
+ }
89
+ function saveCacheMeta(meta) {
90
+ if (!existsSync(GUIDES_CACHE_DIR)) {
91
+ mkdirSync(GUIDES_CACHE_DIR, { recursive: true });
92
+ }
93
+ writeFileSync(CACHE_META_FILE, JSON.stringify(meta, null, 2));
94
+ }
95
+ function isCacheExpired(fetchedAt) {
96
+ if (!fetchedAt)
97
+ return true;
98
+ const fetchedTime = new Date(fetchedAt).getTime();
99
+ return Date.now() - fetchedTime > CACHE_TTL_MS;
100
+ }
101
+ function getManifestUrl(version) {
102
+ return `${GITHUB_RAW_BASE}/${version}/guides.json`;
103
+ }
104
+ function getGuideUrl(version, fileName) {
105
+ return `${GITHUB_RAW_BASE}/${version}/${fileName}`;
106
+ }
107
+ async function fetchWithTimeout(url, timeoutMs = 10000) {
108
+ const controller = new AbortController();
109
+ const timeout = setTimeout(() => controller.abort(), timeoutMs);
110
+ try {
111
+ const response = await fetch(url, { signal: controller.signal });
112
+ return response;
113
+ }
114
+ finally {
115
+ clearTimeout(timeout);
116
+ }
117
+ }
118
+ async function fetchManifestForVersion(version, forceRefresh = false) {
119
+ ensureCacheDir(version);
120
+ const meta = loadCacheMeta();
121
+ const manifestPath = getManifestPath(version);
122
+ const cacheExpired = isCacheExpired(meta.manifestFetchedAt?.[version]);
123
+ const hasCachedManifest = existsSync(manifestPath);
124
+ // If cache is valid and not forcing refresh, use it
125
+ if (!forceRefresh && !cacheExpired && hasCachedManifest) {
126
+ try {
127
+ const manifest = JSON.parse(readFileSync(manifestPath, "utf-8"));
128
+ return { manifest, fromCache: true, stale: false };
129
+ }
130
+ catch {
131
+ // Cache corrupted, will fetch fresh
132
+ }
133
+ }
134
+ // Try to fetch from network
135
+ const manifestUrl = getManifestUrl(version);
136
+ try {
137
+ const response = await fetchWithTimeout(manifestUrl);
138
+ if (response.status === 404) {
139
+ return null; // Version doesn't exist
140
+ }
141
+ if (!response.ok) {
142
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
143
+ }
144
+ const manifest = await response.json();
145
+ // Save to cache
146
+ writeFileSync(manifestPath, JSON.stringify(manifest, null, 2));
147
+ meta.manifestFetchedAt = meta.manifestFetchedAt || {};
148
+ meta.manifestFetchedAt[version] = new Date().toISOString();
149
+ saveCacheMeta(meta);
150
+ return { manifest, fromCache: false, stale: false };
151
+ }
152
+ catch (err) {
153
+ // Network failed, try stale cache
154
+ if (hasCachedManifest) {
155
+ try {
156
+ const manifest = JSON.parse(readFileSync(manifestPath, "utf-8"));
157
+ return { manifest, fromCache: true, stale: true };
158
+ }
159
+ catch {
160
+ // Cache corrupted
161
+ }
162
+ }
163
+ throw new Error(`Failed to fetch guides manifest: ${err.message}`);
164
+ }
165
+ }
166
+ async function fetchManifest(versionInfo, forceRefresh = false) {
167
+ // Try the requested version first
168
+ const result = await fetchManifestForVersion(versionInfo.version, forceRefresh);
169
+ if (result) {
170
+ return { ...result, versionInfo };
171
+ }
172
+ // Version not found, fall back to latest (unless already trying latest)
173
+ if (versionInfo.version !== "latest") {
174
+ const fallbackResult = await fetchManifestForVersion("latest", forceRefresh);
175
+ if (fallbackResult) {
176
+ const fallbackInfo = {
177
+ version: "latest",
178
+ source: versionInfo.source,
179
+ clientVersion: versionInfo.clientVersion,
180
+ fallbackFrom: versionInfo.version,
181
+ };
182
+ return { ...fallbackResult, versionInfo: fallbackInfo };
183
+ }
184
+ }
185
+ throw new Error(`Failed to fetch guides manifest for ${versionInfo.version}`);
186
+ }
187
+ async function fetchGuide(guide, version, forceRefresh = false) {
188
+ ensureCacheDir(version);
189
+ const meta = loadCacheMeta();
190
+ const guideFileName = basename(guide.file);
191
+ const cachedPath = join(getGuidesCacheDir(version), guideFileName);
192
+ const fetchedAt = meta.guidesFetchedAt?.[version]?.[guide.topic];
193
+ const cacheExpired = isCacheExpired(fetchedAt);
194
+ const hasCachedGuide = existsSync(cachedPath);
195
+ // If cache is valid and not forcing refresh, use it
196
+ if (!forceRefresh && !cacheExpired && hasCachedGuide) {
197
+ try {
198
+ const content = readFileSync(cachedPath, "utf-8");
199
+ return { content, fromCache: true, stale: false };
200
+ }
201
+ catch {
202
+ // Cache corrupted, will fetch fresh
203
+ }
204
+ }
205
+ // Try to fetch from network
206
+ const guideUrl = getGuideUrl(version, guide.file);
207
+ try {
208
+ const response = await fetchWithTimeout(guideUrl);
209
+ if (!response.ok) {
210
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
211
+ }
212
+ const content = await response.text();
213
+ // Save to cache
214
+ writeFileSync(cachedPath, content);
215
+ meta.guidesFetchedAt = meta.guidesFetchedAt || {};
216
+ meta.guidesFetchedAt[version] = meta.guidesFetchedAt[version] || {};
217
+ meta.guidesFetchedAt[version][guide.topic] = new Date().toISOString();
218
+ saveCacheMeta(meta);
219
+ return { content, fromCache: false, stale: false };
220
+ }
221
+ catch (err) {
222
+ // Network failed, try stale cache
223
+ if (hasCachedGuide) {
224
+ try {
225
+ const content = readFileSync(cachedPath, "utf-8");
226
+ return { content, fromCache: true, stale: true };
227
+ }
228
+ catch {
229
+ // Cache corrupted
230
+ }
231
+ }
232
+ throw new Error(`Failed to fetch guide "${guide.topic}": ${err.message}`);
233
+ }
234
+ }
235
+ export function registerGuidesCommands(program) {
236
+ const guides = program
237
+ .command("guides")
238
+ .description("Access Primitive how-to guides for building apps")
239
+ .addHelpText("after", `
240
+ Examples:
241
+ $ primitive guides list # List available guides
242
+ $ primitive guides list --json # List as JSON for programmatic use
243
+ $ primitive guides get documents # Fetch and display the documents guide
244
+ $ primitive guides get workflows # Fetch and display the workflows guide
245
+ $ primitive guides list --version 1 # List guides for client v1
246
+
247
+ Versioning:
248
+ By default, guides are fetched for the detected ${CLIENT_PACKAGE_NAME} version.
249
+ Use --version to explicitly request a specific major version.
250
+ Falls back to 'latest' if the version is not found.
251
+
252
+ Cache:
253
+ Guides are cached locally for 24 hours at ~/.primitive/guides/
254
+ Use the cache location to search guides locally with grep/ripgrep.
255
+ `);
256
+ // List guides
257
+ guides
258
+ .command("list")
259
+ .description("List available guides")
260
+ .option("--json", "Output as JSON")
261
+ .option("--refresh", "Force refresh from network")
262
+ .option("--version <version>", "Fetch guides for a specific major version (e.g., 1, 2, or 'latest')")
263
+ .action(async (options) => {
264
+ try {
265
+ const requestedVersion = resolveVersion(options.version);
266
+ const { manifest, stale, versionInfo } = await fetchManifest(requestedVersion, options.refresh);
267
+ if (stale) {
268
+ warn("Using stale cache (network unavailable)");
269
+ }
270
+ if (options.json) {
271
+ json({
272
+ version: versionInfo.version,
273
+ versionSource: versionInfo.source,
274
+ guides: manifest.guides.map((g) => ({
275
+ topic: g.topic,
276
+ description: g.description,
277
+ keywords: g.keywords,
278
+ useCases: g.useCases,
279
+ concepts: g.concepts,
280
+ prerequisites: g.prerequisites,
281
+ relatedGuides: g.relatedGuides,
282
+ })),
283
+ });
284
+ return;
285
+ }
286
+ if (!manifest.guides || manifest.guides.length === 0) {
287
+ info("No guides available.");
288
+ return;
289
+ }
290
+ keyValue("Client version", formatClientVersion(versionInfo));
291
+ keyValue("Guides version", formatGuidesVersion(versionInfo));
292
+ console.log("");
293
+ console.log(formatTable(manifest.guides, [
294
+ { header: "TOPIC", key: "topic" },
295
+ { header: "DESCRIPTION", key: "description", width: 60 },
296
+ ]));
297
+ console.log("");
298
+ keyValue("Cache location", getVersionCacheDir(versionInfo.version));
299
+ info("Use 'primitive guides get <topic>' to fetch a guide.");
300
+ }
301
+ catch (err) {
302
+ error(err.message);
303
+ process.exit(1);
304
+ }
305
+ });
306
+ // Get a specific guide
307
+ guides
308
+ .command("get")
309
+ .description("Fetch and display a guide by topic")
310
+ .argument("<topic>", "Guide topic (e.g., documents, workflows, prompts)")
311
+ .option("--json", "Output metadata as JSON instead of content")
312
+ .option("--refresh", "Force refresh from network")
313
+ .option("--version <version>", "Fetch guides for a specific major version (e.g., 1, 2, or 'latest')")
314
+ .action(async (topic, options) => {
315
+ try {
316
+ const requestedVersion = resolveVersion(options.version);
317
+ const { manifest, stale: manifestStale, versionInfo } = await fetchManifest(requestedVersion, options.refresh);
318
+ const guide = manifest.guides.find((g) => g.topic.toLowerCase() === topic.toLowerCase());
319
+ if (!guide) {
320
+ const availableTopics = manifest.guides.map((g) => g.topic).join(", ");
321
+ error(`Guide "${topic}" not found. Available topics: ${availableTopics}`);
322
+ process.exit(1);
323
+ }
324
+ if (options.json) {
325
+ // Output just metadata
326
+ json({
327
+ version: versionInfo.version,
328
+ versionSource: versionInfo.source,
329
+ topic: guide.topic,
330
+ description: guide.description,
331
+ keywords: guide.keywords,
332
+ useCases: guide.useCases,
333
+ concepts: guide.concepts,
334
+ prerequisites: guide.prerequisites,
335
+ relatedGuides: guide.relatedGuides,
336
+ cacheLocation: join(getGuidesCacheDir(versionInfo.version), basename(guide.file)),
337
+ });
338
+ return;
339
+ }
340
+ const { content, stale: guideStale } = await fetchGuide(guide, versionInfo.version, options.refresh);
341
+ if (manifestStale || guideStale) {
342
+ warn("Using stale cache (network unavailable)");
343
+ }
344
+ // Print the guide content directly to stdout
345
+ console.log(content);
346
+ }
347
+ catch (err) {
348
+ error(err.message);
349
+ process.exit(1);
350
+ }
351
+ });
352
+ }
353
+ //# sourceMappingURL=guides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guides.js","sourceRoot":"","sources":["../../../src/commands/guides.ts"],"names":[],"mappings":"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"}
@@ -99,19 +99,38 @@ function serializePrompt(prompt) {
99
99
  };
100
100
  return TOML.stringify(data);
101
101
  }
102
- function serializeWorkflow(workflow, draft) {
102
+ function serializeWorkflow(workflow, draft, configs) {
103
+ // Find the active config or use the first one
104
+ const activeConfigId = workflow.activeConfigId;
105
+ const activeConfig = configs?.find((c) => c.configId === activeConfigId) || configs?.[0];
106
+ // Determine which steps to use (prefer config steps if non-empty, else draft steps)
107
+ const configSteps = activeConfig?.steps;
108
+ const draftSteps = draft?.steps;
109
+ const steps = (configSteps && configSteps.length > 0) ? configSteps : (draftSteps || []);
103
110
  const data = {
104
111
  workflow: {
105
112
  key: workflow.workflowKey,
106
113
  name: workflow.name,
107
114
  description: workflow.description,
108
115
  status: workflow.status,
116
+ activeConfigId: activeConfigId,
109
117
  perUserMaxRunning: workflow.perUserMaxRunning,
110
118
  perUserMaxQueued: workflow.perUserMaxQueued,
111
119
  dequeueOrder: workflow.dequeueOrder,
112
- inputSchema: draft?.inputSchema ? JSON.stringify(draft.inputSchema) : undefined,
120
+ // Schemas are at workflow level
121
+ inputSchema: workflow.inputSchema ? JSON.stringify(workflow.inputSchema) : undefined,
122
+ outputSchema: workflow.outputSchema ? JSON.stringify(workflow.outputSchema) : undefined,
113
123
  },
114
- steps: draft?.steps || [],
124
+ // Use active config steps, fall back to draft
125
+ steps,
126
+ // Include all configurations
127
+ configs: configs?.map((config) => ({
128
+ id: config.configId,
129
+ name: config.configName,
130
+ description: config.description,
131
+ status: config.status,
132
+ isActive: config.configId === activeConfigId,
133
+ })) || [],
115
134
  };
116
135
  return TOML.stringify(data);
117
136
  }
@@ -187,7 +206,27 @@ Directory Structure:
187
206
  // Fetch details for each entity
188
207
  const integrations = await Promise.all(integrationsResult.items.map((i) => client.getIntegration(resolvedAppId, i.integrationId)));
189
208
  const prompts = await Promise.all(promptsResult.items.map((p) => client.getPrompt(resolvedAppId, p.promptId)));
190
- const workflows = await Promise.all(workflowsResult.items.map((w) => client.getWorkflow(resolvedAppId, w.workflowId)));
209
+ const workflows = await Promise.all(workflowsResult.items.map(async (w) => {
210
+ const workflowData = await client.getWorkflow(resolvedAppId, w.workflowId);
211
+ // Fetch active config with steps if available
212
+ const activeConfigId = workflowData.workflow?.activeConfigId;
213
+ if (activeConfigId) {
214
+ try {
215
+ const activeConfig = await client.getWorkflowConfig(resolvedAppId, w.workflowId, activeConfigId);
216
+ // Replace the config in the configs array with the one that has steps
217
+ if (workflowData.configs && activeConfig) {
218
+ const configIndex = workflowData.configs.findIndex((c) => c.configId === activeConfigId);
219
+ if (configIndex >= 0) {
220
+ workflowData.configs[configIndex] = activeConfig;
221
+ }
222
+ }
223
+ }
224
+ catch {
225
+ // Ignore errors fetching config steps
226
+ }
227
+ }
228
+ return workflowData;
229
+ }));
191
230
  if (options.json) {
192
231
  json({ settings, integrations, prompts, workflows });
193
232
  return;
@@ -226,12 +265,13 @@ Directory Structure:
226
265
  }
227
266
  // Write workflows
228
267
  const workflowEntities = {};
229
- for (const { workflow, draft } of workflows) {
268
+ for (const { workflow, draft, configs } of workflows) {
230
269
  const filename = `${workflow.workflowKey}.toml`;
231
- writeFileSync(join(configDir, "workflows", filename), serializeWorkflow(workflow, draft));
270
+ writeFileSync(join(configDir, "workflows", filename), serializeWorkflow(workflow, draft, configs || []));
232
271
  workflowEntities[workflow.workflowKey] = {
233
272
  id: workflow.workflowId,
234
273
  modifiedAt: workflow.modifiedAt || new Date().toISOString(),
274
+ activeConfigId: workflow.activeConfigId,
235
275
  };
236
276
  info(` Wrote workflows/${filename}`);
237
277
  }
@@ -466,6 +506,7 @@ Directory Structure:
466
506
  const key = workflow.key || basename(file, ".toml");
467
507
  const steps = tomlData.steps || [];
468
508
  const existingId = syncState?.entities?.workflows?.[key]?.id;
509
+ const existingActiveConfigId = syncState?.entities?.workflows?.[key]?.activeConfigId;
469
510
  if (existingId) {
470
511
  // Update existing workflow
471
512
  changes.push({ type: "workflow", action: "update", key });
@@ -474,6 +515,7 @@ Directory Structure:
474
515
  ? undefined
475
516
  : syncState?.entities?.workflows?.[key]?.modifiedAt;
476
517
  try {
518
+ // Update workflow metadata and schemas
477
519
  const updated = await client.updateWorkflow(resolvedAppId, existingId, {
478
520
  name: workflow.name,
479
521
  description: workflow.description,
@@ -481,12 +523,22 @@ Directory Structure:
481
523
  perUserMaxRunning: workflow.perUserMaxRunning,
482
524
  perUserMaxQueued: workflow.perUserMaxQueued,
483
525
  dequeueOrder: workflow.dequeueOrder,
484
- }, expectedModifiedAt);
485
- // Update draft (no conflict detection - always overwrite)
486
- await client.updateWorkflowDraft(resolvedAppId, existingId, {
487
- steps,
488
526
  inputSchema: workflow.inputSchema ? JSON.parse(workflow.inputSchema) : null,
489
- });
527
+ outputSchema: workflow.outputSchema ? JSON.parse(workflow.outputSchema) : null,
528
+ }, expectedModifiedAt);
529
+ // Update active configuration steps (or draft for legacy)
530
+ if (existingActiveConfigId) {
531
+ await client.updateWorkflowConfig(resolvedAppId, existingId, existingActiveConfigId, {
532
+ steps,
533
+ });
534
+ }
535
+ else {
536
+ // Fallback to draft update for legacy workflows
537
+ await client.updateWorkflowDraft(resolvedAppId, existingId, {
538
+ steps,
539
+ inputSchema: workflow.inputSchema ? JSON.parse(workflow.inputSchema) : null,
540
+ });
541
+ }
490
542
  info(` Updated workflow: ${key}`);
491
543
  // Update sync state with new modifiedAt
492
544
  if (syncState?.entities?.workflows?.[key] && updated?.workflow?.modifiedAt) {
@@ -509,7 +561,7 @@ Directory Structure:
509
561
  }
510
562
  }
511
563
  else {
512
- // Create new workflow
564
+ // Create new workflow (automatically creates default config)
513
565
  changes.push({ type: "workflow", action: "create", key });
514
566
  if (!options.dryRun) {
515
567
  const created = await client.createWorkflow(resolvedAppId, {
@@ -518,12 +570,13 @@ Directory Structure:
518
570
  description: workflow.description,
519
571
  steps,
520
572
  inputSchema: workflow.inputSchema ? JSON.parse(workflow.inputSchema) : undefined,
573
+ outputSchema: workflow.outputSchema ? JSON.parse(workflow.outputSchema) : undefined,
521
574
  perUserMaxRunning: workflow.perUserMaxRunning,
522
575
  perUserMaxQueued: workflow.perUserMaxQueued,
523
576
  dequeueOrder: workflow.dequeueOrder,
524
577
  });
525
578
  info(` Created workflow: ${key}`);
526
- // Add new entity to sync state
579
+ // Add new entity to sync state (including activeConfigId)
527
580
  if (syncState && created?.workflow?.workflowId && created?.workflow?.modifiedAt) {
528
581
  if (!syncState.entities.workflows) {
529
582
  syncState.entities.workflows = {};
@@ -531,6 +584,7 @@ Directory Structure:
531
584
  syncState.entities.workflows[key] = {
532
585
  id: created.workflow.workflowId,
533
586
  modifiedAt: created.workflow.modifiedAt,
587
+ activeConfigId: created.workflow.activeConfigId,
534
588
  };
535
589
  }
536
590
  }