decocms 0.16.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.
Files changed (111) hide show
  1. package/README.md +95 -0
  2. package/dist/cli.d.ts +3 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +373 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/commands/add/add.d.ts +7 -0
  7. package/dist/commands/add/add.d.ts.map +1 -0
  8. package/dist/commands/add/add.js +90 -0
  9. package/dist/commands/add/add.js.map +1 -0
  10. package/dist/commands/auth/login.d.ts +2 -0
  11. package/dist/commands/auth/login.d.ts.map +1 -0
  12. package/dist/commands/auth/login.js +125 -0
  13. package/dist/commands/auth/login.js.map +1 -0
  14. package/dist/commands/auth/whoami.d.ts +2 -0
  15. package/dist/commands/auth/whoami.d.ts.map +1 -0
  16. package/dist/commands/auth/whoami.js +51 -0
  17. package/dist/commands/auth/whoami.js.map +1 -0
  18. package/dist/commands/config/configure.d.ts +2 -0
  19. package/dist/commands/config/configure.d.ts.map +1 -0
  20. package/dist/commands/config/configure.js +51 -0
  21. package/dist/commands/config/configure.js.map +1 -0
  22. package/dist/commands/create/create.d.ts +3 -0
  23. package/dist/commands/create/create.d.ts.map +1 -0
  24. package/dist/commands/create/create.js +238 -0
  25. package/dist/commands/create/create.js.map +1 -0
  26. package/dist/commands/dev/dev.d.ts +8 -0
  27. package/dist/commands/dev/dev.d.ts.map +1 -0
  28. package/dist/commands/dev/dev.js +64 -0
  29. package/dist/commands/dev/dev.js.map +1 -0
  30. package/dist/commands/dev/link.d.ts +8 -0
  31. package/dist/commands/dev/link.d.ts.map +1 -0
  32. package/dist/commands/dev/link.js +124 -0
  33. package/dist/commands/dev/link.js.map +1 -0
  34. package/dist/commands/gen/gen.d.ts +11 -0
  35. package/dist/commands/gen/gen.d.ts.map +1 -0
  36. package/dist/commands/gen/gen.js +341 -0
  37. package/dist/commands/gen/gen.js.map +1 -0
  38. package/dist/commands/hosting/deploy.d.ts +19 -0
  39. package/dist/commands/hosting/deploy.d.ts.map +1 -0
  40. package/dist/commands/hosting/deploy.js +194 -0
  41. package/dist/commands/hosting/deploy.js.map +1 -0
  42. package/dist/commands/hosting/list.d.ts +6 -0
  43. package/dist/commands/hosting/list.d.ts.map +1 -0
  44. package/dist/commands/hosting/list.js +26 -0
  45. package/dist/commands/hosting/list.js.map +1 -0
  46. package/dist/commands/hosting/promote.d.ts +11 -0
  47. package/dist/commands/hosting/promote.d.ts.map +1 -0
  48. package/dist/commands/hosting/promote.js +153 -0
  49. package/dist/commands/hosting/promote.js.map +1 -0
  50. package/dist/commands/update/update.d.ts +4 -0
  51. package/dist/commands/update/update.d.ts.map +1 -0
  52. package/dist/commands/update/update.js +242 -0
  53. package/dist/commands/update/update.js.map +1 -0
  54. package/dist/commands/update/upgrade.d.ts +4 -0
  55. package/dist/commands/update/upgrade.d.ts.map +1 -0
  56. package/dist/commands/update/upgrade.js +157 -0
  57. package/dist/commands/update/upgrade.js.map +1 -0
  58. package/dist/lib/config.d.ts +309 -0
  59. package/dist/lib/config.d.ts.map +1 -0
  60. package/dist/lib/config.js +262 -0
  61. package/dist/lib/config.js.map +1 -0
  62. package/dist/lib/constants.d.ts +10 -0
  63. package/dist/lib/constants.d.ts.map +1 -0
  64. package/dist/lib/constants.js +16 -0
  65. package/dist/lib/constants.js.map +1 -0
  66. package/dist/lib/fs.d.ts +40 -0
  67. package/dist/lib/fs.d.ts.map +1 -0
  68. package/dist/lib/fs.js +162 -0
  69. package/dist/lib/fs.js.map +1 -0
  70. package/dist/lib/mcp.d.ts +34 -0
  71. package/dist/lib/mcp.d.ts.map +1 -0
  72. package/dist/lib/mcp.js +19 -0
  73. package/dist/lib/mcp.js.map +1 -0
  74. package/dist/lib/parse-binding-tool.d.ts +12 -0
  75. package/dist/lib/parse-binding-tool.d.ts.map +1 -0
  76. package/dist/lib/parse-binding-tool.js +15 -0
  77. package/dist/lib/parse-binding-tool.js.map +1 -0
  78. package/dist/lib/prompt-ide-setup.d.ts +27 -0
  79. package/dist/lib/prompt-ide-setup.d.ts.map +1 -0
  80. package/dist/lib/prompt-ide-setup.js +158 -0
  81. package/dist/lib/prompt-ide-setup.js.map +1 -0
  82. package/dist/lib/prompt-integrations.d.ts +7 -0
  83. package/dist/lib/prompt-integrations.d.ts.map +1 -0
  84. package/dist/lib/prompt-integrations.js +84 -0
  85. package/dist/lib/prompt-integrations.js.map +1 -0
  86. package/dist/lib/prompt-workspace.d.ts +2 -0
  87. package/dist/lib/prompt-workspace.d.ts.map +1 -0
  88. package/dist/lib/prompt-workspace.js +93 -0
  89. package/dist/lib/prompt-workspace.js.map +1 -0
  90. package/dist/lib/runtime.d.ts +5 -0
  91. package/dist/lib/runtime.d.ts.map +1 -0
  92. package/dist/lib/runtime.js +15 -0
  93. package/dist/lib/runtime.js.map +1 -0
  94. package/dist/lib/session.d.ts +39 -0
  95. package/dist/lib/session.d.ts.map +1 -0
  96. package/dist/lib/session.js +124 -0
  97. package/dist/lib/session.js.map +1 -0
  98. package/dist/lib/slugify.d.ts +13 -0
  99. package/dist/lib/slugify.d.ts.map +1 -0
  100. package/dist/lib/slugify.js +27 -0
  101. package/dist/lib/slugify.js.map +1 -0
  102. package/dist/lib/supabase.d.ts +5 -0
  103. package/dist/lib/supabase.d.ts.map +1 -0
  104. package/dist/lib/supabase.js +19 -0
  105. package/dist/lib/supabase.js.map +1 -0
  106. package/dist/lib/wrangler.d.ts +9 -0
  107. package/dist/lib/wrangler.d.ts.map +1 -0
  108. package/dist/lib/wrangler.js +118 -0
  109. package/dist/lib/wrangler.js.map +1 -0
  110. package/dist/rules/deco-chat.mdc +902 -0
  111. package/package.json +79 -0
package/README.md ADDED
@@ -0,0 +1,95 @@
1
+ # Deco CLI Reference
2
+
3
+ The Deco CLI is your interface for managing AI-native projects built with
4
+ [deco.chat](https://deco.chat).
5
+
6
+ Official docs: https://docs.deco.page/
7
+
8
+ ---
9
+
10
+ ## Authentication
11
+
12
+ | Command | Description |
13
+ | ------------- | ------------------------------------------------------------ |
14
+ | `deco login` | Authenticate and store an API token for subsequent commands. |
15
+ | `deco logout` | Remove local credentials and end the session. |
16
+ | `deco whoami` | Show the currently authenticated user and workspace. |
17
+
18
+ ---
19
+
20
+ ## Project Management
21
+
22
+ | Command | Description |
23
+ | ---------------- | --------------------------------------------------------------------------- |
24
+ | `deco create` | Scaffold a new deco project from an official template. |
25
+ | `deco configure` | Re-run setup for the current directory to change workspace or app settings. |
26
+
27
+ ---
28
+
29
+ ## Development
30
+
31
+ | Command | Description |
32
+ | --------------------------- | ---------------------------------------------------------------------------------------------------- |
33
+ | `npm run dev` | Preferred way to run local Worker and React frontend in watch mode. |
34
+ | `deco dev` | (Experimental) Future unified development command. |
35
+ | `deco link [build-command]` | Link your local dev server to a public domain. Supports `-p <port>`. Example: deco link npm run dev. |
36
+
37
+ ---
38
+
39
+ ## Type Generation
40
+
41
+ | Command | Description |
42
+ | --------------- | -------------------------------------------------------------------------- |
43
+ | `deco gen` | Generate types for external integrations (`deco.gen.ts`). |
44
+ | `deco gen:self` | Generate types for your own tools and workflows via local `/mcp` endpoint. |
45
+
46
+ ---
47
+
48
+ ## Hosting & Deployment
49
+
50
+ | Command | Description |
51
+ | ----------------------------- | -------------------------------------------------------------------------- |
52
+ | `npm run deploy` | Builds frontend and invokes `deco deploy`. Recommended for most use cases. |
53
+ | `deco deploy` | Bundle and deploy to Cloudflare Workers. Supports `-w`, `-a`, and `-l`. |
54
+ | `deco hosting list -w <name>` | List deployed apps in a specific workspace. |
55
+
56
+ ---
57
+
58
+ ## Integrations
59
+
60
+ | Command | Description |
61
+ | ---------- | ----------------------------------------- |
62
+ | `deco add` | Add and configure workspace integrations. |
63
+
64
+ ---
65
+
66
+ ## Maintenance
67
+
68
+ | Command | Description |
69
+ | ------------- | ------------------------------------------------ |
70
+ | `deco update` | Upgrade the CLI to the latest published version. |
71
+
72
+ ---
73
+
74
+ ## Getting Help
75
+
76
+ | Command | Description |
77
+ | ------------- | ------------------------------------------------ |
78
+ | `deco --help` | Display the full list of CLI commands and usage. |
79
+
80
+ ---
81
+
82
+ ## Configuration File
83
+
84
+ The CLI uses a local config file to store your workspace and app context. Set or
85
+ update this configuration anytime using: `deco configure`
86
+
87
+ ---
88
+
89
+ ## Environment Variables
90
+
91
+ | Variable | Purpose |
92
+ | --------------------- | --------------------------------------------------------------------- |
93
+ | `DECO_CHAT_API_TOKEN` | API token for authentication (set by `deco login`). |
94
+ | `DECO_CHAT_API_LOCAL` | Overrides API base URL for local development. |
95
+ | `DECO_SELF_URL` | Local MCP endpoint for `deco gen:self` to introspect workflows/tools. |
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,373 @@
1
+ #!/usr/bin/env node
2
+ // Check Node.js version requirement
3
+ import process from "node:process";
4
+ const MIN_NODE_VERSION = "18.0.0";
5
+ const currentNodeVersion = process.version.slice(1); // Remove 'v' prefix
6
+ function compareVersions(version1, version2) {
7
+ const v1parts = version1.split(".").map(Number);
8
+ const v2parts = version2.split(".").map(Number);
9
+ for (let i = 0; i < Math.max(v1parts.length, v2parts.length); i++) {
10
+ const v1part = v1parts[i] || 0;
11
+ const v2part = v2parts[i] || 0;
12
+ if (v1part < v2part)
13
+ return -1;
14
+ if (v1part > v2part)
15
+ return 1;
16
+ }
17
+ return 0;
18
+ }
19
+ if (compareVersions(currentNodeVersion, MIN_NODE_VERSION) < 0) {
20
+ console.error(`āŒ Error: Node.js ${MIN_NODE_VERSION} or higher is required.`);
21
+ console.error(` Current version: ${process.version}`);
22
+ console.error(` Please upgrade Node.js: https://nodejs.org/`);
23
+ process.exit(1);
24
+ }
25
+ // Suppress punycode deprecation warning from dependencies
26
+ process.removeAllListeners("warning");
27
+ process.on("warning", (warning) => {
28
+ if (warning.name === "DeprecationWarning" &&
29
+ warning.message.includes("punycode")) {
30
+ return; // Ignore punycode deprecation warnings
31
+ }
32
+ console.warn(warning.message);
33
+ });
34
+ import { Command } from "commander";
35
+ import { readFile, writeFile } from "fs/promises";
36
+ import { dirname, join } from "path";
37
+ import { fileURLToPath } from "url";
38
+ import { spawn } from "child_process";
39
+ import { deleteSession, readSession, setToken } from "./lib/session.js";
40
+ import { DECO_CHAT_API_LOCAL } from "./lib/constants.js";
41
+ import { getAppDomain, getConfig, readWranglerConfig, getLocal, setLocal, } from "./lib/config.js";
42
+ import { loginCommand } from "./commands/auth/login.js";
43
+ import { whoamiCommand } from "./commands/auth/whoami.js";
44
+ import { configureCommand } from "./commands/config/configure.js";
45
+ import { deploy } from "./commands/hosting/deploy.js";
46
+ import { listApps } from "./commands/hosting/list.js";
47
+ import { promoteApp } from "./commands/hosting/promote.js";
48
+ import { createCommand } from "./commands/create/create.js";
49
+ import { devCommand } from "./commands/dev/dev.js";
50
+ import { link } from "./commands/dev/link.js";
51
+ import { genEnv } from "./commands/gen/gen.js";
52
+ import { upgradeCommand } from "./commands/update/upgrade.js";
53
+ import { updateCommand } from "./commands/update/update.js";
54
+ import { addCommand } from "./commands/add/add.js";
55
+ import { detectRuntime } from "./lib/runtime.js";
56
+ const __filename = fileURLToPath(import.meta.url);
57
+ const __dirname = dirname(__filename);
58
+ // Read package.json for version
59
+ const packageJsonPath = join(__dirname, "../package.json");
60
+ const packageJson = JSON.parse(await readFile(packageJsonPath, "utf-8"));
61
+ // Login command implementation
62
+ const login = new Command("login")
63
+ .description("Log in to deco.chat and retrieve tokens for CLI usage.")
64
+ .action(async () => {
65
+ try {
66
+ await loginCommand();
67
+ console.log("āœ… Successfully logged in to deco.chat");
68
+ }
69
+ catch (error) {
70
+ console.error("āŒ Login failed:", error instanceof Error ? error.message : String(error));
71
+ process.exit(1);
72
+ }
73
+ });
74
+ // Placeholder for logout command implementation
75
+ const logout = new Command("logout")
76
+ .description("Log out of deco.chat and remove local session data.")
77
+ .action(async () => {
78
+ try {
79
+ await deleteSession();
80
+ console.log("Logged out successfully. Session data removed.");
81
+ }
82
+ catch (e) {
83
+ if (e instanceof Error) {
84
+ console.error("Failed to log out:", e.message);
85
+ }
86
+ else {
87
+ console.error("Failed to log out:", String(e));
88
+ }
89
+ }
90
+ });
91
+ // Whoami command implementation
92
+ const whoami = new Command("whoami")
93
+ .description("Print info about the current session.")
94
+ .action(whoamiCommand);
95
+ // Configure command implementation
96
+ const configure = new Command("configure")
97
+ .alias("config")
98
+ .description("Save configuration options for the current directory.")
99
+ .action(async () => {
100
+ try {
101
+ await configureCommand(getLocal());
102
+ }
103
+ catch (error) {
104
+ console.error("āŒ Configuration failed:", error instanceof Error ? error.message : String(error));
105
+ process.exit(1);
106
+ }
107
+ });
108
+ const hostingList = new Command("list")
109
+ .description("List all apps in the current workspace.")
110
+ .option("-w, --workspace <workspace>", "Workspace name")
111
+ .action(async (options) => {
112
+ try {
113
+ const session = await readSession();
114
+ const workspace = options.workspace || session?.workspace;
115
+ if (!workspace) {
116
+ console.error("āŒ No workspace specified. Use -w flag or run 'deco configure' first.");
117
+ process.exit(1);
118
+ }
119
+ await listApps({ workspace });
120
+ }
121
+ catch (error) {
122
+ console.error("āŒ Failed to list apps:", error instanceof Error ? error.message : String(error));
123
+ process.exit(1);
124
+ }
125
+ });
126
+ // Hosting deploy command implementation
127
+ const hostingDeploy = new Command("deploy")
128
+ .description("Deploy the current directory into the current workspace.")
129
+ .option("-w, --workspace <workspace>", "Workspace name")
130
+ .option("-a, --app <app>", "App name")
131
+ .option("-y, --yes", "Skip confirmation")
132
+ .option("-p, --public", "Make the app public in the registry")
133
+ .option("-f, --force", "Force the deployment even if there are breaking changes")
134
+ .option("--dry-run", "Write deploy manifest to local filesystem instead of deploying")
135
+ .argument("[cwd]", "Working directory")
136
+ .action(async (cwd, options) => {
137
+ try {
138
+ const config = await getConfig({
139
+ inlineOptions: options,
140
+ });
141
+ const wranglerConfig = await readWranglerConfig();
142
+ const assetsDirectory = wranglerConfig.assets?.directory;
143
+ const app = options.app ??
144
+ (typeof wranglerConfig.name === "string"
145
+ ? wranglerConfig.name
146
+ : "my-app");
147
+ await deploy({
148
+ ...config,
149
+ app,
150
+ skipConfirmation: options.yes,
151
+ cwd: cwd ?? process.cwd(),
152
+ unlisted: !options.public,
153
+ assetsDirectory,
154
+ force: options.force,
155
+ dryRun: options.dryRun,
156
+ });
157
+ }
158
+ catch (error) {
159
+ console.error("āŒ Deployment failed:", error instanceof Error ? error.message : JSON.stringify(error));
160
+ process.exit(1);
161
+ }
162
+ });
163
+ // Hosting promote command implementation
164
+ const hostingPromote = new Command("promote")
165
+ .description("Promote a deployment to an existing route pattern.")
166
+ .option("-w, --workspace <workspace>", "Workspace name")
167
+ .option("-a, --app <app>", "App name")
168
+ .option("-d, --deployment <deployment>", "Deployment ID")
169
+ .option("-r, --route <route>", "Route pattern (defaults to appName.deco.page)")
170
+ .option("-y, --yes", "Skip confirmation")
171
+ .action(async (options) => {
172
+ try {
173
+ const config = await getConfig({
174
+ inlineOptions: options,
175
+ });
176
+ let app = options.app;
177
+ if (!app) {
178
+ try {
179
+ const wranglerConfig = await readWranglerConfig();
180
+ app =
181
+ typeof wranglerConfig.name === "string"
182
+ ? wranglerConfig.name
183
+ : undefined;
184
+ }
185
+ catch {
186
+ // No wrangler config found, app will remain undefined
187
+ }
188
+ }
189
+ await promoteApp({
190
+ workspace: config.workspace,
191
+ local: config.local,
192
+ appSlug: app,
193
+ deploymentId: options.deployment,
194
+ routePattern: options.route,
195
+ skipConfirmation: options.yes,
196
+ });
197
+ }
198
+ catch (error) {
199
+ console.error("āŒ Promotion failed:", error instanceof Error ? error.message : String(error));
200
+ process.exit(1);
201
+ }
202
+ });
203
+ // Link command implementation
204
+ const linkCmd = new Command("link")
205
+ .description("Link the project to be accessed through a remote domain.")
206
+ .option("-p, --port <port>", "Port to link", parseInt)
207
+ .allowUnknownOption()
208
+ .action(async (options, cmd) => {
209
+ try {
210
+ const runCommand = cmd.args;
211
+ await link({
212
+ port: options.port,
213
+ onBeforeRegister: () => {
214
+ if (runCommand.length === 0) {
215
+ console.log("āš ļø No command provided. Tunnel will connect to existing service on port.");
216
+ return;
217
+ }
218
+ const [command, ...args] = runCommand;
219
+ console.log(`šŸ”— Starting command: ${command} ${args.join(" ")}`);
220
+ const childProcess = spawn(command, args, {
221
+ stdio: "inherit",
222
+ shell: true,
223
+ });
224
+ childProcess.on("error", (error) => {
225
+ console.error("āŒ Failed to start command:", error.message);
226
+ process.exit(1);
227
+ });
228
+ return childProcess;
229
+ },
230
+ });
231
+ }
232
+ catch (error) {
233
+ console.error("āŒ Link failed:", error instanceof Error ? error.message : String(error));
234
+ process.exit(1);
235
+ }
236
+ });
237
+ const upgrade = new Command("upgrade")
238
+ .description("Upgrade the deco CLI to the latest version.")
239
+ .action(upgradeCommand);
240
+ const update = new Command("update")
241
+ .description("Update Deco dependencies to their latest versions.")
242
+ .option("-y, --yes", "Skip confirmation prompts")
243
+ .action(async (options) => {
244
+ try {
245
+ await updateCommand({ yes: options.yes });
246
+ }
247
+ catch (error) {
248
+ console.error("āŒ Update failed:", error instanceof Error ? error.message : String(error));
249
+ process.exit(1);
250
+ }
251
+ });
252
+ // Dev command implementation
253
+ const dev = new Command("dev")
254
+ .description("Start a development server.")
255
+ .option("--clean-build-dir <directory>", "Clean the build directory before starting the development server", (directory) => {
256
+ return {
257
+ enabled: true,
258
+ directory,
259
+ };
260
+ })
261
+ .action((options) => {
262
+ devCommand({
263
+ cleanBuildDirectory: options.cleanBuildDir,
264
+ });
265
+ });
266
+ // Create command implementation
267
+ const create = new Command("create")
268
+ .description("Create a new project from a template.")
269
+ .argument("[project-name]", "Name of the project")
270
+ .action(async (projectName) => {
271
+ try {
272
+ const config = await getConfig().catch(() => ({}));
273
+ await createCommand(projectName, config);
274
+ }
275
+ catch (error) {
276
+ console.error("āŒ Project creation failed:", error instanceof Error ? error.message : String(error));
277
+ process.exit(1);
278
+ }
279
+ });
280
+ // Add command implementation
281
+ const add = new Command("add")
282
+ .description("Add integrations to the current project.")
283
+ .option("-w, --workspace <workspace>", "Workspace name")
284
+ .action(async (options) => {
285
+ try {
286
+ await addCommand({
287
+ workspace: options.workspace,
288
+ local: getLocal(),
289
+ });
290
+ }
291
+ catch (error) {
292
+ console.error("āŒ Failed to add integrations:", error instanceof Error ? error.message : String(error));
293
+ process.exit(1);
294
+ }
295
+ });
296
+ // Hosting parent command
297
+ const hosting = new Command("hosting")
298
+ .description("Manage hosting apps in a workspace.")
299
+ .addCommand(hostingList)
300
+ .addCommand(hostingDeploy)
301
+ .addCommand(hostingPromote);
302
+ const gen = new Command("gen")
303
+ .description("Generate the environment that will be used to run the app.")
304
+ .option("-s, --self <url>", "Useful to generate a SELF binding for own types based on local mcp server.")
305
+ .option("-o, --output <path>", "Output path for the generated environment file.")
306
+ .action(async (options) => {
307
+ try {
308
+ const wranglerConfig = await readWranglerConfig();
309
+ const config = await getConfig({});
310
+ const env = await genEnv({
311
+ workspace: config.workspace,
312
+ local: config.local,
313
+ bindings: config.bindings,
314
+ selfUrl: options.self ??
315
+ `https://${getAppDomain(config.workspace, wranglerConfig.name ?? "my-app")}/mcp`,
316
+ });
317
+ if (options.output) {
318
+ await writeFile(options.output, env);
319
+ }
320
+ else {
321
+ console.log(env);
322
+ }
323
+ }
324
+ catch (error) {
325
+ console.error("āŒ Failed to generate environment:", error instanceof Error ? error.message : String(error));
326
+ process.exit(1);
327
+ }
328
+ });
329
+ // Main CLI program
330
+ const program = new Command()
331
+ .name(packageJson.name)
332
+ .version(packageJson.version)
333
+ .description(packageJson.description)
334
+ .configureOutput({
335
+ writeOut: (str) => {
336
+ // Customize version output to include runtime info
337
+ if (str.includes(packageJson.version) &&
338
+ str.trim() === packageJson.version) {
339
+ const runtime = detectRuntime();
340
+ process.stdout.write(`${packageJson.version} (${runtime})\n`);
341
+ }
342
+ else {
343
+ process.stdout.write(str);
344
+ }
345
+ },
346
+ writeErr: (str) => process.stderr.write(str),
347
+ })
348
+ .option("-t, --token <token>", "Authentication token to use for API requests", (token) => {
349
+ setToken(token);
350
+ })
351
+ .option("-l, --local", `Deploy the app locally (Needs deco.chat running at ${DECO_CHAT_API_LOCAL})`, () => {
352
+ setLocal(true);
353
+ })
354
+ .addHelpText("after", () => {
355
+ const runtime = detectRuntime();
356
+ return `\nRuntime: ${runtime}`;
357
+ })
358
+ .addCommand(login)
359
+ .addCommand(logout)
360
+ .addCommand(whoami)
361
+ .addCommand(hosting)
362
+ .addCommand(hostingDeploy)
363
+ .addCommand(hostingPromote)
364
+ .addCommand(dev)
365
+ .addCommand(configure)
366
+ .addCommand(add)
367
+ .addCommand(upgrade)
368
+ .addCommand(update)
369
+ .addCommand(linkCmd)
370
+ .addCommand(gen)
371
+ .addCommand(create);
372
+ program.parse();
373
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ interface AddCommandOptions {
2
+ workspace?: string;
3
+ local?: boolean;
4
+ }
5
+ export declare function addCommand({ workspace, local }: AddCommandOptions): Promise<void>;
6
+ export {};
7
+ //# sourceMappingURL=add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/add/add.ts"],"names":[],"mappings":"AAWA,UAAU,iBAAiB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,UAAU,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,iBAAiB,iBA0GvE"}
@@ -0,0 +1,90 @@
1
+ import inquirer from "inquirer";
2
+ import { getConfig, readWranglerConfig, writeConfigFile, } from "../../lib/config.js";
3
+ import { promptIntegrations } from "../../lib/prompt-integrations.js";
4
+ import { readSession } from "../../lib/session.js";
5
+ import process from "node:process";
6
+ export async function addCommand({ workspace, local }) {
7
+ try {
8
+ // Check if user has a session
9
+ const session = await readSession();
10
+ if (!session) {
11
+ console.error("āŒ No session found. Please run 'deco login' first.");
12
+ return;
13
+ }
14
+ // Get current config
15
+ const config = await getConfig({
16
+ inlineOptions: { workspace, local },
17
+ }).catch(() => ({
18
+ workspace: workspace || session.workspace || "default",
19
+ bindings: [],
20
+ local: local || false,
21
+ enable_workflows: true,
22
+ }));
23
+ console.log(`šŸ“ Using workspace: ${config.workspace}`);
24
+ console.log("šŸ” Fetching available integrations...");
25
+ // Prompt user to select integrations
26
+ const selectedBindings = await promptIntegrations(config.local, config.workspace);
27
+ if (selectedBindings.length === 0) {
28
+ console.log("ā„¹ļø No integrations selected. Nothing to add.");
29
+ return;
30
+ }
31
+ console.log(`āœ… Selected ${selectedBindings.length} integration(s)`);
32
+ // Prompt for binding names for each integration
33
+ const newBindings = [];
34
+ for (const binding of selectedBindings) {
35
+ // Cast to the proper type since promptIntegrations always returns with integration_id
36
+ const integrationBinding = binding;
37
+ const { bindingName } = await inquirer.prompt([
38
+ {
39
+ type: "input",
40
+ name: "bindingName",
41
+ message: `Enter binding name for integration "${integrationBinding.integration_id}":`,
42
+ default: integrationBinding.name,
43
+ validate: (value) => {
44
+ if (!value.trim()) {
45
+ return "Binding name cannot be empty";
46
+ }
47
+ if (!/^[A-Z_][A-Z0-9_]*$/.test(value)) {
48
+ return "Binding name must be uppercase with underscores (e.g., MY_INTEGRATION)";
49
+ }
50
+ return true;
51
+ },
52
+ },
53
+ ]);
54
+ newBindings.push({
55
+ name: bindingName,
56
+ type: "mcp",
57
+ integration_id: integrationBinding.integration_id,
58
+ });
59
+ }
60
+ // Read current wrangler config and get existing bindings
61
+ const currentWranglerConfig = await readWranglerConfig();
62
+ const currentBindings = (currentWranglerConfig.deco?.bindings ||
63
+ []);
64
+ // Simply concat arrays (no deduplication)
65
+ const allBindings = [...currentBindings, ...newBindings];
66
+ // Update config with new bindings
67
+ const updatedConfig = {
68
+ ...config,
69
+ bindings: allBindings,
70
+ };
71
+ // Write updated config
72
+ await writeConfigFile(updatedConfig);
73
+ console.log(`āœ… Added ${newBindings.length} integration(s) successfully!`);
74
+ newBindings.forEach((binding) => {
75
+ const id = "integration_id" in binding
76
+ ? binding.integration_id
77
+ : "integration_name" in binding
78
+ ? binding.integration_name
79
+ : "unknown";
80
+ console.log(` - ${binding.name} (${id})`);
81
+ });
82
+ console.log("\nšŸ’” Run 'deco gen' to update your environment types.");
83
+ console.log("šŸŽ‰ Your integrations are ready to use!");
84
+ }
85
+ catch (error) {
86
+ console.error("āŒ Failed to add integrations:", error instanceof Error ? error.message : String(error));
87
+ process.exit(1);
88
+ }
89
+ }
90
+ //# sourceMappingURL=add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/add/add.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const loginCommand: () => Promise<void>;
2
+ //# sourceMappingURL=login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,YAAY,qBAkJxB,CAAC"}