@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,124 +0,0 @@
1
- /**
2
- * Shared output helpers for `wayai conversations <id> observability` (hub-scoped)
3
- * and `wayai admin observability <hub> <conv>` (platform-admin). Output shape is
4
- * identical so an operator switching between the two commands sees the same
5
- * format — only the data source (and the API path) differs.
6
- */
7
- import { ApiError } from '../lib/api-client.js';
8
- export async function runConversationObservability(client, hubId, conversationId, opts) {
9
- // Live route resolves hub via ConversationDO, which is cleaned up 24h after
10
- // archival. R2 records outlive the DO, so on 404 we retry through the
11
- // archive route (CH+HubDO auth) before declaring the data missing.
12
- if (opts.messageId) {
13
- const result = await fallbackOn404(() => client.getMessageObservability(conversationId, opts.messageId), () => client.getArchivedMessageObservability(hubId, conversationId, opts.messageId));
14
- renderRecord(result.data, opts.jsonOutput);
15
- return;
16
- }
17
- const result = await fallbackOn404(() => client.listConversationObservability(conversationId), () => client.listArchivedConversationObservability(hubId, conversationId));
18
- renderList({
19
- hubId: result.data.hub_id,
20
- conversationId: result.data.conversation_id,
21
- entries: result.data.entries,
22
- truncated: result.data.truncated,
23
- jsonOutput: opts.jsonOutput,
24
- });
25
- }
26
- async function fallbackOn404(primary, fallback) {
27
- try {
28
- return await primary();
29
- }
30
- catch (err) {
31
- if (err instanceof ApiError && err.status === 404) {
32
- return await fallback();
33
- }
34
- throw err;
35
- }
36
- }
37
- export async function runDebugObservability(client, hubId, conversationId, opts) {
38
- const result = await client.debugReadObservability(hubId, conversationId, {
39
- messageId: opts.messageId,
40
- });
41
- if (result.data.kind === 'single') {
42
- renderRecord(result.data.record, opts.jsonOutput);
43
- return;
44
- }
45
- if (opts.messageId) {
46
- // Defensive — backend returns 404 in this case, but guard against contract drift.
47
- throw new ApiError('GET', '/observability', 404, 'Observability record missing');
48
- }
49
- renderList({
50
- hubId: result.data.hub_id,
51
- conversationId: result.data.conversation_id,
52
- entries: result.data.entries,
53
- truncated: result.data.truncated,
54
- jsonOutput: opts.jsonOutput,
55
- });
56
- }
57
- function renderRecord(data, jsonOutput) {
58
- if (jsonOutput) {
59
- console.log(JSON.stringify(data, null, 2));
60
- return;
61
- }
62
- // Default mode prints a compact summary so the terminal isn't flooded with
63
- // multi-KB system prompts. --json gets the full record.
64
- const obs = data.observability;
65
- const meta = data.metadata;
66
- const provider = obs['gen_ai.system'] ?? '-';
67
- const requestModel = obs['gen_ai.request.model'] ?? '-';
68
- const responseModel = obs['gen_ai.response.model'];
69
- const inputTokens = obs['gen_ai.usage.input_tokens'] ?? 0;
70
- const outputTokens = obs['gen_ai.usage.output_tokens'] ?? 0;
71
- const cacheRead = obs['gen_ai.usage.cache_read_input_tokens'];
72
- const cacheWrite = obs['gen_ai.usage.cache_creation_input_tokens'];
73
- console.log(`message_id: ${meta.message_id ?? '-'}`);
74
- console.log(`timestamp: ${meta.timestamp ?? '-'}`);
75
- console.log(`agent: ${meta.agent_id ?? '-'}${meta.agent_role ? ` (${meta.agent_role})` : ''}`);
76
- console.log(`provider: ${provider}`);
77
- console.log(`model: ${requestModel}${responseModel && responseModel !== requestModel ? ` (responded as ${responseModel})` : ''}`);
78
- console.log(`tokens: in=${inputTokens} out=${outputTokens}${cacheRead != null ? ` cache_read=${cacheRead}` : ''}${cacheWrite != null ? ` cache_write=${cacheWrite}` : ''}`);
79
- console.log(`latency_ms: ${meta.latency_ms ?? '-'}`);
80
- if (meta.tool_iterations != null)
81
- console.log(`tool_iters: ${meta.tool_iterations}`);
82
- if (meta.tool_calls_total != null)
83
- console.log(`tool_calls: ${meta.tool_calls_total}`);
84
- if (meta.system_reinvoke)
85
- console.log('reinvoke: yes');
86
- if (meta.error)
87
- console.log(`error: ${meta.error}`);
88
- console.log('');
89
- console.log('Pass --json for full prompt/completion/tool-call payloads.');
90
- }
91
- function renderList(args) {
92
- if (args.jsonOutput) {
93
- console.log(JSON.stringify({
94
- hub_id: args.hubId,
95
- conversation_id: args.conversationId,
96
- entries: args.entries,
97
- truncated: args.truncated,
98
- }, null, 2));
99
- return;
100
- }
101
- console.log(`hub_id: ${args.hubId}`);
102
- console.log(`conversation_id:${args.conversationId}`);
103
- console.log(`messages: ${args.entries.length}${args.truncated ? ' (truncated)' : ''}`);
104
- if (args.entries.length === 0) {
105
- console.log('');
106
- console.log('(no observability records — only assistant LLM turns produce them)');
107
- return;
108
- }
109
- console.log('');
110
- console.log('timestamp | message_id | agent_role | latency_ms | tool_calls | error');
111
- console.log('-------------------------|---------------------------------------|-------------------|------------|------------|------');
112
- for (const e of args.entries) {
113
- const ts = (e.timestamp ?? '-').padEnd(24);
114
- const mid = (e.message_id ?? '-').padEnd(36);
115
- const role = (e.agent_role ?? '-').slice(0, 17).padEnd(17);
116
- const latency = String(e.latency_ms ?? '-').padStart(10);
117
- const toolCalls = String(e.tool_calls_total ?? '-').padStart(10);
118
- const err = e.error ? 'yes' : '';
119
- console.log(`${ts} | ${mid} | ${role} | ${latency} | ${toolCalls} | ${err}`);
120
- }
121
- console.log('');
122
- console.log('Drill in: --message-id <id> (for full prompt/completion/tool-calls; add --json for raw)');
123
- }
124
- //# sourceMappingURL=observability.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"observability.js","sourceRoot":"","sources":["../../src/commands/observability.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- /**
2
- * wayai org <create|pull|push|diff> — manage organizations and org-scoped resources.
3
- *
4
- * wayai org create "<name>" — create a new organization (you become its owner)
5
- *
6
- * The pull/push/diff subcommands sync ORG-scoped resources as code (the org-level
7
- * analog of hub resources, shared across hubs). They live in the org dir for the
8
- * active layout (`wayai-ws/org/`, or the legacy root-level `org/`), as
9
- * `resources.yaml` + `resources/<slug>/`; one org per repo (org id from
10
- * `.wayai.yaml`). Hub config (`wayai-ws/hubs/`) is untouched.
11
- *
12
- * wayai org pull — fetch org resources → <orgDir>/
13
- * wayai org diff — preview what `org push` would change on the platform
14
- * wayai org push — apply local org resources to the platform (fans out to linked hubs)
15
- *
16
- * `create` is git-agnostic (no repo/scope required — it's the first-org bootstrap);
17
- * pull/push/diff require a scoped repo.
18
- */
19
- export declare function orgCommand(args: string[]): Promise<void>;
@@ -1,186 +0,0 @@
1
- /**
2
- * wayai org <create|pull|push|diff> — manage organizations and org-scoped resources.
3
- *
4
- * wayai org create "<name>" — create a new organization (you become its owner)
5
- *
6
- * The pull/push/diff subcommands sync ORG-scoped resources as code (the org-level
7
- * analog of hub resources, shared across hubs). They live in the org dir for the
8
- * active layout (`wayai-ws/org/`, or the legacy root-level `org/`), as
9
- * `resources.yaml` + `resources/<slug>/`; one org per repo (org id from
10
- * `.wayai.yaml`). Hub config (`wayai-ws/hubs/`) is untouched.
11
- *
12
- * wayai org pull — fetch org resources → <orgDir>/
13
- * wayai org diff — preview what `org push` would change on the platform
14
- * wayai org push — apply local org resources to the platform (fans out to linked hubs)
15
- *
16
- * `create` is git-agnostic (no repo/scope required — it's the first-org bootstrap);
17
- * pull/push/diff require a scoped repo.
18
- */
19
- import { requireAuth } from '../lib/auth.js';
20
- import { ApiClient } from '../lib/api-client.js';
21
- import { requireRepoConfig } from '../lib/repo-config.js';
22
- import { findGitRoot } from '../lib/workspace.js';
23
- import { warnLayoutOnce } from '../lib/layout.js';
24
- import { confirm } from '../lib/utils.js';
25
- import { printDiff } from '../lib/diff-display.js';
26
- import { getOrgDir, orgManifestExists, parseOrgResources, writeOrgResources, downloadOrgBinaryFiles, } from '../lib/org-workspace.js';
27
- function parseFlags(args) {
28
- return { autoConfirm: args.includes('--yes') || args.includes('-y') };
29
- }
30
- async function resolveContext() {
31
- const { organization_id: orgId } = requireRepoConfig();
32
- const gitRoot = findGitRoot();
33
- if (!gitRoot) {
34
- console.error('Not inside a git repository.');
35
- process.exit(1);
36
- }
37
- warnLayoutOnce(gitRoot);
38
- const { config, accessToken } = await requireAuth();
39
- const client = new ApiClient({ apiUrl: config.api_url, accessToken });
40
- return { orgId, orgDir: getOrgDir(gitRoot), client };
41
- }
42
- export async function orgCommand(args) {
43
- const sub = args[0];
44
- const rest = args.slice(1);
45
- switch (sub) {
46
- case 'create':
47
- return orgCreate(rest);
48
- case 'pull':
49
- return orgPull(rest);
50
- case 'diff':
51
- return orgDiff(rest);
52
- case 'push':
53
- return orgPush(rest);
54
- default:
55
- console.error('Usage: wayai org <create|pull|push|diff> [-y]');
56
- process.exit(1);
57
- }
58
- }
59
- /** First non-flag token, skipping the value consumed by `--region`. */
60
- function firstPositional(args) {
61
- for (let i = 0; i < args.length; i++) {
62
- const a = args[i];
63
- if (a.startsWith('-')) {
64
- if (a === '--region')
65
- i++; // skip its value
66
- continue;
67
- }
68
- return a;
69
- }
70
- return undefined;
71
- }
72
- function getFlagValue(args, flag) {
73
- const idx = args.indexOf(flag);
74
- return idx !== -1 ? args[idx + 1] : undefined;
75
- }
76
- /**
77
- * wayai org create "<name>" [--region <region>] [--json]
78
- *
79
- * Creates an organization and makes the caller its owner. Deliberately does NOT
80
- * require a git repo or `.wayai.yaml` — this is the bootstrap step a brand-new
81
- * user runs before they have anything scoped. Follow with `wayai init`.
82
- */
83
- async function orgCreate(args) {
84
- const json = args.includes('--json');
85
- const name = firstPositional(args);
86
- if (!name) {
87
- console.error('Usage: wayai org create "<name>" [--region <region>] [--json]');
88
- process.exit(1);
89
- }
90
- const region = getFlagValue(args, '--region');
91
- const { config, accessToken } = await requireAuth();
92
- const client = new ApiClient({ apiUrl: config.api_url, accessToken });
93
- if (!json)
94
- console.log(`Creating organization "${name}"...`);
95
- const { organization } = await client.createOrganization(name, region);
96
- if (json) {
97
- console.log(JSON.stringify(organization, null, 2));
98
- return;
99
- }
100
- console.log(`Created organization: ${organization.name} (${organization.id})`);
101
- if (organization.region) {
102
- const note = organization.region_explicit ? 'as requested' : 'closest to you — pass --region to override';
103
- console.log(` Region: ${organization.region} (${note})`);
104
- }
105
- console.log(`\nScope a repo to it with \`wayai init --org ${organization.id}\`.`);
106
- }
107
- async function orgPull(args) {
108
- const { autoConfirm } = parseFlags(args);
109
- const { orgId, orgDir, client } = await resolveContext();
110
- console.log('Fetching organization resources...');
111
- const payload = await client.pullOrgResources(orgId);
112
- // If org/ already has content, preview what pulling would overwrite locally.
113
- if (orgManifestExists(orgDir) && !autoConfirm) {
114
- const local = parseOrgResources(orgDir);
115
- const diff = await client.diffOrgResources(orgId, local, 'push');
116
- if (diff.has_changes) {
117
- console.log('\nLocal org/ differs from the platform. Pulling overwrites local with the platform state:');
118
- printDiff(diff.summary);
119
- const ok = await confirm('Overwrite local org/ with platform state?');
120
- if (!ok) {
121
- console.log('Cancelled.');
122
- return;
123
- }
124
- }
125
- }
126
- writeOrgResources(orgDir, payload);
127
- await downloadOrgBinaryFiles(orgDir, payload);
128
- console.log(`Organization resources written to ${orgDir}`);
129
- }
130
- async function orgDiff(args) {
131
- void args;
132
- const { orgId, orgDir, client } = await resolveContext();
133
- if (!orgManifestExists(orgDir)) {
134
- console.error(`No ${orgDir}/resources.yaml found. Run \`wayai org pull\` first.`);
135
- process.exit(1);
136
- }
137
- const local = parseOrgResources(orgDir);
138
- const diff = await client.diffOrgResources(orgId, local, 'push');
139
- if (!diff.has_changes) {
140
- console.log('No changes — org/ matches the platform.');
141
- return;
142
- }
143
- console.log('Changes `wayai org push` would apply:');
144
- printDiff(diff.summary);
145
- }
146
- async function orgPush(args) {
147
- const { autoConfirm } = parseFlags(args);
148
- const { orgId, orgDir, client } = await resolveContext();
149
- if (!orgManifestExists(orgDir)) {
150
- console.error(`No ${orgDir}/resources.yaml found. Run \`wayai org pull\` first.`);
151
- process.exit(1);
152
- }
153
- const local = parseOrgResources(orgDir);
154
- const diff = await client.diffOrgResources(orgId, local, 'push');
155
- if (!diff.has_changes) {
156
- console.log('No changes — org/ already matches the platform.');
157
- return;
158
- }
159
- console.log('Changes to apply:');
160
- printDiff(diff.summary);
161
- if (!autoConfirm) {
162
- const ok = await confirm('Apply these changes to the organization?');
163
- if (!ok) {
164
- console.log('Cancelled.');
165
- return;
166
- }
167
- }
168
- const result = await client.pushOrgResources(orgId, local);
169
- const c = result.changes;
170
- console.log(`Pushed: ${c.resources_created} created, ${c.resources_updated} updated, ${c.resources_deleted} deleted; ` +
171
- `${c.resource_files_uploaded} file(s) uploaded, ${c.resource_files_deleted} deleted.`);
172
- if (result.fanout.hubs > 0) {
173
- const failed = result.fanout.failures > 0 ? ` (${result.fanout.failures} failed)` : '';
174
- console.log(`Synced to ${result.fanout.hubs} linked hub shadow(s)${failed}.`);
175
- }
176
- if (result.errors?.length) {
177
- console.warn('\nCompleted with errors:');
178
- for (const e of result.errors)
179
- console.warn(` - ${e}`);
180
- }
181
- // Re-pull so server-assigned ids land in the local manifest (matches `wayai push`).
182
- const refreshed = await client.pullOrgResources(orgId);
183
- writeOrgResources(orgDir, refreshed);
184
- await downloadOrgBinaryFiles(orgDir, refreshed);
185
- }
186
- //# sourceMappingURL=org.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"org.js","sourceRoot":"","sources":["../../src/commands/org.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- /**
2
- * wayai pull [--hub <id|name>] [-y] — fetch hub config from the platform and write local files
3
- *
4
- * The hub is derived from the workspace:
5
- * - cwd is inside a hub folder → use that hub
6
- * - exactly one hub in the hubs dir → use it
7
- * - multiple hubs → require `--hub <uuid|folder-name>` to disambiguate
8
- *
9
- * For first-time pulls in an empty workspace, pass `--hub <uuid>` to fetch and
10
- * materialize the hub at `wayai-ws/hubs/<hub-slug>/` (or the legacy
11
- * `workspace/<hub-slug>/` for un-migrated repos — see `layout.ts`).
12
- */
13
- import type { HubAsCodePayload } from '../lib/types.js';
14
- export declare function pullCommand(args: string[]): Promise<void>;
15
- /**
16
- * Download binary resource files that have download_url but no inline content.
17
- */
18
- export declare function downloadBinaryResourceFiles(hubFolder: string, payload: HubAsCodePayload): Promise<void>;
19
- /**
20
- * Compare two connection arrays by id set.
21
- * Connections are read-only references — we only care whether the set changed
22
- * (added, removed, or renamed), not about field-level diffs.
23
- */
24
- type ConnectionRef = {
25
- id?: string;
26
- name: string;
27
- type: string;
28
- service?: string;
29
- };
30
- export declare function connectionsEqual(a: ConnectionRef[] | undefined, b: ConnectionRef[] | undefined): boolean;
31
- export {};
@@ -1,210 +0,0 @@
1
- /**
2
- * wayai pull [--hub <id|name>] [-y] — fetch hub config from the platform and write local files
3
- *
4
- * The hub is derived from the workspace:
5
- * - cwd is inside a hub folder → use that hub
6
- * - exactly one hub in the hubs dir → use it
7
- * - multiple hubs → require `--hub <uuid|folder-name>` to disambiguate
8
- *
9
- * For first-time pulls in an empty workspace, pass `--hub <uuid>` to fetch and
10
- * materialize the hub at `wayai-ws/hubs/<hub-slug>/` (or the legacy
11
- * `workspace/<hub-slug>/` for un-migrated repos — see `layout.ts`).
12
- */
13
- import * as fs from 'node:fs';
14
- import * as path from 'node:path';
15
- import { requireAuth } from '../lib/auth.js';
16
- import { ApiClient } from '../lib/api-client.js';
17
- import { writeHubFolder } from '../lib/yaml-writer.js';
18
- import { parseHubFolder } from '../lib/parser.js';
19
- import { printDiff } from '../lib/diff-display.js';
20
- import { confirm, slugify, UUID_RE } from '../lib/utils.js';
21
- import { downloadBinaryFiles } from '../lib/resource-files.js';
22
- import { autoRenameHubFolder, detectWorkspace, findGitRoot, findEnclosingHubFolder, resolveHubFolder, scanWorkspaceHubs, } from '../lib/workspace.js';
23
- import { resolveLayout, warnLayoutOnce, hubsDirLabel } from '../lib/layout.js';
24
- import { requireRepoConfig } from '../lib/repo-config.js';
25
- import { assertHubMatchesLock, autoLockIfUnlocked } from '../lib/hub-lock.js';
26
- function parseArgs(args) {
27
- let autoConfirm = false;
28
- let hubSelector;
29
- for (let i = 0; i < args.length; i++) {
30
- const arg = args[i];
31
- if (arg === '--yes' || arg === '-y') {
32
- autoConfirm = true;
33
- }
34
- else if (arg === '--hub' && args[i + 1]) {
35
- hubSelector = args[++i];
36
- }
37
- }
38
- return { autoConfirm, hubSelector };
39
- }
40
- /** Resolve the target hub for the pull. May return a not-yet-materialized hub_id. */
41
- function resolveHubTarget(workspaceDir, selector) {
42
- const wsLabel = hubsDirLabel(findGitRoot());
43
- const allHubs = scanWorkspaceHubs(workspaceDir);
44
- if (selector) {
45
- // Match against existing folders by hubId or basename
46
- const match = allHubs.find((h) => h.hubId === selector || path.basename(h.hubFolder) === selector);
47
- if (match)
48
- return { hubId: match.hubId, hubFolder: match.hubFolder };
49
- // Selector might be a UUID for a hub that hasn't been materialized yet.
50
- if (UUID_RE.test(selector))
51
- return { hubId: selector, hubFolder: null };
52
- console.error(`No hub matching --hub ${selector} found in ${wsLabel}/. Pass a UUID for first-time pulls.`);
53
- process.exit(1);
54
- }
55
- const enclosing = findEnclosingHubFolder(workspaceDir);
56
- if (enclosing)
57
- return { hubId: enclosing.hubId, hubFolder: enclosing.hubFolder };
58
- if (allHubs.length === 1)
59
- return { hubId: allHubs[0].hubId, hubFolder: allHubs[0].hubFolder };
60
- if (allHubs.length === 0) {
61
- console.error(`No hub folders found in ${wsLabel}/. Pass --hub <uuid> to fetch a hub for the first time.`);
62
- process.exit(1);
63
- }
64
- console.error(`Multiple hubs found in ${wsLabel}/. Pass --hub <uuid|folder-name> to choose, or run from inside a hub folder:`);
65
- for (const h of allHubs) {
66
- console.error(` ${path.basename(h.hubFolder)} (${h.hubId})`);
67
- }
68
- process.exit(1);
69
- }
70
- export async function pullCommand(args) {
71
- const { autoConfirm, hubSelector } = parseArgs(args);
72
- const repoConfig = requireRepoConfig();
73
- const { organization_id: organizationId } = repoConfig;
74
- const { config, accessToken } = await requireAuth();
75
- const client = new ApiClient({ apiUrl: config.api_url, accessToken });
76
- // Determine the hubs directory for the active layout.
77
- let workspaceDir;
78
- const workspace = detectWorkspace();
79
- const gitRoot = findGitRoot();
80
- if (workspace) {
81
- workspaceDir = workspace.workspaceDir;
82
- }
83
- else {
84
- if (!gitRoot) {
85
- console.error('Not inside a git repository.');
86
- process.exit(1);
87
- }
88
- workspaceDir = resolveLayout(gitRoot).hubsDir;
89
- }
90
- if (gitRoot)
91
- warnLayoutOnce(gitRoot);
92
- const { hubId, hubFolder: existingFolder } = resolveHubTarget(workspaceDir, hubSelector);
93
- assertHubMatchesLock(hubId);
94
- // Fetch remote hub config
95
- console.log('Fetching hub configuration...');
96
- const payload = await client.pull(hubId, organizationId);
97
- if (payload.hub_environment === 'production') {
98
- console.log('Skipping production hub — production hubs are not tracked in the repository. Edit the linked preview hub instead.');
99
- return;
100
- }
101
- let hubFolder = existingFolder;
102
- let wroteFiles = false;
103
- // If no existing folder, create path for first pull
104
- if (!hubFolder) {
105
- hubFolder = resolveHubFolder(workspaceDir, hubId, payload.hub.name, payload.hub_environment, payload.preview_label, payload.branch_name);
106
- // Ensure parent directories exist
107
- fs.mkdirSync(path.dirname(hubFolder), { recursive: true });
108
- console.log('Writing hub configuration...');
109
- writeHubFolder(hubFolder, payload);
110
- await downloadBinaryResourceFiles(hubFolder, payload);
111
- const finalFolder = autoRenameHubFolder(hubFolder, payload.hub.name, payload.hub_environment, payload.hub_id, payload.preview_label, payload.branch_name);
112
- console.log(`Hub configuration written to ${finalFolder}`);
113
- wroteFiles = true;
114
- }
115
- else {
116
- // Hub folder exists — show diff before overwriting
117
- let cancelled = false;
118
- try {
119
- const localPayload = parseHubFolder(hubFolder);
120
- const diffResult = await client.diff(hubId, localPayload, 'pull', organizationId);
121
- // Connections are read-only references excluded from the diff engine.
122
- // Compare them separately so new/removed connections trigger a pull write.
123
- const connectionsChanged = !connectionsEqual(localPayload.connections, payload.connections);
124
- if (!diffResult.has_changes && !connectionsChanged) {
125
- // No semantic changes, but still write the remote payload to sync
126
- // metadata (tool IDs, connection IDs, etc.) that the diff engine ignores.
127
- writeHubFolder(hubFolder, payload);
128
- await downloadBinaryResourceFiles(hubFolder, payload);
129
- const finalFolder = autoRenameHubFolder(hubFolder, payload.hub.name, payload.hub_environment, payload.hub_id, payload.preview_label, payload.branch_name);
130
- wroteFiles = true;
131
- if (finalFolder === hubFolder) {
132
- console.log('Metadata synced — no config changes.');
133
- }
134
- else {
135
- console.log('Metadata synced; folder renamed.');
136
- }
137
- }
138
- else {
139
- console.log('\nChanges to apply locally:');
140
- if (connectionsChanged) {
141
- console.log('**Connections:** updated');
142
- }
143
- printDiff(diffResult.summary);
144
- if (!autoConfirm) {
145
- const ok = await confirm('Apply these changes?');
146
- if (!ok) {
147
- console.log('Cancelled.');
148
- cancelled = true;
149
- }
150
- }
151
- if (!cancelled) {
152
- writeHubFolder(hubFolder, payload);
153
- await downloadBinaryResourceFiles(hubFolder, payload);
154
- const finalFolder = autoRenameHubFolder(hubFolder, payload.hub.name, payload.hub_environment, payload.hub_id, payload.preview_label, payload.branch_name);
155
- console.log(`Hub configuration written to ${finalFolder}`);
156
- wroteFiles = true;
157
- }
158
- }
159
- }
160
- catch {
161
- // Local files can't be parsed — overwrite
162
- console.log('Writing hub configuration...');
163
- writeHubFolder(hubFolder, payload);
164
- await downloadBinaryResourceFiles(hubFolder, payload);
165
- const finalFolder = autoRenameHubFolder(hubFolder, payload.hub.name, payload.hub_environment, payload.hub_id, payload.preview_label, payload.branch_name);
166
- console.log(`Hub configuration written to ${finalFolder}`);
167
- wroteFiles = true;
168
- }
169
- if (cancelled)
170
- return;
171
- }
172
- // Auto-lock the worktree to this hub on first successful pull. No-op if a
173
- // lock already exists (even pointing at the same hub) or if not in git.
174
- if (wroteFiles)
175
- autoLockIfUnlocked(hubId);
176
- }
177
- /**
178
- * Download binary resource files that have download_url but no inline content.
179
- */
180
- export async function downloadBinaryResourceFiles(hubFolder, payload) {
181
- const resources = payload.resources || [];
182
- let downloadCount = 0;
183
- for (const resource of resources) {
184
- if (!resource.files)
185
- continue;
186
- const resDir = path.join(hubFolder, 'resources', slugify(resource.name));
187
- downloadCount += await downloadBinaryFiles(resDir, resource.files);
188
- }
189
- if (downloadCount > 0) {
190
- console.log(`Downloaded ${downloadCount} binary resource file(s).`);
191
- }
192
- }
193
- export function connectionsEqual(a, b) {
194
- const listA = a || [];
195
- const listB = b || [];
196
- if (listA.length !== listB.length)
197
- return false;
198
- // Build a comparable key per connection (id if available, otherwise name+type+service)
199
- const key = (c) => c.id || `${c.name}|${c.type}|${c.service || ''}`;
200
- const setA = new Set(listA.map(key));
201
- const setB = new Set(listB.map(key));
202
- if (setA.size !== setB.size)
203
- return false;
204
- for (const k of setA) {
205
- if (!setB.has(k))
206
- return false;
207
- }
208
- return true;
209
- }
210
- //# sourceMappingURL=pull.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- /**
2
- * wayai push [--hub <id|name>] [-y] — parse local files, diff remote, sync to preview
3
- *
4
- * The hub is derived from the workspace:
5
- * - cwd is inside a hub folder → use that hub
6
- * - exactly one hub in the hubs dir → use it
7
- * - multiple hubs → require `--hub <uuid|folder-name>` to disambiguate
8
- *
9
- * If a hub folder has hub.yaml without a `hub_id`, push creates the hub on the
10
- * platform first, then pushes its config.
11
- */
12
- import { ApiClient } from '../lib/api-client.js';
13
- import type { CiSyncResponse } from '../lib/types.js';
14
- export declare function printSyncResult(result: CiSyncResponse): void;
15
- /** Render a yellow-highlighted "Warnings (N)" block. Shared by push + sync output. */
16
- export declare function printWarnings(warnings: string[]): void;
17
- /**
18
- * Auto-rename agent .yaml and .md files when agents have been renamed (matched by ID).
19
- * Compares local agent names against remote agent names via pull,
20
- * then renames old-slug.yaml → new-slug.yaml and old-slug.md → new-slug.md.
21
- * Handles slug swaps via temp files.
22
- * Also updates explicit `instructions` paths in the hub YAML to match.
23
- */
24
- export declare function autoRenameAgentFiles(client: ApiClient, hubId: string, hubFolder: string, organizationId?: string): Promise<void>;
25
- export declare function pushCommand(args: string[]): Promise<void>;