@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,283 +0,0 @@
1
- /**
2
- * YAML writer — converts HubAsCodePayload to hub.yaml + agents/<slug>.yaml + agents/<slug>.md files
3
- * Reverse of parser.ts
4
- */
5
- import * as fs from 'node:fs';
6
- import * as path from 'node:path';
7
- import * as yaml from 'js-yaml';
8
- import { slugify } from './utils.js';
9
- import { writeResourceFileTree } from './resource-files.js';
10
- export const YAML_DUMP_OPTIONS = {
11
- lineWidth: -1, // don't wrap lines
12
- noRefs: true, // don't use YAML anchors
13
- quotingType: '"',
14
- forceQuotes: false,
15
- sortKeys: false,
16
- };
17
- // Shared between writeEvalYamlFiles (pull) and `wayai eval capture` so the on-disk shape stays identical.
18
- export function buildEvalYamlObject(evalEntry, slug) {
19
- const out = {};
20
- if (evalEntry.id)
21
- out.id = evalEntry.id;
22
- if (evalEntry.name !== slug)
23
- out.name = evalEntry.name;
24
- out.agent = evalEntry.agent;
25
- if (evalEntry.agent_id)
26
- out.agent_id = evalEntry.agent_id;
27
- if (typeof evalEntry.runs === 'number' && evalEntry.runs !== 1) {
28
- out.runs = evalEntry.runs;
29
- }
30
- if (evalEntry.enabled === false) {
31
- out.enabled = false;
32
- }
33
- if (evalEntry.history && evalEntry.history.length > 0) {
34
- out.history = evalEntry.history;
35
- }
36
- out.input = evalEntry.input;
37
- out.expected = evalEntry.expected;
38
- if (evalEntry.evaluator_instructions) {
39
- out.evaluator_instructions = evalEntry.evaluator_instructions;
40
- }
41
- return out;
42
- }
43
- /**
44
- * Write a HubAsCodePayload to disk as hub.yaml + agents/<slug>.yaml + agents/<slug>.md files.
45
- *
46
- * - Creates `hub.yaml` with hub config (no agents section)
47
- * - Creates `agents/<slug>.yaml` for each agent (all config except instructions)
48
- * - Creates `agents/<slug>.md` for each agent with instructions
49
- * - Removes orphan .yaml and .md files in agents/ that don't match any current agent
50
- * - Deletes old `wayai.yaml` if present (migration)
51
- */
52
- export function writeHubFolder(hubFolder, payload) {
53
- // Ensure directories exist
54
- const agentsDir = path.join(hubFolder, 'agents');
55
- if (!fs.existsSync(hubFolder)) {
56
- fs.mkdirSync(hubFolder, { recursive: true });
57
- }
58
- if (!fs.existsSync(agentsDir)) {
59
- fs.mkdirSync(agentsDir, { recursive: true });
60
- }
61
- // Build YAML-safe payload (no agents section)
62
- const yamlPayload = buildYamlPayload(payload);
63
- const agentFiles = extractAgentFiles(payload);
64
- // Write hub.yaml
65
- const yamlContent = yaml.dump(yamlPayload, YAML_DUMP_OPTIONS);
66
- fs.writeFileSync(path.join(hubFolder, 'hub.yaml'), yamlContent, 'utf-8');
67
- // Init-only: 1-line Claude Code shim that imports the hub's AGENTS.md.
68
- // Skipped if the user has edited it. Other harnesses load AGENTS.md natively.
69
- const claudeShimPath = path.join(hubFolder, 'CLAUDE.md');
70
- if (!fs.existsSync(claudeShimPath)) {
71
- fs.writeFileSync(claudeShimPath, '@AGENTS.md\n', 'utf-8');
72
- }
73
- // Delete old wayai.yaml if it exists (migration)
74
- const oldYamlPath = path.join(hubFolder, 'wayai.yaml');
75
- if (fs.existsSync(oldYamlPath)) {
76
- fs.unlinkSync(oldYamlPath);
77
- }
78
- // Write agent YAML config files + instruction files
79
- // Track .yaml and .md slugs separately so agents without instructions get their .md cleaned up
80
- const yamlSlugs = writeAgentYamlFiles(agentsDir, payload.agents || []);
81
- const mdSlugs = new Set();
82
- for (const { slug, content } of agentFiles) {
83
- mdSlugs.add(slug);
84
- fs.writeFileSync(path.join(agentsDir, `${slug}.md`), content, 'utf-8');
85
- }
86
- // Remove orphan .yaml and .md files
87
- const existingFiles = fs.readdirSync(agentsDir);
88
- for (const file of existingFiles) {
89
- if (file.endsWith('.yaml')) {
90
- const slug = file.slice(0, -5);
91
- if (!yamlSlugs.has(slug)) {
92
- fs.unlinkSync(path.join(agentsDir, file));
93
- }
94
- }
95
- else if (file.endsWith('.md')) {
96
- const slug = file.slice(0, -3);
97
- if (!mdSlugs.has(slug)) {
98
- fs.unlinkSync(path.join(agentsDir, file));
99
- }
100
- }
101
- }
102
- // Write resource files
103
- writeResourceFiles(hubFolder, payload.resources || []);
104
- // Write eval scenario files (always run — handles transition from "evals exist" to "no evals")
105
- writeEvalYamlFiles(hubFolder, payload.evals || []);
106
- }
107
- /**
108
- * Build the YAML-safe version of the payload (hub config only, no agents).
109
- * Agents are written to separate files by writeAgentYamlFiles().
110
- */
111
- function buildYamlPayload(payload) {
112
- const result = {
113
- version: payload.version,
114
- hub_id: payload.hub_id,
115
- hub_environment: payload.hub_environment,
116
- };
117
- // Include preview_label for preview hubs (read-only metadata)
118
- if (payload.preview_label) {
119
- result.preview_label = payload.preview_label;
120
- }
121
- result.hub = payload.hub;
122
- // Agents are NOT included in hub.yaml — they live in agents/<slug>.yaml
123
- if (payload.resources && payload.resources.length > 0) {
124
- // Strip files from resource entries — filesystem is source of truth
125
- result.resources = payload.resources.map((r) => {
126
- const { files, ...rest } = r;
127
- return rest;
128
- });
129
- }
130
- if (payload.states && payload.states.length > 0) {
131
- result.states = payload.states;
132
- }
133
- if (payload.teams && payload.teams.length > 0) {
134
- result.teams = payload.teams;
135
- }
136
- if (payload.connections && payload.connections.length > 0) {
137
- result.connections = payload.connections;
138
- }
139
- if (payload.outbound_contacts && payload.outbound_contacts.length > 0) {
140
- result.outbound_contacts = payload.outbound_contacts;
141
- }
142
- if (payload.outbound_lists && payload.outbound_lists.length > 0) {
143
- result.outbound_lists = payload.outbound_lists;
144
- }
145
- if (payload.outbound_schedules && payload.outbound_schedules.length > 0) {
146
- result.outbound_schedules = payload.outbound_schedules;
147
- }
148
- return result;
149
- }
150
- /**
151
- * Write per-agent YAML config files to agents/ directory.
152
- * Each agent gets agents/<slug>.yaml with all config except instructions.
153
- * Returns the set of slugs written (for orphan cleanup).
154
- */
155
- function writeAgentYamlFiles(agentsDir, agents) {
156
- const slugs = new Set();
157
- for (const agent of agents) {
158
- const slug = slugify(agent.name);
159
- slugs.add(slug);
160
- const entry = { ...agent };
161
- // Instructions go to .md file, not .yaml
162
- delete entry.instructions;
163
- const yamlContent = yaml.dump(entry, YAML_DUMP_OPTIONS);
164
- fs.writeFileSync(path.join(agentsDir, `${slug}.yaml`), yamlContent, 'utf-8');
165
- }
166
- return slugs;
167
- }
168
- /**
169
- * Extract agent instruction files from the payload.
170
- */
171
- function extractAgentFiles(payload) {
172
- const files = [];
173
- for (const agent of payload.agents || []) {
174
- if (agent.instructions) {
175
- files.push({
176
- slug: slugify(agent.name),
177
- content: agent.instructions,
178
- });
179
- }
180
- }
181
- return files;
182
- }
183
- // Writes evals/<slug>.yaml (root) or evals/<set>/<slug>.yaml; removes orphan .yaml files and empty set folders.
184
- function writeEvalYamlFiles(hubFolder, evals) {
185
- const evalsDir = path.join(hubFolder, 'evals');
186
- // No evals: clean the directory if it exists, otherwise no-op.
187
- if (evals.length === 0) {
188
- if (fs.existsSync(evalsDir)) {
189
- cleanEvalOrphans(evalsDir, new Set());
190
- // Remove the now-empty top-level dir for tidiness.
191
- try {
192
- if (fs.readdirSync(evalsDir).length === 0)
193
- fs.rmdirSync(evalsDir);
194
- }
195
- catch { /* keep dir if non-empty (e.g. user-added files) */ }
196
- }
197
- return;
198
- }
199
- if (!fs.existsSync(evalsDir)) {
200
- fs.mkdirSync(evalsDir, { recursive: true });
201
- }
202
- // Track relative paths written (e.g. "greeting.yaml", "set-a/foo.yaml") for orphan cleanup.
203
- const writtenRelPaths = new Set();
204
- for (const evalEntry of evals) {
205
- const slug = slugify(evalEntry.name);
206
- const setName = evalEntry.path && evalEntry.path.trim().length > 0 ? evalEntry.path : null;
207
- const relPath = setName ? `${setName}/${slug}.yaml` : `${slug}.yaml`;
208
- const targetPath = path.join(evalsDir, relPath);
209
- // Defense-in-depth: the backend's `validateScenarioSetName` doesn't
210
- // restrict path separators, so refuse to write any path that escapes
211
- // evals/. Same pattern as `cleanOrphanFiles` for resource files.
212
- if (!targetPath.startsWith(evalsDir + path.sep)) {
213
- console.warn(` Warning: skipping eval "${evalEntry.name}" (scenario set "${setName}" escapes evals/ — possible bad backend data)`);
214
- continue;
215
- }
216
- if (setName) {
217
- const setDir = path.join(evalsDir, setName);
218
- if (!fs.existsSync(setDir)) {
219
- fs.mkdirSync(setDir, { recursive: true });
220
- }
221
- }
222
- const yamlContent = yaml.dump(buildEvalYamlObject(evalEntry, slug), YAML_DUMP_OPTIONS);
223
- fs.writeFileSync(targetPath, yamlContent, 'utf-8');
224
- writtenRelPaths.add(relPath);
225
- }
226
- cleanEvalOrphans(evalsDir, writtenRelPaths);
227
- }
228
- // Only touches .yaml files (user-added READMEs/notes are preserved); empty set subfolders are pruned.
229
- function cleanEvalOrphans(evalsDir, writtenRelPaths) {
230
- const entries = fs.readdirSync(evalsDir, { withFileTypes: true });
231
- for (const entry of entries) {
232
- const fullPath = path.join(evalsDir, entry.name);
233
- if (entry.isFile()) {
234
- if (entry.name.endsWith('.yaml') && !writtenRelPaths.has(entry.name)) {
235
- fs.unlinkSync(fullPath);
236
- }
237
- continue;
238
- }
239
- if (entry.isDirectory()) {
240
- const setName = entry.name;
241
- const subEntries = fs.readdirSync(fullPath, { withFileTypes: true });
242
- for (const sub of subEntries) {
243
- if (sub.isFile() && sub.name.endsWith('.yaml')) {
244
- const relPath = `${setName}/${sub.name}`;
245
- if (!writtenRelPaths.has(relPath)) {
246
- fs.unlinkSync(path.join(fullPath, sub.name));
247
- }
248
- }
249
- // Nested directories aren't valid eval layout — leave them alone.
250
- }
251
- // Remove now-empty scenario-set folder.
252
- try {
253
- if (fs.readdirSync(fullPath).length === 0)
254
- fs.rmdirSync(fullPath);
255
- }
256
- catch { /* ignore — non-empty (e.g. user notes) */ }
257
- }
258
- }
259
- }
260
- /**
261
- * Write resource files to disk and clean up orphan resource directories.
262
- */
263
- function writeResourceFiles(hubFolder, resources) {
264
- const resourcesDir = path.join(hubFolder, 'resources');
265
- // Track current resource slugs for orphan cleanup
266
- const currentSlugs = new Set();
267
- for (const resource of resources) {
268
- const resSlug = slugify(resource.name);
269
- currentSlugs.add(resSlug);
270
- const resDir = path.join(resourcesDir, resSlug);
271
- writeResourceFileTree(resDir, resource.files || []);
272
- }
273
- // Remove orphan resource directories
274
- if (fs.existsSync(resourcesDir)) {
275
- const existingDirs = fs.readdirSync(resourcesDir, { withFileTypes: true });
276
- for (const entry of existingDirs) {
277
- if (entry.isDirectory() && !currentSlugs.has(entry.name)) {
278
- fs.rmSync(path.join(resourcesDir, entry.name), { recursive: true, force: true });
279
- }
280
- }
281
- }
282
- }
283
- //# sourceMappingURL=yaml-writer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"yaml-writer.js","sourceRoot":"","sources":["../../src/lib/yaml-writer.ts"],"names":[],"mappings":"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"}