@wayai/cli 0.2.43 → 0.2.44

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.
@@ -0,0 +1,18 @@
1
+ /**
2
+ * wayai create-credential — create an organization credential (API key, token, or basic auth)
3
+ *
4
+ * Usage:
5
+ * wayai create-credential --name "openai-key" --type "Bearer Token"
6
+ * wayai create-credential --name "my-api" --type "Basic Auth" --org <uuid>
7
+ * echo "$SECRET" | wayai create-credential --name "openai-key" --type "Bearer Token" --stdin
8
+ */
9
+ interface ParsedArgs {
10
+ name: string | undefined;
11
+ type: string | undefined;
12
+ orgId: string | undefined;
13
+ description: string | undefined;
14
+ stdin: boolean;
15
+ }
16
+ export declare function parseArgs(args: string[]): ParsedArgs;
17
+ export declare function createCredentialCommand(args: string[]): Promise<void>;
18
+ export {};
@@ -0,0 +1,162 @@
1
+ /**
2
+ * wayai create-credential — create an organization credential (API key, token, or basic auth)
3
+ *
4
+ * Usage:
5
+ * wayai create-credential --name "openai-key" --type "Bearer Token"
6
+ * wayai create-credential --name "my-api" --type "Basic Auth" --org <uuid>
7
+ * echo "$SECRET" | wayai create-credential --name "openai-key" --type "Bearer Token" --stdin
8
+ */
9
+ import * as readline from 'node:readline';
10
+ import { requireAuth } from '../lib/auth.js';
11
+ import { ApiClient } from '../lib/api-client.js';
12
+ import { prompt, resolveOrganizationId } from '../lib/utils.js';
13
+ const VALID_AUTH_TYPES = ['API Key', 'Bearer Token', 'Basic Auth'];
14
+ export function parseArgs(args) {
15
+ let name;
16
+ let type;
17
+ let orgId;
18
+ let description;
19
+ let stdin = false;
20
+ for (let i = 0; i < args.length; i++) {
21
+ if (args[i] === '--name' && args[i + 1]) {
22
+ name = args[++i];
23
+ }
24
+ else if (args[i] === '--type' && args[i + 1]) {
25
+ type = args[++i];
26
+ }
27
+ else if (args[i] === '--org' && args[i + 1]) {
28
+ orgId = args[++i];
29
+ }
30
+ else if (args[i] === '--description' && args[i + 1]) {
31
+ description = args[++i];
32
+ }
33
+ else if (args[i] === '--stdin') {
34
+ stdin = true;
35
+ }
36
+ }
37
+ return { name, type, orgId, description, stdin };
38
+ }
39
+ /** Read a line from stdin with masked output (shows * for each character). */
40
+ function promptSecret(question) {
41
+ return new Promise((resolve) => {
42
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
43
+ // Mute output by replacing _writeToOutput
44
+ const originalWrite = rl._writeToOutput;
45
+ let firstWrite = true;
46
+ rl._writeToOutput = function (s) {
47
+ if (firstWrite) {
48
+ // Let the prompt question through
49
+ originalWrite.call(rl, s);
50
+ firstWrite = false;
51
+ }
52
+ else {
53
+ // Replace typed characters with *
54
+ originalWrite.call(rl, '*'.repeat(s.replace(/[\r\n]/g, '').length));
55
+ }
56
+ };
57
+ rl.question(question, (answer) => {
58
+ // Restore and print newline
59
+ rl._writeToOutput = originalWrite;
60
+ process.stdout.write('\n');
61
+ rl.close();
62
+ resolve(answer);
63
+ });
64
+ });
65
+ }
66
+ /** Read all of stdin as a single string (for piped input). */
67
+ function readStdin() {
68
+ return new Promise((resolve, reject) => {
69
+ let data = '';
70
+ process.stdin.setEncoding('utf-8');
71
+ process.stdin.on('data', (chunk) => { data += chunk; });
72
+ process.stdin.on('end', () => resolve(data.trim()));
73
+ process.stdin.on('error', reject);
74
+ });
75
+ }
76
+ export async function createCredentialCommand(args) {
77
+ const parsed = parseArgs(args);
78
+ if (!parsed.name) {
79
+ console.error('Missing required flag: --name <credential-name>');
80
+ console.error('Usage: wayai create-credential --name "openai-key" --type "Bearer Token"');
81
+ process.exit(1);
82
+ }
83
+ if (!parsed.type) {
84
+ console.error('Missing required flag: --type <auth-type>');
85
+ console.error(`Supported types: ${VALID_AUTH_TYPES.join(', ')}`);
86
+ process.exit(1);
87
+ }
88
+ if (!VALID_AUTH_TYPES.includes(parsed.type)) {
89
+ console.error(`Invalid authentication type: "${parsed.type}"`);
90
+ console.error(`Supported types: ${VALID_AUTH_TYPES.join(', ')}`);
91
+ process.exit(1);
92
+ }
93
+ const authType = parsed.type;
94
+ const { config, accessToken } = await requireAuth();
95
+ const client = new ApiClient({ apiUrl: config.api_url, accessToken });
96
+ const { organizationId } = await resolveOrganizationId(client, parsed.orgId);
97
+ // Collect secret(s) based on auth type
98
+ const secrets = {};
99
+ if (parsed.stdin) {
100
+ if (process.stdin.isTTY) {
101
+ console.error('--stdin requires piped input. Example: echo "$SECRET" | wayai create-credential --name "key" --type "Bearer Token" --stdin');
102
+ process.exit(1);
103
+ }
104
+ const input = await readStdin();
105
+ if (!input) {
106
+ console.error('No input received from stdin.');
107
+ process.exit(1);
108
+ }
109
+ switch (authType) {
110
+ case 'Bearer Token':
111
+ secrets.access_token = input;
112
+ break;
113
+ case 'API Key':
114
+ secrets.api_key = input;
115
+ break;
116
+ case 'Basic Auth': {
117
+ const colonIdx = input.indexOf(':');
118
+ if (colonIdx === -1) {
119
+ console.error('Basic Auth stdin format: username:password');
120
+ process.exit(1);
121
+ }
122
+ secrets.username = input.slice(0, colonIdx);
123
+ secrets.password = input.slice(colonIdx + 1);
124
+ break;
125
+ }
126
+ }
127
+ }
128
+ else {
129
+ // Interactive prompt with masked input
130
+ switch (authType) {
131
+ case 'Bearer Token':
132
+ secrets.access_token = await promptSecret('Enter access token: ');
133
+ break;
134
+ case 'API Key':
135
+ secrets.api_key = await promptSecret('Enter API key: ');
136
+ break;
137
+ case 'Basic Auth':
138
+ secrets.username = await prompt('Enter username: ');
139
+ secrets.password = await promptSecret('Enter password: ');
140
+ break;
141
+ }
142
+ // Validate secrets are not empty
143
+ for (const [key, value] of Object.entries(secrets)) {
144
+ if (!value) {
145
+ console.error(`${key} cannot be empty.`);
146
+ process.exit(1);
147
+ }
148
+ }
149
+ }
150
+ console.log(`Creating credential "${parsed.name}" (${authType})...`);
151
+ const result = await client.createOrgCredential({
152
+ organization_id: organizationId,
153
+ credential_display_name: parsed.name,
154
+ authentication_type: authType,
155
+ ...(parsed.description && { credential_description: parsed.description }),
156
+ ...secrets,
157
+ });
158
+ console.log(`\nCredential created: ${result.data.credential_display_name}`);
159
+ console.log(` ID: ${result.data.organization_credential_id}`);
160
+ console.log(` Type: ${result.data.authentication_type}`);
161
+ }
162
+ //# sourceMappingURL=create-credential.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-credential.js","sourceRoot":"","sources":["../../src/commands/create-credential.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * wayai create-project — create a new project in an organization
3
+ *
4
+ * Usage:
5
+ * wayai create-project --name "My Project"
6
+ * wayai create-project --name "My Project" --org <uuid>
7
+ */
8
+ interface ParsedArgs {
9
+ name: string | undefined;
10
+ orgId: string | undefined;
11
+ }
12
+ export declare function parseArgs(args: string[]): ParsedArgs;
13
+ export declare function createProjectCommand(args: string[]): Promise<void>;
14
+ export {};
@@ -0,0 +1,50 @@
1
+ /**
2
+ * wayai create-project — create a new project in an organization
3
+ *
4
+ * Usage:
5
+ * wayai create-project --name "My Project"
6
+ * wayai create-project --name "My Project" --org <uuid>
7
+ */
8
+ import { requireAuth } from '../lib/auth.js';
9
+ import { ApiClient } from '../lib/api-client.js';
10
+ import { writePartialRepoConfig } from '../lib/repo-config.js';
11
+ import { resolveOrganizationId } from '../lib/utils.js';
12
+ export function parseArgs(args) {
13
+ let name;
14
+ let orgId;
15
+ for (let i = 0; i < args.length; i++) {
16
+ if (args[i] === '--name' && args[i + 1]) {
17
+ name = args[++i];
18
+ }
19
+ else if (args[i] === '--org' && args[i + 1]) {
20
+ orgId = args[++i];
21
+ }
22
+ }
23
+ return { name, orgId };
24
+ }
25
+ export async function createProjectCommand(args) {
26
+ const parsed = parseArgs(args);
27
+ if (!parsed.name) {
28
+ console.error('Missing required flag: --name <project-name>');
29
+ console.error('Usage: wayai create-project --name "My Project" [--org <uuid>]');
30
+ process.exit(1);
31
+ }
32
+ const { config, accessToken } = await requireAuth();
33
+ const client = new ApiClient({ apiUrl: config.api_url, accessToken });
34
+ const { organizationId, organizationName } = await resolveOrganizationId(client, parsed.orgId);
35
+ console.log(`Creating project "${parsed.name}"...`);
36
+ const result = await client.createProject(organizationId, parsed.name);
37
+ const project = result.data[0];
38
+ // Update .wayai.yaml with the new project (preserve existing org info, clear hub)
39
+ const configPath = writePartialRepoConfig({
40
+ organization_id: organizationId,
41
+ organization_name: organizationName,
42
+ project_id: project.project_id,
43
+ project_name: project.project_name,
44
+ });
45
+ console.log(`\nProject created: ${project.project_name}`);
46
+ console.log(` ID: ${project.project_id}`);
47
+ console.log(`\nWrote ${configPath}`);
48
+ console.log('Create hub files in workspace/ and run `wayai push` to create a hub.');
49
+ }
50
+ //# sourceMappingURL=create-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-project.js","sourceRoot":"","sources":["../../src/commands/create-project.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAOxD,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,IAAI,IAAwB,CAAC;IAC7B,IAAI,KAAyB,CAAC;IAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACxC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACnB,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC9C,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAc;IACvD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC9D,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC;IACpD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IAEtE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAE/F,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC;IAEpD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/B,kFAAkF;IAClF,MAAM,UAAU,GAAG,sBAAsB,CAAC;QACxC,eAAe,EAAE,cAAc;QAC/B,iBAAiB,EAAE,gBAAgB;QACnC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,WAAW,UAAU,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;AACtF,CAAC"}
@@ -4,22 +4,12 @@
4
4
  * Interactive mode: prompts user to pick org → project → hub
5
5
  * Direct mode: --hub <uuid> resolves org/project info from the API
6
6
  */
7
- import * as readline from 'node:readline';
8
7
  import { requireAuth } from '../lib/auth.js';
9
8
  import { ApiClient } from '../lib/api-client.js';
10
- import { readRepoConfig, writeRepoConfig } from '../lib/repo-config.js';
9
+ import { readRepoConfig, readPartialRepoConfig, writeRepoConfig, writePartialRepoConfig } from '../lib/repo-config.js';
11
10
  import { refreshScaffold } from '../lib/scaffold.js';
12
11
  import { findGitRoot } from '../lib/workspace.js';
13
- const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
14
- function prompt(question) {
15
- const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
16
- return new Promise((resolve) => {
17
- rl.question(question, (answer) => {
18
- rl.close();
19
- resolve(answer.trim());
20
- });
21
- });
22
- }
12
+ import { UUID_RE, prompt } from '../lib/utils.js';
23
13
  export function parseArgs(args) {
24
14
  let hubId;
25
15
  let autoConfirm = false;
@@ -37,9 +27,12 @@ export function parseArgs(args) {
37
27
  export async function initCommand(args) {
38
28
  const { hubId: directHubId, autoConfirm } = parseArgs(args);
39
29
  // Warn if .wayai.yaml already exists
40
- const existing = readRepoConfig();
30
+ const existing = readRepoConfig() ?? readPartialRepoConfig();
41
31
  if (existing) {
42
- console.log(`Current scope: ${existing.hub_name || existing.hub_id} in ${existing.organization_name || existing.organization_id}`);
32
+ const scopeLabel = existing.hub_id
33
+ ? `${existing.hub_name || existing.hub_id} in ${existing.organization_name || existing.organization_id}`
34
+ : `${existing.project_name || existing.project_id} in ${existing.organization_name || existing.organization_id} (no hub)`;
35
+ console.log(`Current scope: ${scopeLabel}`);
43
36
  if (!autoConfirm) {
44
37
  const answer = await prompt('Overwrite? [y/N]: ');
45
38
  if (answer.toLowerCase() !== 'y') {
@@ -74,7 +67,11 @@ export async function initCommand(args) {
74
67
  console.warn(`Warning: failed to download scaffold files: ${err instanceof Error ? err.message : String(err)}`);
75
68
  }
76
69
  }
77
- console.log('Run `wayai pull` to fetch hub configuration.');
70
+ // Check if a hub was selected (full config) or just org+project (partial config)
71
+ const finalConfig = readRepoConfig();
72
+ if (finalConfig) {
73
+ console.log('Run `wayai pull` to fetch hub configuration.');
74
+ }
78
75
  }
79
76
  async function initDirect(client, hubId) {
80
77
  if (!UUID_RE.test(hubId)) {
@@ -137,68 +134,84 @@ async function initInteractive(client) {
137
134
  }
138
135
  selectedOrg = organizations[orgIdx];
139
136
  }
140
- // Step 2: Fetch all hubs and group by project
141
- console.log('Fetching hubs...');
142
- const { hubs } = await client.listHubs(selectedOrg.id);
143
- // Filter to preview hubs only (production hubs aren't tracked in repos)
144
- const previewHubs = hubs.filter((h) => h.hub_environment === 'preview');
145
- if (previewHubs.length === 0) {
146
- console.error('No preview hubs found. Create one in the WayAI platform first.');
137
+ // Step 2: Fetch projects directly (not derived from hubs supports empty projects)
138
+ console.log('Fetching projects...');
139
+ const { data: projectList } = await client.listProjects(selectedOrg.id);
140
+ if (projectList.length === 0) {
141
+ console.error('No projects found. Create one with `wayai create-project --name "..."` first.');
147
142
  process.exit(1);
148
143
  }
149
- // Group by project
150
- const projectMap = new Map();
151
- for (const hub of previewHubs) {
152
- let project = projectMap.get(hub.project_id);
153
- if (!project) {
154
- project = { id: hub.project_id, name: hub.project_name, hubs: [] };
155
- projectMap.set(hub.project_id, project);
156
- }
157
- project.hubs.push(hub);
158
- }
159
- const projects = Array.from(projectMap.values());
160
- // Step 3: Pick project (skip if only one)
161
144
  let selectedProject;
162
- if (projects.length === 1) {
163
- selectedProject = projects[0];
145
+ if (projectList.length === 1) {
146
+ selectedProject = { id: projectList[0].project_id, name: projectList[0].project_name };
164
147
  console.log(`Project: ${selectedProject.name}`);
165
148
  }
166
149
  else {
167
150
  console.log('\nProjects:');
168
- for (let i = 0; i < projects.length; i++) {
169
- console.log(` ${i + 1}. ${projects[i].name} (${projects[i].hubs.length} hub${projects[i].hubs.length !== 1 ? 's' : ''})`);
151
+ for (let i = 0; i < projectList.length; i++) {
152
+ console.log(` ${i + 1}. ${projectList[i].project_name}`);
170
153
  }
171
- const projAnswer = await prompt(`\nSelect project [1-${projects.length}]: `);
154
+ const projAnswer = await prompt(`\nSelect project [1-${projectList.length}]: `);
172
155
  const projIdx = parseInt(projAnswer, 10) - 1;
173
- if (isNaN(projIdx) || projIdx < 0 || projIdx >= projects.length) {
156
+ if (isNaN(projIdx) || projIdx < 0 || projIdx >= projectList.length) {
174
157
  console.error('Invalid selection.');
175
158
  process.exit(1);
176
159
  }
177
- selectedProject = projects[projIdx];
160
+ selectedProject = { id: projectList[projIdx].project_id, name: projectList[projIdx].project_name };
161
+ }
162
+ // Step 3: Fetch hubs for the selected project
163
+ console.log('Fetching hubs...');
164
+ const { hubs } = await client.listHubs(selectedOrg.id, selectedProject.id);
165
+ const previewHubs = hubs.filter((h) => h.hub_environment === 'preview');
166
+ // Step 4: Pick hub (or skip to create later via push)
167
+ if (previewHubs.length === 0) {
168
+ // No hubs — write partial config (org + project only)
169
+ const configPath = writePartialRepoConfig({
170
+ organization_id: selectedOrg.id,
171
+ organization_name: selectedOrg.name,
172
+ project_id: selectedProject.id,
173
+ project_name: selectedProject.name,
174
+ });
175
+ console.log(`\nWrote ${configPath} (no hub selected)`);
176
+ console.log('Create hub files in workspace/<project>/<hub>/hub.yaml and run `wayai push` to create the hub.');
177
+ return;
178
178
  }
179
- // Step 4: Pick hub
180
- const hubList = selectedProject.hubs;
181
179
  let selectedHub;
182
- if (hubList.length === 1) {
183
- selectedHub = hubList[0];
180
+ if (previewHubs.length === 1) {
181
+ // Auto-select single hub
182
+ selectedHub = previewHubs[0];
184
183
  console.log(`Hub: ${selectedHub.hub_name}`);
185
184
  }
186
185
  else {
186
+ // Show hubs with option 0 to skip
187
187
  console.log('\nHubs:');
188
- for (let i = 0; i < hubList.length; i++) {
189
- const h = hubList[i];
188
+ console.log(' 0. (new hub create via push later)');
189
+ for (let i = 0; i < previewHubs.length; i++) {
190
+ const h = previewHubs[i];
190
191
  const label = h.preview_label ? ` (${h.preview_label})` : h.branch_name ? ` [${h.branch_name}]` : '';
191
192
  console.log(` ${i + 1}. ${h.hub_name}${label}`);
192
193
  }
193
- const hubAnswer = await prompt(`\nSelect hub [1-${hubList.length}]: `);
194
- const hubIdx = parseInt(hubAnswer, 10) - 1;
195
- if (isNaN(hubIdx) || hubIdx < 0 || hubIdx >= hubList.length) {
194
+ const hubAnswer = await prompt(`\nSelect hub [0-${previewHubs.length}]: `);
195
+ const hubIdx = parseInt(hubAnswer, 10);
196
+ if (isNaN(hubIdx) || hubIdx < 0 || hubIdx > previewHubs.length) {
196
197
  console.error('Invalid selection.');
197
198
  process.exit(1);
198
199
  }
199
- selectedHub = hubList[hubIdx];
200
+ if (hubIdx === 0) {
201
+ // Skip hub — write partial config
202
+ const configPath = writePartialRepoConfig({
203
+ organization_id: selectedOrg.id,
204
+ organization_name: selectedOrg.name,
205
+ project_id: selectedProject.id,
206
+ project_name: selectedProject.name,
207
+ });
208
+ console.log(`\nWrote ${configPath} (no hub selected)`);
209
+ console.log('Create hub files in workspace/<project>/<hub>/hub.yaml and run `wayai push` to create the hub.');
210
+ return;
211
+ }
212
+ selectedHub = previewHubs[hubIdx - 1];
200
213
  }
201
- // Step 5: Write .wayai.yaml
214
+ // Step 5: Write .wayai.yaml with full config
202
215
  const configPath = writeRepoConfig({
203
216
  organization_id: selectedOrg.id,
204
217
  organization_name: selectedOrg.name,
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * wayai push [-y] — parse local files, diff remote, sync to preview
3
3
  *
4
- * Pushes the single hub specified in .wayai.yaml (hub_id).
4
+ * If .wayai.yaml has hub_id pushes to the existing hub.
5
+ * If .wayai.yaml has only org_id + project_id → creates the hub first, then pushes.
5
6
  */
6
7
  import { ApiClient } from '../lib/api-client.js';
7
8
  /**