@agent-relay/factory 0.1.56 → 0.1.58

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 (141) hide show
  1. package/README.md +148 -2
  2. package/dist/cli/fleet.d.ts +13 -0
  3. package/dist/cli/fleet.d.ts.map +1 -1
  4. package/dist/cli/fleet.js +431 -103
  5. package/dist/cli/fleet.js.map +1 -1
  6. package/dist/config/schema.d.ts +1107 -348
  7. package/dist/config/schema.d.ts.map +1 -1
  8. package/dist/config/schema.js +67 -6
  9. package/dist/config/schema.js.map +1 -1
  10. package/dist/cost/index.d.ts +3 -0
  11. package/dist/cost/index.d.ts.map +1 -0
  12. package/dist/cost/index.js +3 -0
  13. package/dist/cost/index.js.map +1 -0
  14. package/dist/cost/ledger.d.ts +69 -0
  15. package/dist/cost/ledger.d.ts.map +1 -0
  16. package/dist/cost/ledger.js +162 -0
  17. package/dist/cost/ledger.js.map +1 -0
  18. package/dist/cost/pricing.d.ts +18 -0
  19. package/dist/cost/pricing.d.ts.map +1 -0
  20. package/dist/cost/pricing.js +54 -0
  21. package/dist/cost/pricing.js.map +1 -0
  22. package/dist/feature-guardian/conversation.d.ts +251 -0
  23. package/dist/feature-guardian/conversation.d.ts.map +1 -0
  24. package/dist/feature-guardian/conversation.js +1893 -0
  25. package/dist/feature-guardian/conversation.js.map +1 -0
  26. package/dist/feature-guardian/index.d.ts +2 -0
  27. package/dist/feature-guardian/index.d.ts.map +1 -0
  28. package/dist/feature-guardian/index.js +2 -0
  29. package/dist/feature-guardian/index.js.map +1 -0
  30. package/dist/fleet/internal-fleet-client.d.ts +3 -1
  31. package/dist/fleet/internal-fleet-client.d.ts.map +1 -1
  32. package/dist/fleet/internal-fleet-client.js +81 -0
  33. package/dist/fleet/internal-fleet-client.js.map +1 -1
  34. package/dist/fleet/relay-fleet-client.d.ts +3 -1
  35. package/dist/fleet/relay-fleet-client.d.ts.map +1 -1
  36. package/dist/fleet/relay-fleet-client.js +48 -0
  37. package/dist/fleet/relay-fleet-client.js.map +1 -1
  38. package/dist/github/index.d.ts +2 -0
  39. package/dist/github/index.d.ts.map +1 -1
  40. package/dist/github/index.js +1 -0
  41. package/dist/github/index.js.map +1 -1
  42. package/dist/github/routed-pr-babysitter.d.ts +48 -0
  43. package/dist/github/routed-pr-babysitter.d.ts.map +1 -0
  44. package/dist/github/routed-pr-babysitter.js +197 -0
  45. package/dist/github/routed-pr-babysitter.js.map +1 -0
  46. package/dist/hosted/index.d.ts +1 -1
  47. package/dist/hosted/index.d.ts.map +1 -1
  48. package/dist/hosted/index.js +1 -1
  49. package/dist/hosted/index.js.map +1 -1
  50. package/dist/hosted/orchestrator.d.ts +1 -0
  51. package/dist/hosted/orchestrator.d.ts.map +1 -1
  52. package/dist/hosted/orchestrator.js +190 -1
  53. package/dist/hosted/orchestrator.js.map +1 -1
  54. package/dist/hosted/types.d.ts +4 -0
  55. package/dist/hosted/types.d.ts.map +1 -1
  56. package/dist/index.d.ts +8 -4
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +5 -1
  59. package/dist/index.js.map +1 -1
  60. package/dist/intake/index.d.ts +4 -0
  61. package/dist/intake/index.d.ts.map +1 -0
  62. package/dist/intake/index.js +4 -0
  63. package/dist/intake/index.js.map +1 -0
  64. package/dist/intake/notion-relay-claim.d.ts +32 -0
  65. package/dist/intake/notion-relay-claim.d.ts.map +1 -0
  66. package/dist/intake/notion-relay-claim.js +173 -0
  67. package/dist/intake/notion-relay-claim.js.map +1 -0
  68. package/dist/intake/notion-relay-contract.d.ts +33 -0
  69. package/dist/intake/notion-relay-contract.d.ts.map +1 -0
  70. package/dist/intake/notion-relay-contract.js +163 -0
  71. package/dist/intake/notion-relay-contract.js.map +1 -0
  72. package/dist/intake/notion.d.ts +375 -0
  73. package/dist/intake/notion.d.ts.map +1 -0
  74. package/dist/intake/notion.js +773 -0
  75. package/dist/intake/notion.js.map +1 -0
  76. package/dist/mount/github-api-issue-read.d.ts +28 -0
  77. package/dist/mount/github-api-issue-read.d.ts.map +1 -0
  78. package/dist/mount/github-api-issue-read.js +163 -0
  79. package/dist/mount/github-api-issue-read.js.map +1 -0
  80. package/dist/mount/local-mount-preflight.d.ts +2 -0
  81. package/dist/mount/local-mount-preflight.d.ts.map +1 -1
  82. package/dist/mount/local-mount-preflight.js +59 -9
  83. package/dist/mount/local-mount-preflight.js.map +1 -1
  84. package/dist/mount/mount-auth-error.d.ts +41 -0
  85. package/dist/mount/mount-auth-error.d.ts.map +1 -0
  86. package/dist/mount/mount-auth-error.js +94 -0
  87. package/dist/mount/mount-auth-error.js.map +1 -0
  88. package/dist/mount/relayfile-binary.d.ts +5 -0
  89. package/dist/mount/relayfile-binary.d.ts.map +1 -1
  90. package/dist/mount/relayfile-binary.js +16 -2
  91. package/dist/mount/relayfile-binary.js.map +1 -1
  92. package/dist/mount/relayfile-cloud-mount-client.d.ts +18 -3
  93. package/dist/mount/relayfile-cloud-mount-client.d.ts.map +1 -1
  94. package/dist/mount/relayfile-cloud-mount-client.js +157 -13
  95. package/dist/mount/relayfile-cloud-mount-client.js.map +1 -1
  96. package/dist/mount/workspace-mirror.d.ts +13 -0
  97. package/dist/mount/workspace-mirror.d.ts.map +1 -0
  98. package/dist/mount/workspace-mirror.js +94 -0
  99. package/dist/mount/workspace-mirror.js.map +1 -0
  100. package/dist/observability/events.d.ts +715 -47
  101. package/dist/observability/events.d.ts.map +1 -1
  102. package/dist/observability/events.js +41 -0
  103. package/dist/observability/events.js.map +1 -1
  104. package/dist/orchestrator/factory.d.ts +51 -0
  105. package/dist/orchestrator/factory.d.ts.map +1 -1
  106. package/dist/orchestrator/factory.js +574 -50
  107. package/dist/orchestrator/factory.js.map +1 -1
  108. package/dist/ports/fleet.d.ts +11 -0
  109. package/dist/ports/fleet.d.ts.map +1 -1
  110. package/dist/ports/index.d.ts +2 -2
  111. package/dist/ports/index.d.ts.map +1 -1
  112. package/dist/ports/mount.d.ts +58 -1
  113. package/dist/ports/mount.d.ts.map +1 -1
  114. package/dist/ports/state.d.ts +42 -5
  115. package/dist/ports/state.d.ts.map +1 -1
  116. package/dist/state/file-state-store.d.ts +10 -1
  117. package/dist/state/file-state-store.d.ts.map +1 -1
  118. package/dist/state/file-state-store.js +91 -0
  119. package/dist/state/file-state-store.js.map +1 -1
  120. package/dist/state/in-memory-state-store.d.ts +10 -1
  121. package/dist/state/in-memory-state-store.d.ts.map +1 -1
  122. package/dist/state/in-memory-state-store.js +43 -0
  123. package/dist/state/in-memory-state-store.js.map +1 -1
  124. package/dist/telemetry.d.ts +9 -0
  125. package/dist/telemetry.d.ts.map +1 -0
  126. package/dist/telemetry.js +8 -0
  127. package/dist/telemetry.js.map +1 -0
  128. package/dist/testing/fakes.d.ts +8 -1
  129. package/dist/testing/fakes.d.ts.map +1 -1
  130. package/dist/testing/fakes.js +18 -0
  131. package/dist/testing/fakes.js.map +1 -1
  132. package/dist/triage/schema.d.ts +175 -42
  133. package/dist/triage/schema.d.ts.map +1 -1
  134. package/dist/triage/schema.js +19 -0
  135. package/dist/triage/schema.js.map +1 -1
  136. package/dist/types.d.ts +33 -0
  137. package/dist/types.d.ts.map +1 -1
  138. package/dist/writeback/github.d.ts.map +1 -1
  139. package/dist/writeback/github.js +39 -0
  140. package/dist/writeback/github.js.map +1 -1
  141. package/package.json +15 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notion.js","sourceRoot":"","sources":["../../src/intake/notion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { GithubIssueLookup, GithubConnectionRead } from '../ports/index.js';
2
+ type FetchLike = (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
3
+ export interface GithubApiIssueReadConfig {
4
+ /** Internal request override for deterministic tests. */
5
+ fetch?: FetchLike;
6
+ }
7
+ /**
8
+ * Read-only lookup against GitHub's REST API, unauthenticated.
9
+ *
10
+ * Factory never receives or invokes a GitHub credential here. GitHub
11
+ * mutations continue to use the Relayfile connection writeback path with the
12
+ * app author; this deliberately separate reader only recovers issue facts
13
+ * when the preferred Relayfile projection cannot answer.
14
+ *
15
+ * Because every request is unauthenticated, this reader can only be
16
+ * authoritative about repositories it can independently confirm are public
17
+ * (see #isRepoPublic). GitHub returns an identical 404 for "issue does not
18
+ * exist" and "repository is private, existence hidden from you" — without
19
+ * that independent confirmation a 404 cannot be trusted as absence, so it is
20
+ * reported as `indeterminate` instead of a false `not-found`.
21
+ */
22
+ export declare class GithubApiIssueRead implements GithubConnectionRead {
23
+ #private;
24
+ constructor(config?: GithubApiIssueReadConfig);
25
+ getIssue(repo: string, number: number): Promise<GithubIssueLookup>;
26
+ }
27
+ export {};
28
+ //# sourceMappingURL=github-api-issue-read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-api-issue-read.d.ts","sourceRoot":"","sources":["../../src/mount/github-api-issue-read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAIvE,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEzF,MAAM,WAAW,wBAAwB;IACvC,yDAAyD;IACzD,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,kBAAmB,YAAW,oBAAoB;;gBAIjD,MAAM,GAAE,wBAA6B;IAI3C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAsIzE"}
@@ -0,0 +1,163 @@
1
+ const GITHUB_API_BASE_URL = 'https://api.github.com';
2
+ /**
3
+ * Read-only lookup against GitHub's REST API, unauthenticated.
4
+ *
5
+ * Factory never receives or invokes a GitHub credential here. GitHub
6
+ * mutations continue to use the Relayfile connection writeback path with the
7
+ * app author; this deliberately separate reader only recovers issue facts
8
+ * when the preferred Relayfile projection cannot answer.
9
+ *
10
+ * Because every request is unauthenticated, this reader can only be
11
+ * authoritative about repositories it can independently confirm are public
12
+ * (see #isRepoPublic). GitHub returns an identical 404 for "issue does not
13
+ * exist" and "repository is private, existence hidden from you" — without
14
+ * that independent confirmation a 404 cannot be trusted as absence, so it is
15
+ * reported as `indeterminate` instead of a false `not-found`.
16
+ */
17
+ export class GithubApiIssueRead {
18
+ #fetch;
19
+ #repoIsPublic = new Map();
20
+ constructor(config = {}) {
21
+ this.#fetch = config.fetch ?? fetch;
22
+ }
23
+ async getIssue(repo, number) {
24
+ const { owner, name } = githubRepoParts(repo);
25
+ if (!Number.isSafeInteger(number) || number <= 0) {
26
+ throw new Error(`GitHub issue number must be a positive integer: ${number}`);
27
+ }
28
+ const isPublic = await this.#isRepoPublic(owner, name);
29
+ if (isPublic === undefined) {
30
+ return {
31
+ outcome: 'indeterminate',
32
+ reason: `could not confirm ${owner}/${name} is publicly visible without authentication`,
33
+ };
34
+ }
35
+ if (!isPublic) {
36
+ // If the repo itself isn't visible unauthenticated, its issues can't
37
+ // be either — the issue-level GET would only return the same 404 for
38
+ // a different reason we still can't tell apart. Skip it: on this
39
+ // reader's rate limit (60 req/hr, unauthenticated), a private repo is
40
+ // the common case in this org, not the edge, so this second call is
41
+ // never wasted by accident.
42
+ return { outcome: 'indeterminate', reason: `${owner}/${name} is not visible without authentication` };
43
+ }
44
+ const response = await this.#fetch(`${GITHUB_API_BASE_URL}/repos/${encodeURIComponent(owner)}/${encodeURIComponent(name)}/issues/${number}`, {
45
+ method: 'GET',
46
+ signal: AbortSignal.timeout(30_000),
47
+ headers: {
48
+ accept: 'application/vnd.github+json',
49
+ 'user-agent': '@agent-relay/factory',
50
+ },
51
+ });
52
+ if (response.status === 404) {
53
+ // Reached only when isPublic === true: a confirmed-public repo's 404
54
+ // is a trustworthy miss.
55
+ return { outcome: 'not-found' };
56
+ }
57
+ if (isRateLimitOrAuthStatus(response.status)) {
58
+ return { outcome: 'indeterminate', reason: `GitHub API issue lookup returned HTTP ${response.status}` };
59
+ }
60
+ if (!response.ok) {
61
+ throw new Error(`GitHub API issue lookup failed (HTTP ${response.status})`);
62
+ }
63
+ const issue = record(await response.json());
64
+ if (!issue) {
65
+ throw new Error(`GitHub API issue lookup returned an incomplete issue record for ${repo}#${number}`);
66
+ }
67
+ // GitHub's REST "issues" endpoint also returns pull requests. For Factory
68
+ // issue dispatch a PR occupying the same repository number is an
69
+ // authoritative non-match, not a malformed issue.
70
+ if (issue.pull_request !== undefined)
71
+ return { outcome: 'not-found' };
72
+ const resolvedNumber = positiveInteger(issue.number);
73
+ const title = stringValue(issue.title);
74
+ const url = stringValue(issue.html_url);
75
+ if (resolvedNumber !== number || !title || !url) {
76
+ throw new Error(`GitHub API issue lookup returned an incomplete issue record for ${repo}#${number}`);
77
+ }
78
+ const labels = Array.isArray(issue.labels) ? issue.labels : [];
79
+ const author = stringValue(record(issue.user)?.login);
80
+ const path = githubIssuePath(owner, name, number);
81
+ return {
82
+ outcome: 'found',
83
+ issue: {
84
+ repo: `${owner}/${name}`,
85
+ number,
86
+ path,
87
+ content: {
88
+ provider: 'github',
89
+ objectType: 'issue',
90
+ objectId: stringValue(issue.node_id) ?? String(issue.id ?? `${owner}/${name}#${number}`),
91
+ payload: {
92
+ id: issue.id,
93
+ node_id: issue.node_id,
94
+ number,
95
+ title,
96
+ body: stringValue(issue.body) ?? '',
97
+ state: (stringValue(issue.state) ?? '').toLowerCase(),
98
+ url,
99
+ html_url: url,
100
+ updated_at: stringValue(issue.updated_at),
101
+ labels: labels
102
+ .map((label) => typeof label === 'string' ? { name: label } : { name: stringValue(record(label)?.name) })
103
+ .filter((label) => Boolean(label.name)),
104
+ ...(author ? { user: { login: author }, author: { login: author } } : {}),
105
+ repository: { name, owner: { login: owner } },
106
+ },
107
+ },
108
+ },
109
+ };
110
+ }
111
+ /**
112
+ * Confirms repository visibility with one unauthenticated GET, cached for
113
+ * the life of this reader. Returns `undefined` — never throws, never
114
+ * caches — for any response that is not a clean 200 or 404, so a rate
115
+ * limit or transient failure on this probe degrades a lookup to
116
+ * `indeterminate` instead of turning it into a hard error or pinning a
117
+ * wrong verdict.
118
+ */
119
+ async #isRepoPublic(owner, name) {
120
+ const key = `${owner}/${name}`.toLowerCase();
121
+ const cached = this.#repoIsPublic.get(key);
122
+ if (cached !== undefined)
123
+ return cached;
124
+ let response;
125
+ try {
126
+ response = await this.#fetch(`${GITHUB_API_BASE_URL}/repos/${encodeURIComponent(owner)}/${encodeURIComponent(name)}`, {
127
+ method: 'GET',
128
+ signal: AbortSignal.timeout(30_000),
129
+ headers: {
130
+ accept: 'application/vnd.github+json',
131
+ 'user-agent': '@agent-relay/factory',
132
+ },
133
+ });
134
+ }
135
+ catch {
136
+ return undefined;
137
+ }
138
+ if (response.status === 200) {
139
+ this.#repoIsPublic.set(key, true);
140
+ return true;
141
+ }
142
+ if (response.status === 404) {
143
+ this.#repoIsPublic.set(key, false);
144
+ return false;
145
+ }
146
+ return undefined;
147
+ }
148
+ }
149
+ const isRateLimitOrAuthStatus = (status) => status === 403 || status === 429;
150
+ const githubRepoParts = (repo) => {
151
+ const [owner, name, ...extra] = repo.split('/');
152
+ if (!owner || !name || extra.length > 0) {
153
+ throw new Error(`GitHub repo must be owner/repo: ${repo}`);
154
+ }
155
+ return { owner, name };
156
+ };
157
+ const githubIssuePath = (owner, repo, number) => `/github/repos/${encodeURIComponent(owner)}__${encodeURIComponent(repo)}/issues/by-id/${number}.json`;
158
+ const record = (value) => value !== null && typeof value === 'object' && !Array.isArray(value)
159
+ ? value
160
+ : undefined;
161
+ const stringValue = (value) => typeof value === 'string' && value.length > 0 ? value : undefined;
162
+ const positiveInteger = (value) => typeof value === 'number' && Number.isSafeInteger(value) && value > 0 ? value : undefined;
163
+ //# sourceMappingURL=github-api-issue-read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-api-issue-read.js","sourceRoot":"","sources":["../../src/mount/github-api-issue-read.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAAG,wBAAwB,CAAA;AASpD;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,kBAAkB;IACpB,MAAM,CAAW;IACjB,aAAa,GAAG,IAAI,GAAG,EAAmB,CAAA;IAEnD,YAAY,SAAmC,EAAE;QAC/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,MAAc;QACzC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;QAC7C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,mDAAmD,MAAM,EAAE,CAAC,CAAA;QAC9E,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACtD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO;gBACL,OAAO,EAAE,eAAe;gBACxB,MAAM,EAAE,qBAAqB,KAAK,IAAI,IAAI,6CAA6C;aACxF,CAAA;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,qEAAqE;YACrE,qEAAqE;YACrE,iEAAiE;YACjE,sEAAsE;YACtE,oEAAoE;YACpE,4BAA4B;YAC5B,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,wCAAwC,EAAE,CAAA;QACvG,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAChC,GAAG,mBAAmB,UAAU,kBAAkB,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,WAAW,MAAM,EAAE,EACxG;YACE,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;YACnC,OAAO,EAAE;gBACP,MAAM,EAAE,6BAA6B;gBACrC,YAAY,EAAE,sBAAsB;aACrC;SACF,CACF,CAAA;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,qEAAqE;YACrE,yBAAyB;YACzB,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAA;QACjC,CAAC;QACD,IAAI,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,yCAAyC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAA;QACzG,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;QAC7E,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,mEAAmE,IAAI,IAAI,MAAM,EAAE,CAAC,CAAA;QACtG,CAAC;QACD,0EAA0E;QAC1E,iEAAiE;QACjE,kDAAkD;QAClD,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS;YAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAA;QACrE,MAAM,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACpD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACtC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACvC,IAAI,cAAc,KAAK,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,mEAAmE,IAAI,IAAI,MAAM,EAAE,CAAC,CAAA;QACtG,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;QAC9D,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;QACrD,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QACjD,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE;gBACL,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE;gBACxB,MAAM;gBACN,IAAI;gBACJ,OAAO,EAAE;oBACP,QAAQ,EAAE,QAAQ;oBAClB,UAAU,EAAE,OAAO;oBACnB,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;oBACxF,OAAO,EAAE;wBACP,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,MAAM;wBACN,KAAK;wBACL,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;wBACnC,KAAK,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;wBACrD,GAAG;wBACH,QAAQ,EAAE,GAAG;wBACb,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC;wBACzC,MAAM,EAAE,MAAM;6BACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;6BACxG,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACpE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;qBAC9C;iBACF;aACF;SACF,CAAA;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,IAAY;QAC7C,MAAM,GAAG,GAAG,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC1C,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAA;QAEvC,IAAI,QAAkB,CAAA;QACtB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAC1B,GAAG,mBAAmB,UAAU,kBAAkB,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,EACvF;gBACE,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;gBACnC,OAAO,EAAE;oBACP,MAAM,EAAE,6BAA6B;oBACrC,YAAY,EAAE,sBAAsB;iBACrC;aACF,CACF,CAAA;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YACjC,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YAClC,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;CACF;AAED,MAAM,uBAAuB,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAA;AAE7F,MAAM,eAAe,GAAG,CAAC,IAAY,EAAmC,EAAE;IACxE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAA;IAC5D,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,IAAY,EAAE,MAAc,EAAU,EAAE,CAC9E,iBAAiB,kBAAkB,CAAC,KAAK,CAAC,KAAK,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,MAAM,OAAO,CAAA;AAEvG,MAAM,MAAM,GAAG,CAAC,KAAc,EAAuC,EAAE,CACrE,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAClE,CAAC,CAAC,KAAgC;IAClC,CAAC,CAAC,SAAS,CAAA;AAEf,MAAM,WAAW,GAAG,CAAC,KAAc,EAAsB,EAAE,CACzD,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AAEnE,MAAM,eAAe,GAAG,CAAC,KAAc,EAAsB,EAAE,CAC7D,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA"}
@@ -1,5 +1,7 @@
1
1
  import type { LocalMountOptions } from '../ports/index.js';
2
2
  export interface EnsureLocalMountOptions extends LocalMountOptions {
3
+ /** Exact registered mirror root, for mirrors not conventionally named `.integrations`. */
4
+ localDir?: string;
3
5
  /**
4
6
  * Starts an authenticated mount through the Relayfile SDK. Credential minting,
5
7
  * binary resolution, and launch details deliberately stay outside this
@@ -1 +1 @@
1
- {"version":3,"file":"local-mount-preflight.d.ts","sourceRoot":"","sources":["../../src/mount/local-mount-preflight.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAcjD,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE;;;;OAIG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAChC;AAED,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CA+Cf"}
1
+ {"version":3,"file":"local-mount-preflight.d.ts","sourceRoot":"","sources":["../../src/mount/local-mount-preflight.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAkBjD,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAChC;AAED,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAiGf"}
@@ -1,7 +1,7 @@
1
1
  import { readFile } from 'node:fs/promises';
2
2
  import { join } from 'node:path';
3
3
  import { checkMountStaleness } from './relayfile-binary.js';
4
- const STATE_FILE = '.integrations/.relay/state.json';
4
+ import { classifyMountAuthError, MountAuthScopeError, mountAuthRemediation, readMountAuthErrorFromState, } from './mount-auth-error.js';
5
5
  // How long to wait for a freshly-spawned mount to write a valid state.json
6
6
  // (workspace match + a fresh reconcile timestamp). A CLI mount over a large `.integrations` tree
7
7
  // can take well over 10s to complete its FIRST reconcile (early cycles hit
@@ -11,36 +11,86 @@ const STATE_FILE = '.integrations/.relay/state.json';
11
11
  // can still override via `stateWaitTimeoutMs`.
12
12
  const DEFAULT_STATE_READY_TIMEOUT_MS = 60_000;
13
13
  export async function ensureLocalMount(workspaceId, startDir, options) {
14
- const stateFilePath = join(startDir, STATE_FILE);
14
+ const localDir = options.localDir ?? join(startDir, '.integrations');
15
+ const stateFilePath = join(localDir, '.relay', 'state.json');
15
16
  if (!(await isMountStatePresent(stateFilePath))) {
16
- await options.startMount();
17
- await waitForStateFile(stateFilePath, workspaceId, options.stateWaitTimeoutMs, options.stateWaitPollMs, options.acceptableWorkspaceIds);
17
+ try {
18
+ await options.startMount();
19
+ await waitForStateFile(stateFilePath, workspaceId, options.stateWaitTimeoutMs, options.stateWaitPollMs, options.acceptableWorkspaceIds);
20
+ }
21
+ catch (error) {
22
+ if (error instanceof MountAuthScopeError)
23
+ throw error;
24
+ // A first-ever bootstrap that 403s writes a state.json recording the
25
+ // scope shortfall but never becomes ready. Convert that into the typed,
26
+ // terminal error so startup fails fast with a clear remediation.
27
+ const reason = error instanceof Error ? error.message : String(error);
28
+ const authError = readMountAuthErrorFromState(stateFilePath) ?? classifyMountAuthError(reason);
29
+ if (authError) {
30
+ throw new MountAuthScopeError(mountAuthRemediation(authError), {
31
+ missingScope: authError.missingScope,
32
+ cause: error,
33
+ });
34
+ }
35
+ throw error;
36
+ }
18
37
  return;
19
38
  }
20
39
  const staleness = checkMountStaleness(stateFilePath, workspaceId, options.acceptableWorkspaceIds);
21
- if (!staleness.stale)
40
+ // A filesystem-scope shortfall is terminal: the mount records a 403 in its
41
+ // state.json, and re-launching only 403s again. Detect it up front so we
42
+ // neither loop refreshing a doomed mount nor let the degradation stay silent.
43
+ const authError = readMountAuthErrorFromState(stateFilePath);
44
+ if (!staleness.stale) {
45
+ // The mount is reconciling. If it still reports a scope shortfall (e.g. a
46
+ // root bootstrap that 403s while scoped subtrees sync), surface it once —
47
+ // but never tear down a working mount over it.
48
+ if (authError)
49
+ process.stderr.write(`${mountAuthRemediation(authError)}\n`);
22
50
  return;
51
+ }
23
52
  const suffix = staleness.reason !== undefined ? ` (${staleness.reason})` : '';
24
53
  const manualHint = 'Restart Factory after restoring the Agent Relay Cloud session';
54
+ // Include the registered target in an operator-facing refresh log. This is
55
+ // intentionally the state path's parent, not the current Factory checkout:
56
+ // a stale mirror must heal where Relayfile registered it.
57
+ const mountTarget = localDir;
58
+ // Stale AND under-scoped: refreshing cannot help. Fail fast and terminal so
59
+ // the supervisor stops retrying and startup surfaces one actionable error.
60
+ if (authError) {
61
+ throw new MountAuthScopeError(mountAuthRemediation(authError), { missingScope: authError.missingScope });
62
+ }
25
63
  if (options.refreshStaleMount === false) {
26
- process.stderr.write(`[factory] local mount is stale${suffix}; writeback may not propagate. ${manualHint}\n`);
64
+ process.stderr.write(`[factory] local mount at ${mountTarget} is stale${suffix}; writeback may not propagate. ${manualHint}\n`);
27
65
  return;
28
66
  }
29
67
  // Self-heal through the same SDK-authenticated launch path used for first
30
68
  // start, rather than silently shipping writebacks into a stale mirror.
31
69
  if (!options.suppressStaleRefreshLogs) {
32
- process.stderr.write(`[factory] local mount is stale${suffix}; refreshing\n`);
70
+ process.stderr.write(`[factory] local mount at ${mountTarget} is stale${suffix}; refreshing\n`);
33
71
  }
34
72
  try {
35
73
  await options.startMount();
36
74
  await waitForStateFile(stateFilePath, workspaceId, options.stateWaitTimeoutMs, options.stateWaitPollMs, options.acceptableWorkspaceIds);
37
75
  if (!options.suppressStaleRefreshLogs) {
38
- process.stderr.write('[factory] local mount refreshed\n');
76
+ process.stderr.write(`[factory] local mount at ${mountTarget} refreshed\n`);
39
77
  }
40
78
  }
41
79
  catch (error) {
80
+ if (error instanceof MountAuthScopeError)
81
+ throw error;
42
82
  const reason = error instanceof Error ? error.message : String(error);
43
- process.stderr.write(`[factory] local mount is stale${suffix} and auto-refresh failed (${reason}); writeback may not propagate. ${manualHint}\n`);
83
+ // The failed refresh may have written a fresh 403 into state.json, or the
84
+ // failure reason itself may name the missing scope. Either way it is
85
+ // terminal — escalate so the supervisor stops retrying.
86
+ const postAuthError = readMountAuthErrorFromState(stateFilePath) ?? classifyMountAuthError(reason);
87
+ if (postAuthError) {
88
+ throw new MountAuthScopeError(mountAuthRemediation(postAuthError), {
89
+ missingScope: postAuthError.missingScope,
90
+ cause: error,
91
+ });
92
+ }
93
+ process.stderr.write(`[factory] local mount at ${mountTarget} is stale${suffix} and auto-refresh failed (${reason}); writeback may not propagate. ${manualHint}\n`);
44
94
  }
45
95
  }
46
96
  async function isMountStatePresent(stateFilePath) {
@@ -1 +1 @@
1
- {"version":3,"file":"local-mount-preflight.js","sourceRoot":"","sources":["../../src/mount/local-mount-preflight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAGhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAExD,MAAM,UAAU,GAAG,iCAAiC,CAAA;AAEpD,2EAA2E;AAC3E,iGAAiG;AACjG,2EAA2E;AAC3E,6EAA6E;AAC7E,8EAA8E;AAC9E,gFAAgF;AAChF,+CAA+C;AAC/C,MAAM,8BAA8B,GAAG,MAAM,CAAA;AAW7C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,WAAmB,EACnB,QAAgB,EAChB,OAAgC;IAEhC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IAEhD,IAAI,CAAC,CAAC,MAAM,mBAAmB,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,OAAO,CAAC,UAAU,EAAE,CAAA;QAC1B,MAAM,gBAAgB,CACpB,aAAa,EACb,WAAW,EACX,OAAO,CAAC,kBAAkB,EAC1B,OAAO,CAAC,eAAe,EACvB,OAAO,CAAC,sBAAsB,CAC/B,CAAA;QACD,OAAM;IACR,CAAC;IAED,MAAM,SAAS,GAAG,mBAAmB,CAAC,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAA;IACjG,IAAI,CAAC,SAAS,CAAC,KAAK;QAAE,OAAM;IAE5B,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7E,MAAM,UAAU,GAAG,+DAA+D,CAAA;IAElF,IAAI,OAAO,CAAC,iBAAiB,KAAK,KAAK,EAAE,CAAC;QACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,MAAM,kCAAkC,UAAU,IAAI,CAAC,CAAA;QAC7G,OAAM;IACR,CAAC;IAED,0EAA0E;IAC1E,uEAAuE;IACvE,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,MAAM,gBAAgB,CAAC,CAAA;IAC/E,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,UAAU,EAAE,CAAA;QAC1B,MAAM,gBAAgB,CACpB,aAAa,EACb,WAAW,EACX,OAAO,CAAC,kBAAkB,EAC1B,OAAO,CAAC,eAAe,EACvB,OAAO,CAAC,sBAAsB,CAC/B,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC;YACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;QAC3D,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACrE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,MAAM,6BAA6B,MAAM,mCAAmC,UAAU,IAAI,CAAC,CAAA;IACnJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,aAAqB;IACtD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;QACjD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,aAAqB,EACrB,WAAmB,EACnB,SAAS,GAAG,8BAA8B,EAC1C,MAAM,GAAG,GAAG,EACZ,yBAA4C,EAAE;IAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;IACvC,IAAI,iBAAiB,GAAG,4BAA4B,CAAA;IACpD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;YACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAA;YACxC,IAAI,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,sBAAsB,CAAC,EAAE,CAAC;gBAClE,MAAM,SAAS,GAAG,mBAAmB,CAAC,aAAa,EAAE,WAAW,EAAE,sBAAsB,CAAC,CAAA;gBACzF,IAAI,CAAC,SAAS,CAAC,KAAK;oBAAE,OAAM;gBAC5B,iBAAiB,GAAG,SAAS,CAAC,MAAM,IAAI,sBAAsB,CAAA;YAChE,CAAC;iBAAM,CAAC;gBACN,iBAAiB,GAAG,qDAAqD,aAAa,EAAE,CAAA;YAC1F,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9F,iBAAiB,GAAG,4BAA4B,CAAA;YAClD,CAAC;iBAAM,CAAC;gBACN,iBAAiB,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC5E,CAAC;YACD,kBAAkB;QACpB,CAAC;QACD,MAAM,KAAK,CAAC,MAAM,CAAC,CAAA;IACrB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,SAAS,OAAO,iBAAiB,GAAG,CAAC,CAAA;AAChH,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAc,EACd,WAAmB,EACnB,yBAA4C,EAAE;IAE9C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACrF,MAAM,KAAK,GAAG,KAA6D,CAAA;IAC3E,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,sBAAsB,CAAC,CAAC,CAAA;IAClE,6EAA6E;IAC7E,6EAA6E;IAC7E,2BAA2B;IAC3B,OAAO,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;QAC7E,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ;QACzC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;AACtD,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"local-mount-preflight.js","sourceRoot":"","sources":["../../src/mount/local-mount-preflight.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * A mount failure caused by the cloud session lacking the filesystem scopes the
3
+ * relayfile mount needs (e.g. `relayfile:fs:read`). Unlike a stale mount or a
4
+ * transient launch failure, re-launching cannot fix this — the token itself is
5
+ * under-scoped — so callers must treat it as terminal: surface an actionable
6
+ * remediation instead of scheduling an infinite refresh loop, and refuse to
7
+ * spawn/resume agents against the resulting stale mirror.
8
+ */
9
+ export declare class MountAuthScopeError extends Error {
10
+ readonly missingScope?: string;
11
+ readonly cause?: unknown;
12
+ constructor(message: string, options?: {
13
+ missingScope?: string;
14
+ cause?: unknown;
15
+ });
16
+ }
17
+ export interface MountAuthErrorDetails {
18
+ /** The scope named in the 403, when the server reported one (e.g. `fs:read`). */
19
+ missingScope?: string;
20
+ /** The raw diagnostic text the classification matched against. */
21
+ detail: string;
22
+ }
23
+ /**
24
+ * Classify a diagnostic string as a filesystem-scope authorization failure.
25
+ * Returns the matched details, or `undefined` when the text is some other
26
+ * (transient / unrelated) failure.
27
+ */
28
+ export declare function classifyMountAuthError(text: string | undefined | null): MountAuthErrorDetails | undefined;
29
+ /**
30
+ * Read a relayfile mount `state.json` and, if its most recent error is a
31
+ * filesystem-scope authorization failure, return the details. Returns
32
+ * `undefined` when the file is absent, unreadable, or the error is unrelated.
33
+ */
34
+ export declare function readMountAuthErrorFromState(stateFilePath: string): MountAuthErrorDetails | undefined;
35
+ /**
36
+ * Build the single, actionable remediation message shown when the mount cannot
37
+ * obtain its filesystem scopes. Kept in one place so preflight, the supervisor,
38
+ * and startup all speak with one voice.
39
+ */
40
+ export declare function mountAuthRemediation(details?: MountAuthErrorDetails): string;
41
+ //# sourceMappingURL=mount-auth-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mount-auth-error.d.ts","sourceRoot":"","sources":["../../src/mount/mount-auth-error.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;gBAEZ,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAMlF;AAED,MAAM,WAAW,qBAAqB;IACpC,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAA;CACf;AAWD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,qBAAqB,GAAG,SAAS,CAYzG;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAuBpG;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAS5E"}
@@ -0,0 +1,94 @@
1
+ import { readFileSync } from 'node:fs';
2
+ /**
3
+ * A mount failure caused by the cloud session lacking the filesystem scopes the
4
+ * relayfile mount needs (e.g. `relayfile:fs:read`). Unlike a stale mount or a
5
+ * transient launch failure, re-launching cannot fix this — the token itself is
6
+ * under-scoped — so callers must treat it as terminal: surface an actionable
7
+ * remediation instead of scheduling an infinite refresh loop, and refuse to
8
+ * spawn/resume agents against the resulting stale mirror.
9
+ */
10
+ export class MountAuthScopeError extends Error {
11
+ missingScope;
12
+ cause;
13
+ constructor(message, options) {
14
+ super(message);
15
+ this.name = 'MountAuthScopeError';
16
+ this.missingScope = options?.missingScope;
17
+ this.cause = options?.cause;
18
+ }
19
+ }
20
+ // The relayfile server reports a scope shortfall as an HTTP 403 whose body names
21
+ // the required scope. The mount SDK surfaces it verbatim in log/error text and
22
+ // in state.json's `lastError.message`, e.g.:
23
+ // "http 403 forbidden: missing required scope: fs:read"
24
+ // A prolonged shortfall also shows up as a stalled bootstrap that never clears.
25
+ const MISSING_SCOPE_RE = /missing required scope:\s*([\w:*/-]+)/i;
26
+ const FORBIDDEN_RE = /\b403\b|forbidden/i;
27
+ const BOOTSTRAP_STALL_RE = /bootstrap[_ ]stall/i;
28
+ /**
29
+ * Classify a diagnostic string as a filesystem-scope authorization failure.
30
+ * Returns the matched details, or `undefined` when the text is some other
31
+ * (transient / unrelated) failure.
32
+ */
33
+ export function classifyMountAuthError(text) {
34
+ if (!text)
35
+ return undefined;
36
+ const scopeMatch = MISSING_SCOPE_RE.exec(text);
37
+ if (scopeMatch) {
38
+ return { missingScope: scopeMatch[1], detail: text };
39
+ }
40
+ // A stalled bootstrap that also reports a forbidden/403 is the same
41
+ // under-scoped session even when the specific scope name is absent.
42
+ if (BOOTSTRAP_STALL_RE.test(text) && FORBIDDEN_RE.test(text)) {
43
+ return { detail: text };
44
+ }
45
+ return undefined;
46
+ }
47
+ /**
48
+ * Read a relayfile mount `state.json` and, if its most recent error is a
49
+ * filesystem-scope authorization failure, return the details. Returns
50
+ * `undefined` when the file is absent, unreadable, or the error is unrelated.
51
+ */
52
+ export function readMountAuthErrorFromState(stateFilePath) {
53
+ let raw;
54
+ try {
55
+ raw = readFileSync(stateFilePath, 'utf8');
56
+ }
57
+ catch {
58
+ return undefined;
59
+ }
60
+ let parsed;
61
+ try {
62
+ parsed = JSON.parse(raw);
63
+ }
64
+ catch {
65
+ return undefined;
66
+ }
67
+ if (typeof parsed !== 'object' || parsed === null)
68
+ return undefined;
69
+ const lastError = parsed.lastError;
70
+ if (typeof lastError !== 'object' || lastError === null)
71
+ return undefined;
72
+ const { message, kind, code } = lastError;
73
+ const fields = [message, kind, code].filter((v) => typeof v === 'string');
74
+ for (const field of fields) {
75
+ const details = classifyMountAuthError(field);
76
+ if (details)
77
+ return details;
78
+ }
79
+ return undefined;
80
+ }
81
+ /**
82
+ * Build the single, actionable remediation message shown when the mount cannot
83
+ * obtain its filesystem scopes. Kept in one place so preflight, the supervisor,
84
+ * and startup all speak with one voice.
85
+ */
86
+ export function mountAuthRemediation(details) {
87
+ const scope = details?.missingScope ? ` (missing ${details.missingScope})` : '';
88
+ return (`[factory] Agent Relay Cloud session lacks the filesystem scope the mount needs${scope}. ` +
89
+ 'Re-authenticate with a session that can mint relayfile fs:read/fs:write for this workspace ' +
90
+ '(an organization owner/admin session); a plain `agent-relay cloud login` grants only ' +
91
+ 'follow-user/cli:auth and cannot mint fs scopes. Factory will not spawn agents against a ' +
92
+ 'read-denied mirror.');
93
+ }
94
+ //# sourceMappingURL=mount-auth-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mount-auth-error.js","sourceRoot":"","sources":["../../src/mount/mount-auth-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC;;;;;;;GAOG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,YAAY,CAAS;IACrB,KAAK,CAAU;IAExB,YAAY,OAAe,EAAE,OAAoD;QAC/E,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAA;QACjC,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,YAAY,CAAA;QACzC,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,CAAA;IAC7B,CAAC;CACF;AASD,iFAAiF;AACjF,+EAA+E;AAC/E,6CAA6C;AAC7C,0DAA0D;AAC1D,gFAAgF;AAChF,MAAM,gBAAgB,GAAG,wCAAwC,CAAA;AACjE,MAAM,YAAY,GAAG,oBAAoB,CAAA;AACzC,MAAM,kBAAkB,GAAG,qBAAqB,CAAA;AAEhD;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAA+B;IACpE,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3B,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACtD,CAAC;IACD,oEAAoE;IACpE,oEAAoE;IACpE,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACzB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,aAAqB;IAC/D,IAAI,GAAW,CAAA;IACf,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IACnE,MAAM,SAAS,GAAI,MAAkC,CAAC,SAAS,CAAA;IAC/D,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IACzE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAkE,CAAA;IAClG,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAA;IACtF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;QAC7C,IAAI,OAAO;YAAE,OAAO,OAAO,CAAA;IAC7B,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA+B;IAClE,MAAM,KAAK,GAAG,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,aAAa,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/E,OAAO,CACL,iFAAiF,KAAK,IAAI;QAC1F,6FAA6F;QAC7F,uFAAuF;QACvF,0FAA0F;QAC1F,qBAAqB,CACtB,CAAA;AACH,CAAC"}
@@ -1,3 +1,8 @@
1
+ export declare const RELAYFILE_SYNC_INTERVAL_MS: number;
2
+ export declare const STALE_RECONCILE_INTERVALS = 3;
3
+ export declare const STALE_RECONCILE_MS: number;
4
+ /** Use the registered mirror cadence when available; fall back to Relayfile's default. */
5
+ export declare function staleReconcileMs(intervalMs: unknown): number;
1
6
  export declare function coercePid(value: unknown): number | undefined;
2
7
  export declare function checkMountStaleness(stateFilePath: string, workspaceId: string, acceptableWorkspaceIds?: readonly string[]): {
3
8
  stale: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"relayfile-binary.d.ts","sourceRoot":"","sources":["../../src/mount/relayfile-binary.ts"],"names":[],"mappings":"AAaA,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE5D;AAED,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EAKnB,sBAAsB,GAAE,SAAS,MAAM,EAAO,GAC7C;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CA8DnD"}
1
+ {"version":3,"file":"relayfile-binary.d.ts","sourceRoot":"","sources":["../../src/mount/relayfile-binary.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,0BAA0B,QAAY,CAAA;AACnD,eAAO,MAAM,yBAAyB,IAAI,CAAA;AAC1C,eAAO,MAAM,kBAAkB,QAAyD,CAAA;AAExF,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAO5D;AAeD,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE5D;AAED,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EAKnB,sBAAsB,GAAE,SAAS,MAAM,EAAO,GAC7C;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CA8DnD"}
@@ -1,5 +1,19 @@
1
1
  import { readFileSync } from 'node:fs';
2
- const STALE_RECONCILE_MS = 15 * 60 * 1000;
2
+ // Relayfile's poll mirror reconciles every 30 seconds by default. Three
3
+ // intervals allow one missed poll and ordinary filesystem jitter, while still
4
+ // making a stalled projection visible within 90 seconds rather than hours.
5
+ export const RELAYFILE_SYNC_INTERVAL_MS = 30 * 1000;
6
+ export const STALE_RECONCILE_INTERVALS = 3;
7
+ export const STALE_RECONCILE_MS = RELAYFILE_SYNC_INTERVAL_MS * STALE_RECONCILE_INTERVALS;
8
+ /** Use the registered mirror cadence when available; fall back to Relayfile's default. */
9
+ export function staleReconcileMs(intervalMs) {
10
+ const registeredIntervalMs = typeof intervalMs === 'number' &&
11
+ Number.isFinite(intervalMs) &&
12
+ intervalMs >= 1_000
13
+ ? Math.floor(intervalMs)
14
+ : RELAYFILE_SYNC_INTERVAL_MS;
15
+ return registeredIntervalMs * STALE_RECONCILE_INTERVALS;
16
+ }
3
17
  export function coercePid(value) {
4
18
  return typeof value === 'number' && Number.isInteger(value) && value > 0 ? value : undefined;
5
19
  }
@@ -39,7 +53,7 @@ acceptableWorkspaceIds = []) {
39
53
  return { stale: true, reason: 'last reconcile timestamp is missing', pid };
40
54
  }
41
55
  const ageMs = Date.now() - lastReconcileAt;
42
- if (ageMs > STALE_RECONCILE_MS) {
56
+ if (ageMs > staleReconcileMs(parsed.intervalMs)) {
43
57
  return {
44
58
  stale: true,
45
59
  reason: `last reconcile ${Math.floor(ageMs / 60000)}m ago`,