@wayai/cli 0.1.1 → 0.2.1
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.
- package/dist/commands/init.d.ts +7 -0
- package/dist/commands/init.js +88 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/pull.d.ts +7 -1
- package/dist/commands/pull.js +134 -42
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.d.ts +14 -1
- package/dist/commands/push.js +270 -54
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/status.d.ts +1 -1
- package/dist/commands/status.js +17 -8
- package/dist/commands/status.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +108 -4
- package/dist/index.js.map +1 -1
- package/dist/lib/api-client.d.ts +3 -1
- package/dist/lib/api-client.js +9 -0
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/parser.js +13 -3
- package/dist/lib/parser.js.map +1 -1
- package/dist/lib/repo-config.d.ts +16 -0
- package/dist/lib/repo-config.js +49 -0
- package/dist/lib/repo-config.js.map +1 -0
- package/dist/lib/types.d.ts +13 -0
- package/dist/lib/utils.d.ts +4 -0
- package/dist/lib/utils.js +13 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/workspace.d.ts +75 -0
- package/dist/lib/workspace.js +244 -0
- package/dist/lib/workspace.js.map +1 -0
- package/dist/lib/workspace.test.d.ts +5 -0
- package/dist/lib/workspace.test.js +329 -0
- package/dist/lib/workspace.test.js.map +1 -0
- package/dist/lib/yaml-writer.js +10 -6
- package/dist/lib/yaml-writer.js.map +1 -1
- package/package.json +8 -2
package/dist/commands/push.js
CHANGED
|
@@ -1,65 +1,35 @@
|
|
|
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
|
-
import * as
|
|
9
|
+
import * as fs from 'node:fs';
|
|
10
|
+
import * as path from 'node:path';
|
|
11
|
+
import * as yaml from 'js-yaml';
|
|
5
12
|
import { requireAuth } from '../lib/auth.js';
|
|
6
13
|
import { ApiClient } from '../lib/api-client.js';
|
|
7
14
|
import { parseHubFolder } from '../lib/parser.js';
|
|
8
15
|
import { printDiff } from '../lib/diff-display.js';
|
|
9
|
-
import { detectHubFromCwd } from '../lib/utils.js';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const client = new ApiClient({ apiUrl: config.api_url, accessToken });
|
|
22
|
-
const hubPath = args[0];
|
|
23
|
-
let hubId;
|
|
24
|
-
let hubFolder;
|
|
25
|
-
if (hubPath) {
|
|
26
|
-
console.log(`Looking up ${hubPath}...`);
|
|
27
|
-
const lookup = await client.lookup(hubPath);
|
|
28
|
-
hubId = lookup.hub_id;
|
|
29
|
-
hubFolder = process.cwd();
|
|
30
|
-
console.log(`Found hub: ${lookup.hub_name} (${lookup.hub_environment}) in ${lookup.organization_name}/${lookup.project_name}`);
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
const detected = await detectHubFromCwd();
|
|
34
|
-
if (!detected) {
|
|
35
|
-
console.error('No hub path provided and no wayai.yaml found in current directory.');
|
|
36
|
-
console.error('Usage: wayai push <org/project/hub>');
|
|
37
|
-
process.exit(1);
|
|
16
|
+
import { confirm, detectHubFromCwd, slugify } from '../lib/utils.js';
|
|
17
|
+
import { detectWorkspace, getChangedHubs, resolveHubFolder, resolveExplicitHubPath } from '../lib/workspace.js';
|
|
18
|
+
import { readRepoConfig } from '../lib/repo-config.js';
|
|
19
|
+
function parseArgs(args) {
|
|
20
|
+
let hubPath;
|
|
21
|
+
let autoConfirm = false;
|
|
22
|
+
for (const arg of args) {
|
|
23
|
+
if (arg === '--yes' || arg === '-y') {
|
|
24
|
+
autoConfirm = true;
|
|
25
|
+
}
|
|
26
|
+
else if (!arg.startsWith('-')) {
|
|
27
|
+
hubPath = arg;
|
|
38
28
|
}
|
|
39
|
-
hubId = detected.hubId;
|
|
40
|
-
hubFolder = detected.hubFolder;
|
|
41
|
-
console.log(`Using hub from wayai.yaml: ${hubId}`);
|
|
42
|
-
}
|
|
43
|
-
// Parse local files
|
|
44
|
-
console.log('Parsing local configuration...');
|
|
45
|
-
const localConfig = parseHubFolder(hubFolder);
|
|
46
|
-
// Get diff preview
|
|
47
|
-
console.log('Computing diff...');
|
|
48
|
-
const diffResult = await client.diff(hubId, localConfig, 'push');
|
|
49
|
-
if (!diffResult.has_changes) {
|
|
50
|
-
console.log('No changes to push.');
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
console.log('\nChanges to push:');
|
|
54
|
-
printDiff(diffResult.summary);
|
|
55
|
-
const ok = await confirm('Push these changes?');
|
|
56
|
-
if (!ok) {
|
|
57
|
-
console.log('Cancelled.');
|
|
58
|
-
return;
|
|
59
29
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
30
|
+
return { hubPath, autoConfirm };
|
|
31
|
+
}
|
|
32
|
+
function printSyncResult(result) {
|
|
63
33
|
console.log(`\nSync complete. Preview hub: ${result.preview_hub_id}`);
|
|
64
34
|
const c = result.changes;
|
|
65
35
|
const parts = [];
|
|
@@ -87,4 +57,250 @@ export async function pushCommand(args) {
|
|
|
87
57
|
console.log(`Changes: ${parts.join(', ')}`);
|
|
88
58
|
}
|
|
89
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Auto-rename agent .md files when agents have been renamed (matched by ID).
|
|
62
|
+
* Compares local YAML agent names against remote agent names via pull,
|
|
63
|
+
* then renames old-slug.md → new-slug.md. Handles slug swaps via temp files.
|
|
64
|
+
* Also updates explicit `instructions` paths in the YAML to match.
|
|
65
|
+
*/
|
|
66
|
+
export async function autoRenameAgentFiles(client, hubId, hubFolder) {
|
|
67
|
+
const yamlPath = path.join(hubFolder, 'wayai.yaml');
|
|
68
|
+
if (!fs.existsSync(yamlPath))
|
|
69
|
+
return;
|
|
70
|
+
const yamlContent = fs.readFileSync(yamlPath, 'utf-8');
|
|
71
|
+
const config = yaml.load(yamlContent);
|
|
72
|
+
// Only proceed if at least one agent has an id
|
|
73
|
+
const agentsWithIds = (config.agents || []).filter((a) => a.id && a.name);
|
|
74
|
+
if (agentsWithIds.length === 0)
|
|
75
|
+
return;
|
|
76
|
+
// Fetch remote state to detect renames (extra round-trip, only when agents have IDs)
|
|
77
|
+
console.log('Checking for agent renames...');
|
|
78
|
+
let remote;
|
|
79
|
+
try {
|
|
80
|
+
remote = await client.pull(hubId);
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
console.warn(` Warning: could not fetch remote state for auto-rename (${err instanceof Error ? err.message : String(err)}). File renames skipped.`);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
// Build remote agent id → name map
|
|
87
|
+
const remoteAgentNames = new Map();
|
|
88
|
+
for (const agent of remote.agents || []) {
|
|
89
|
+
if (agent.id) {
|
|
90
|
+
remoteAgentNames.set(agent.id, agent.name);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// Collect renames needed (old slug → new slug)
|
|
94
|
+
const renames = [];
|
|
95
|
+
for (const agent of agentsWithIds) {
|
|
96
|
+
const remoteName = remoteAgentNames.get(agent.id);
|
|
97
|
+
if (!remoteName || remoteName === agent.name)
|
|
98
|
+
continue;
|
|
99
|
+
const oldSlug = slugify(remoteName);
|
|
100
|
+
const newSlug = slugify(agent.name);
|
|
101
|
+
if (oldSlug !== newSlug) {
|
|
102
|
+
renames.push({ oldSlug, newSlug });
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (renames.length === 0)
|
|
106
|
+
return;
|
|
107
|
+
const agentsDir = path.join(hubFolder, 'agents');
|
|
108
|
+
if (!fs.existsSync(agentsDir))
|
|
109
|
+
return;
|
|
110
|
+
// Clean up orphaned temp files from a previous interrupted rename
|
|
111
|
+
for (const file of fs.readdirSync(agentsDir)) {
|
|
112
|
+
if (file.startsWith('__rename_temp_') && file.endsWith('.md')) {
|
|
113
|
+
console.warn(` Warning: removing orphaned temp file agents/${file}`);
|
|
114
|
+
fs.unlinkSync(path.join(agentsDir, file));
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// Detect slug swaps: if newSlug matches another rename's oldSlug
|
|
118
|
+
const oldSlugs = new Set(renames.map((r) => r.oldSlug));
|
|
119
|
+
const newSlugs = new Set(renames.map((r) => r.newSlug));
|
|
120
|
+
const hasConflicts = renames.some((r) => oldSlugs.has(r.newSlug)) || newSlugs.size !== renames.length;
|
|
121
|
+
// Track which renames actually completed (file existed and was moved)
|
|
122
|
+
const completedRenames = [];
|
|
123
|
+
if (hasConflicts) {
|
|
124
|
+
// Rename through temp files to avoid collisions
|
|
125
|
+
const tempRenames = [];
|
|
126
|
+
for (const { oldSlug, newSlug } of renames) {
|
|
127
|
+
const tempName = `__rename_temp_${oldSlug}_${Date.now()}`;
|
|
128
|
+
tempRenames.push({ oldSlug, tempName, newSlug });
|
|
129
|
+
}
|
|
130
|
+
// Step 1: old → temp
|
|
131
|
+
for (const { oldSlug, tempName } of tempRenames) {
|
|
132
|
+
const oldPath = path.join(agentsDir, `${oldSlug}.md`);
|
|
133
|
+
const tempPath = path.join(agentsDir, `${tempName}.md`);
|
|
134
|
+
if (fs.existsSync(oldPath)) {
|
|
135
|
+
fs.renameSync(oldPath, tempPath);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Step 2: temp → new
|
|
139
|
+
for (const { tempName, newSlug } of tempRenames) {
|
|
140
|
+
const tempPath = path.join(agentsDir, `${tempName}.md`);
|
|
141
|
+
const newPath = path.join(agentsDir, `${newSlug}.md`);
|
|
142
|
+
if (fs.existsSync(tempPath)) {
|
|
143
|
+
const entry = tempRenames.find((r) => r.tempName === tempName);
|
|
144
|
+
fs.renameSync(tempPath, newPath);
|
|
145
|
+
completedRenames.push({ oldSlug: entry.oldSlug, newSlug });
|
|
146
|
+
console.log(` Renamed agents/${entry.oldSlug}.md → agents/${newSlug}.md`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
// No conflicts — direct renames
|
|
152
|
+
for (const { oldSlug, newSlug } of renames) {
|
|
153
|
+
const oldPath = path.join(agentsDir, `${oldSlug}.md`);
|
|
154
|
+
const newPath = path.join(agentsDir, `${newSlug}.md`);
|
|
155
|
+
if (!fs.existsSync(oldPath))
|
|
156
|
+
continue;
|
|
157
|
+
if (fs.existsSync(newPath)) {
|
|
158
|
+
console.warn(` Warning: skipping rename agents/${oldSlug}.md → agents/${newSlug}.md (target already exists)`);
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
fs.renameSync(oldPath, newPath);
|
|
162
|
+
completedRenames.push({ oldSlug, newSlug });
|
|
163
|
+
console.log(` Renamed agents/${oldSlug}.md → agents/${newSlug}.md`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
if (completedRenames.length === 0)
|
|
167
|
+
return;
|
|
168
|
+
// Update explicit instructions paths in YAML for completed renames only.
|
|
169
|
+
// Anchored to `instructions:` key to avoid false-positive replacements in other fields.
|
|
170
|
+
// Use a single-pass regex to handle swap renames atomically (A→B, B→A).
|
|
171
|
+
const substitutionMap = new Map();
|
|
172
|
+
for (const { oldSlug, newSlug } of completedRenames) {
|
|
173
|
+
substitutionMap.set(`agents/${oldSlug}.md`, `agents/${newSlug}.md`);
|
|
174
|
+
}
|
|
175
|
+
const escapedKeys = Array.from(substitutionMap.keys())
|
|
176
|
+
.map((k) => k.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'));
|
|
177
|
+
const updatedYaml = yamlContent.replace(new RegExp(`(instructions:\\s+)(${escapedKeys.join('|')})`, 'g'), (_match, prefix, pathMatch) => `${prefix}${substitutionMap.get(pathMatch) ?? pathMatch}`);
|
|
178
|
+
if (updatedYaml !== yamlContent) {
|
|
179
|
+
fs.writeFileSync(yamlPath, updatedYaml, 'utf-8');
|
|
180
|
+
console.log(' Updated instructions paths in wayai.yaml');
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
async function pushSingleHub(client, hubId, hubFolder, autoConfirm) {
|
|
184
|
+
// Auto-rename agent .md files if agents were renamed (before parsing)
|
|
185
|
+
await autoRenameAgentFiles(client, hubId, hubFolder);
|
|
186
|
+
console.log('Parsing local configuration...');
|
|
187
|
+
const localConfig = parseHubFolder(hubFolder);
|
|
188
|
+
console.log('Computing diff...');
|
|
189
|
+
const diffResult = await client.diff(hubId, localConfig, 'push');
|
|
190
|
+
if (!diffResult.has_changes) {
|
|
191
|
+
console.log('No changes to push.');
|
|
192
|
+
return true;
|
|
193
|
+
}
|
|
194
|
+
console.log('\nChanges to push:');
|
|
195
|
+
printDiff(diffResult.summary);
|
|
196
|
+
if (!autoConfirm) {
|
|
197
|
+
const ok = await confirm('Push these changes?');
|
|
198
|
+
if (!ok) {
|
|
199
|
+
console.log('Cancelled.');
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
console.log('Pushing changes...');
|
|
204
|
+
const result = await client.push(hubId, localConfig);
|
|
205
|
+
printSyncResult(result);
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
async function pushChangedHubs(client, workspaceDir, autoConfirm) {
|
|
209
|
+
console.log('Detecting changed hubs...');
|
|
210
|
+
const changed = getChangedHubs(workspaceDir);
|
|
211
|
+
if (changed.length === 0) {
|
|
212
|
+
console.log('No changed hub files detected.');
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
console.log(`Found ${changed.length} hub(s) with changes:\n`);
|
|
216
|
+
for (const hub of changed) {
|
|
217
|
+
console.log(` ${hub.hubFolder}`);
|
|
218
|
+
}
|
|
219
|
+
console.log();
|
|
220
|
+
if (!autoConfirm) {
|
|
221
|
+
const ok = await confirm(`Push ${changed.length} hub(s)?`);
|
|
222
|
+
if (!ok) {
|
|
223
|
+
console.log('Cancelled.');
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
const errors = [];
|
|
228
|
+
for (const hub of changed) {
|
|
229
|
+
console.log(`\n--- ${hub.hubFolder} ---`);
|
|
230
|
+
try {
|
|
231
|
+
await pushSingleHub(client, hub.hubId, hub.hubFolder, true);
|
|
232
|
+
}
|
|
233
|
+
catch (err) {
|
|
234
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
235
|
+
console.error(`Error: ${msg}`);
|
|
236
|
+
errors.push({ hubFolder: hub.hubFolder, error: msg });
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
if (errors.length > 0) {
|
|
240
|
+
console.error(`\n${errors.length} hub(s) failed:`);
|
|
241
|
+
for (const e of errors) {
|
|
242
|
+
console.error(` ${e.hubFolder}: ${e.error}`);
|
|
243
|
+
}
|
|
244
|
+
process.exit(1);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
async function pushExplicitPath(client, hubPath, autoConfirm) {
|
|
248
|
+
const result = resolveExplicitHubPath(hubPath);
|
|
249
|
+
if ('resolved' in result) {
|
|
250
|
+
console.log(`Found hub locally: ${result.resolved.hubId} (${result.resolved.hubEnvironment})`);
|
|
251
|
+
await pushSingleHub(client, result.resolved.hubId, result.resolved.hubFolder, autoConfirm);
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
// Fall back to API lookup (handles original names and remote-only hubs)
|
|
255
|
+
const { segments } = result;
|
|
256
|
+
let lookupPath;
|
|
257
|
+
if (segments.orgPrefix) {
|
|
258
|
+
lookupPath = hubPath;
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
const repoConfig = readRepoConfig();
|
|
262
|
+
if (!repoConfig) {
|
|
263
|
+
console.error('Hub not found in workspace and 2-part path requires .wayai.yaml for API lookup.');
|
|
264
|
+
console.error('Run `wayai init` first, or use 3-part: org/project/hub');
|
|
265
|
+
process.exit(1);
|
|
266
|
+
}
|
|
267
|
+
lookupPath = `${repoConfig.organization}/${hubPath}`;
|
|
268
|
+
}
|
|
269
|
+
console.log(`Looking up ${hubPath}...`);
|
|
270
|
+
const lookup = await client.lookup(lookupPath);
|
|
271
|
+
console.log(`Found hub: ${lookup.hub_name} (${lookup.hub_environment}) in ${lookup.project_name}`);
|
|
272
|
+
const workspace = detectWorkspace();
|
|
273
|
+
const hubFolder = workspace
|
|
274
|
+
? resolveHubFolder(workspace.workspaceDir, lookup.hub_id, lookup.project_name, lookup.hub_name, lookup.hub_environment, lookup.preview_label, lookup.branch_name)
|
|
275
|
+
: process.cwd();
|
|
276
|
+
await pushSingleHub(client, lookup.hub_id, hubFolder, autoConfirm);
|
|
277
|
+
}
|
|
278
|
+
export async function pushCommand(args) {
|
|
279
|
+
const { hubPath, autoConfirm } = parseArgs(args);
|
|
280
|
+
const { config, accessToken } = await requireAuth();
|
|
281
|
+
const client = new ApiClient({ apiUrl: config.api_url, accessToken });
|
|
282
|
+
// 1. Explicit hub path argument
|
|
283
|
+
if (hubPath) {
|
|
284
|
+
await pushExplicitPath(client, hubPath, autoConfirm);
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
// 2. Current directory has wayai.yaml
|
|
288
|
+
const detected = await detectHubFromCwd();
|
|
289
|
+
if (detected) {
|
|
290
|
+
console.log(`Using hub from wayai.yaml: ${detected.hubId}`);
|
|
291
|
+
await pushSingleHub(client, detected.hubId, detected.hubFolder, autoConfirm);
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
// 3. Workspace detected — auto-detect changed hubs
|
|
295
|
+
const workspace = detectWorkspace();
|
|
296
|
+
if (workspace) {
|
|
297
|
+
await pushChangedHubs(client, workspace.workspaceDir, autoConfirm);
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
// 4. None of the above
|
|
301
|
+
console.error('No hub found. Run from a hub folder with wayai.yaml, or provide a path:');
|
|
302
|
+
console.error(' wayai push <project/hub>');
|
|
303
|
+
console.error('\nOr run from a repo root with a workspace/ directory to auto-detect changes.');
|
|
304
|
+
process.exit(1);
|
|
305
|
+
}
|
|
90
306
|
//# sourceMappingURL=push.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,SAAS,OAAO,CAAC,QAAgB;IAC/B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACtF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,GAAG,QAAQ,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YAC5C,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC9C,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,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,KAAa,CAAC;IAClB,IAAI,SAAiB,CAAC;IAEtB,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,KAAK,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5C,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QACtB,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,eAAe,QAAQ,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IACjI,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;YACpF,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QACvB,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,oBAAoB;IACpB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE9C,mBAAmB;IACnB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAEjE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE9B,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAChD,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,+BAA+B;IAC/B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAE5D,OAAO,CAAC,GAAG,CAAC,iCAAiC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IACtE,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IACzB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7C,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,mBAAmB,CAAC,CAAC;IAC7E,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,mBAAmB,CAAC,CAAC;IAC7E,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,mBAAmB,CAAC,CAAC;IAC7E,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,kBAAkB,CAAC,CAAC;IAC1E,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,kBAAkB,CAAC,CAAC;IAC1E,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,kBAAkB,CAAC,CAAC;IAC1E,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,mBAAmB,CAAC,CAAC;IAC7E,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,mBAAmB,CAAC,CAAC;IAC7E,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,mBAAmB,CAAC,CAAC;IAC7E,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,SAAS,SAAS,CAAC,IAAc;IAC/B,IAAI,OAA2B,CAAC;IAChC,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACpC,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,GAAG,GAAG,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,eAAe,CAAC,MAAsB;IAC7C,OAAO,CAAC,GAAG,CAAC,iCAAiC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IACtE,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IACzB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7C,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,mBAAmB,CAAC,CAAC;IAC7E,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,mBAAmB,CAAC,CAAC;IAC7E,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,mBAAmB,CAAC,CAAC;IAC7E,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,kBAAkB,CAAC,CAAC;IAC1E,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,kBAAkB,CAAC,CAAC;IAC1E,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,kBAAkB,CAAC,CAAC;IAC1E,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,mBAAmB,CAAC,CAAC;IAC7E,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,mBAAmB,CAAC,CAAC;IAC7E,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,mBAAmB,CAAC,CAAC;IAC7E,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAiB,EACjB,KAAa,EACb,SAAiB;IAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO;IAErC,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAuD,CAAC;IAE5F,+CAA+C;IAC/C,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1E,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEvC,qFAAqF;IACrF,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC7C,IAAI,MAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,4DAA4D,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACrJ,OAAO;IACT,CAAC;IAED,mCAAmC;IACnC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACnD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;YACb,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,MAAM,OAAO,GAAgD,EAAE,CAAC;IAChE,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAG,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,KAAK,CAAC,IAAI;YAAE,SAAS;QAEvD,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAK,CAAC,CAAC;QACrC,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO;IAEtC,kEAAkE;IAClE,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,iDAAiD,IAAI,EAAE,CAAC,CAAC;YACtE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC;IAEtG,sEAAsE;IACtE,MAAM,gBAAgB,GAAgD,EAAE,CAAC;IAEzE,IAAI,YAAY,EAAE,CAAC;QACjB,gDAAgD;QAChD,MAAM,WAAW,GAAkE,EAAE,CAAC;QACtF,KAAK,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,iBAAiB,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC1D,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,qBAAqB;QACrB,KAAK,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,WAAW,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,OAAO,KAAK,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAC;YACxD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,KAAK,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,WAAW,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,OAAO,KAAK,CAAC,CAAC;YACtD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAE,CAAC;gBAChE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACjC,gBAAgB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,OAAO,gBAAgB,OAAO,KAAK,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,gCAAgC;QAChC,KAAK,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,OAAO,KAAK,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,OAAO,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,SAAS;YACtC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,qCAAqC,OAAO,gBAAgB,OAAO,6BAA6B,CAAC,CAAC;gBAC/G,SAAS;YACX,CAAC;YACD,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAChC,gBAAgB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,gBAAgB,OAAO,KAAK,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE1C,yEAAyE;IACzE,wFAAwF;IACxF,wEAAwE;IACxE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,KAAK,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,gBAAgB,EAAE,CAAC;QACpD,eAAe,CAAC,GAAG,CAAC,UAAU,OAAO,KAAK,EAAE,UAAU,OAAO,KAAK,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;SACnD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CACrC,IAAI,MAAM,CAAC,uBAAuB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAChE,CAAC,MAAM,EAAE,MAAc,EAAE,SAAiB,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,EAAE,CACzG,CAAC;IACF,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;QAChC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,MAAiB,EACjB,KAAa,EACb,SAAiB,EACjB,WAAoB;IAEpB,sEAAsE;IACtE,MAAM,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAErD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE9C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAEjE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE9B,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAChD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACrD,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,MAAiB,EACjB,YAAoB,EACpB,WAAoB;IAEpB,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IAE7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,MAAM,yBAAyB,CAAC,CAAC;IAC9D,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,QAAQ,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;QAC3D,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAgD,EAAE,CAAC;IAE/D,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,SAAS,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,MAAM,iBAAiB,CAAC,CAAC;QACnD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,MAAiB,EACjB,OAAe,EACf,WAAoB;IAEpB,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAE/C,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC;QAC/F,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC3F,OAAO;IACT,CAAC;IAED,wEAAwE;IACxE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAC5B,IAAI,UAAkB,CAAC;IACvB,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACvB,UAAU,GAAG,OAAO,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;YACjG,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,UAAU,GAAG,GAAG,UAAU,CAAC,YAAY,IAAI,OAAO,EAAE,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,KAAK,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,eAAe,QAAQ,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAEnG,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,SAAS;QACzB,CAAC,CAAC,gBAAgB,CACd,SAAS,CAAC,YAAY,EACtB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,WAAW,CACnB;QACH,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAElB,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC9C,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACjD,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,gCAAgC;IAChC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,sCAAsC;IACtC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC1C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,8BAA8B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5D,MAAM,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC7E,OAAO;IACT,CAAC;IAED,mDAAmD;IACnD,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IAED,uBAAuB;IACvB,OAAO,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;IACzF,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC5C,OAAO,CAAC,KAAK,CAAC,+EAA+E,CAAC,CAAC;IAC/F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
package/dist/commands/status.js
CHANGED
|
@@ -1,26 +1,35 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* wayai status — show current auth/config status
|
|
2
|
+
* wayai status — show current auth/config status and repo scope
|
|
3
3
|
*/
|
|
4
4
|
import { readConfig } from '../lib/config.js';
|
|
5
5
|
import { getAccessToken } from '../lib/auth.js';
|
|
6
|
+
import { readRepoConfig } from '../lib/repo-config.js';
|
|
6
7
|
export async function statusCommand() {
|
|
7
8
|
const config = readConfig();
|
|
8
9
|
if (!config) {
|
|
9
10
|
console.log('Not logged in. Run `wayai login`.');
|
|
10
11
|
return;
|
|
11
12
|
}
|
|
12
|
-
console.log(`Auth method: ${config.auth_method}`);
|
|
13
|
-
console.log(`API URL: ${config.api_url}`);
|
|
14
|
-
if (config.supabase_url) {
|
|
15
|
-
console.log(`Supabase URL: ${config.supabase_url}`);
|
|
16
|
-
}
|
|
17
13
|
// Test token validity
|
|
14
|
+
let tokenStatus;
|
|
18
15
|
try {
|
|
19
16
|
await getAccessToken(config);
|
|
20
|
-
|
|
17
|
+
tokenStatus = 'token valid';
|
|
21
18
|
}
|
|
22
19
|
catch {
|
|
23
|
-
|
|
20
|
+
tokenStatus = 'token expired (run `wayai login` to re-authenticate)';
|
|
21
|
+
}
|
|
22
|
+
console.log(`Logged in via ${config.auth_method} — ${tokenStatus}`);
|
|
23
|
+
if (config.api_url !== 'https://api.wayai.pro') {
|
|
24
|
+
console.log(`API: ${config.api_url}`);
|
|
25
|
+
}
|
|
26
|
+
// Show repo scope
|
|
27
|
+
const repoConfig = readRepoConfig();
|
|
28
|
+
if (repoConfig) {
|
|
29
|
+
console.log(`Repository scope: ${repoConfig.organization}`);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
console.log('No .wayai.yaml found — run `wayai init` to link to an organization.');
|
|
24
33
|
}
|
|
25
34
|
}
|
|
26
35
|
//# sourceMappingURL=status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,sBAAsB;IACtB,IAAI,WAAmB,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;QAC7B,WAAW,GAAG,aAAa,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,WAAW,GAAG,sDAAsD,CAAC;IACvE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,WAAW,MAAM,WAAW,EAAE,CAAC,CAAC;IAEpE,IAAI,MAAM,CAAC,OAAO,KAAK,uBAAuB,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,kBAAkB;IAClB,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,qBAAqB,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
* wayai login — authenticate via OAuth (browser)
|
|
7
7
|
* wayai login --token — authenticate via MCP token (headless)
|
|
8
8
|
* wayai logout — clear stored credentials
|
|
9
|
+
* wayai init [org] — link repo to a WayAI organization
|
|
9
10
|
* wayai status — show current auth/config status
|
|
10
11
|
* wayai pull [path] — fetch hub config and write local files
|
|
11
12
|
* wayai push [path] — parse local files, diff, and sync to preview
|
|
13
|
+
* wayai update — update CLI to the latest version
|
|
12
14
|
*/
|
|
13
15
|
export {};
|
package/dist/index.js
CHANGED
|
@@ -6,13 +6,17 @@
|
|
|
6
6
|
* wayai login — authenticate via OAuth (browser)
|
|
7
7
|
* wayai login --token — authenticate via MCP token (headless)
|
|
8
8
|
* wayai logout — clear stored credentials
|
|
9
|
+
* wayai init [org] — link repo to a WayAI organization
|
|
9
10
|
* wayai status — show current auth/config status
|
|
10
11
|
* wayai pull [path] — fetch hub config and write local files
|
|
11
12
|
* wayai push [path] — parse local files, diff, and sync to preview
|
|
13
|
+
* wayai update — update CLI to the latest version
|
|
12
14
|
*/
|
|
13
|
-
import { readFileSync } from 'node:fs';
|
|
15
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
|
|
16
|
+
import { execFile, execFileSync } from 'node:child_process';
|
|
14
17
|
import { fileURLToPath } from 'node:url';
|
|
15
18
|
import { dirname, join } from 'node:path';
|
|
19
|
+
import { homedir } from 'node:os';
|
|
16
20
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
17
21
|
const pkg = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8'));
|
|
18
22
|
const [, , command, ...args] = process.argv;
|
|
@@ -28,6 +32,11 @@ async function main() {
|
|
|
28
32
|
await logoutCommand();
|
|
29
33
|
break;
|
|
30
34
|
}
|
|
35
|
+
case 'init': {
|
|
36
|
+
const { initCommand } = await import('./commands/init.js');
|
|
37
|
+
await initCommand(args);
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
31
40
|
case 'status': {
|
|
32
41
|
const { statusCommand } = await import('./commands/status.js');
|
|
33
42
|
await statusCommand();
|
|
@@ -43,6 +52,9 @@ async function main() {
|
|
|
43
52
|
await pushCommand(args);
|
|
44
53
|
break;
|
|
45
54
|
}
|
|
55
|
+
case 'update':
|
|
56
|
+
updateCommand();
|
|
57
|
+
break;
|
|
46
58
|
case 'help':
|
|
47
59
|
case '--help':
|
|
48
60
|
case '-h':
|
|
@@ -70,20 +82,112 @@ Commands:
|
|
|
70
82
|
login Authenticate via OAuth (opens browser)
|
|
71
83
|
login --token Authenticate via MCP token (for headless/CI)
|
|
72
84
|
logout Clear stored credentials
|
|
85
|
+
init [org] Link repo to a WayAI organization (creates .wayai.yaml)
|
|
73
86
|
status Show current auth and config status
|
|
74
87
|
pull [path] Fetch hub config and write local files
|
|
75
88
|
push [path] Parse local files, show diff, sync to preview
|
|
89
|
+
update Update CLI to the latest version
|
|
76
90
|
|
|
77
91
|
Arguments:
|
|
78
|
-
path Hub path as
|
|
92
|
+
path Hub path as project/hub (resolves to workspace/ folder)
|
|
93
|
+
|
|
94
|
+
Flags:
|
|
95
|
+
--yes, -y Skip confirmation prompts (useful for CI and scripting)
|
|
96
|
+
--all Pull all hubs in workspace (pull only)
|
|
97
|
+
--version, -v Show CLI version
|
|
98
|
+
|
|
99
|
+
Workspace mode:
|
|
100
|
+
Run 'wayai init' to link this repo to an organization. This creates
|
|
101
|
+
.wayai.yaml at the repo root and a workspace/ directory.
|
|
102
|
+
|
|
103
|
+
From a hub folder (has wayai.yaml), push/pull operate on that hub.
|
|
104
|
+
From a repo root (has workspace/), push auto-detects changed hubs
|
|
105
|
+
via git status, and pull requires --all or a hub path.
|
|
79
106
|
|
|
80
107
|
Examples:
|
|
81
108
|
wayai login
|
|
82
|
-
wayai
|
|
109
|
+
wayai init "My Organization"
|
|
110
|
+
wayai pull support/customer-hub
|
|
111
|
+
wayai pull --all
|
|
83
112
|
wayai push
|
|
113
|
+
wayai push support/customer-hub --yes
|
|
84
114
|
`.trim());
|
|
85
115
|
}
|
|
86
|
-
|
|
116
|
+
function updateCommand() {
|
|
117
|
+
console.log(`Current version: ${pkg.version}`);
|
|
118
|
+
console.log('Checking for updates...');
|
|
119
|
+
try {
|
|
120
|
+
// shell: true required for Windows where npm is a .cmd script
|
|
121
|
+
const latest = execFileSync('npm', ['view', '@wayai/cli', 'version'], {
|
|
122
|
+
timeout: 10000,
|
|
123
|
+
shell: true,
|
|
124
|
+
}).toString().trim();
|
|
125
|
+
if (latest === pkg.version) {
|
|
126
|
+
console.log(`Already on the latest version (${pkg.version}).`);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
console.log(`Updating ${pkg.version} → ${latest}...`);
|
|
130
|
+
execFileSync('npm', ['install', '-g', '@wayai/cli@latest'], {
|
|
131
|
+
timeout: 60000,
|
|
132
|
+
shell: true,
|
|
133
|
+
stdio: 'inherit',
|
|
134
|
+
});
|
|
135
|
+
console.log(`Updated to ${latest}.`);
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
console.error('Update failed:', err instanceof Error ? err.message : String(err));
|
|
139
|
+
console.error('Try manually: npm install -g @wayai/cli');
|
|
140
|
+
process.exit(1);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
const SKIP_UPDATE_CHECK = ['--version', '-v', '--help', '-h', 'help', 'update'];
|
|
144
|
+
const UPDATE_CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000; // 24 hours
|
|
145
|
+
function checkForUpdates() {
|
|
146
|
+
try {
|
|
147
|
+
const cacheDir = join(homedir(), '.wayai');
|
|
148
|
+
const cachePath = join(cacheDir, 'update-check.json');
|
|
149
|
+
let cache = null;
|
|
150
|
+
try {
|
|
151
|
+
if (existsSync(cachePath)) {
|
|
152
|
+
cache = JSON.parse(readFileSync(cachePath, 'utf-8'));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
catch { /* malformed cache — proceed to fresh check */ }
|
|
156
|
+
if (cache && Date.now() - cache.lastCheck < UPDATE_CHECK_INTERVAL_MS) {
|
|
157
|
+
if (cache.latest && cache.latest !== pkg.version) {
|
|
158
|
+
console.error(`\nUpdate available: ${pkg.version} → ${cache.latest}\nRun \`wayai update\` to update.`);
|
|
159
|
+
}
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
// Write sentinel so concurrent/rapid runs don't spawn duplicate npm processes
|
|
163
|
+
try {
|
|
164
|
+
if (!existsSync(cacheDir))
|
|
165
|
+
mkdirSync(cacheDir, { recursive: true });
|
|
166
|
+
writeFileSync(cachePath, JSON.stringify({ lastCheck: Date.now(), latest: cache?.latest ?? null }));
|
|
167
|
+
}
|
|
168
|
+
catch { /* ignore — check still runs, just without dedup */ }
|
|
169
|
+
// shell: true required for Windows where npm is a .cmd script
|
|
170
|
+
execFile('npm', ['view', '@wayai/cli', 'version'], { timeout: 5000, shell: true }, (err, stdout) => {
|
|
171
|
+
if (err)
|
|
172
|
+
return;
|
|
173
|
+
const latest = stdout.trim();
|
|
174
|
+
try {
|
|
175
|
+
writeFileSync(cachePath, JSON.stringify({ lastCheck: Date.now(), latest }));
|
|
176
|
+
}
|
|
177
|
+
catch { /* ignore cache write failures */ }
|
|
178
|
+
if (latest && latest !== pkg.version) {
|
|
179
|
+
console.error(`\nUpdate available: ${pkg.version} → ${latest}\nRun \`wayai update\` to update.`);
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
catch { /* never block the CLI on update check failures */ }
|
|
184
|
+
}
|
|
185
|
+
main()
|
|
186
|
+
.then(() => {
|
|
187
|
+
if (command && !SKIP_UPDATE_CHECK.includes(command))
|
|
188
|
+
checkForUpdates();
|
|
189
|
+
})
|
|
190
|
+
.catch((err) => {
|
|
87
191
|
console.error(err instanceof Error ? err.message : String(err));
|
|
88
192
|
process.exit(1);
|
|
89
193
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAErF,MAAM,CAAC,EAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;AAE3C,KAAK,UAAU,IAAI;IACjB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC7D,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC/D,MAAM,aAAa,EAAE,CAAC;YACtB,MAAM;QACR,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAC3D,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC/D,MAAM,aAAa,EAAE,CAAC;YACtB,MAAM;QACR,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAC3D,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM;QACR,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAC3D,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM;QACR,CAAC;QACD,KAAK,QAAQ;YACX,aAAa,EAAE,CAAC;YAChB,MAAM;QACR,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI,CAAC;QACV,KAAK,SAAS;YACZ,SAAS,EAAE,CAAC;YACZ,MAAM;QACR,KAAK,WAAW,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACzB,MAAM;QACR;YACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC7C,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCX,CAAC,IAAI,EAAE,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,8DAA8D;QAC9D,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE;YACpE,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,kCAAkC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,OAAO,MAAM,MAAM,KAAK,CAAC,CAAC;QACtD,YAAY,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,mBAAmB,CAAC,EAAE;YAC1D,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,GAAG,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,iBAAiB,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAChF,MAAM,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;AAEjE,SAAS,eAAe;IACtB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QAEtD,IAAI,KAAK,GAAiD,IAAI,CAAC;QAC/D,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,8CAA8C,CAAC,CAAC;QAE1D,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,wBAAwB,EAAE,CAAC;YACrE,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjD,OAAO,CAAC,KAAK,CACX,uBAAuB,GAAG,CAAC,OAAO,MAAM,KAAK,CAAC,MAAM,mCAAmC,CACxF,CAAC;YACJ,CAAC;YACD,OAAO;QACT,CAAC;QAED,8EAA8E;QAC9E,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACpE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QACrG,CAAC;QAAC,MAAM,CAAC,CAAC,mDAAmD,CAAC,CAAC;QAE/D,8DAA8D;QAC9D,QAAQ,CACN,KAAK,EACL,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,EACjC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAC9B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACd,IAAI,GAAG;gBAAE,OAAO;YAChB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAC9E,CAAC;YAAC,MAAM,CAAC,CAAC,iCAAiC,CAAC,CAAC;YAC7C,IAAI,MAAM,IAAI,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;gBACrC,OAAO,CAAC,KAAK,CACX,uBAAuB,GAAG,CAAC,OAAO,MAAM,MAAM,mCAAmC,CAClF,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC,CAAC,kDAAkD,CAAC,CAAC;AAChE,CAAC;AAED,IAAI,EAAE;KACH,IAAI,CAAC,GAAG,EAAE;IACT,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,eAAe,EAAE,CAAC;AACzE,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACb,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/lib/api-client.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* API client — authenticated requests to the WayAI backend
|
|
3
3
|
*/
|
|
4
|
-
import type { HubAsCodePayload, CiDiffResponse, CiLookupResponse, CiSyncResponse } from './types.js';
|
|
4
|
+
import type { HubAsCodePayload, CiDiffResponse, CiLookupResponse, CiSyncResponse, CiOrganizationsResponse } from './types.js';
|
|
5
5
|
export interface ApiClientOptions {
|
|
6
6
|
apiUrl: string;
|
|
7
7
|
accessToken: string;
|
|
@@ -12,7 +12,9 @@ export declare class ApiClient {
|
|
|
12
12
|
constructor(options: ApiClientOptions);
|
|
13
13
|
pull(hubId: string): Promise<HubAsCodePayload>;
|
|
14
14
|
diff(hubId: string, config: HubAsCodePayload, direction?: 'push' | 'pull'): Promise<CiDiffResponse>;
|
|
15
|
+
push(hubId: string, config: HubAsCodePayload): Promise<CiSyncResponse>;
|
|
15
16
|
sync(hubId: string, branchName: string, config: HubAsCodePayload, commitSha?: string): Promise<CiSyncResponse>;
|
|
16
17
|
lookup(path: string): Promise<CiLookupResponse>;
|
|
18
|
+
organizations(): Promise<CiOrganizationsResponse>;
|
|
17
19
|
private request;
|
|
18
20
|
}
|