@wayai/cli 0.3.40 → 0.3.42

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 (166) hide show
  1. package/dist/index.js +16920 -310
  2. package/dist/index.js.map +1 -1
  3. package/package.json +6 -4
  4. package/dist/commands/admin.d.ts +0 -1
  5. package/dist/commands/admin.js +0 -913
  6. package/dist/commands/admin.js.map +0 -1
  7. package/dist/commands/analytics.d.ts +0 -34
  8. package/dist/commands/analytics.js +0 -605
  9. package/dist/commands/analytics.js.map +0 -1
  10. package/dist/commands/conversations.d.ts +0 -14
  11. package/dist/commands/conversations.js +0 -292
  12. package/dist/commands/conversations.js.map +0 -1
  13. package/dist/commands/create-credential.d.ts +0 -20
  14. package/dist/commands/create-credential.js +0 -146
  15. package/dist/commands/create-credential.js.map +0 -1
  16. package/dist/commands/delete-history.d.ts +0 -15
  17. package/dist/commands/delete-history.js +0 -56
  18. package/dist/commands/delete-history.js.map +0 -1
  19. package/dist/commands/eval-capture.d.ts +0 -1
  20. package/dist/commands/eval-capture.js +0 -135
  21. package/dist/commands/eval-capture.js.map +0 -1
  22. package/dist/commands/eval-results.d.ts +0 -10
  23. package/dist/commands/eval-results.js +0 -168
  24. package/dist/commands/eval-results.js.map +0 -1
  25. package/dist/commands/eval.d.ts +0 -1
  26. package/dist/commands/eval.js +0 -49
  27. package/dist/commands/eval.js.map +0 -1
  28. package/dist/commands/evals.d.ts +0 -21
  29. package/dist/commands/evals.js +0 -120
  30. package/dist/commands/evals.js.map +0 -1
  31. package/dist/commands/init.d.ts +0 -16
  32. package/dist/commands/init.js +0 -191
  33. package/dist/commands/init.js.map +0 -1
  34. package/dist/commands/list.d.ts +0 -13
  35. package/dist/commands/list.js +0 -70
  36. package/dist/commands/list.js.map +0 -1
  37. package/dist/commands/login.d.ts +0 -8
  38. package/dist/commands/login.js +0 -145
  39. package/dist/commands/login.js.map +0 -1
  40. package/dist/commands/logout.d.ts +0 -1
  41. package/dist/commands/logout.js +0 -19
  42. package/dist/commands/logout.js.map +0 -1
  43. package/dist/commands/migrate.d.ts +0 -12
  44. package/dist/commands/migrate.js +0 -106
  45. package/dist/commands/migrate.js.map +0 -1
  46. package/dist/commands/observability.d.ts +0 -14
  47. package/dist/commands/observability.js +0 -124
  48. package/dist/commands/observability.js.map +0 -1
  49. package/dist/commands/org.d.ts +0 -19
  50. package/dist/commands/org.js +0 -186
  51. package/dist/commands/org.js.map +0 -1
  52. package/dist/commands/pull.d.ts +0 -31
  53. package/dist/commands/pull.js +0 -210
  54. package/dist/commands/pull.js.map +0 -1
  55. package/dist/commands/push.d.ts +0 -25
  56. package/dist/commands/push.js +0 -472
  57. package/dist/commands/push.js.map +0 -1
  58. package/dist/commands/report-create.d.ts +0 -18
  59. package/dist/commands/report-create.js +0 -143
  60. package/dist/commands/report-create.js.map +0 -1
  61. package/dist/commands/report.d.ts +0 -16
  62. package/dist/commands/report.js +0 -252
  63. package/dist/commands/report.js.map +0 -1
  64. package/dist/commands/run-eval.d.ts +0 -15
  65. package/dist/commands/run-eval.js +0 -187
  66. package/dist/commands/run-eval.js.map +0 -1
  67. package/dist/commands/send-message.d.ts +0 -11
  68. package/dist/commands/send-message.js +0 -63
  69. package/dist/commands/send-message.js.map +0 -1
  70. package/dist/commands/status.d.ts +0 -17
  71. package/dist/commands/status.js +0 -205
  72. package/dist/commands/status.js.map +0 -1
  73. package/dist/commands/sync-mcp.d.ts +0 -16
  74. package/dist/commands/sync-mcp.js +0 -51
  75. package/dist/commands/sync-mcp.js.map +0 -1
  76. package/dist/commands/sync-skills.d.ts +0 -10
  77. package/dist/commands/sync-skills.js +0 -49
  78. package/dist/commands/sync-skills.js.map +0 -1
  79. package/dist/commands/unlock.d.ts +0 -1
  80. package/dist/commands/unlock.js +0 -13
  81. package/dist/commands/unlock.js.map +0 -1
  82. package/dist/commands/update-credential.d.ts +0 -29
  83. package/dist/commands/update-credential.js +0 -156
  84. package/dist/commands/update-credential.js.map +0 -1
  85. package/dist/commands/update.d.ts +0 -6
  86. package/dist/commands/update.js +0 -36
  87. package/dist/commands/update.js.map +0 -1
  88. package/dist/commands/use.d.ts +0 -1
  89. package/dist/commands/use.js +0 -56
  90. package/dist/commands/use.js.map +0 -1
  91. package/dist/commands/whoami.d.ts +0 -11
  92. package/dist/commands/whoami.js +0 -30
  93. package/dist/commands/whoami.js.map +0 -1
  94. package/dist/index.d.ts +0 -28
  95. package/dist/lib/analytics-constants.d.ts +0 -6
  96. package/dist/lib/analytics-constants.js +0 -14
  97. package/dist/lib/analytics-constants.js.map +0 -1
  98. package/dist/lib/api-client.d.ts +0 -568
  99. package/dist/lib/api-client.js +0 -445
  100. package/dist/lib/api-client.js.map +0 -1
  101. package/dist/lib/auth.d.ts +0 -50
  102. package/dist/lib/auth.js +0 -230
  103. package/dist/lib/auth.js.map +0 -1
  104. package/dist/lib/config.d.ts +0 -34
  105. package/dist/lib/config.js +0 -69
  106. package/dist/lib/config.js.map +0 -1
  107. package/dist/lib/credential-utils.d.ts +0 -36
  108. package/dist/lib/credential-utils.js +0 -88
  109. package/dist/lib/credential-utils.js.map +0 -1
  110. package/dist/lib/diff-display.d.ts +0 -8
  111. package/dist/lib/diff-display.js +0 -37
  112. package/dist/lib/diff-display.js.map +0 -1
  113. package/dist/lib/eval-format.d.ts +0 -29
  114. package/dist/lib/eval-format.js +0 -44
  115. package/dist/lib/eval-format.js.map +0 -1
  116. package/dist/lib/hub-lock.d.ts +0 -7
  117. package/dist/lib/hub-lock.js +0 -116
  118. package/dist/lib/hub-lock.js.map +0 -1
  119. package/dist/lib/layout.d.ts +0 -79
  120. package/dist/lib/layout.js +0 -133
  121. package/dist/lib/layout.js.map +0 -1
  122. package/dist/lib/org-workspace.d.ts +0 -22
  123. package/dist/lib/org-workspace.js +0 -106
  124. package/dist/lib/org-workspace.js.map +0 -1
  125. package/dist/lib/parser.d.ts +0 -16
  126. package/dist/lib/parser.js +0 -306
  127. package/dist/lib/parser.js.map +0 -1
  128. package/dist/lib/repo-config.d.ts +0 -23
  129. package/dist/lib/repo-config.js +0 -91
  130. package/dist/lib/repo-config.js.map +0 -1
  131. package/dist/lib/report-edit-args.d.ts +0 -27
  132. package/dist/lib/report-edit-args.js +0 -56
  133. package/dist/lib/report-edit-args.js.map +0 -1
  134. package/dist/lib/report-inbox.d.ts +0 -19
  135. package/dist/lib/report-inbox.js +0 -73
  136. package/dist/lib/report-inbox.js.map +0 -1
  137. package/dist/lib/resource-files.d.ts +0 -29
  138. package/dist/lib/resource-files.js +0 -156
  139. package/dist/lib/resource-files.js.map +0 -1
  140. package/dist/lib/sentry.d.ts +0 -38
  141. package/dist/lib/sentry.js +0 -168
  142. package/dist/lib/sentry.js.map +0 -1
  143. package/dist/lib/skill-version.d.ts +0 -9
  144. package/dist/lib/skill-version.js +0 -53
  145. package/dist/lib/skill-version.js.map +0 -1
  146. package/dist/lib/sql-output.d.ts +0 -17
  147. package/dist/lib/sql-output.js +0 -48
  148. package/dist/lib/sql-output.js.map +0 -1
  149. package/dist/lib/token-store.d.ts +0 -37
  150. package/dist/lib/token-store.js +0 -354
  151. package/dist/lib/token-store.js.map +0 -1
  152. package/dist/lib/types.d.ts +0 -18
  153. package/dist/lib/types.js +0 -5
  154. package/dist/lib/types.js.map +0 -1
  155. package/dist/lib/utils.d.ts +0 -97
  156. package/dist/lib/utils.js +0 -288
  157. package/dist/lib/utils.js.map +0 -1
  158. package/dist/lib/version-cache.d.ts +0 -10
  159. package/dist/lib/version-cache.js +0 -34
  160. package/dist/lib/version-cache.js.map +0 -1
  161. package/dist/lib/workspace.d.ts +0 -112
  162. package/dist/lib/workspace.js +0 -387
  163. package/dist/lib/workspace.js.map +0 -1
  164. package/dist/lib/yaml-writer.d.ts +0 -18
  165. package/dist/lib/yaml-writer.js +0 -283
  166. package/dist/lib/yaml-writer.js.map +0 -1
@@ -1,205 +0,0 @@
1
- /**
2
- * wayai status — show current auth/config status and repo scope
3
- *
4
- * Usage:
5
- * wayai status # human-readable output
6
- * wayai status --json # structured output for agents/scripts
7
- *
8
- * The --json shape is the canonical state snapshot consumed by the WayAI skill
9
- * during agentic onboarding. Fields are nullable so the agent can branch
10
- * cleanly from any starting state (no config / no org / no workspace / etc.).
11
- */
12
- import * as path from 'node:path';
13
- import { readConfig } from '../lib/config.js';
14
- import { getAccessToken } from '../lib/auth.js';
15
- import { readRepoConfig } from '../lib/repo-config.js';
16
- import { detectWorkspace, findGitRoot, scanWorkspaceHubs } from '../lib/workspace.js';
17
- import { readLock } from '../lib/hub-lock.js';
18
- import { ApiClient, ApiError } from '../lib/api-client.js';
19
- import { CLI_CACHE_FILE, SKILL_CACHE_FILE, readCachedLatest } from '../lib/version-cache.js';
20
- import { findInstalledSkills, lowestInstalledVersion, } from '../lib/skill-version.js';
21
- import { isNewerVersion } from '../lib/utils.js';
22
- import { nudgeReportActions } from '../lib/report-inbox.js';
23
- export function parseArgs(args) {
24
- return { json: args.includes('--json') };
25
- }
26
- function buildSkillState() {
27
- const projectRoot = findGitRoot() ?? process.cwd();
28
- const installs = findInstalledSkills(projectRoot);
29
- if (installs.length === 0) {
30
- return { installed: false, version: null, latest: null, paths: [] };
31
- }
32
- const version = lowestInstalledVersion(installs);
33
- const cached = readCachedLatest(SKILL_CACHE_FILE);
34
- // Field semantics: "newer available, or null". The cache can lag the
35
- // installed version (24h TTL; `npx skills add ...` doesn't invalidate it),
36
- // so suppress the field unless it actually advertises an upgrade.
37
- const latest = cached && version && isNewerVersion(cached, version) ? cached : null;
38
- return {
39
- installed: true,
40
- version,
41
- latest,
42
- paths: installs.map((i) => i.path),
43
- };
44
- }
45
- function buildWorkspaceState(repoConfig) {
46
- if (!repoConfig)
47
- return { scoped: false, path: null, hub_count: 0 };
48
- const ws = detectWorkspace();
49
- const gitRoot = ws?.gitRoot ?? findGitRoot();
50
- const hubCount = ws ? scanWorkspaceHubs(ws.workspaceDir).length : 0;
51
- const yamlPath = gitRoot ? path.join(gitRoot, '.wayai.yaml') : null;
52
- return { scoped: true, path: yamlPath, hub_count: hubCount };
53
- }
54
- export async function statusCommand(args, pkg) {
55
- const { json } = parseArgs(args);
56
- const config = readConfig();
57
- const repoConfig = readRepoConfig();
58
- const workspace = buildWorkspaceState(repoConfig);
59
- // Same "newer available, or null" gate as buildSkillState.
60
- const cachedCliLatest = readCachedLatest(CLI_CACHE_FILE);
61
- const cliLatest = cachedCliLatest && isNewerVersion(cachedCliLatest, pkg.version)
62
- ? cachedCliLatest
63
- : null;
64
- const skill = buildSkillState();
65
- // Status is a diagnostic command — never crash on a lockfile read error.
66
- let lockedHubId = null;
67
- try {
68
- lockedHubId = readLock();
69
- }
70
- catch {
71
- lockedHubId = null;
72
- }
73
- // Cold-start path: no config at all.
74
- if (!config) {
75
- const snapshot = {
76
- logged_in: false,
77
- token_valid: null,
78
- api_url: null,
79
- repo_scope: null,
80
- cli: { version: pkg.version, latest: cliLatest },
81
- skill,
82
- auth: { logged_in: false, user_email: null },
83
- orgs: [],
84
- active_org: null,
85
- workspace,
86
- worktree_lock: { hub_id: lockedHubId },
87
- };
88
- if (json) {
89
- console.log(JSON.stringify(snapshot, null, 2));
90
- }
91
- else {
92
- console.log('Not logged in. Run `wayai login`.');
93
- }
94
- return;
95
- }
96
- // Logged-in path: validate token against the backend, then enrich with data.
97
- // token_valid reflects backend acceptance (not just storage load) so users
98
- // can't be fooled into thinking auth works when API calls 401.
99
- let accessToken = null;
100
- let tokenLoaded = false;
101
- try {
102
- accessToken = await getAccessToken(config);
103
- tokenLoaded = true;
104
- }
105
- catch {
106
- tokenLoaded = false;
107
- }
108
- let userEmail = null;
109
- let orgs = [];
110
- // An empty-string accessToken bypasses the API-call branch below, so flag
111
- // it as definitively-invalid up front rather than leaving it as the
112
- // "validity unknown" sentinel.
113
- let tokenValid = tokenLoaded && accessToken ? null : false;
114
- if (tokenLoaded && accessToken) {
115
- const client = new ApiClient({ apiUrl: config.api_url, accessToken });
116
- const [meResult, orgsResult] = await Promise.allSettled([
117
- client.me(),
118
- client.organizations(),
119
- ]);
120
- if (meResult.status === 'fulfilled') {
121
- userEmail = meResult.value.email || null;
122
- tokenValid = true;
123
- }
124
- else if (meResult.reason instanceof ApiError && meResult.reason.isExpected) {
125
- // Any 4xx is the backend deciding "this token isn't acceptable" — 401
126
- // (invalid/expired/stale), 403 (scope revoked, deletion-pending),
127
- // 404 (user gone). Treat all as definitive rejection.
128
- tokenValid = false;
129
- }
130
- // Other failures (network unreachable, 5xx) leave tokenValid as null —
131
- // "couldn't determine" is more truthful than "valid" or "invalid".
132
- if (orgsResult.status === 'fulfilled') {
133
- orgs = orgsResult.value.organizations.map((o) => ({ id: o.id, name: o.name }));
134
- }
135
- }
136
- const activeOrg = repoConfig
137
- ? {
138
- id: repoConfig.organization_id,
139
- name: orgs.find((o) => o.id === repoConfig.organization_id)?.name
140
- ?? repoConfig.organization_name
141
- ?? repoConfig.organization_id,
142
- }
143
- : null;
144
- const snapshot = {
145
- logged_in: true,
146
- token_valid: tokenValid,
147
- api_url: config.api_url,
148
- repo_scope: repoConfig
149
- ? {
150
- organization_id: repoConfig.organization_id,
151
- organization_name: repoConfig.organization_name ?? null,
152
- }
153
- : null,
154
- cli: { version: pkg.version, latest: cliLatest },
155
- skill,
156
- auth: { logged_in: true, user_email: userEmail },
157
- orgs,
158
- active_org: activeOrg,
159
- workspace,
160
- worktree_lock: { hub_id: lockedHubId },
161
- };
162
- if (json) {
163
- console.log(JSON.stringify(snapshot, null, 2));
164
- return;
165
- }
166
- // Human-readable output.
167
- const tokenStatus = tokenValid === true
168
- ? 'token valid'
169
- : tokenValid === false
170
- ? 'token rejected — run `wayai login` to re-authenticate'
171
- : 'token validity unknown — backend unreachable';
172
- console.log(`Logged in${userEmail ? ` as ${userEmail}` : ''} — ${tokenStatus}`);
173
- if (config.api_url !== 'https://api.wayai.pro') {
174
- console.log(`API: ${config.api_url}`);
175
- }
176
- if (cliLatest) {
177
- console.log(`CLI: ${pkg.version} (latest: ${cliLatest} — run \`wayai update\`)`);
178
- }
179
- if (skill.installed && skill.latest) {
180
- console.log(`Skill: ${skill.version} (latest: ${skill.latest} — run \`npx skills add wayai-pro/wayai-skill -y\`)`);
181
- }
182
- if (orgs.length > 0) {
183
- console.log(`Organizations: ${orgs.length}`);
184
- }
185
- if (repoConfig) {
186
- const orgLine = repoConfig.organization_name
187
- ? `${repoConfig.organization_name} (${repoConfig.organization_id})`
188
- : repoConfig.organization_id;
189
- console.log(`Repository scope:`);
190
- console.log(` Organization: ${orgLine}`);
191
- console.log(` Hubs: ${workspace.hub_count}`);
192
- }
193
- else {
194
- console.log('No .wayai.yaml found — run `wayai init` to scope this repo to an organization.');
195
- }
196
- if (lockedHubId) {
197
- console.log(`Worktree lock: ${lockedHubId} (run \`wayai unlock\` to clear)`);
198
- }
199
- // Best-effort, non-JSON path only (the --json branch returned above): remind the reporter of
200
- // any reports awaiting their accept/contest. Self-guards on TTY; only runs with a valid token.
201
- if (tokenValid === true && accessToken) {
202
- await nudgeReportActions(config.api_url, accessToken);
203
- }
204
- }
205
- //# sourceMappingURL=status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- /**
2
- * wayai sync-mcp --connection <name> [--hub <id|name>] — re-discover an MCP
3
- * connection's tool/resource catalog.
4
- *
5
- * `wayai push` only discovers MCP tools that are *new* to the hub catalog; it
6
- * never refreshes the cached input-schema of tools already catalogued. When an
7
- * external MCP server changes a tool's schema (e.g. adds typed params), the
8
- * agent keeps calling the stale schema until the catalog is re-synced. This is
9
- * the explicit, connection-level refresh for that case (gh #2548).
10
- *
11
- * Preview-only — production hubs are read-only (changes flow preview → sync).
12
- */
13
- export declare function parseArgs(args: string[]): {
14
- connection: string | undefined;
15
- };
16
- export declare function syncMcpCommand(args: string[]): Promise<void>;
@@ -1,51 +0,0 @@
1
- /**
2
- * wayai sync-mcp --connection <name> [--hub <id|name>] — re-discover an MCP
3
- * connection's tool/resource catalog.
4
- *
5
- * `wayai push` only discovers MCP tools that are *new* to the hub catalog; it
6
- * never refreshes the cached input-schema of tools already catalogued. When an
7
- * external MCP server changes a tool's schema (e.g. adds typed params), the
8
- * agent keeps calling the stale schema until the catalog is re-synced. This is
9
- * the explicit, connection-level refresh for that case (gh #2548).
10
- *
11
- * Preview-only — production hubs are read-only (changes flow preview → sync).
12
- */
13
- import { requireAuth } from '../lib/auth.js';
14
- import { ApiClient } from '../lib/api-client.js';
15
- import { requireRepoConfig } from '../lib/repo-config.js';
16
- import { resolveActiveHubId } from '../lib/workspace.js';
17
- import { printWarnings } from './push.js';
18
- export function parseArgs(args) {
19
- let connection;
20
- for (let i = 0; i < args.length; i++) {
21
- const arg = args[i];
22
- if (arg === '--connection' && args[i + 1]) {
23
- connection = args[++i];
24
- }
25
- }
26
- return { connection };
27
- }
28
- export async function syncMcpCommand(args) {
29
- // resolveActiveHubId parses and removes `--hub <value>` from args.
30
- const hubId = resolveActiveHubId(args);
31
- const { connection } = parseArgs(args);
32
- if (!connection) {
33
- console.error('Usage: wayai sync-mcp --connection <name> [--hub <uuid|folder-name>]');
34
- console.error('');
35
- console.error('Re-discovers the MCP connection\'s tools/resources and refreshes their');
36
- console.error('cached input schemas. `--connection` accepts the connection display name');
37
- console.error('(as in connections[].name) or its UUID.');
38
- process.exit(1);
39
- }
40
- const { organization_id: organizationId } = requireRepoConfig();
41
- const { config, accessToken } = await requireAuth();
42
- const client = new ApiClient({ apiUrl: config.api_url, accessToken });
43
- console.log(`Syncing MCP tools for connection "${connection}"...`);
44
- const result = await client.syncMcp(hubId, connection, organizationId);
45
- console.log(result.message ??
46
- `Synced ${result.tools_count ?? 0} tool(s) and ${result.resources_count ?? 0} resource(s) from MCP server`);
47
- if (result.warnings && result.warnings.length > 0) {
48
- printWarnings(result.warnings);
49
- }
50
- }
51
- //# sourceMappingURL=sync-mcp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync-mcp.js","sourceRoot":"","sources":["../../src/commands/sync-mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,IAAI,UAA8B,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,cAAc,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC1C,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,mEAAmE;IACnE,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAEvC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;QACtF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;QACxF,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC1F,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAChE,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,OAAO,CAAC,GAAG,CAAC,qCAAqC,UAAU,MAAM,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IAEvE,OAAO,CAAC,GAAG,CACT,MAAM,CAAC,OAAO;QACZ,UAAU,MAAM,CAAC,WAAW,IAAI,CAAC,gBAAgB,MAAM,CAAC,eAAe,IAAI,CAAC,8BAA8B,CAC7G,CAAC;IAEF,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;AACH,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * wayai sync-skills [--connection-id <uuid>] — sync skills to Anthropic/OpenAI provider connections
3
- *
4
- * Triggers provider-side skill sync for the hub specified in .wayai.yaml.
5
- * Useful after `wayai push` when the hub uses native skill integration (Anthropic or OpenAI).
6
- */
7
- export declare function parseArgs(args: string[]): {
8
- connectionId: string | undefined;
9
- };
10
- export declare function syncSkillsCommand(args: string[]): Promise<void>;
@@ -1,49 +0,0 @@
1
- /**
2
- * wayai sync-skills [--connection-id <uuid>] — sync skills to Anthropic/OpenAI provider connections
3
- *
4
- * Triggers provider-side skill sync for the hub specified in .wayai.yaml.
5
- * Useful after `wayai push` when the hub uses native skill integration (Anthropic or OpenAI).
6
- */
7
- import { requireAuth } from '../lib/auth.js';
8
- import { ApiClient } from '../lib/api-client.js';
9
- import { requireRepoConfig } from '../lib/repo-config.js';
10
- import { resolveActiveHubId } from '../lib/workspace.js';
11
- export function parseArgs(args) {
12
- let connectionId;
13
- const idx = args.indexOf('--connection-id');
14
- if (idx !== -1 && args[idx + 1]) {
15
- connectionId = args[idx + 1];
16
- }
17
- return { connectionId };
18
- }
19
- function printSyncResults(response) {
20
- console.log(response.message);
21
- for (const item of response.results) {
22
- const parts = [`${item.connection_name}:`];
23
- if (item.uploaded > 0)
24
- parts.push(`${item.uploaded} uploaded`);
25
- if (item.failed > 0)
26
- parts.push(`${item.failed} failed`);
27
- if (item.uploaded === 0 && item.failed === 0)
28
- parts.push('no changes');
29
- console.log(` ${parts.join(' ')}`);
30
- for (const err of item.errors) {
31
- console.log(` \x1b[33m! ${err}\x1b[0m`);
32
- }
33
- }
34
- }
35
- export async function syncSkillsCommand(args) {
36
- const hubId = resolveActiveHubId(args);
37
- const { connectionId } = parseArgs(args);
38
- requireRepoConfig();
39
- const { config, accessToken } = await requireAuth();
40
- const client = new ApiClient({ apiUrl: config.api_url, accessToken });
41
- console.log('Syncing skills...');
42
- const response = await client.syncSkills(hubId, connectionId);
43
- printSyncResults(response);
44
- const hasFailed = response.results.some((r) => r.failed > 0);
45
- if (hasFailed) {
46
- process.exit(1);
47
- }
48
- }
49
- //# sourceMappingURL=sync-skills.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync-skills.js","sourceRoot":"","sources":["../../src/commands/sync-skills.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,IAAI,YAAgC,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5C,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;QAChC,YAAY,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,gBAAgB,CAAC,QAA4B;IACpD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,KAAK,GAAa,CAAC,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,WAAW,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEpC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAc;IACpD,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACzC,iBAAiB,EAAE,CAAC;IACpB,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,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC9D,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE3B,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAuB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnF,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -1 +0,0 @@
1
- export declare function unlockCommand(_args: string[]): Promise<void>;
@@ -1,13 +0,0 @@
1
- // wayai unlock — clear the per-worktree hub lock.
2
- import { clearLock, readLock } from '../lib/hub-lock.js';
3
- export async function unlockCommand(_args) {
4
- const previous = readLock();
5
- if (!previous) {
6
- console.log('No worktree lock to clear.');
7
- return;
8
- }
9
- // ENOENT between read and unlink is fine — lock is already gone.
10
- clearLock();
11
- console.log(`Worktree unlocked (was: ${previous}).`);
12
- }
13
- //# sourceMappingURL=unlock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unlock.js","sourceRoot":"","sources":["../../src/commands/unlock.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAElD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAe;IACjD,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,iEAAiE;IACjE,SAAS,EAAE,CAAC;IACZ,OAAO,CAAC,GAAG,CAAC,2BAA2B,QAAQ,IAAI,CAAC,CAAC;AACvD,CAAC"}
@@ -1,29 +0,0 @@
1
- /**
2
- * wayai update-credential — update / rotate an existing organization credential.
3
- *
4
- * Targets a credential by its display name (org credentials are resolved by name
5
- * everywhere), then maps to the existing `PUT /api/setup/organization-credentials/:id`.
6
- * The backend propagates a rotated secret to every linked connection.
7
- *
8
- * Usage:
9
- * echo "$NEW_TOKEN" | wayai update-credential --name "clinica-medica-mcp" --stdin
10
- * wayai update-credential --name "openai-key" --tag clinica-medica
11
- * wayai update-credential --name "old-name" --rename "new-name"
12
- * wayai update-credential --name "my-api" --description "Rotated 2026-06" --environment production
13
- */
14
- interface ParsedArgs {
15
- name: string | undefined;
16
- rename: string | undefined;
17
- orgId: string | undefined;
18
- description: string | undefined;
19
- tags: string[];
20
- hasTagFlag: boolean;
21
- environment: string | undefined;
22
- /** --stdin: read the new secret from a pipe. */
23
- stdin: boolean;
24
- /** --secret: prompt for the new secret interactively (masked). */
25
- secretPrompt: boolean;
26
- }
27
- export declare function parseArgs(args: string[]): ParsedArgs;
28
- export declare function updateCredentialCommand(args: string[]): Promise<void>;
29
- export {};
@@ -1,156 +0,0 @@
1
- /**
2
- * wayai update-credential — update / rotate an existing organization credential.
3
- *
4
- * Targets a credential by its display name (org credentials are resolved by name
5
- * everywhere), then maps to the existing `PUT /api/setup/organization-credentials/:id`.
6
- * The backend propagates a rotated secret to every linked connection.
7
- *
8
- * Usage:
9
- * echo "$NEW_TOKEN" | wayai update-credential --name "clinica-medica-mcp" --stdin
10
- * wayai update-credential --name "openai-key" --tag clinica-medica
11
- * wayai update-credential --name "old-name" --rename "new-name"
12
- * wayai update-credential --name "my-api" --description "Rotated 2026-06" --environment production
13
- */
14
- import { requireAuth } from '../lib/auth.js';
15
- import { ApiClient, ApiError } from '../lib/api-client.js';
16
- import { promptSecret, prompt, readStdin, resolveOrganizationId } from '../lib/utils.js';
17
- import { VALID_ENVIRONMENTS, normalizeCliEnvironment, mapSecretToCredentialFields, resolveTagIds, splitTagRefs, } from '../lib/credential-utils.js';
18
- export function parseArgs(args) {
19
- let name;
20
- let rename;
21
- let orgId;
22
- let description;
23
- const tags = [];
24
- let hasTagFlag = false;
25
- let environment;
26
- let stdin = false;
27
- let secretPrompt = false;
28
- for (let i = 0; i < args.length; i++) {
29
- if (args[i] === '--name' && args[i + 1]) {
30
- name = args[++i];
31
- }
32
- else if (args[i] === '--rename' && args[i + 1]) {
33
- rename = args[++i];
34
- }
35
- else if (args[i] === '--org' && args[i + 1]) {
36
- orgId = args[++i];
37
- }
38
- else if (args[i] === '--description' && args[i + 1]) {
39
- description = args[++i];
40
- }
41
- else if (args[i] === '--tag' && args[i + 1]) {
42
- hasTagFlag = true;
43
- tags.push(args[++i]);
44
- }
45
- else if (args[i] === '--environment' && args[i + 1]) {
46
- environment = args[++i];
47
- }
48
- else if (args[i] === '--stdin') {
49
- stdin = true;
50
- }
51
- else if (args[i] === '--secret') {
52
- secretPrompt = true;
53
- }
54
- }
55
- return { name, rename, orgId, description, tags: splitTagRefs(tags), hasTagFlag, environment, stdin, secretPrompt };
56
- }
57
- export async function updateCredentialCommand(args) {
58
- const parsed = parseArgs(args);
59
- if (!parsed.name) {
60
- console.error('Missing required flag: --name <credential-name>');
61
- console.error('Usage: wayai update-credential --name "my-key" --stdin');
62
- process.exit(1);
63
- }
64
- if (parsed.environment && !normalizeCliEnvironment(parsed.environment)) {
65
- console.error(`Invalid environment: "${parsed.environment}"`);
66
- console.error(`Supported environments: ${VALID_ENVIRONMENTS.join(', ')}`);
67
- process.exit(1);
68
- }
69
- const wantsSecret = parsed.stdin || parsed.secretPrompt;
70
- if (!wantsSecret && !parsed.rename && parsed.description === undefined && !parsed.hasTagFlag && !parsed.environment) {
71
- console.error('Nothing to update. Provide at least one of: --stdin/--secret, --rename, --description, --tag, --environment');
72
- process.exit(1);
73
- }
74
- const { config, accessToken } = await requireAuth();
75
- const client = new ApiClient({ apiUrl: config.api_url, accessToken });
76
- const { organizationId } = await resolveOrganizationId(client, parsed.orgId);
77
- // Resolve the credential by display name.
78
- const list = await client.listOrgCredentials(organizationId);
79
- const matches = (list.data || []).filter((c) => c.credential_display_name === parsed.name);
80
- if (matches.length === 0) {
81
- console.error(`No credential named "${parsed.name}" found in this organization.`);
82
- const available = (list.data || []).map((c) => c.credential_display_name);
83
- if (available.length > 0) {
84
- console.error(`Available credentials: ${available.join(', ')}`);
85
- }
86
- process.exit(1);
87
- }
88
- if (matches.length > 1) {
89
- console.error(`${matches.length} credentials are named "${parsed.name}" (ids: ${matches.map((c) => c.organization_credential_id).join(', ')}).`);
90
- console.error('Names are ambiguous — resolve the duplicates in Settings → Organization → Credentials before updating by name.');
91
- process.exit(1);
92
- }
93
- const credential = matches[0];
94
- const authType = credential.authentication_type;
95
- const body = {};
96
- // Secret rotation — map the piped/prompted value to the right field(s) for this
97
- // credential's auth type.
98
- if (wantsSecret) {
99
- let input;
100
- if (parsed.stdin) {
101
- if (process.stdin.isTTY) {
102
- console.error('--stdin requires piped input. Use --secret for an interactive masked prompt.');
103
- process.exit(1);
104
- }
105
- input = await readStdin();
106
- }
107
- else if (authType === 'basic_auth') {
108
- const username = await prompt('Enter username: ');
109
- const password = await promptSecret('Enter password: ');
110
- input = `${username}:${password}`;
111
- }
112
- else {
113
- input = await promptSecret(authType === 'bearer' ? 'Enter access token: ' : 'Enter API key: ');
114
- }
115
- if (!input) {
116
- console.error('No secret provided.');
117
- process.exit(1);
118
- }
119
- try {
120
- Object.assign(body, mapSecretToCredentialFields(authType, input));
121
- }
122
- catch (err) {
123
- console.error(err instanceof Error ? err.message : String(err));
124
- process.exit(1);
125
- }
126
- }
127
- if (parsed.rename)
128
- body.credential_display_name = parsed.rename;
129
- if (parsed.description !== undefined)
130
- body.credential_description = parsed.description;
131
- if (parsed.environment)
132
- body.environment = parsed.environment;
133
- if (parsed.hasTagFlag) {
134
- const orgTags = await client.listOrgTags(organizationId);
135
- body.tags = resolveTagIds(parsed.tags, orgTags.data || []);
136
- }
137
- console.log(`Updating credential "${parsed.name}"...`);
138
- let result;
139
- try {
140
- result = await client.updateOrgCredential(credential.organization_credential_id, organizationId, body);
141
- }
142
- catch (err) {
143
- if (err instanceof ApiError && err.status === 409) {
144
- console.error(`\nCannot rename: a credential named "${parsed.rename}" already exists in this organization.`);
145
- process.exit(1);
146
- }
147
- throw err;
148
- }
149
- console.log(`\nCredential updated: ${result.data.credential_display_name}`);
150
- console.log(` ID: ${result.data.organization_credential_id}`);
151
- console.log(` Type: ${result.data.authentication_type}`);
152
- if (wantsSecret) {
153
- console.log(' Secret rotated — linked connections updated.');
154
- }
155
- }
156
- //# sourceMappingURL=update-credential.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-credential.js","sourceRoot":"","sources":["../../src/commands/update-credential.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAEL,kBAAkB,EAElB,uBAAuB,EACvB,2BAA2B,EAC3B,aAAa,EACb,YAAY,GACb,MAAM,4BAA4B,CAAC;AAiBpC,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,IAAI,IAAwB,CAAC;IAC7B,IAAI,MAA0B,CAAC;IAC/B,IAAI,KAAyB,CAAC;IAC9B,IAAI,WAA+B,CAAC;IACpC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,WAA+B,CAAC;IACpC,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,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,UAAU,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACrB,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;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,eAAe,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACtD,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC9C,UAAU,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,eAAe,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACtD,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YACjC,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;YAClC,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AACtH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAAc;IAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,yBAAyB,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;QAC9D,OAAO,CAAC,KAAK,CAAC,2BAA2B,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,CAAC;IAExD,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACpH,OAAO,CAAC,KAAK,CAAC,6GAA6G,CAAC,CAAC;QAC7H,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,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAE7E,0CAA0C;IAC1C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,uBAAuB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;IAE3F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,wBAAwB,MAAM,CAAC,IAAI,+BAA+B,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;QAC1E,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,0BAA0B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CACX,GAAG,OAAO,CAAC,MAAM,2BAA2B,MAAM,CAAC,IAAI,WAAW,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAClI,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,gHAAgH,CAAC,CAAC;QAChI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,UAAU,CAAC,mBAA+B,CAAC;IAE5D,MAAM,IAAI,GAA6B,EAAE,CAAC;IAE1C,gFAAgF;IAChF,0BAA0B;IAC1B,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,KAAa,CAAC;QAClB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;gBAC9F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;QAC5B,CAAC;aAAM,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAAC,CAAC;YACxD,KAAK,GAAG,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,MAAM,YAAY,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACjG,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,2BAA2B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM;QAAE,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC;IAChE,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;QAAE,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,WAAW,CAAC;IACvF,IAAI,MAAM,CAAC,WAAW;QAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAA0B,CAAC;IAC7E,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC;IAEvD,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,0BAA0B,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACzG,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAClD,OAAO,CAAC,KAAK,CAAC,wCAAwC,MAAM,CAAC,MAAM,wCAAwC,CAAC,CAAC;YAC7G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1D,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * wayai update — update CLI to the latest version
3
- */
4
- export declare function updateCommand(pkg: {
5
- version: string;
6
- }): Promise<void>;
@@ -1,36 +0,0 @@
1
- /**
2
- * wayai update — update CLI to the latest version
3
- */
4
- import { execFileSync } from 'node:child_process';
5
- import { captureException, closeSentry } from '../lib/sentry.js';
6
- export async function updateCommand(pkg) {
7
- console.log(`Current version: ${pkg.version}`);
8
- console.log('Checking for updates...');
9
- try {
10
- // shell: true required for Windows where npm is a .cmd script
11
- const latest = execFileSync('npm', ['view', '@wayai/cli', 'version'], {
12
- timeout: 10000,
13
- shell: true,
14
- }).toString().trim();
15
- if (latest === pkg.version) {
16
- console.log(`Already on the latest version (${pkg.version}).`);
17
- }
18
- else {
19
- console.log(`Updating ${pkg.version} → ${latest}...`);
20
- execFileSync('npm', ['install', '-g', '@wayai/cli@latest'], {
21
- timeout: 60000,
22
- shell: true,
23
- stdio: 'inherit',
24
- });
25
- console.log(`Updated to ${latest}.`);
26
- }
27
- }
28
- catch (err) {
29
- captureException(err);
30
- await closeSentry();
31
- console.error('Update failed:', err instanceof Error ? err.message : String(err));
32
- console.error('Try manually: npm install -g @wayai/cli');
33
- process.exit(1);
34
- }
35
- }
36
- //# sourceMappingURL=update.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAwB;IAC1D,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;QACjE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,OAAO,MAAM,MAAM,KAAK,CAAC,CAAC;YACtD,YAAY,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,mBAAmB,CAAC,EAAE;gBAC1D,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,GAAG,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACtB,MAAM,WAAW,EAAE,CAAC;QACpB,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"}
@@ -1 +0,0 @@
1
- export declare function useCommand(args: string[]): Promise<void>;