@relayflows/sdk 2.0.63 → 2.0.65

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-repository-grant.d.ts","sourceRoot":"","sources":["../src/cloud-repository-grant.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAuBD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,GAAG,SAAS,CAoCzF"}
@@ -0,0 +1,61 @@
1
+ import { isCloudRecord } from './cloud-http.js';
2
+ const coordinate = /^[A-Za-z0-9][A-Za-z0-9_.-]{0,99}$/u;
3
+ function validGitlabNamespace(value) {
4
+ if (typeof value !== 'string' || value.length > 255)
5
+ return false;
6
+ const parts = value.split('/');
7
+ return parts.length >= 1 && parts.length <= 20 && parts.every(part => (coordinate.test(part) && !part.endsWith('.') && !part.endsWith('.git') && !part.endsWith('.atom')));
8
+ }
9
+ function validRepositoryBranch(value) {
10
+ return typeof value === 'string'
11
+ && /^[A-Za-z0-9][A-Za-z0-9._/-]{0,199}$/u.test(value)
12
+ && value !== 'HEAD'
13
+ && !value.includes('..')
14
+ && !value.includes('//')
15
+ && value.split('/').every(part => (part !== '' && !part.startsWith('.') && !part.endsWith('.') && !part.endsWith('.lock')));
16
+ }
17
+ /**
18
+ * Rebuild the request portion of persisted Cloud repository authority.
19
+ * Cloud re-admits this request against the persisted identity and current
20
+ * connection; the SDK must neither infer missing authority nor widen it.
21
+ */
22
+ export function readCloudRepositoryGrant(value) {
23
+ if (value === undefined)
24
+ return undefined;
25
+ if (!isCloudRecord(value))
26
+ return undefined;
27
+ const gitlab = value.host === 'gitlab';
28
+ if ((value.host !== undefined && value.host !== 'github' && value.host !== 'gitlab')
29
+ || typeof value.owner !== 'string'
30
+ || !(gitlab ? validGitlabNamespace(value.owner) : coordinate.test(value.owner))
31
+ || typeof value.repo !== 'string'
32
+ || !/^[A-Za-z0-9_.-]{1,100}$/u.test(value.repo)
33
+ || value.repo === '.' || value.repo === '..'
34
+ || (gitlab && (value.repo.endsWith('.git') || value.repo.endsWith('.atom') || value.repo.endsWith('.')))
35
+ || !validRepositoryBranch(value.baseBranch)
36
+ || !validRepositoryBranch(value.branch)
37
+ || (value.mode !== undefined && value.mode !== 'new' && value.mode !== 'head')
38
+ || (value.workflows !== undefined && typeof value.workflows !== 'boolean')
39
+ || (gitlab && value.workflows === true)
40
+ || (value.access !== undefined && value.access !== 'read')
41
+ || (value.access === 'read' && value.workflows === true)
42
+ || (gitlab && value.access === 'read')
43
+ || (value.mode !== 'head' && !value.branch.startsWith('relayflow/'))
44
+ || value.branch === value.baseBranch
45
+ || typeof value.baseSha !== 'string'
46
+ || !/^[a-f0-9]{40}$/u.test(value.baseSha)) {
47
+ return undefined;
48
+ }
49
+ return {
50
+ ...(gitlab ? { host: 'gitlab' } : {}),
51
+ owner: value.owner.toLowerCase(),
52
+ repo: value.repo.toLowerCase(),
53
+ baseBranch: value.baseBranch,
54
+ baseSha: value.baseSha,
55
+ branch: value.branch,
56
+ ...(value.mode === 'head' ? { mode: 'head' } : {}),
57
+ ...(value.workflows === true ? { workflows: true } : {}),
58
+ ...(value.access === 'read' ? { access: 'read' } : {}),
59
+ };
60
+ }
61
+ //# sourceMappingURL=cloud-repository-grant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-repository-grant.js","sourceRoot":"","sources":["../src/cloud-repository-grant.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-schedule.d.ts","sourceRoot":"","sources":["../src/cloud-schedule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAA2D,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACvH,OAAO,EAA+C,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;GAMG;AAEH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,eAAe,CAAC;IACtB,6GAA6G;IAC7G,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAID,2FAA2F;AAC3F,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUjD;AAED,8DAA8D;AAC9D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAKjG;AAWD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,CAWrG;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,oBAAoB,EAAE,OAAO,GAAE,sBAA2B,GAChE,OAAO,CAAC,aAAa,CAAC,CA0CxB;AAiBD,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CASvG;AAED,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAO/G;AAED,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE/D"}
1
+ {"version":3,"file":"cloud-schedule.d.ts","sourceRoot":"","sources":["../src/cloud-schedule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAA6C,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzG,OAAO,EAA+C,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;GAMG;AAEH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,eAAe,CAAC;IACtB,6GAA6G;IAC7G,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAID,2FAA2F;AAC3F,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUjD;AAED,8DAA8D;AAC9D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAKjG;AAWD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,CAWrG;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,oBAAoB,EAAE,OAAO,GAAE,sBAA2B,GAChE,OAAO,CAAC,aAAa,CAAC,CA0CxB;AAiBD,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CASvG;AAED,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAO/G;AAED,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE/D"}
@@ -1,5 +1,5 @@
1
1
  import { cronGrid, everyToMs, parseCron } from '@relayflows/surface';
2
- import { CloudFlowError, cloudFetch, cloudRequest, isCloudRecord } from './cloud-http.js';
2
+ import { CloudFlowError, cloudFetch, isCloudRecord } from './cloud-http.js';
3
3
  import { cloudSubmissionBody, prepareCloudSubmission } from './cloud-run.js';
4
4
  const SCHEDULE_ID = /^[A-Za-z0-9_-]{1,128}$/u;
5
5
  /** `every("5m")` as a cron the server accepts; only intervals cron can express exactly. */
@@ -121,7 +121,7 @@ function toCloudSchedule(row) {
121
121
  };
122
122
  }
123
123
  export async function listCloudSchedules(options = {}) {
124
- const payload = await cloudRequest('/api/v1/workflows/schedules', options);
124
+ const payload = await cloudFetch('/api/v1/workflows/schedules', options, { method: 'GET', detail: true });
125
125
  if (!isCloudRecord(payload) || !Array.isArray(payload.schedules)) {
126
126
  throw new CloudFlowError('invalid_response', 'Cloud did not return a schedules list.');
127
127
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-schedule.js","sourceRoot":"","sources":["../src/cloud-schedule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud-schedule.js","sourceRoot":"","sources":["../src/cloud-schedule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAA8B,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAA+B,MAAM,iBAAiB,CAAC;AACzG,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAwB,MAAM,gBAAgB,CAAC;AAqCnG,MAAM,WAAW,GAAG,yBAAyB,CAAC;AAE9C,2FAA2F;AAC3F,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,EAAE,GAAG,MAAM,CAAC;IAC5B,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,GAAG,EAAE,IAAI,EAAE,GAAG,OAAO,KAAK,CAAC;QAAE,OAAO,KAAK,OAAO,UAAU,CAAC;IACnH,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,WAAW,CAAC;IACvC,MAAM,KAAK,GAAG,EAAE,GAAG,SAAS,CAAC;IAC7B,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,KAAK,CAAC;QAAE,OAAO,OAAO,KAAK,QAAQ,CAAC;IACxG,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,WAAW,CAAC;IACrC,MAAM,IAAI,cAAc,CAAC,eAAe,EACtC,WAAW,KAAK,gHAAgH,CAAC,CAAC;AACtI,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,oBAAoB,CAAC,MAA6B;IAChE,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IACnH,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;IAC5G,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,cAAc,CAAC,EAAU;IAChC,IAAI,CAAC;QACH,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,QAAQ,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC;IACpG,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAA0D;IAC7F,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1D,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,mCAAmC,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC;YAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAC5C,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,WAAW,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjH,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAAE,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxD,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS;QAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAA2B,EAAE,UAAkC,EAAE;IAEjE,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE;QAC1D,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;KACpE,CAAC,CAAC;IACH,IAAI,IAAY,CAAC;IACjB,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IAClB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC;YAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAC5C,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,WAAW,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjH,CAAC;QACD,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;SAAM,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACrC,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;gBACzE,CAAC,CAAC,kEAAkE;gBACpE,CAAC,CAAC,wEAAwE,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,CAAC;QAChE,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACrB,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC;IACrB,CAAC;IACD,MAAM,QAAQ,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,kCAAkC,CAAC,CAAC;IACzF,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,6BAA6B,EAAE,OAAO,EAAE;QACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI;QAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,IAAI;YACJ,aAAa,EAAE,MAAM;YACrB,eAAe,EAAE,IAAI;YACrB,QAAQ;YACR,eAAe,EAAE,mBAAmB,CAAC,UAAU,CAAC;SACjD,CAAC;KACH,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACrG,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,cAAc,CAAC,kBAAkB,EAAE,kCAAkC,CAAC,CAAC;IAC3G,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,eAAe,CAAC,GAA4B;IACnD,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5F,MAAM,IAAI,cAAc,CAAC,kBAAkB,EAAE,sCAAsC,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,GAAW,EAA0B,EAAE,CACvD,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI;QAC1B,cAAc,EAAE,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;QAChF,QAAQ,EAAE,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;QACjE,MAAM,EAAE,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC/D,GAAG,QAAQ,CAAC,WAAW,CAAC,EAAE,GAAG,QAAQ,CAAC,iBAAiB,CAAC,EAAE,GAAG,QAAQ,CAAC,oBAAoB,CAAC,EAAE,GAAG,QAAQ,CAAC,mBAAmB,CAAC;KAC9H,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,UAAkC,EAAE;IAC3E,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,6BAA6B,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1G,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,cAAc,CAAC,kBAAkB,EAAE,wCAAwC,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACjC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,kBAAkB,EAAE,0CAA0C,CAAC,CAAC;QAClH,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAAkB,EAAE,UAAkC,EAAE;IAC9F,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,IAAI,UAAU,yBAAyB,CAAC,CAAC;IACtH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,+BAA+B,kBAAkB,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,EACtG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACtD,MAAM,IAAI,cAAc,CAAC,kBAAkB,EAAE,qCAAqC,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC;AAC/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-versions.d.ts","sourceRoot":"","sources":["../src/cloud-versions.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EACoD,KAAK,sBAAsB,EACrF,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACyD,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAC5G,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAC6B,KAAK,gBAAgB,EAAE,KAAK,sBAAsB,EACrF,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAoD,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAYjH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,gBAAgB,CAAC;IAC7B,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACvC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,uFAAuF;AACvF,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,MAAM,CAAC,CAe1G;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,aAAa,CAAC,CA0BpH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAED,+FAA+F;AAC/F,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,kBAAkB,EAAE,OAAO,GAAE,sBAA2B,GAC9D,OAAO,CAAC,sBAAsB,CAAC,CA0DjC;AAED,0GAA0G;AAC1G,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAClE,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,sBAAsB,CAAA;CAAE,CAAC,CAc/E"}
1
+ {"version":3,"file":"cloud-versions.d.ts","sourceRoot":"","sources":["../src/cloud-versions.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EACoD,KAAK,sBAAsB,EACrF,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACyD,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAC5G,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAC6B,KAAK,gBAAgB,EAAE,KAAK,sBAAsB,EACrF,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAoD,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAYjH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,gBAAgB,CAAC;IAC7B,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACvC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,uFAAuF;AACvF,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,MAAM,CAAC,CAe1G;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,aAAa,CAAC,CA0BpH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAED,+FAA+F;AAC/F,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,kBAAkB,EAAE,OAAO,GAAE,sBAA2B,GAC9D,OAAO,CAAC,sBAAsB,CAAC,CA6DjC;AAED,0GAA0G;AAC1G,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAClE,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,sBAAsB,CAAA;CAAE,CAAC,CAc/E"}
@@ -90,7 +90,10 @@ export async function deployVersionToCloud(input, options = {}) {
90
90
  const connected = listener.status !== 'listening' || input.checkConnections === false
91
91
  ? []
92
92
  : (await ensureIntegrationsConnected(requirements, {
93
- ...options, workspaceId: workspace.id, ...(input.connect === undefined ? {} : { prompt: input.connect }),
93
+ ...options,
94
+ workspaceId: workspace.id,
95
+ eventIngressProviders: listener.sources.map(source => source.provider),
96
+ ...(input.connect === undefined ? {} : { prompt: input.connect }),
94
97
  })).connected;
95
98
  options.signal?.throwIfAborted();
96
99
  const result = await cloudFetch(`/api/v1/flows/listeners/${encodeURIComponent(agentId)}/versions`, options, {
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-versions.js","sourceRoot":"","sources":["../src/cloud-versions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud-versions.js","sourceRoot":"","sources":["../src/cloud-versions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@relayflows/sdk",
3
- "version": "2.0.63",
3
+ "version": "2.0.65",
4
4
  "description": "TypeScript-first authoring SDK for Relayflows. Compiles specs; speaks the journal protocol.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -50,7 +50,7 @@
50
50
  "@modelcontextprotocol/sdk": "^1.30.0",
51
51
  "@relayfile/adapter-core": "0.8.5",
52
52
  "@relayfile/relay-helpers": "0.6.1",
53
- "@relayflows/surface": "2.0.63",
53
+ "@relayflows/surface": "2.0.65",
54
54
  "@types/js-yaml": "^4.0.9",
55
55
  "acorn": "^8.18.0",
56
56
  "ai-hist": "0.4.1",
@@ -200,15 +200,16 @@ export async function runCloudUndeployCli({ agentId, json }: { agentId: string;
200
200
  }
201
201
 
202
202
  export function reportCloudFailure(error: unknown, json: boolean, io: CliIo, harnesses: readonly string[] = []): 1 | 2 {
203
- const code = error instanceof CloudFlowError ? error.code : 'cloud_deploy_failed';
203
+ const code = error instanceof CloudFlowError ? error.refusal?.code ?? error.code : 'cloud_deploy_failed';
204
204
  let message = error instanceof Error ? error.message : 'Cloud deploy failed.';
205
205
  // Cloud names the missing coding-agent credential on activation; say how it is connected.
206
206
  message += harnessRemedy(error, harnesses);
207
- // The deploy routes take a browser session or a `cli:auth` token. A
208
- // deployment (CI) token gets 403 `session_required`; say what fixes it.
209
- if (error instanceof CloudFlowError && error.status === 403) {
210
- message += ' Deploying needs an interactive `cli:auth` credential: run `agent-relay cloud login` '
211
- + '(a deployment token can run flows but not deploy them).';
207
+ // Older Cloud deployments used the typed `session_required` refusal for
208
+ // routes that needed browser or cli:auth credentials. Current Cloud also
209
+ // accepts scoped deployment tokens and names missing scopes itself. Other
210
+ // 403s keep that server-provided remedy intact.
211
+ if (error instanceof CloudFlowError && error.refusal?.code === 'session_required') {
212
+ message += ' Deploying needs an interactive `cli:auth` credential: run `agent-relay cloud login`.';
212
213
  }
213
214
  if (json) io.stdout(JSON.stringify({ ok: false, code, message }));
214
215
  else io.stderr(`${code}: ${message}`);
@@ -144,11 +144,12 @@ export async function runCloudUnscheduleCli(
144
144
  }
145
145
 
146
146
  function reportFailure(error: unknown, json: boolean, io: CliIo, harnesses: readonly string[] = []): 1 | 2 {
147
- const code = error instanceof CloudFlowError ? error.code : 'cloud_schedule_failed';
147
+ const code = error instanceof CloudFlowError ? error.refusal?.code ?? error.code : 'cloud_schedule_failed';
148
148
  let message = error instanceof Error ? error.message : 'Cloud schedule failed.';
149
149
  message += harnessRemedy(error, harnesses);
150
- // The schedule routes take a browser session or a `cli:auth` token.
151
- if (error instanceof CloudFlowError && error.status === 403) {
150
+ // Only the typed refusal means this valid credential is the wrong kind for
151
+ // the route. Other 403s carry their own authorisation remedy.
152
+ if (error instanceof CloudFlowError && error.refusal?.code === 'session_required') {
152
153
  message += ' Scheduling needs an interactive `cli:auth` credential: run `agent-relay cloud login`.';
153
154
  }
154
155
  if (json) io.stdout(JSON.stringify({ ok: false, code, message }));
@@ -3,6 +3,7 @@ import { readFile } from 'node:fs/promises';
3
3
  import { CloudFlowError, cloudFetch, cloudRunId, isCloudRecord, type CloudConnectionOptions } from './cloud-http.js';
4
4
  import { cloudRunState } from './cloud-run-record.js';
5
5
  import { readCloudHumanWaitValue } from './cloud-human-wait.js';
6
+ import { readCloudRepositoryGrant } from './cloud-repository-grant.js';
6
7
  import { readSurfaceAuthority, type SurfaceModuleAuthority } from './authored-flow-loader.js';
7
8
  import type { CloudAuthoredAuthority } from './cloud-run.js';
8
9
 
@@ -29,24 +30,32 @@ export class CloudAnswerError extends Error {
29
30
  }
30
31
  }
31
32
 
33
+ interface CloudRecordedHumanAnswer {
34
+ waitId: string;
35
+ answer: boolean;
36
+ note?: string;
37
+ }
38
+
32
39
  const route = (runId: string): string => `/api/v1/workflows/runs/${runId}`;
33
40
  const get = (path: string, options: CloudConnectionOptions): Promise<unknown> =>
34
41
  cloudFetch(path, options, { method: 'GET', detail: true });
35
42
  const post = (path: string, body: unknown, options: CloudConnectionOptions): Promise<unknown> =>
36
43
  cloudFetch(path, options, { method: 'POST', body: JSON.stringify(body), detail: true });
37
44
 
38
- /**
39
- * Accepted answer route shapes are explicit: humanWait (or wait), or openWaits,
40
- * and an optional recorded answer { waitId, answer, note? }. Unknown/ambiguous
41
- * shapes refuse before writes. A closed wait is retryable only with that proof.
42
- */
43
- export async function readCloudHumanWait(runId: string, options: CloudConnectionOptions = {}) {
44
- cloudRunId(runId);
45
- const body = await get(`${route(runId)}/answer`, options);
45
+ function readCloudHumanAnswerRecord(body: unknown, runId: string): {
46
+ wait?: ReturnType<typeof readCloudHumanWaitValue>;
47
+ recorded?: CloudRecordedHumanAnswer;
48
+ } {
46
49
  if (!isCloudRecord(body)) throw new CloudFlowError('invalid_response', 'Cloud returned no human answer record.');
47
- if (body.runId !== undefined && body.runId !== runId) {
50
+ if (body.runId !== runId) {
48
51
  throw new CloudFlowError('invalid_response', 'Cloud returned a human answer record for a different run.');
49
52
  }
53
+ if (body.error !== undefined && body.error !== null) {
54
+ throw new CloudFlowError('invalid_response', 'Cloud returned an error beside a human answer record.');
55
+ }
56
+ if (body.ok !== undefined && body.ok !== true) {
57
+ throw new CloudFlowError('invalid_response', 'Cloud explicitly refused the human answer record.');
58
+ }
50
59
  // An absent and a null field mean the same thing everywhere below.
51
60
  const present = (key: string): boolean => body[key] !== undefined && body[key] !== null;
52
61
  if (['humanWait', 'wait', 'openWaits'].filter(present).length > 1) {
@@ -59,12 +68,18 @@ export async function readCloudHumanWait(runId: string, options: CloudConnection
59
68
  }
60
69
  const wait = readCloudHumanWaitValue(candidates[0]);
61
70
  if (candidates.length === 1 && !wait) throw new CloudFlowError('invalid_response', 'Cloud returned an invalid open human wait.');
62
- const recorded = body.answer;
71
+ if (['humanAnswer', 'answer'].filter(present).length > 1) {
72
+ throw new CloudFlowError('invalid_response', 'Cloud returned competing recorded human answer fields.');
73
+ }
74
+ const recorded = body.humanAnswer ?? body.answer;
63
75
  if (recorded !== undefined && recorded !== null
64
76
  && (!isCloudRecord(recorded) || !readCloudHumanWaitValue(recorded) || typeof recorded.answer !== 'boolean'
65
77
  || (recorded.note !== undefined && recorded.note !== null && typeof recorded.note !== 'string'))) {
66
78
  throw new CloudFlowError('invalid_response', 'Cloud returned an invalid recorded human answer.');
67
79
  }
80
+ if (wait && isCloudRecord(recorded) && recorded.waitId !== wait.waitId) {
81
+ throw new CloudFlowError('invalid_response', 'Cloud returned a human answer for a different wait.');
82
+ }
68
83
  return { wait, recorded: isCloudRecord(recorded)
69
84
  // Like the wait fields, a null note means absent.
70
85
  ? { waitId: recorded.waitId as string, answer: recorded.answer as boolean,
@@ -72,6 +87,30 @@ export async function readCloudHumanWait(runId: string, options: CloudConnection
72
87
  : undefined };
73
88
  }
74
89
 
90
+ /**
91
+ * Accepted answer route shapes are explicit: humanWait (or wait), or openWaits,
92
+ * and an optional recorded humanAnswer (legacy: answer) { waitId, answer, note? }.
93
+ * Unknown fields are additive, but competing or cross-run/wait shapes refuse.
94
+ */
95
+ export async function readCloudHumanWait(runId: string, options: CloudConnectionOptions = {}) {
96
+ cloudRunId(runId);
97
+ return readCloudHumanAnswerRecord(await get(`${route(runId)}/answer`, options), runId);
98
+ }
99
+
100
+ function normalizedAnswerNote(note: string | undefined): string | undefined {
101
+ const normalized = note?.trim();
102
+ return normalized === undefined || normalized.length === 0 ? undefined : normalized;
103
+ }
104
+
105
+ function sameRecordedAnswer(
106
+ recorded: CloudRecordedHumanAnswer,
107
+ waitId: string,
108
+ answer: boolean,
109
+ note: string | undefined,
110
+ ): boolean {
111
+ return recorded.waitId === waitId && recorded.answer === answer && recorded.note === note;
112
+ }
113
+
75
114
  const HEX64 = /^[a-f0-9]{64}$/u;
76
115
 
77
116
  function isSurfaceAuthority(value: unknown): value is SurfaceModuleAuthority {
@@ -125,6 +164,10 @@ async function resumeBody(record: Record<string, unknown>, runId: string, source
125
164
  throw new CloudFlowError('unsupported_source', 'Cannot resume a run with extensions: Cloud must expose their original submissions.');
126
165
  }
127
166
  }
167
+ const repositoryGrant = readCloudRepositoryGrant(authority.repository);
168
+ if (authority.repository !== undefined && repositoryGrant === undefined) {
169
+ throw new CloudFlowError('invalid_response', 'Cloud run carries an invalid repository grant; refusing to widen or alter it.');
170
+ }
128
171
  let workflow = record.workflow;
129
172
  if (source !== undefined) {
130
173
  try { workflow = await readFile(source, 'utf8'); }
@@ -144,6 +187,7 @@ async function resumeBody(record: Record<string, unknown>, runId: string, source
144
187
  surface: await resumeSurface(authority.source.surface, source),
145
188
  });
146
189
  return { workflow, authoredAuthority, fileType: 'ts', relayflowVersion: 'v2', resume: runId,
190
+ ...(repositoryGrant === undefined ? {} : { repositoryGrant }),
147
191
  ...(typeof record.workspaceId === 'string' ? { workspaceId: record.workspaceId } : {}) };
148
192
  }
149
193
 
@@ -160,18 +204,19 @@ export async function answerCloudFlow(runId: string, answer: boolean, options: C
160
204
  if (!waitId || (state.humanWait && state.humanWait.waitId !== waitId)) {
161
205
  throw new CloudFlowError('invalid_response', 'Cloud answer record does not identify the run’s parked wait.');
162
206
  }
163
- // A recorded answer that omits its optional note does not contradict --note.
164
- if (recorded && (recorded.answer !== answer
165
- || (recorded.note !== undefined && recorded.note !== options.note))) {
207
+ const note = normalizedAnswerNote(options.note);
208
+ if (recorded && !sameRecordedAnswer(recorded, waitId, answer, note)) {
166
209
  throw new CloudFlowError('invalid_input', 'The recorded answer differs; a closed human wait cannot be changed.');
167
210
  }
168
211
  const body = await resumeBody(record as Record<string, unknown>, runId, options.source);
169
212
  let answerRecorded = recorded !== undefined;
170
213
  try {
171
214
  if (!answerRecorded) {
172
- const accepted = await post(`${route(runId)}/answer`, { waitId, answer, ...(options.note === undefined ? {} : { note: options.note }) }, options);
173
- // Only an explicit acknowledgement counts; {} or { ok: null } is not a recorded decision.
174
- if (!isCloudRecord(accepted) || accepted.ok !== true || accepted.error !== undefined) {
215
+ const accepted = await post(`${route(runId)}/answer`, { waitId, answer, ...(note === undefined ? {} : { note }) }, options);
216
+ const acknowledged = readCloudHumanAnswerRecord(accepted, runId);
217
+ if (!acknowledged.wait || !acknowledged.recorded
218
+ || acknowledged.wait.waitId !== waitId
219
+ || !sameRecordedAnswer(acknowledged.recorded, waitId, answer, note)) {
175
220
  throw new CloudFlowError('invalid_response', 'Cloud did not confirm the human answer.');
176
221
  }
177
222
  answerRecorded = true;
@@ -30,6 +30,8 @@ export interface ConnectPrompt {
30
30
 
31
31
  export interface EnsureConnectionsOptions extends CloudConnectionOptions {
32
32
  workspaceId: string;
33
+ /** Providers this submission is activating as hosted event listeners. Direct runs and schedules omit this. */
34
+ eventIngressProviders?: readonly string[];
33
35
  /** Omitted (`--no-connect`, or no TTY) means a missing integration is a refusal, never a prompt. */
34
36
  prompt?: ConnectPrompt;
35
37
  /** Status poll cadence while the browser connect is pending. Default 2 seconds. */
@@ -105,6 +107,9 @@ export async function ensureIntegrationsConnected(
105
107
  options.signal?.throwIfAborted();
106
108
  const probe = await probeIntegration(options.workspaceId, integration.provider, options);
107
109
  if (probe.ready) {
110
+ if (needsEventIngress(integration, options) && eventIngressReady(probe.status) === false) {
111
+ throw eventIngressNotReady(integration, probe.status);
112
+ }
108
113
  outcome.ready.push(integration.provider);
109
114
  continue;
110
115
  }
@@ -115,12 +120,41 @@ export async function ensureIntegrationsConnected(
115
120
  if (!await options.prompt.confirm(`Connect ${label} now? (opens browser) [Y/n] `)) {
116
121
  throw notConnected(integration, options);
117
122
  }
118
- await connectIntegration(integration.provider, options, options.prompt);
123
+ const connectedProbe = await connectIntegration(integration.provider, options, options.prompt);
124
+ if (needsEventIngress(integration, options) && eventIngressReady(connectedProbe.status) === false) {
125
+ throw eventIngressNotReady(integration, connectedProbe.status);
126
+ }
119
127
  outcome.connected.push(integration.provider);
120
128
  }
121
129
  return outcome;
122
130
  }
123
131
 
132
+ function needsEventIngress(
133
+ integration: FlowIntegrationRequirement, options: EnsureConnectionsOptions,
134
+ ): boolean {
135
+ return integration.provider === 'gitlab'
136
+ && options.eventIngressProviders?.includes(integration.provider) === true;
137
+ }
138
+
139
+ function eventIngressReady(status: Record<string, unknown> | null): boolean | null {
140
+ if (status === null) return null;
141
+ return typeof status['eventIngressReady'] === 'boolean' ? status['eventIngressReady'] : null;
142
+ }
143
+
144
+ function eventIngressNotReady(
145
+ integration: FlowIntegrationRequirement,
146
+ status: Record<string, unknown> | null,
147
+ ): CloudFlowError {
148
+ const label = providerLabel(integration.provider);
149
+ const details = readinessDetails(status);
150
+ return new CloudFlowError('integration_not_ready',
151
+ `${label} is ready for scheduled sync, but webhook ingress is not verified for this flow source (${integration.detail})`
152
+ + `${details === '' ? '.' : `: ${details}.`} `
153
+ + 'Select the project and configure its matching webhook, then deliver a test event. '
154
+ + 'Waiting for scheduled polling does not make a hosted listener ready. '
155
+ + 'Keep the existing connection; do not log in again, reconnect, or switch auth type.');
156
+ }
157
+
124
158
  function notReady(integration: FlowIntegrationRequirement, status: Record<string, unknown> | null): CloudFlowError {
125
159
  const label = providerLabel(integration.provider);
126
160
  const details = readinessDetails(status);
@@ -135,7 +169,9 @@ function notReady(integration: FlowIntegrationRequirement, status: Record<string
135
169
  + `${details === '' ? '.' : `: ${details}.`} ${remedy}`);
136
170
  }
137
171
 
138
- async function connectIntegration(provider: string, options: EnsureConnectionsOptions, prompt: ConnectPrompt): Promise<void> {
172
+ async function connectIntegration(
173
+ provider: string, options: EnsureConnectionsOptions, prompt: ConnectPrompt,
174
+ ): Promise<IntegrationProbe> {
139
175
  const base = `/api/v1/workspaces/${encodeURIComponent(options.workspaceId)}/integrations`;
140
176
  const session = await cloudFetch(`${base}/connect-session`, options, {
141
177
  method: 'POST', detail: true,
@@ -160,9 +196,10 @@ async function connectIntegration(provider: string, options: EnsureConnectionsOp
160
196
  while (Date.now() < deadline) {
161
197
  await sleep(interval, options.signal);
162
198
  options.signal?.throwIfAborted();
163
- if (await integrationConnected(options.workspaceId, provider, options)) {
199
+ const probe = await probeIntegration(options.workspaceId, provider, options);
200
+ if (probe.ready) {
164
201
  prompt.info(`${providerLabel(provider)} connected.`);
165
- return;
202
+ return probe;
166
203
  }
167
204
  }
168
205
  throw new CloudFlowError('integration_not_connected',
@@ -315,7 +315,10 @@ export async function deployToCloud(
315
315
  const connected = manual || input.draft || input.checkConnections === false
316
316
  ? []
317
317
  : (await ensureIntegrationsConnected(requirements, {
318
- ...options, workspaceId: workspace.id, ...(input.connect === undefined ? {} : { prompt: input.connect }),
318
+ ...options,
319
+ workspaceId: workspace.id,
320
+ eventIngressProviders: sources.map(source => source.provider),
321
+ ...(input.connect === undefined ? {} : { prompt: input.connect }),
319
322
  })).connected;
320
323
  options.signal?.throwIfAborted();
321
324
  const result = await cloudFetch('/api/v1/flows/deploy', options, { method: 'POST', detail: true, body: JSON.stringify({
@@ -0,0 +1,77 @@
1
+ import { isCloudRecord } from './cloud-http.js';
2
+
3
+ export interface CloudRepositoryGrant {
4
+ host?: 'gitlab';
5
+ owner: string;
6
+ repo: string;
7
+ baseBranch: string;
8
+ baseSha: string;
9
+ branch: string;
10
+ mode?: 'head';
11
+ workflows?: true;
12
+ access?: 'read';
13
+ }
14
+
15
+ const coordinate = /^[A-Za-z0-9][A-Za-z0-9_.-]{0,99}$/u;
16
+
17
+ function validGitlabNamespace(value: unknown): value is string {
18
+ if (typeof value !== 'string' || value.length > 255) return false;
19
+ const parts = value.split('/');
20
+ return parts.length >= 1 && parts.length <= 20 && parts.every(part => (
21
+ coordinate.test(part) && !part.endsWith('.') && !part.endsWith('.git') && !part.endsWith('.atom')
22
+ ));
23
+ }
24
+
25
+ function validRepositoryBranch(value: unknown): value is string {
26
+ return typeof value === 'string'
27
+ && /^[A-Za-z0-9][A-Za-z0-9._/-]{0,199}$/u.test(value)
28
+ && value !== 'HEAD'
29
+ && !value.includes('..')
30
+ && !value.includes('//')
31
+ && value.split('/').every(part => (
32
+ part !== '' && !part.startsWith('.') && !part.endsWith('.') && !part.endsWith('.lock')
33
+ ));
34
+ }
35
+
36
+ /**
37
+ * Rebuild the request portion of persisted Cloud repository authority.
38
+ * Cloud re-admits this request against the persisted identity and current
39
+ * connection; the SDK must neither infer missing authority nor widen it.
40
+ */
41
+ export function readCloudRepositoryGrant(value: unknown): CloudRepositoryGrant | undefined {
42
+ if (value === undefined) return undefined;
43
+ if (!isCloudRecord(value)) return undefined;
44
+ const gitlab = value.host === 'gitlab';
45
+ if ((value.host !== undefined && value.host !== 'github' && value.host !== 'gitlab')
46
+ || typeof value.owner !== 'string'
47
+ || !(gitlab ? validGitlabNamespace(value.owner) : coordinate.test(value.owner))
48
+ || typeof value.repo !== 'string'
49
+ || !/^[A-Za-z0-9_.-]{1,100}$/u.test(value.repo)
50
+ || value.repo === '.' || value.repo === '..'
51
+ || (gitlab && (value.repo.endsWith('.git') || value.repo.endsWith('.atom') || value.repo.endsWith('.')))
52
+ || !validRepositoryBranch(value.baseBranch)
53
+ || !validRepositoryBranch(value.branch)
54
+ || (value.mode !== undefined && value.mode !== 'new' && value.mode !== 'head')
55
+ || (value.workflows !== undefined && typeof value.workflows !== 'boolean')
56
+ || (gitlab && value.workflows === true)
57
+ || (value.access !== undefined && value.access !== 'read')
58
+ || (value.access === 'read' && value.workflows === true)
59
+ || (gitlab && value.access === 'read')
60
+ || (value.mode !== 'head' && !value.branch.startsWith('relayflow/'))
61
+ || value.branch === value.baseBranch
62
+ || typeof value.baseSha !== 'string'
63
+ || !/^[a-f0-9]{40}$/u.test(value.baseSha)) {
64
+ return undefined;
65
+ }
66
+ return {
67
+ ...(gitlab ? { host: 'gitlab' as const } : {}),
68
+ owner: value.owner.toLowerCase(),
69
+ repo: value.repo.toLowerCase(),
70
+ baseBranch: value.baseBranch,
71
+ baseSha: value.baseSha,
72
+ branch: value.branch,
73
+ ...(value.mode === 'head' ? { mode: 'head' as const } : {}),
74
+ ...(value.workflows === true ? { workflows: true as const } : {}),
75
+ ...(value.access === 'read' ? { access: 'read' as const } : {}),
76
+ };
77
+ }
@@ -1,5 +1,5 @@
1
1
  import { cronGrid, everyToMs, parseCron, type ScheduleTriggerSource } from '@relayflows/surface';
2
- import { CloudFlowError, cloudFetch, cloudRequest, isCloudRecord, type CloudConnectionOptions } from './cloud-http.js';
2
+ import { CloudFlowError, cloudFetch, isCloudRecord, type CloudConnectionOptions } from './cloud-http.js';
3
3
  import { cloudSubmissionBody, prepareCloudSubmission, type CloudFlowSource } from './cloud-run.js';
4
4
  import type { JsonValue } from './json-value.js';
5
5
 
@@ -150,7 +150,7 @@ function toCloudSchedule(row: Record<string, unknown>): CloudSchedule {
150
150
  }
151
151
 
152
152
  export async function listCloudSchedules(options: CloudConnectionOptions = {}): Promise<CloudSchedule[]> {
153
- const payload = await cloudRequest('/api/v1/workflows/schedules', options);
153
+ const payload = await cloudFetch('/api/v1/workflows/schedules', options, { method: 'GET', detail: true });
154
154
  if (!isCloudRecord(payload) || !Array.isArray(payload.schedules)) {
155
155
  throw new CloudFlowError('invalid_response', 'Cloud did not return a schedules list.');
156
156
  }
@@ -133,7 +133,10 @@ export async function deployVersionToCloud(
133
133
  const connected = listener.status !== 'listening' || input.checkConnections === false
134
134
  ? []
135
135
  : (await ensureIntegrationsConnected(requirements, {
136
- ...options, workspaceId: workspace.id, ...(input.connect === undefined ? {} : { prompt: input.connect }),
136
+ ...options,
137
+ workspaceId: workspace.id,
138
+ eventIngressProviders: listener.sources.map(source => source.provider),
139
+ ...(input.connect === undefined ? {} : { prompt: input.connect }),
137
140
  })).connected;
138
141
  options.signal?.throwIfAborted();
139
142
  const result = await cloudFetch(`/api/v1/flows/listeners/${encodeURIComponent(agentId)}/versions`, options, {