@wayai/cli 0.3.39 → 0.3.41

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 +16893 -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 -800
  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 -561
  99. package/dist/lib/api-client.js +0 -421
  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,354 +0,0 @@
1
- import * as fs from 'node:fs';
2
- import * as path from 'node:path';
3
- import * as os from 'node:os';
4
- export function identifyTokenType(token) {
5
- if (token.startsWith('way_'))
6
- return 'way_token';
7
- if (token.startsWith('eyJ'))
8
- return 'jwt';
9
- return 'unknown';
10
- }
11
- const KEYRING_SERVICE = 'wayai';
12
- const KEY_WAY_TOKEN = 'way_token';
13
- const KEY_OAUTH_ACCESS = 'oauth_access_token';
14
- const KEY_OAUTH_REFRESH = 'oauth_refresh_token';
15
- // Resolved per-call (not at module load) so tests can redirect via $HOME and
16
- // production code picks up any runtime HOME changes (e.g., su -).
17
- function configDir() { return path.join(os.homedir(), '.wayai'); }
18
- function configPath() { return path.join(configDir(), 'config.json'); }
19
- let keyringCache;
20
- // Cross-platform manual cleanup hint. @napi-rs/keyring targets macOS Keychain,
21
- // libsecret on Linux, and Windows Credential Manager — the shell command to
22
- // evict a stuck entry differs per OS, so we tailor the message rather than
23
- // printing a macOS-only `security` invocation to Linux/Windows users.
24
- function manualCleanupCommand(account) {
25
- if (process.platform === 'darwin') {
26
- return `security delete-generic-password -s ${KEYRING_SERVICE} -a ${account}`;
27
- }
28
- if (process.platform === 'win32') {
29
- return `cmdkey /delete:${KEYRING_SERVICE}/${account}`;
30
- }
31
- if (process.platform === 'linux') {
32
- return `secret-tool clear service ${KEYRING_SERVICE} account ${account}`;
33
- }
34
- return `(remove the entry with service="${KEYRING_SERVICE}" account="${account}" from your OS credential store)`;
35
- }
36
- /**
37
- * A keyring slot was deleted but a subsequent getPassword still returned a
38
- * value — the underlying secret store accepted the delete call without
39
- * actually removing the entry. Typically a macOS Keychain ACL surviving
40
- * from a prior login. Until the slot is cleared, writes to other slots
41
- * cannot reliably override what reads pick up first.
42
- */
43
- export class StaleKeyringSlotError extends Error {
44
- account;
45
- constructor(account) {
46
- super(`Stale credential remains in OS keyring slot "${account}" after delete. ` +
47
- `This usually means a prior login left an ACL the current process can't override. ` +
48
- `Clean it up manually and retry:\n` +
49
- ` ${manualCleanupCommand(account)}`);
50
- this.account = account;
51
- this.name = 'StaleKeyringSlotError';
52
- }
53
- }
54
- async function clearSlot(keyring, account) {
55
- await keyring.deletePassword(KEYRING_SERVICE, account);
56
- // A throw from getPassword (locked keychain, libsecret hiccup) means we
57
- // cannot confirm the slot is empty — treat the same as "stale entry
58
- // survived" so callers throw StaleKeyringSlotError rather than degrading
59
- // to file fallback (which would write OAuth alongside a possibly-stuck
60
- // way_, reproducing the masked-credential bug this helper exists to stop).
61
- try {
62
- return (await keyring.getPassword(KEYRING_SERVICE, account)) === null;
63
- }
64
- catch {
65
- return false;
66
- }
67
- }
68
- async function getKeyring() {
69
- if (keyringCache !== undefined)
70
- return keyringCache;
71
- try {
72
- const mod = await import('@napi-rs/keyring');
73
- const Entry = mod.Entry;
74
- keyringCache = {
75
- async getPassword(service, account) {
76
- try {
77
- return new Entry(service, account).getPassword();
78
- }
79
- catch {
80
- return null;
81
- }
82
- },
83
- async setPassword(service, account, password) {
84
- new Entry(service, account).setPassword(password);
85
- },
86
- async deletePassword(service, account) {
87
- try {
88
- return new Entry(service, account).deletePassword();
89
- }
90
- catch {
91
- return false;
92
- }
93
- },
94
- };
95
- }
96
- catch {
97
- keyringCache = null;
98
- }
99
- return keyringCache;
100
- }
101
- function readLegacyConfigFile() {
102
- if (!fs.existsSync(configPath()))
103
- return null;
104
- try {
105
- return JSON.parse(fs.readFileSync(configPath(), 'utf-8'));
106
- }
107
- catch {
108
- return null;
109
- }
110
- }
111
- function stripTokensFromFile() {
112
- const legacy = readLegacyConfigFile();
113
- if (!legacy)
114
- return;
115
- // token_expires_at is a timestamp, not a secret — keep it as metadata so the
116
- // refresh path can decide when to refresh without reading the keyring.
117
- const cleaned = {};
118
- for (const [k, v] of Object.entries(legacy)) {
119
- if (k === 'token' || k === 'access_token' || k === 'refresh_token')
120
- continue;
121
- cleaned[k] = v;
122
- }
123
- fs.writeFileSync(configPath(), JSON.stringify(cleaned, null, 2) + '\n', { mode: 0o600 });
124
- }
125
- export async function migrateLegacyTokens() {
126
- const legacy = readLegacyConfigFile();
127
- if (!legacy)
128
- return null;
129
- if (!legacy.token && !legacy.access_token)
130
- return null;
131
- const keyring = await getKeyring();
132
- if (legacy.token) {
133
- if (keyring) {
134
- try {
135
- await keyring.setPassword(KEYRING_SERVICE, KEY_WAY_TOKEN, legacy.token);
136
- // Strip failure leaves plaintext on disk until the next CLI invocation
137
- // re-attempts — keyring write was successful, so functionally OK.
138
- try {
139
- stripTokensFromFile();
140
- }
141
- catch (err) {
142
- console.warn(`wayai: failed to strip legacy token from ~/.wayai/config.json (${err.message}); will retry next run.`);
143
- }
144
- }
145
- catch (err) {
146
- // Keyring write failed (locked keychain, etc.); leave the legacy file
147
- // intact so the file-fallback read keeps working and the next CLI run
148
- // can retry the migration.
149
- console.warn(`wayai: keyring migration failed (${err.message}); continuing with file-backed token.`);
150
- }
151
- }
152
- return { kind: 'way', token: legacy.token };
153
- }
154
- if (legacy.access_token) {
155
- if (keyring) {
156
- try {
157
- await keyring.setPassword(KEYRING_SERVICE, KEY_OAUTH_ACCESS, legacy.access_token);
158
- if (legacy.refresh_token) {
159
- await keyring.setPassword(KEYRING_SERVICE, KEY_OAUTH_REFRESH, legacy.refresh_token);
160
- }
161
- try {
162
- stripTokensFromFile();
163
- }
164
- catch (err) {
165
- console.warn(`wayai: failed to strip legacy tokens from ~/.wayai/config.json (${err.message}); will retry next run.`);
166
- }
167
- }
168
- catch (err) {
169
- console.warn(`wayai: keyring migration failed (${err.message}); continuing with file-backed tokens.`);
170
- }
171
- }
172
- return {
173
- kind: 'oauth',
174
- access_token: legacy.access_token,
175
- refresh_token: legacy.refresh_token,
176
- expires_at: legacy.token_expires_at,
177
- };
178
- }
179
- return null;
180
- }
181
- export async function getToken() {
182
- // Env override has highest precedence — supports CI, container, op-run injection.
183
- const envToken = process.env.WAYAI_TOKEN;
184
- if (envToken) {
185
- if (identifyTokenType(envToken) === 'way_token') {
186
- return { kind: 'way', token: envToken };
187
- }
188
- return { kind: 'oauth', access_token: envToken };
189
- }
190
- const keyring = await getKeyring();
191
- if (keyring) {
192
- const wayToken = await keyring.getPassword(KEYRING_SERVICE, KEY_WAY_TOKEN);
193
- if (wayToken)
194
- return { kind: 'way', token: wayToken };
195
- const accessToken = await keyring.getPassword(KEYRING_SERVICE, KEY_OAUTH_ACCESS);
196
- if (accessToken) {
197
- const refreshToken = await keyring.getPassword(KEYRING_SERVICE, KEY_OAUTH_REFRESH);
198
- const expiresAt = readMetadataExpiresAt();
199
- return {
200
- kind: 'oauth',
201
- access_token: accessToken,
202
- refresh_token: refreshToken ?? undefined,
203
- expires_at: expiresAt ?? undefined,
204
- };
205
- }
206
- }
207
- const legacy = readLegacyConfigFile();
208
- if (!legacy)
209
- return null;
210
- if (legacy.token)
211
- return { kind: 'way', token: legacy.token };
212
- if (legacy.access_token) {
213
- return {
214
- kind: 'oauth',
215
- access_token: legacy.access_token,
216
- refresh_token: legacy.refresh_token,
217
- expires_at: legacy.token_expires_at,
218
- };
219
- }
220
- return null;
221
- }
222
- export async function setWayToken(token) {
223
- const keyring = await getKeyring();
224
- if (keyring) {
225
- try {
226
- await keyring.setPassword(KEYRING_SERVICE, KEY_WAY_TOKEN, token);
227
- clearMetadataExpiresAt();
228
- // Read precedence favors way_ over OAuth, so a leftover OAuth credential
229
- // won't shadow this token — but `wayai logout` then misses it. Warn so
230
- // the user can sweep it manually. Slots are independent — parallelize.
231
- const [accessCleared, refreshCleared] = await Promise.all([
232
- clearSlot(keyring, KEY_OAUTH_ACCESS),
233
- clearSlot(keyring, KEY_OAUTH_REFRESH),
234
- ]);
235
- const stuck = [
236
- accessCleared ? null : KEY_OAUTH_ACCESS,
237
- refreshCleared ? null : KEY_OAUTH_REFRESH,
238
- ].filter((a) => a !== null);
239
- if (stuck.length > 0) {
240
- console.warn([
241
- `wayai: stale OAuth credential persists in OS keyring after delete. Commands work, but \`wayai logout\` won't fully clear. Manually:`,
242
- ...stuck.map((a) => ` ${manualCleanupCommand(a)}`),
243
- ].join('\n'));
244
- }
245
- return;
246
- }
247
- catch (err) {
248
- // Runtime keyring failure (locked keychain, broken libsecret session, etc.) —
249
- // degrade to file storage. Visible warning so users notice the downgrade.
250
- console.warn(`wayai: keyring write failed (${err.message}); falling back to file storage.`);
251
- }
252
- }
253
- writeFileFallback({ token });
254
- }
255
- export async function setOAuthTokens(access_token, refresh_token, expires_at) {
256
- const keyring = await getKeyring();
257
- if (keyring) {
258
- try {
259
- // way_ wins the read race, so a leftover way_ would silently mask the
260
- // OAuth tokens we're about to write — every subsequent API call would
261
- // send the dead way_ and the backend would reject it. Verify the slot
262
- // is actually empty after deletePassword and fail loudly otherwise.
263
- if (!(await clearSlot(keyring, KEY_WAY_TOKEN))) {
264
- throw new StaleKeyringSlotError(KEY_WAY_TOKEN);
265
- }
266
- await keyring.setPassword(KEYRING_SERVICE, KEY_OAUTH_ACCESS, access_token);
267
- if (refresh_token) {
268
- await keyring.setPassword(KEYRING_SERVICE, KEY_OAUTH_REFRESH, refresh_token);
269
- }
270
- writeMetadataExpiresAt(expires_at);
271
- return;
272
- }
273
- catch (err) {
274
- // StaleKeyringSlotError propagates — file fallback can't help because
275
- // the next read still hits the stuck keyring slot first.
276
- if (err instanceof StaleKeyringSlotError)
277
- throw err;
278
- console.warn(`wayai: keyring write failed (${err.message}); falling back to file storage.`);
279
- }
280
- }
281
- writeFileFallback({ access_token, refresh_token, token_expires_at: expires_at });
282
- }
283
- export async function clearTokens() {
284
- const keyring = await getKeyring();
285
- if (keyring) {
286
- // Slots are independent — run all three in parallel (3 keyring RPCs vs 6).
287
- const slots = [KEY_WAY_TOKEN, KEY_OAUTH_ACCESS, KEY_OAUTH_REFRESH];
288
- const cleared = await Promise.all(slots.map((account) => clearSlot(keyring, account)));
289
- for (const [i, ok] of cleared.entries()) {
290
- if (!ok) {
291
- const account = slots[i];
292
- console.warn(`wayai: could not clear keyring slot "${account}". Subsequent commands may still pick the stale token. Manually:\n` +
293
- ` ${manualCleanupCommand(account)}`);
294
- }
295
- }
296
- }
297
- if (fs.existsSync(configPath())) {
298
- fs.unlinkSync(configPath());
299
- }
300
- }
301
- function readMetadataExpiresAt() {
302
- const legacy = readLegacyConfigFile();
303
- return legacy?.token_expires_at ?? null;
304
- }
305
- function writeMetadataExpiresAt(expires_at) {
306
- const existing = readLegacyConfigFile() ?? {};
307
- delete existing.token;
308
- delete existing.access_token;
309
- delete existing.refresh_token;
310
- existing.token_expires_at = expires_at;
311
- ensureConfigDir();
312
- fs.writeFileSync(configPath(), JSON.stringify(existing, null, 2) + '\n', { mode: 0o600 });
313
- }
314
- function clearMetadataExpiresAt() {
315
- const existing = readLegacyConfigFile();
316
- if (!existing)
317
- return;
318
- // Strip any orphan token fields from prior file-fallback sessions while we're
319
- // here — keeps the metadata file token-free once keyring is in use.
320
- delete existing.token;
321
- delete existing.access_token;
322
- delete existing.refresh_token;
323
- delete existing.token_expires_at;
324
- ensureConfigDir();
325
- fs.writeFileSync(configPath(), JSON.stringify(existing, null, 2) + '\n', { mode: 0o600 });
326
- }
327
- function ensureConfigDir() {
328
- if (!fs.existsSync(configDir())) {
329
- fs.mkdirSync(configDir(), { recursive: true });
330
- }
331
- }
332
- function writeFileFallback(tokens) {
333
- const existing = readLegacyConfigFile() ?? {};
334
- // Strip ALL token fields before merging — without this, a mode switch in the
335
- // no-keyring path (way → OAuth or vice versa) would leave the old mode's
336
- // fields on disk and `getToken` would return the stale value because the
337
- // file-fallback read checks `token` before `access_token`.
338
- delete existing.token;
339
- delete existing.access_token;
340
- delete existing.refresh_token;
341
- delete existing.token_expires_at;
342
- Object.assign(existing, tokens);
343
- ensureConfigDir();
344
- fs.writeFileSync(configPath(), JSON.stringify(existing, null, 2) + '\n', { mode: 0o600 });
345
- }
346
- /** Test hook — production code must not call this. */
347
- export function __setKeyringForTesting(binding) {
348
- keyringCache = binding;
349
- }
350
- /** Test hook — production code must not call this. */
351
- export function __resetKeyringForTesting() {
352
- keyringCache = undefined;
353
- }
354
- //# sourceMappingURL=token-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"token-store.js","sourceRoot":"","sources":["../../src/lib/token-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAO9B,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,WAAW,CAAC;IACjD,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,eAAe,GAAG,OAAO,CAAC;AAChC,MAAM,aAAa,GAAG,WAAW,CAAC;AAClC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAC9C,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAEhD,6EAA6E;AAC7E,kEAAkE;AAClE,SAAS,SAAS,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC1E,SAAS,UAAU,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;AAM/E,IAAI,YAA+C,CAAC;AAOpD,+EAA+E;AAC/E,4EAA4E;AAC5E,2EAA2E;AAC3E,sEAAsE;AACtE,SAAS,oBAAoB,CAAC,OAAe;IAC3C,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,uCAAuC,eAAe,OAAO,OAAO,EAAE,CAAC;IAChF,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,kBAAkB,eAAe,IAAI,OAAO,EAAE,CAAC;IACxD,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,6BAA6B,eAAe,YAAY,OAAO,EAAE,CAAC;IAC3E,CAAC;IACD,OAAO,mCAAmC,eAAe,cAAc,OAAO,kCAAkC,CAAC;AACnH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAClB;IAA5B,YAA4B,OAAe;QACzC,KAAK,CACH,gDAAgD,OAAO,kBAAkB;YACzE,mFAAmF;YACnF,mCAAmC;YACnC,KAAK,oBAAoB,CAAC,OAAO,CAAC,EAAE,CACrC,CAAC;QANwB,YAAO,GAAP,OAAO,CAAQ;QAOzC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,KAAK,UAAU,SAAS,CAAC,OAAuB,EAAE,OAAe;IAC/D,MAAM,OAAO,CAAC,cAAc,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACvD,wEAAwE;IACxE,oEAAoE;IACpE,yEAAyE;IACzE,uEAAuE;IACvE,2EAA2E;IAC3E,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QACxB,YAAY,GAAG;YACb,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO;gBAChC,IAAI,CAAC;oBAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,OAAO,IAAI,CAAC;gBAAC,CAAC;YAClF,CAAC;YACD,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ;gBAC1C,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACpD,CAAC;YACD,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO;gBACnC,IAAI,CAAC;oBAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,OAAO,KAAK,CAAC;gBAAC,CAAC;YACtF,CAAC;SACF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAUD,SAAS,oBAAoB;IAC3B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAA2B,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB;IAC1B,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,6EAA6E;IAC7E,uEAAuE;IACvE,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,cAAc,IAAI,CAAC,KAAK,eAAe;YAAE,SAAS;QAC7E,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAEvD,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;IAEnC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxE,uEAAuE;gBACvE,kEAAkE;gBAClE,IAAI,CAAC;oBAAC,mBAAmB,EAAE,CAAC;gBAAC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBAC1C,OAAO,CAAC,IAAI,CAAC,kEAAmE,GAAa,CAAC,OAAO,yBAAyB,CAAC,CAAC;gBAClI,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,sEAAsE;gBACtE,sEAAsE;gBACtE,2BAA2B;gBAC3B,OAAO,CAAC,IAAI,CAAC,oCAAqC,GAAa,CAAC,OAAO,uCAAuC,CAAC,CAAC;YAClH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IAC9C,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,gBAAgB,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;gBAClF,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;oBACzB,MAAM,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,iBAAiB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;gBACtF,CAAC;gBACD,IAAI,CAAC;oBAAC,mBAAmB,EAAE,CAAC;gBAAC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBAC1C,OAAO,CAAC,IAAI,CAAC,mEAAoE,GAAa,CAAC,OAAO,yBAAyB,CAAC,CAAC;gBACnI,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,oCAAqC,GAAa,CAAC,OAAO,wCAAwC,CAAC,CAAC;YACnH,CAAC;QACH,CAAC;QACD,OAAO;YACL,IAAI,EAAE,OAAO;YACb,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,UAAU,EAAE,MAAM,CAAC,gBAAgB;SACpC,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,kFAAkF;IAClF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACzC,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,iBAAiB,CAAC,QAAQ,CAAC,KAAK,WAAW,EAAE,CAAC;YAChD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC1C,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;IACnD,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;IAEnC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QAC3E,IAAI,QAAQ;YAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAEtD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;QACjF,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;YACnF,MAAM,SAAS,GAAG,qBAAqB,EAAE,CAAC;YAC1C,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,WAAW;gBACzB,aAAa,EAAE,YAAY,IAAI,SAAS;gBACxC,UAAU,EAAE,SAAS,IAAI,SAAS;aACnC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IAC9D,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO;YACL,IAAI,EAAE,OAAO;YACb,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,UAAU,EAAE,MAAM,CAAC,gBAAgB;SACpC,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAa;IAC7C,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;IACnC,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YACjE,sBAAsB,EAAE,CAAC;YACzB,yEAAyE;YACzE,uEAAuE;YACvE,uEAAuE;YACvE,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACxD,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBACpC,SAAS,CAAC,OAAO,EAAE,iBAAiB,CAAC;aACtC,CAAC,CAAC;YACH,MAAM,KAAK,GAAG;gBACZ,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB;gBACvC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB;aAC1C,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YACzC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,IAAI,CACV;oBACE,qIAAqI;oBACrI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpD,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;YACJ,CAAC;YACD,OAAO;QACT,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,8EAA8E;YAC9E,0EAA0E;YAC1E,OAAO,CAAC,IAAI,CAAC,gCAAiC,GAAa,CAAC,OAAO,kCAAkC,CAAC,CAAC;QACzG,CAAC;IACH,CAAC;IACD,iBAAiB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,YAAoB,EACpB,aAAiC,EACjC,UAAkB;IAElB,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;IACnC,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,sEAAsE;YACtE,sEAAsE;YACtE,sEAAsE;YACtE,oEAAoE;YACpE,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,qBAAqB,CAAC,aAAa,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;YAC3E,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC;YAC/E,CAAC;YACD,sBAAsB,CAAC,UAAU,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sEAAsE;YACtE,yDAAyD;YACzD,IAAI,GAAG,YAAY,qBAAqB;gBAAE,MAAM,GAAG,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,gCAAiC,GAAa,CAAC,OAAO,kCAAkC,CAAC,CAAC;QACzG,CAAC;IACH,CAAC;IACD,iBAAiB,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;IACnC,IAAI,OAAO,EAAE,CAAC;QACZ,2EAA2E;QAC3E,MAAM,KAAK,GAAG,CAAC,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,CAAU,CAAC;QAC5E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACvF,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CACV,wCAAwC,OAAO,oEAAoE;oBACnH,KAAK,oBAAoB,CAAC,OAAO,CAAC,EAAE,CACrC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;QAChC,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB;IAC5B,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,OAAO,MAAM,EAAE,gBAAgB,IAAI,IAAI,CAAC;AAC1C,CAAC;AAED,SAAS,sBAAsB,CAAC,UAAkB;IAChD,MAAM,QAAQ,GAAG,oBAAoB,EAAE,IAAI,EAAE,CAAC;IAC9C,OAAO,QAAQ,CAAC,KAAK,CAAC;IACtB,OAAO,QAAQ,CAAC,YAAY,CAAC;IAC7B,OAAO,QAAQ,CAAC,aAAa,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,GAAG,UAAU,CAAC;IACvC,eAAe,EAAE,CAAC;IAClB,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;IACxC,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,8EAA8E;IAC9E,oEAAoE;IACpE,OAAO,QAAQ,CAAC,KAAK,CAAC;IACtB,OAAO,QAAQ,CAAC,YAAY,CAAC;IAC7B,OAAO,QAAQ,CAAC,aAAa,CAAC;IAC9B,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACjC,eAAe,EAAE,CAAC;IAClB,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;QAChC,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAuC;IAChE,MAAM,QAAQ,GAAG,oBAAoB,EAAE,IAAI,EAAE,CAAC;IAC9C,6EAA6E;IAC7E,yEAAyE;IACzE,yEAAyE;IACzE,2DAA2D;IAC3D,OAAO,QAAQ,CAAC,KAAK,CAAC;IACtB,OAAO,QAAQ,CAAC,YAAY,CAAC;IAC7B,OAAO,QAAQ,CAAC,aAAa,CAAC;IAC9B,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACjC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChC,eAAe,EAAE,CAAC;IAClB,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,sBAAsB,CAAC,OAA8B;IACnE,YAAY,GAAG,OAAO,CAAC;AACzB,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,wBAAwB;IACtC,YAAY,GAAG,SAAS,CAAC;AAC3B,CAAC"}
@@ -1,18 +0,0 @@
1
- /**
2
- * Shared types for the CLI — imported from @wayai/shared/contracts
3
- */
4
- export type { HubAsCodeKanbanFollowup, HubAsCodeKanbanStatus, HubAsCodePayload, HubAsCodeAgent, HubAsCodeCustomTool, HubAsCodeState, HubAsCodeTeam, HubAsCodeResource, HubAsCodeResourceFile, HubAsCodeAgentResource, HubAsCodeOutboundContact, HubAsCodeOutboundList, HubAsCodeOutboundSchedule, HubAsCodeEval, CiDiffResponse, CiLookupResponse, CiOrganizationsResponse, CiCreateOrganizationResponse, CiHubListItem, CiHubListResponse, CiSyncResponse, CiSyncMcpResponse, OrgResourcesPayload, OrgAsCodeResource, OrgAsCodeResourceFolder, CiOrgResourcesPushResponse, } from '@wayai/shared/contracts/ci';
5
- /** Mirrors SyncSkillsResultItem from @wayai/shared/contracts/setup/resources */
6
- export interface SyncSkillsResultItem {
7
- connection_id: string;
8
- connection_name: string;
9
- uploaded: number;
10
- failed: number;
11
- errors: string[];
12
- }
13
- /** Mirrors SyncSkillsResponse from @wayai/shared/contracts/setup/resources */
14
- export interface SyncSkillsResponse {
15
- success: true;
16
- message: string;
17
- results: SyncSkillsResultItem[];
18
- }
package/dist/lib/types.js DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * Shared types for the CLI — imported from @wayai/shared/contracts
3
- */
4
- export {};
5
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,97 +0,0 @@
1
- /**
2
- * Shared utility functions
3
- */
4
- export declare const UUID_RE: RegExp;
5
- /**
6
- * Prompt the user for free-text input.
7
- */
8
- export declare function prompt(question: string): Promise<string>;
9
- /**
10
- * Prompt the user for yes/no confirmation. Returns true if they answer 'y'.
11
- */
12
- export declare function confirm(question: string): Promise<boolean>;
13
- /** Prompt for a secret, masking typed characters with `*`. */
14
- export declare function promptSecret(question: string): Promise<string>;
15
- /** Read all of stdin as a single trimmed string (for piped input). */
16
- export declare function readStdin(): Promise<string>;
17
- /**
18
- * Kebab-case slug for hub folders and skill names.
19
- *
20
- * MIRROR of the canonical `@wayai/shared` `slugifyKebab(input, 64)`. The CLI
21
- * can't import the shared runtime (it's never published — see the drift-guard
22
- * test no-shared-runtime-import.test.ts), so this is duplicated and pinned by
23
- * that test against `slugifySkillName`. Uses NFKD (not NFD) so ligatures and
24
- * full-width chars fold toward ASCII identically to the platform — keep these
25
- * exact steps in lockstep with slugifyKebab or pushed slugs diverge from the UI.
26
- */
27
- export declare function slugify(input: string): string;
28
- /**
29
- * Resolve the hub YAML path in a folder: tries hub.yaml first, falls back to wayai.yaml.
30
- * Returns the full path if found, null otherwise.
31
- */
32
- export declare function resolveHubYamlPath(hubFolder: string): string | null;
33
- /**
34
- * Try to detect hub_id from hub.yaml (or wayai.yaml) in the current working directory.
35
- * Returns null if no config file exists or it lacks hub_id.
36
- */
37
- export declare function detectHubFromCwd(): Promise<{
38
- hubId: string;
39
- hubFolder: string;
40
- } | null>;
41
- /**
42
- * Parse a shorthand period string (e.g. "7d", "4w", "3m", "1y") into
43
- * { start, end, periodicity } for analytics queries.
44
- */
45
- export declare function parsePeriod(period: string): {
46
- start: string;
47
- end: string;
48
- periodicity: string;
49
- };
50
- /**
51
- * Parse --from/--to date strings into ISO format.
52
- * Accepts YYYY-MM-DD or full ISO datetime. Appends time suffix if needed.
53
- */
54
- export declare function parseDateArg(date: string, position: 'from' | 'to'): string;
55
- /**
56
- * Resolve organization_id from: --org flag → .wayai.yaml → single-org auto-select.
57
- * Returns { organizationId, organizationName } or exits with an error.
58
- */
59
- export declare function resolveOrganizationId(client: {
60
- organizations(): Promise<{
61
- organizations: Array<{
62
- id: string;
63
- name: string;
64
- }>;
65
- }>;
66
- }, orgIdFlag?: string): Promise<{
67
- organizationId: string;
68
- organizationName?: string;
69
- }>;
70
- export declare function parsePositiveIntFlag(name: string, raw: string | undefined): number;
71
- /**
72
- * Low-level predicate: true when `--help`/`-h` appears anywhere in args.
73
- *
74
- * The match is deliberately broad (and so fail-safe — printing help is
75
- * non-destructive). The one realistic command that takes a free-text value that
76
- * could *equal* `--help` is `report` (`report create --description "--help"`),
77
- * and that command owns its help handling so it's excluded from interception by
78
- * `shouldInterceptHelp` — its own parser sees the value verbatim. Used both to
79
- * gate that interception and to skip the update check on any help invocation.
80
- */
81
- export declare function wantsHelp(args: string[]): boolean;
82
- /**
83
- * Whether the top-level entry should short-circuit to the GLOBAL help BEFORE
84
- * dispatching `command`. This stops side-effecting subcommands (e.g.
85
- * `run-eval`, which would otherwise create + run a billable eval session) from
86
- * executing on a `--help`/`-h` request.
87
- *
88
- * Returns false — i.e. falls through to the command's own handler — for:
89
- * - the top-level `help` slot (handled by the dispatch switch itself),
90
- * - an absent command, and
91
- * - commands in `ownHelpCommands` (e.g. `eval`, `admin`, `report`), which
92
- * render their own richer command-specific help; intercepting them here would
93
- * downgrade that to the global help.
94
- */
95
- export declare function shouldInterceptHelp(command: string | undefined, args: string[], ownHelpCommands: ReadonlySet<string>): boolean;
96
- /** Returns true if `latest` is a newer semver than `current` */
97
- export declare function isNewerVersion(latest: string, current: string): boolean;