@relayflows/sdk 2.0.15 → 2.0.16

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 (77) hide show
  1. package/dist/agent-artifacts.d.ts +20 -0
  2. package/dist/agent-artifacts.d.ts.map +1 -0
  3. package/dist/agent-artifacts.js +81 -0
  4. package/dist/agent-artifacts.js.map +1 -0
  5. package/dist/authored-flow-executor.d.ts +3 -3
  6. package/dist/authored-flow-executor.d.ts.map +1 -1
  7. package/dist/authored-flow-executor.js +7 -7
  8. package/dist/authored-flow-executor.js.map +1 -1
  9. package/dist/authored-step-output.d.ts +2 -0
  10. package/dist/authored-step-output.d.ts.map +1 -1
  11. package/dist/authored-step-output.js +5 -1
  12. package/dist/authored-step-output.js.map +1 -1
  13. package/dist/authored-worker-step.d.ts.map +1 -1
  14. package/dist/authored-worker-step.js +19 -1
  15. package/dist/authored-worker-step.js.map +1 -1
  16. package/dist/cli/check.js +6 -1
  17. package/dist/cli/check.js.map +1 -1
  18. package/dist/cli/cloud-deploy.d.ts +30 -0
  19. package/dist/cli/cloud-deploy.d.ts.map +1 -0
  20. package/dist/cli/cloud-deploy.js +162 -0
  21. package/dist/cli/cloud-deploy.js.map +1 -0
  22. package/dist/cli/cloud-run.d.ts +3 -1
  23. package/dist/cli/cloud-run.d.ts.map +1 -1
  24. package/dist/cli/cloud-run.js +37 -5
  25. package/dist/cli/cloud-run.js.map +1 -1
  26. package/dist/cli/cloud-sync.d.ts +13 -0
  27. package/dist/cli/cloud-sync.d.ts.map +1 -0
  28. package/dist/cli/cloud-sync.js +39 -0
  29. package/dist/cli/cloud-sync.js.map +1 -0
  30. package/dist/cli/run.d.ts +1 -1
  31. package/dist/cli/run.d.ts.map +1 -1
  32. package/dist/cli/run.js +12 -1
  33. package/dist/cli/run.js.map +1 -1
  34. package/dist/cli.d.ts.map +1 -1
  35. package/dist/cli.js +82 -12
  36. package/dist/cli.js.map +1 -1
  37. package/dist/cloud-deploy.d.ts +70 -0
  38. package/dist/cloud-deploy.d.ts.map +1 -0
  39. package/dist/cloud-deploy.js +181 -0
  40. package/dist/cloud-deploy.js.map +1 -0
  41. package/dist/cloud-http.d.ts +37 -2
  42. package/dist/cloud-http.d.ts.map +1 -1
  43. package/dist/cloud-http.js +98 -8
  44. package/dist/cloud-http.js.map +1 -1
  45. package/dist/cloud-run.d.ts +23 -0
  46. package/dist/cloud-run.d.ts.map +1 -1
  47. package/dist/cloud-run.js +30 -1
  48. package/dist/cloud-run.js.map +1 -1
  49. package/dist/cloud-sync.d.ts +66 -0
  50. package/dist/cloud-sync.d.ts.map +1 -0
  51. package/dist/cloud-sync.js +287 -0
  52. package/dist/cloud-sync.js.map +1 -0
  53. package/dist/failure-kinds.d.ts +8 -1
  54. package/dist/failure-kinds.d.ts.map +1 -1
  55. package/dist/failure-kinds.js +8 -0
  56. package/dist/failure-kinds.js.map +1 -1
  57. package/dist/index.d.ts +2 -0
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +2 -0
  60. package/dist/index.js.map +1 -1
  61. package/package.json +2 -2
  62. package/src/agent-artifacts.ts +76 -0
  63. package/src/authored-flow-executor.ts +8 -8
  64. package/src/authored-step-output.ts +6 -1
  65. package/src/authored-worker-step.ts +19 -1
  66. package/src/cli/check.ts +6 -1
  67. package/src/cli/cloud-deploy.ts +157 -0
  68. package/src/cli/cloud-run.ts +37 -6
  69. package/src/cli/cloud-sync.ts +37 -0
  70. package/src/cli/run.ts +13 -2
  71. package/src/cli.ts +75 -12
  72. package/src/cloud-deploy.ts +236 -0
  73. package/src/cloud-http.ts +129 -9
  74. package/src/cloud-run.ts +47 -1
  75. package/src/cloud-sync.ts +315 -0
  76. package/src/failure-kinds.ts +8 -0
  77. package/src/index.ts +8 -0
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-http.d.ts","sourceRoot":"","sources":["../src/cloud-http.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACrC,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,cAAe,SAAQ,KAAK;IAErC,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,oBAAoB,GAAG,eAAe,GAAG,kBAAkB,GAAG,YAAY,GAAG,iBAAiB,GAAG,iBAAiB;IAEnJ,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;gBAFf,IAAI,EAAE,eAAe,GAAG,oBAAoB,GAAG,eAAe,GAAG,kBAAkB,GAAG,YAAY,GAAG,iBAAiB,GAAG,iBAAiB,EACnJ,OAAO,EAAE,MAAM,EACN,MAAM,CAAC,EAAE,MAAM,YAAA;CAK3B;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAkBnG;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sBAAsB,EAC/B,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,OAAO,CAAC,CAgClB;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKjD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE9E"}
1
+ {"version":3,"file":"cloud-http.d.ts","sourceRoot":"","sources":["../src/cloud-http.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,sBAAsB;IACrC,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,cAAe,SAAQ,KAAK;IAErC,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,oBAAoB,GAAG,eAAe,GAAG,kBAAkB,GAAG,YAAY,GACvG,iBAAiB,GAAG,iBAAiB,GAAG,6BAA6B,GAAG,gBAAgB,GAAG,kBAAkB,GAC7G,gBAAgB;IAEpB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;gBAJf,IAAI,EAAE,eAAe,GAAG,oBAAoB,GAAG,eAAe,GAAG,kBAAkB,GAAG,YAAY,GACvG,iBAAiB,GAAG,iBAAiB,GAAG,6BAA6B,GAAG,gBAAgB,GAAG,kBAAkB,GAC7G,gBAAgB,EACpB,OAAO,EAAE,MAAM,EACN,MAAM,CAAC,EAAE,MAAM,YAAA;CAK3B;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAEpF;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,wBAAwB,CACtC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAA2C,GAClE,oBAAoB,GAAG,SAAS,CAalC;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAgDnG;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sBAAsB,EAC/B,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,OAAO,CAAC,CAIlB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC1C,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,mFAAmF;AACnF,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sBAAsB,EAC/B,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,OAAO,CAAC,CA0ClB;AAWD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKjD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE9E"}
@@ -1,3 +1,6 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { homedir } from 'node:os';
3
+ import { join } from 'node:path';
1
4
  export class CloudFlowError extends Error {
2
5
  code;
3
6
  status;
@@ -8,15 +11,54 @@ export class CloudFlowError extends Error {
8
11
  this.name = 'CloudFlowError';
9
12
  }
10
13
  }
14
+ /**
15
+ * The `agent-relay cloud login` credential store. Read only when neither the
16
+ * `token` option nor `FLOWS_CLOUD_TOKEN` is set, so an explicit credential
17
+ * always wins and this file can change shape without breaking a configured
18
+ * caller. Its `apiUrl` becomes the default base URL for the same reason: a
19
+ * login against one deployment must not send its token to another.
20
+ */
21
+ export function agentRelayCloudAuthPath(env = process.env) {
22
+ return join(env['AGENT_RELAY_HOME'] ?? join(homedir(), '.agentworkforce/relay'), 'cloud-auth.json');
23
+ }
24
+ export function readAgentRelayCloudLogin(env = process.env, read = path => readFileSync(path, 'utf8')) {
25
+ let parsed;
26
+ try {
27
+ parsed = JSON.parse(read(agentRelayCloudAuthPath(env)));
28
+ }
29
+ catch {
30
+ return undefined;
31
+ }
32
+ if (!isCloudRecord(parsed) || typeof parsed.apiUrl !== 'string' || typeof parsed.accessToken !== 'string'
33
+ || !parsed.accessToken.trim())
34
+ return undefined;
35
+ return {
36
+ apiUrl: parsed.apiUrl, accessToken: parsed.accessToken,
37
+ ...(typeof parsed.accessTokenExpiresAt === 'string' ? { accessTokenExpiresAt: parsed.accessTokenExpiresAt } : {}),
38
+ };
39
+ }
11
40
  export function cloudConnection(options) {
12
- const rawToken = options.token ?? process.env['FLOWS_CLOUD_TOKEN'];
41
+ let rawToken = options.token ?? process.env['FLOWS_CLOUD_TOKEN'];
42
+ let loginApiUrl;
43
+ if (rawToken === undefined) {
44
+ const login = readAgentRelayCloudLogin();
45
+ if (login !== undefined) {
46
+ const expiresAt = login.accessTokenExpiresAt === undefined ? Number.NaN : Date.parse(login.accessTokenExpiresAt);
47
+ if (Number.isFinite(expiresAt) && expiresAt <= Date.now()) {
48
+ throw new CloudFlowError('configuration', 'The agent-relay cloud login has expired. Run `agent-relay cloud login` again, or set FLOWS_CLOUD_TOKEN.');
49
+ }
50
+ rawToken = login.accessToken;
51
+ loginApiUrl = login.apiUrl;
52
+ }
53
+ }
13
54
  const token = rawToken?.trim();
14
55
  if (!token || /[\r\n]/u.test(rawToken) || /^(?:rk|ot)_live_/u.test(token)) {
15
- throw new CloudFlowError('configuration', 'Set FLOWS_CLOUD_TOKEN to a scoped Cloud API token (workflow:invoke:write and workflow:runs:read).');
56
+ throw new CloudFlowError('configuration', 'Set FLOWS_CLOUD_TOKEN to a scoped Cloud API token (workflow:invoke:write and workflow:runs:read), '
57
+ + 'or sign in with `agent-relay cloud login`.');
16
58
  }
17
59
  let url;
18
60
  try {
19
- url = new URL(options.apiUrl ?? process.env['FLOWS_CLOUD_URL'] ?? 'https://agentrelay.com/cloud');
61
+ url = new URL(options.apiUrl ?? process.env['FLOWS_CLOUD_URL'] ?? loginApiUrl ?? 'https://agentrelay.com/cloud');
20
62
  }
21
63
  catch {
22
64
  throw new CloudFlowError('configuration', 'FLOWS_CLOUD_URL must be an absolute Cloud application base URL.');
@@ -25,21 +67,52 @@ export function cloudConnection(options) {
25
67
  || url.username || url.password || url.search || url.hash || !/^\/[A-Za-z0-9/_-]*$/u.test(url.pathname)) {
26
68
  throw new CloudFlowError('configuration', 'Cloud URL must use HTTPS and a plain base path.');
27
69
  }
28
- return { baseUrl: `${url.origin}${url.pathname.replace(/\/+$/u, '')}`, token };
70
+ const baseUrl = `${url.origin}${url.pathname.replace(/\/+$/u, '')}`;
71
+ // A login-store token is bound to the deployment that issued it. An explicit
72
+ // URL that names another deployment gets no token at all — set
73
+ // FLOWS_CLOUD_TOKEN for that deployment instead.
74
+ if (loginApiUrl !== undefined) {
75
+ let issued;
76
+ try {
77
+ const login = new URL(loginApiUrl);
78
+ issued = `${login.origin}${login.pathname.replace(/\/+$/u, '')}`;
79
+ }
80
+ catch {
81
+ issued = undefined;
82
+ }
83
+ if (issued !== baseUrl) {
84
+ throw new CloudFlowError('configuration', `The agent-relay cloud login was issued for ${loginApiUrl}, not ${baseUrl}. `
85
+ + 'Set FLOWS_CLOUD_TOKEN for that deployment, or unset FLOWS_CLOUD_URL to use the login.');
86
+ }
87
+ }
88
+ return { baseUrl, token };
29
89
  }
30
90
  export async function cloudRequest(path, options, body) {
91
+ return cloudFetch(path, options, body === undefined
92
+ ? { method: 'GET' }
93
+ : { method: 'POST', body: JSON.stringify(body), contentType: 'application/json' });
94
+ }
95
+ /** One authenticated Cloud request. Every transport error is typed; no retries. */
96
+ export async function cloudFetch(path, options, init) {
31
97
  const { baseUrl, token } = cloudConnection(options);
32
98
  const timeout = options.requestTimeoutMs ?? 30_000;
33
99
  if (!Number.isSafeInteger(timeout) || timeout < 1 || timeout > 2_147_483_647) {
34
100
  throw new CloudFlowError('configuration', 'requestTimeoutMs must be a positive 32-bit integer.');
35
101
  }
102
+ const bearer = init.bearerToken ?? token;
103
+ if (/[\r\n]/u.test(bearer) || !bearer.trim()) {
104
+ throw new CloudFlowError('invalid_response', 'Cloud issued an unusable storage credential.');
105
+ }
36
106
  const deadline = AbortSignal.timeout(timeout);
37
107
  let response;
38
108
  try {
39
109
  response = await fetch(`${baseUrl}${path}`, {
40
- method: body === undefined ? 'GET' : 'POST',
41
- headers: { authorization: `Bearer ${token}`, 'content-type': 'application/json' },
42
- ...(body === undefined ? {} : { body: JSON.stringify(body) }),
110
+ method: init.method,
111
+ headers: {
112
+ authorization: `Bearer ${bearer}`,
113
+ 'content-type': init.contentType ?? 'application/json',
114
+ },
115
+ ...(init.body === undefined ? {} : { body: typeof init.body === 'string' ? init.body : new Blob([init.body]) }),
43
116
  signal: options.signal ? AbortSignal.any([options.signal, deadline]) : deadline,
44
117
  // A redirect must never carry the credential to a different origin.
45
118
  redirect: 'error',
@@ -51,7 +124,10 @@ export async function cloudRequest(path, options, body) {
51
124
  }
52
125
  if (!response.ok) {
53
126
  // Do not echo server response bodies: they may contain credentials or source.
54
- throw new CloudFlowError('http_error', `Cloud request failed with HTTP ${response.status}.`, response.status);
127
+ const refusal = init.detail ? await structuredRefusal(response) : undefined;
128
+ throw new CloudFlowError('http_error', refusal === undefined
129
+ ? `Cloud request failed with HTTP ${response.status}.`
130
+ : `Cloud refused (${refusal.code}): ${refusal.error}`, response.status);
55
131
  }
56
132
  try {
57
133
  return await response.json();
@@ -63,6 +139,20 @@ export async function cloudRequest(path, options, body) {
63
139
  throw new CloudFlowError('invalid_response', 'Cloud returned a non-JSON response.');
64
140
  }
65
141
  }
142
+ async function structuredRefusal(response) {
143
+ let body;
144
+ try {
145
+ body = await response.json();
146
+ }
147
+ catch {
148
+ return undefined;
149
+ }
150
+ if (!isCloudRecord(body) || typeof body.code !== 'string' || typeof body.error !== 'string')
151
+ return undefined;
152
+ if (!/^[a-z0-9_]{1,64}$/u.test(body.code) || body.error.length > 500)
153
+ return undefined;
154
+ return { code: body.code, error: body.error };
155
+ }
66
156
  // Defensive path-segment constraint; accepting a new server ID format needs an SDK change.
67
157
  export function cloudRunId(value) {
68
158
  if (typeof value !== 'string' || !/^[A-Za-z0-9_-]{1,128}$/u.test(value)) {
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-http.js","sourceRoot":"","sources":["../src/cloud-http.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,cAAe,SAAQ,KAAK;IAE5B;IAEA;IAHX,YACW,IAA0I,EACnJ,OAAe,EACN,MAAe;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJN,SAAI,GAAJ,IAAI,CAAsI;QAE1I,WAAM,GAAN,MAAM,CAAS;QAGxB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAC,OAA+B;IAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,QAAS,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,cAAc,CAAC,eAAe,EACtC,mGAAmG,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,8BAA8B,CAAC,CAAC;IACpG,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,iEAAiE,CAAC,CAAC;IAC/G,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ;WACxB,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1G,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,iDAAiD,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;AACjF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAY,EACZ,OAA+B,EAC/B,IAAc;IAEd,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,IAAI,MAAM,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,aAAa,EAAE,CAAC;QAC7E,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,qDAAqD,CAAC,CAAC;IACnG,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE;YAC1C,MAAM,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;YAC3C,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YACjF,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;YAC/E,oEAAoE;YACpE,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QACjC,MAAM,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,8EAA8E;QAC9E,MAAM,IAAI,cAAc,CAAC,YAAY,EAAE,kCAAkC,QAAQ,CAAC,MAAM,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChH,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QACjC,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC;YAAE,MAAM,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtG,MAAM,IAAI,cAAc,CAAC,kBAAkB,EAAE,qCAAqC,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,cAAc,CAAC,kBAAkB,EAAE,0EAA0E,CAAC,CAAC;IAC3H,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,MAAM,SAAS,GAAG,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC;WACtE,CAAC,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW;YACxD,yBAAyB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3H,OAAO,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,EACzE,SAAS,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,mFAAmF,CAAC,CAAC;AAClJ,CAAC"}
1
+ {"version":3,"file":"cloud-http.js","sourceRoot":"","sources":["../src/cloud-http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAYjC,MAAM,OAAO,cAAe,SAAQ,KAAK;IAE5B;IAIA;IALX,YACW,IAEW,EACpB,OAAe,EACN,MAAe;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QANN,SAAI,GAAJ,IAAI,CAEO;QAEX,WAAM,GAAN,MAAM,CAAS;QAGxB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC1E,OAAO,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,uBAAuB,CAAC,EAAE,iBAAiB,CAAC,CAAC;AACtG,CAAC;AASD,MAAM,UAAU,wBAAwB,CACtC,MAAyB,OAAO,CAAC,GAAG,EACpC,OAAiC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;IAEnE,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;WACpG,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IAClD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW;QACtD,GAAG,CAAC,OAAO,MAAM,CAAC,oBAAoB,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAA+B;IAC7D,IAAI,QAAQ,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjE,IAAI,WAA+B,CAAC;IACpC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,wBAAwB,EAAE,CAAC;QACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,KAAK,CAAC,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACjH,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBAC1D,MAAM,IAAI,cAAc,CAAC,eAAe,EACtC,yGAAyG,CAAC,CAAC;YAC/G,CAAC;YACD,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC;YAC7B,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,QAAS,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,cAAc,CAAC,eAAe,EACtC,oGAAoG;cAClG,4CAA4C,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,WAAW,IAAI,8BAA8B,CAAC,CAAC;IACnH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,iEAAiE,CAAC,CAAC;IAC/G,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ;WACxB,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1G,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,iDAAiD,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;IACpE,6EAA6E;IAC7E,+DAA+D;IAC/D,iDAAiD;IACjD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,MAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;YACnC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QACnE,CAAC;QAAC,MAAM,CAAC;YAAC,MAAM,GAAG,SAAS,CAAC;QAAC,CAAC;QAC/B,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,MAAM,IAAI,cAAc,CAAC,eAAe,EACtC,8CAA8C,WAAW,SAAS,OAAO,IAAI;kBAC3E,uFAAuF,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAY,EACZ,OAA+B,EAC/B,IAAc;IAEd,OAAO,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,SAAS;QACjD,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE;QACnB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;AACvF,CAAC;AAqBD,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAY,EACZ,OAA+B,EAC/B,IAAoB;IAEpB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,IAAI,MAAM,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,aAAa,EAAE,CAAC;QAC7E,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,qDAAqD,CAAC,CAAC;IACnG,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC;IACzC,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,cAAc,CAAC,kBAAkB,EAAE,8CAA8C,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE;YAC1C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,MAAM,EAAE;gBACjC,cAAc,EAAE,IAAI,CAAC,WAAW,IAAI,kBAAkB;aACvD;YACD,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC/G,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;YAC/E,oEAAoE;YACpE,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QACjC,MAAM,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,8EAA8E;QAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,MAAM,IAAI,cAAc,CAAC,YAAY,EAAE,OAAO,KAAK,SAAS;YAC1D,CAAC,CAAC,kCAAkC,QAAQ,CAAC,MAAM,GAAG;YACtD,CAAC,CAAC,kBAAkB,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,KAAK,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QACjC,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC;YAAE,MAAM,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtG,MAAM,IAAI,cAAc,CAAC,kBAAkB,EAAE,qCAAqC,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,QAAkB;IACjD,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QAAC,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC;IACjE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC9G,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;QAAE,OAAO,SAAS,CAAC;IACvF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AAChD,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,cAAc,CAAC,kBAAkB,EAAE,0EAA0E,CAAC,CAAC;IAC3H,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,MAAM,SAAS,GAAG,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC;WACtE,CAAC,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW;YACxD,yBAAyB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3H,OAAO,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,EACzE,SAAS,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,mFAAmF,CAAC,CAAC;AAClJ,CAAC"}
@@ -11,6 +11,23 @@ export interface RunInCloudOptions extends CloudConnectionOptions {
11
11
  workspaceId?: string;
12
12
  /** Exact JSON input. Required at runtime for authored .flow.ts; refused for declarative source. */
13
13
  input?: JsonValue;
14
+ /**
15
+ * Upload this working tree before submission so the hosted run executes
16
+ * inside it (v1's `--sync-code`). Cloud-API storage only; see cloud-sync.ts.
17
+ * The submitted flow still travels as source in the request body, so it
18
+ * must remain self-contained: sibling imports inside the tree are not
19
+ * resolved by the hosted runner.
20
+ */
21
+ syncCode?: {
22
+ root: string;
23
+ };
24
+ /**
25
+ * Called immediately before the one non-idempotent request, the run
26
+ * submission. Everything before it (prepare, pack, upload) is safe to
27
+ * retry, so a caller classifying an interruption can tell "nothing was
28
+ * admitted" from "admission unknown".
29
+ */
30
+ onSubmit?: () => void;
14
31
  }
15
32
  export interface CloudRunReceipt {
16
33
  runId: string;
@@ -19,6 +36,12 @@ export interface CloudRunReceipt {
19
36
  specHash: string;
20
37
  /** Authenticated run API resource; this is not a public sharing URL. */
21
38
  apiUrl: string;
39
+ /** Present when a working tree was synced: what was uploaded, by count and size. */
40
+ synced?: {
41
+ files: number;
42
+ bytes: number;
43
+ skippedLinks: string[];
44
+ };
22
45
  }
23
46
  export interface CloudAuthoredAuthority {
24
47
  readonly schemaVersion: 1;
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-run.d.ts","sourceRoot":"","sources":["../src/cloud-run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAOzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAoB,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1D,MAAM,WAAW,iBAAkB,SAAQ,sBAAsB;IAC/D,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mGAAmG;IACnG,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AACD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,qGAAqG;IACrG,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;CAC1C;AACD,MAAM,MAAM,aAAa,GACrB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAA;CAAE,GAC9D;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IAAC,gBAAgB,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAE3G;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,eAAe,EACrB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,eAAe,CAAC,CAsF1B;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,aAAa,CAAC,CAoBxB;AAED,4FAA4F;AAC5F,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,sBAAsB,GAAG;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GACjE,OAAO,CAAC,aAAa,CAAC,CAuBxB"}
1
+ {"version":3,"file":"cloud-run.d.ts","sourceRoot":"","sources":["../src/cloud-run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAOzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAoB,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,iBAAiB,CAAC;AAGzB,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1D,MAAM,WAAW,iBAAkB,SAAQ,sBAAsB;IAC/D,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mGAAmG;IACnG,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AACD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,qGAAqG;IACrG,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,oFAAoF;IACpF,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACnE;AACD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;CAC1C;AACD,MAAM,MAAM,aAAa,GACrB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAA;CAAE,GAC9D;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IAAC,gBAAgB,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAE3G;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,eAAe,EACrB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,eAAe,CAAC,CAkH1B;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,aAAa,CAAC,CAoBxB;AAED,4FAA4F;AAC5F,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,sBAAsB,GAAG;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GACjE,OAAO,CAAC,aAAa,CAAC,CAuBxB"}
package/dist/cloud-run.js CHANGED
@@ -8,6 +8,7 @@ import { CompileError, compileSpec, kernelToAuthoring, toKernelSpec } from './co
8
8
  import { snapshotJsonValue } from './json-value.js';
9
9
  import { loadAuthoredFlow } from './authored-flow-loader.js';
10
10
  import { CloudFlowError, cloudConnection, cloudRequest, cloudRunId, isCloudRecord, } from './cloud-http.js';
11
+ import { packWorkingTree, prepareCloudSync, uploadCloudCode } from './cloud-sync.js';
11
12
  /**
12
13
  * Submit a declarative flow to Cloud's pinned v2 runtime. Compilation only
13
14
  * happens here; Cloud owns provisioning and the Rust engine owns execution.
@@ -91,6 +92,27 @@ export async function runInCloud(flow, options = {}) {
91
92
  authority: authored.authority,
92
93
  input: authoredInput,
93
94
  })).digest('hex');
95
+ // Sync before submission: `prepare` reserves the run ID and the upload lands
96
+ // under it, so the run request below names code Cloud already holds. A
97
+ // refused backend or failed upload therefore never leaves a launched run
98
+ // pointing at a tree that is not there.
99
+ let synced;
100
+ if (options.syncCode !== undefined) {
101
+ const prepared = await prepareCloudSync(options);
102
+ options.signal?.throwIfAborted();
103
+ const packed = await packWorkingTree(options.syncCode.root);
104
+ try {
105
+ options.signal?.throwIfAborted();
106
+ await uploadCloudCode(prepared, packed, options);
107
+ }
108
+ finally {
109
+ packed.dispose();
110
+ }
111
+ synced = { runId: prepared.runId, codeKey: prepared.codeKey, files: packed.files.length, bytes: packed.bytes,
112
+ skippedLinks: packed.skippedLinks };
113
+ }
114
+ options.signal?.throwIfAborted();
115
+ options.onSubmit?.();
94
116
  const result = await cloudRequest('/api/v1/workflows/run', options, {
95
117
  // JSON is a YAML subset. Sending canonical data preserves the exact spec
96
118
  // while using the server's existing YAML-to-config admission path.
@@ -100,12 +122,19 @@ export async function runInCloud(flow, options = {}) {
100
122
  ...(authored === undefined ? {} : { authoredAuthority: authored.authority }),
101
123
  ...(authored === undefined ? {} : { inputs: authoredInput }),
102
124
  ...(options.workspaceId === undefined ? {} : { workspaceId: options.workspaceId }),
125
+ ...(synced === undefined ? {} : { runId: synced.runId, s3CodeKey: synced.codeKey }),
103
126
  });
104
127
  if (!isCloudRecord(result) || (result.status !== 'pending' && result.status !== 'running')) {
105
128
  throw new CloudFlowError('invalid_response', 'Cloud did not return an accepted run.');
106
129
  }
107
130
  const runId = cloudRunId(result.runId);
108
- return { runId, status: result.status, specHash: hash, apiUrl: `${baseUrl}/api/v1/workflows/runs/${runId}` };
131
+ if (synced !== undefined && runId !== synced.runId) {
132
+ throw new CloudFlowError('invalid_response', `Cloud accepted run ${runId} but the synced code was uploaded for ${synced.runId}.`);
133
+ }
134
+ return {
135
+ runId, status: result.status, specHash: hash, apiUrl: `${baseUrl}/api/v1/workflows/runs/${runId}`,
136
+ ...(synced === undefined ? {} : { synced: { files: synced.files, bytes: synced.bytes, skippedLinks: synced.skippedLinks } }),
137
+ };
109
138
  }
110
139
  export async function getCloudFlowRun(runId, options = {}) {
111
140
  cloudRunId(runId);
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-run.js","sourceRoot":"","sources":["../src/cloud-run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud-run.js","sourceRoot":"","sources":["../src/cloud-run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { type CloudConnectionOptions } from './cloud-http.js';
2
+ /**
3
+ * Code sync for hosted v2 runs, Cloud-API transport only.
4
+ *
5
+ * v1's `--sync-code` had two transports: an S3 client with STS credentials and
6
+ * the Cloud API's own storage route. v2 runs on Cloudflare, so this module
7
+ * speaks only the second: `prepare` must answer with a `cloud-api` storage
8
+ * backend, the tarball is `PUT` to `/workflows/runs/<id>/storage/<key>`, and
9
+ * the sandbox's post-run patch is read from `/workflows/runs/<id>/patch`. A
10
+ * `prepare` that hands back anything else is refused before any upload — the
11
+ * SDK never carries an AWS dependency and never sends code to a bucket it did
12
+ * not get through the Cloud API.
13
+ */
14
+ /** Uncompressed bytes. Matches the sandbox's extraction budget with headroom. */
15
+ export declare const MAX_SYNC_BYTES: number;
16
+ export interface PreparedCloudSync {
17
+ runId: string;
18
+ codeKey: string;
19
+ /** Run-scoped upload credential from `prepare`; falls back to the session token. */
20
+ uploadToken?: string;
21
+ }
22
+ /** `POST /api/v1/workflows/prepare`, refusing every non-Cloud-API storage backend. */
23
+ export declare function prepareCloudSync(options: CloudConnectionOptions): Promise<PreparedCloudSync>;
24
+ export interface PackedTree {
25
+ /** The gzip'd ustar, spooled to a temporary file; `dispose()` removes it. */
26
+ archivePath: string;
27
+ /** Archive members, `root`-relative POSIX paths, sorted. */
28
+ files: string[];
29
+ /** Uncompressed byte total across regular files. */
30
+ bytes: number;
31
+ /** Symlinks left out because their target resolves outside `root`. */
32
+ skippedLinks: string[];
33
+ dispose(): void;
34
+ }
35
+ /**
36
+ * gzip'd ustar of the working tree at `root`, streamed to a temporary file so
37
+ * the peak footprint is one file plus the compressor's window, never the
38
+ * whole tree. Inside a Git checkout the member list is `git ls-files --cached
39
+ * --others --exclude-standard`, so `.gitignore` governs and untracked-but-
40
+ * not-ignored files ride along, as they do in v1. Outside Git, every regular
41
+ * file and in-tree symlink except `.git`/`node_modules`. A Git failure other
42
+ * than "not a repository" is refused rather than silently widened to the walk:
43
+ * an ignored `.env` must never reach Cloud because `git` was missing or the
44
+ * index was locked. Executable bits survive; symlinks whose target leaves the
45
+ * tree are dropped and reported, since on the host they would point at
46
+ * whatever happens to live at that path. Ordering and mtimes are
47
+ * deterministic, so the same tree packs to the same bytes.
48
+ */
49
+ export declare function packWorkingTree(root: string): Promise<PackedTree>;
50
+ /** `PUT` the archive through the Cloud API; the run-scoped credential wins when present. */
51
+ export declare function uploadCloudCode(prepared: PreparedCloudSync, packed: PackedTree, options: CloudConnectionOptions): Promise<void>;
52
+ export interface CloudPatch {
53
+ patch: string;
54
+ hasChanges: boolean;
55
+ }
56
+ /** The sandbox's post-run diff. Multi-path runs carry several patches and are refused here. */
57
+ export declare function downloadCloudPatch(runId: string, options: CloudConnectionOptions): Promise<CloudPatch>;
58
+ /** Every path a unified diff touches, deletions included, in order of first appearance. */
59
+ export declare function patchedPaths(patch: string): string[];
60
+ /**
61
+ * `git apply --check` then `git apply`; a conflict leaves the tree untouched.
62
+ * The patch lands in the working tree uncommitted, so what the run changed is
63
+ * reviewed with `git diff` before anything is kept — the same contract as v1.
64
+ */
65
+ export declare function applyCloudPatch(root: string, patch: string): void;
66
+ //# sourceMappingURL=cloud-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-sync.d.ts","sourceRoot":"","sources":["../src/cloud-sync.ts"],"names":[],"mappings":"AAQA,OAAO,EACgE,KAAK,sBAAsB,EACjG,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;;;;GAWG;AAEH,iFAAiF;AACjF,eAAO,MAAM,cAAc,QAAoB,CAAC;AAIhD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,sFAAsF;AACtF,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqBlG;AAED,MAAM,WAAW,UAAU;IACzB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA6CvE;AA0HD,4FAA4F;AAC5F,wBAAsB,eAAe,CACnC,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,sBAAsB,GAC/E,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,+FAA+F;AAC/F,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,CAY5G;AAED,2FAA2F;AAC3F,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAMpD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAWjE"}