@wayai/cli 0.1.1 → 0.2.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.
@@ -0,0 +1,7 @@
1
+ /**
2
+ * wayai init [org-name] — link this repo to a WayAI organization
3
+ *
4
+ * Creates .wayai.yaml at the git root with the selected organization.
5
+ * Also creates workspace/ directory if missing.
6
+ */
7
+ export declare function initCommand(args: string[]): Promise<void>;
@@ -0,0 +1,88 @@
1
+ /**
2
+ * wayai init [org-name] — link this repo to a WayAI organization
3
+ *
4
+ * Creates .wayai.yaml at the git root with the selected organization.
5
+ * Also creates workspace/ directory if missing.
6
+ */
7
+ import * as fs from 'node:fs';
8
+ import * as path from 'node:path';
9
+ import * as readline from 'node:readline';
10
+ import { requireAuth } from '../lib/auth.js';
11
+ import { ApiClient } from '../lib/api-client.js';
12
+ import { readRepoConfig, writeRepoConfig } from '../lib/repo-config.js';
13
+ import { findGitRoot } from '../lib/workspace.js';
14
+ function promptSelection(question, options) {
15
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
16
+ return new Promise((resolve) => {
17
+ console.log(question);
18
+ for (let i = 0; i < options.length; i++) {
19
+ console.log(` ${i + 1}. ${options[i]}`);
20
+ }
21
+ rl.question('Select [1]: ', (answer) => {
22
+ rl.close();
23
+ const num = parseInt(answer.trim(), 10);
24
+ if (isNaN(num) || num < 1 || num > options.length) {
25
+ resolve(0); // default to first
26
+ }
27
+ else {
28
+ resolve(num - 1);
29
+ }
30
+ });
31
+ });
32
+ }
33
+ export async function initCommand(args) {
34
+ const gitRoot = findGitRoot();
35
+ if (!gitRoot) {
36
+ console.error('Not inside a git repository. Run `git init` first.');
37
+ process.exit(1);
38
+ }
39
+ // Check for existing config
40
+ const existing = readRepoConfig(gitRoot);
41
+ if (existing) {
42
+ console.log(`Already initialized: organization "${existing.organization}"`);
43
+ console.log('To re-initialize, delete .wayai.yaml and run again.');
44
+ return;
45
+ }
46
+ const { config, accessToken } = await requireAuth();
47
+ const client = new ApiClient({ apiUrl: config.api_url, accessToken });
48
+ console.log('Fetching organizations...');
49
+ const { organizations } = await client.organizations();
50
+ if (organizations.length === 0) {
51
+ console.error('No organizations found. Create one at platform.wayai.pro first.');
52
+ process.exit(1);
53
+ }
54
+ let selectedOrg;
55
+ // If arg provided, match by name
56
+ const argName = args.find((a) => !a.startsWith('-'));
57
+ if (argName) {
58
+ const match = organizations.find((org) => org.name.toLowerCase() === argName.toLowerCase());
59
+ if (!match) {
60
+ console.error(`Organization "${argName}" not found. Available:`);
61
+ for (const org of organizations) {
62
+ console.error(` ${org.name}`);
63
+ }
64
+ process.exit(1);
65
+ }
66
+ selectedOrg = match;
67
+ }
68
+ else if (organizations.length === 1) {
69
+ selectedOrg = organizations[0];
70
+ console.log(`Using organization: ${selectedOrg.name}`);
71
+ }
72
+ else {
73
+ const idx = await promptSelection('Select an organization:', organizations.map((o) => o.name));
74
+ selectedOrg = organizations[idx];
75
+ }
76
+ // Write .wayai.yaml
77
+ const configPath = writeRepoConfig({ organization: selectedOrg.name }, gitRoot);
78
+ console.log(`Wrote ${configPath}`);
79
+ // Create workspace/ if missing
80
+ const workspaceDir = path.join(gitRoot, 'workspace');
81
+ if (!fs.existsSync(workspaceDir)) {
82
+ fs.mkdirSync(workspaceDir, { recursive: true });
83
+ console.log(`Created ${workspaceDir}/`);
84
+ }
85
+ console.log(`\nInitialized for organization: ${selectedOrg.name}`);
86
+ console.log('Run `wayai pull --all` to sync hub configurations.');
87
+ }
88
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,10 @@
1
1
  /**
2
- * wayai pull [hub-path] — fetch hub config from platform and write to local files
2
+ * wayai pull [hub-path] [--all] [--yes] — fetch hub config and write local files
3
+ *
4
+ * Modes:
5
+ * wayai pull project/hub — resolve workspace folder, pull that hub
6
+ * wayai pull --all — pull all hubs in workspace
7
+ * wayai pull — from hub folder: pull current hub
8
+ * wayai pull — from repo root: error with help
3
9
  */
4
10
  export declare function pullCommand(args: string[]): Promise<void>;
@@ -1,55 +1,43 @@
1
1
  /**
2
- * wayai pull [hub-path] — fetch hub config from platform and write to local files
2
+ * wayai pull [hub-path] [--all] [--yes] — fetch hub config and write local files
3
+ *
4
+ * Modes:
5
+ * wayai pull project/hub — resolve workspace folder, pull that hub
6
+ * wayai pull --all — pull all hubs in workspace
7
+ * wayai pull — from hub folder: pull current hub
8
+ * wayai pull — from repo root: error with help
3
9
  */
4
- import * as readline from 'node:readline';
5
10
  import { requireAuth } from '../lib/auth.js';
6
11
  import { ApiClient } from '../lib/api-client.js';
7
12
  import { writeHubFolder } from '../lib/yaml-writer.js';
8
13
  import { parseHubFolder } from '../lib/parser.js';
9
14
  import { printDiff } from '../lib/diff-display.js';
10
- import { detectHubFromCwd } from '../lib/utils.js';
11
- function confirm(question) {
12
- const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
13
- return new Promise((resolve) => {
14
- rl.question(`${question} [y/N]: `, (answer) => {
15
- rl.close();
16
- resolve(answer.trim().toLowerCase() === 'y');
17
- });
18
- });
19
- }
20
- export async function pullCommand(args) {
21
- const { config, accessToken } = await requireAuth();
22
- const client = new ApiClient({ apiUrl: config.api_url, accessToken });
23
- const hubPath = args[0];
24
- let hubId;
25
- let hubFolder;
26
- if (hubPath) {
27
- // Resolve hub-path (org/project/hub) → hub_id
28
- console.log(`Looking up ${hubPath}...`);
29
- const lookup = await client.lookup(hubPath);
30
- hubId = lookup.hub_id;
31
- hubFolder = process.cwd();
32
- console.log(`Found hub: ${lookup.hub_name} (${lookup.hub_environment}) in ${lookup.organization_name}/${lookup.project_name}`);
33
- }
34
- else {
35
- // Try to detect from wayai.yaml in cwd
36
- const detected = await detectHubFromCwd();
37
- if (!detected) {
38
- console.error('No hub path provided and no wayai.yaml found in current directory.');
39
- console.error('Usage: wayai pull <org/project/hub>');
40
- process.exit(1);
15
+ import { confirm, detectHubFromCwd } from '../lib/utils.js';
16
+ import { detectWorkspace, resolveHubFolder, scanWorkspaceHubs, resolveExplicitHubPath } from '../lib/workspace.js';
17
+ import { readRepoConfig } from '../lib/repo-config.js';
18
+ function parseArgs(args) {
19
+ let hubPath;
20
+ let all = false;
21
+ let autoConfirm = false;
22
+ for (const arg of args) {
23
+ if (arg === '--all') {
24
+ all = true;
25
+ }
26
+ else if (arg === '--yes' || arg === '-y') {
27
+ autoConfirm = true;
28
+ }
29
+ else if (!arg.startsWith('-')) {
30
+ hubPath = arg;
41
31
  }
42
- hubId = detected.hubId;
43
- hubFolder = detected.hubFolder;
44
- console.log(`Using hub from wayai.yaml: ${hubId}`);
45
32
  }
46
- // Fetch remote config
33
+ return { hubPath, all, autoConfirm };
34
+ }
35
+ async function pullSingleHub(client, hubId, hubFolder, autoConfirm) {
47
36
  console.log('Fetching hub configuration...');
48
37
  const payload = await client.pull(hubId);
49
38
  // If local files exist, show diff before overwriting
50
39
  try {
51
40
  const localPayload = parseHubFolder(hubFolder);
52
- // Use the diff endpoint to compare remote vs local
53
41
  const diffResult = await client.diff(hubId, localPayload, 'pull');
54
42
  if (!diffResult.has_changes) {
55
43
  console.log('No changes — local files are up to date.');
@@ -57,10 +45,12 @@ export async function pullCommand(args) {
57
45
  }
58
46
  console.log('\nChanges to apply locally:');
59
47
  printDiff(diffResult.summary);
60
- const ok = await confirm('Apply these changes?');
61
- if (!ok) {
62
- console.log('Cancelled.');
63
- return;
48
+ if (!autoConfirm) {
49
+ const ok = await confirm('Apply these changes?');
50
+ if (!ok) {
51
+ console.log('Cancelled.');
52
+ return;
53
+ }
64
54
  }
65
55
  }
66
56
  catch {
@@ -70,4 +60,106 @@ export async function pullCommand(args) {
70
60
  writeHubFolder(hubFolder, payload);
71
61
  console.log(`Hub configuration written to ${hubFolder}`);
72
62
  }
63
+ async function pullAllHubs(client, autoConfirm) {
64
+ const workspace = detectWorkspace();
65
+ if (!workspace) {
66
+ console.error('No workspace/ directory found. Run from a git repo with a workspace/ directory.');
67
+ process.exit(1);
68
+ }
69
+ const hubs = scanWorkspaceHubs(workspace.workspaceDir);
70
+ if (hubs.length === 0) {
71
+ console.log('No hubs found in workspace/.');
72
+ return;
73
+ }
74
+ console.log(`Found ${hubs.length} hub(s) in workspace:\n`);
75
+ for (const hub of hubs) {
76
+ console.log(` ${hub.hubFolder}`);
77
+ }
78
+ console.log();
79
+ if (!autoConfirm) {
80
+ const ok = await confirm(`Pull ${hubs.length} hub(s)?`);
81
+ if (!ok) {
82
+ console.log('Cancelled.');
83
+ return;
84
+ }
85
+ }
86
+ const errors = [];
87
+ for (const hub of hubs) {
88
+ console.log(`\n--- ${hub.hubFolder} ---`);
89
+ try {
90
+ await pullSingleHub(client, hub.hubId, hub.hubFolder, true);
91
+ }
92
+ catch (err) {
93
+ const msg = err instanceof Error ? err.message : String(err);
94
+ console.error(`Error: ${msg}`);
95
+ errors.push({ hubFolder: hub.hubFolder, error: msg });
96
+ }
97
+ }
98
+ if (errors.length > 0) {
99
+ console.error(`\n${errors.length} hub(s) failed:`);
100
+ for (const e of errors) {
101
+ console.error(` ${e.hubFolder}: ${e.error}`);
102
+ }
103
+ process.exit(1);
104
+ }
105
+ }
106
+ async function pullExplicitPath(client, hubPath, autoConfirm) {
107
+ const result = resolveExplicitHubPath(hubPath);
108
+ if ('resolved' in result) {
109
+ console.log(`Found hub locally: ${result.resolved.hubId} (${result.resolved.hubEnvironment})`);
110
+ await pullSingleHub(client, result.resolved.hubId, result.resolved.hubFolder, autoConfirm);
111
+ return;
112
+ }
113
+ // Fall back to API lookup (handles original names and remote-only hubs)
114
+ const { segments } = result;
115
+ let lookupPath;
116
+ if (segments.orgPrefix) {
117
+ lookupPath = hubPath;
118
+ }
119
+ else {
120
+ const repoConfig = readRepoConfig();
121
+ if (!repoConfig) {
122
+ console.error('Hub not found in workspace and 2-part path requires .wayai.yaml for API lookup.');
123
+ console.error('Run `wayai init` first, or use 3-part: org/project/hub');
124
+ process.exit(1);
125
+ }
126
+ lookupPath = `${repoConfig.organization}/${hubPath}`;
127
+ }
128
+ console.log(`Looking up ${hubPath}...`);
129
+ const lookup = await client.lookup(lookupPath);
130
+ console.log(`Found hub: ${lookup.hub_name} (${lookup.hub_environment}) in ${lookup.project_name}`);
131
+ const workspace = detectWorkspace();
132
+ const hubFolder = workspace
133
+ ? resolveHubFolder(workspace.workspaceDir, lookup.hub_id, lookup.project_name, lookup.hub_name, lookup.hub_environment, lookup.preview_label, lookup.branch_name)
134
+ : process.cwd();
135
+ await pullSingleHub(client, lookup.hub_id, hubFolder, autoConfirm);
136
+ }
137
+ export async function pullCommand(args) {
138
+ const { hubPath, all, autoConfirm } = parseArgs(args);
139
+ const { config, accessToken } = await requireAuth();
140
+ const client = new ApiClient({ apiUrl: config.api_url, accessToken });
141
+ // 1. Explicit hub path argument
142
+ if (hubPath) {
143
+ await pullExplicitPath(client, hubPath, autoConfirm);
144
+ return;
145
+ }
146
+ // 2. --all flag: pull all hubs in workspace
147
+ if (all) {
148
+ await pullAllHubs(client, autoConfirm);
149
+ return;
150
+ }
151
+ // 3. Current directory has wayai.yaml
152
+ const detected = await detectHubFromCwd();
153
+ if (detected) {
154
+ console.log(`Using hub from wayai.yaml: ${detected.hubId}`);
155
+ await pullSingleHub(client, detected.hubId, detected.hubFolder, autoConfirm);
156
+ return;
157
+ }
158
+ // 4. None of the above — error with help
159
+ console.error('No hub found. Provide a hub path, use --all, or run from a hub folder:');
160
+ console.error(' wayai pull <project/hub> Pull a specific hub');
161
+ console.error(' wayai pull --all Pull all hubs in workspace');
162
+ console.error(' wayai pull Pull current hub (from hub folder)');
163
+ process.exit(1);
164
+ }
73
165
  //# sourceMappingURL=pull.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,9 @@
1
1
  /**
2
- * wayai push [hub-path] — parse local files, diff remote, sync to preview
2
+ * wayai push [hub-path] [--yes] — parse local files, diff remote, sync to preview
3
+ *
4
+ * Modes:
5
+ * wayai push project/hub — resolve workspace folder, push that hub
6
+ * wayai push — from hub folder: push current hub
7
+ * wayai push — from repo root: auto-detect changed hubs via git
3
8
  */
4
9
  export declare function pushCommand(args: string[]): Promise<void>;