@namzu/cli 12.1.0 → 14.0.0

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 (237) hide show
  1. package/README.md +35 -2
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +119 -60
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/acp.d.ts +24 -8
  6. package/dist/commands/acp.d.ts.map +1 -1
  7. package/dist/commands/acp.js +221 -80
  8. package/dist/commands/acp.js.map +1 -1
  9. package/dist/commands/drain.d.ts.map +1 -1
  10. package/dist/commands/drain.js +45 -9
  11. package/dist/commands/drain.js.map +1 -1
  12. package/dist/commands/login.d.ts +2 -0
  13. package/dist/commands/login.d.ts.map +1 -1
  14. package/dist/commands/login.js +79 -21
  15. package/dist/commands/login.js.map +1 -1
  16. package/dist/commands/prior-messages.d.ts +11 -0
  17. package/dist/commands/prior-messages.d.ts.map +1 -0
  18. package/dist/commands/prior-messages.js +280 -0
  19. package/dist/commands/prior-messages.js.map +1 -0
  20. package/dist/commands/resume.d.ts.map +1 -1
  21. package/dist/commands/resume.js +21 -19
  22. package/dist/commands/resume.js.map +1 -1
  23. package/dist/commands/run-stream.d.ts +5 -3
  24. package/dist/commands/run-stream.d.ts.map +1 -1
  25. package/dist/commands/run-stream.js +66 -62
  26. package/dist/commands/run-stream.js.map +1 -1
  27. package/dist/commands/run.d.ts.map +1 -1
  28. package/dist/commands/run.js +50 -37
  29. package/dist/commands/run.js.map +1 -1
  30. package/dist/config/debug.d.ts +55 -0
  31. package/dist/config/debug.d.ts.map +1 -0
  32. package/dist/config/debug.js +126 -0
  33. package/dist/config/debug.js.map +1 -0
  34. package/dist/config/load.d.ts +88 -4
  35. package/dist/config/load.d.ts.map +1 -1
  36. package/dist/config/load.js +386 -56
  37. package/dist/config/load.js.map +1 -1
  38. package/dist/config/schema.d.ts +87 -5
  39. package/dist/config/schema.d.ts.map +1 -1
  40. package/dist/config/schema.js +5 -5
  41. package/dist/config/schema.js.map +1 -1
  42. package/dist/config/trusted-project-context.d.ts +11 -0
  43. package/dist/config/trusted-project-context.d.ts.map +1 -0
  44. package/dist/config/trusted-project-context.js +28 -0
  45. package/dist/config/trusted-project-context.js.map +1 -0
  46. package/dist/context/project-path.d.ts +3 -0
  47. package/dist/context/project-path.d.ts.map +1 -0
  48. package/dist/context/project-path.js +16 -0
  49. package/dist/context/project-path.js.map +1 -0
  50. package/dist/context/project-tracker.d.ts +30 -0
  51. package/dist/context/project-tracker.d.ts.map +1 -0
  52. package/dist/context/project-tracker.js +217 -0
  53. package/dist/context/project-tracker.js.map +1 -0
  54. package/dist/context/sandbox.d.ts +29 -9
  55. package/dist/context/sandbox.d.ts.map +1 -1
  56. package/dist/context/sandbox.js +8 -0
  57. package/dist/context/sandbox.js.map +1 -1
  58. package/dist/doctor/checks/credentials.d.ts.map +1 -1
  59. package/dist/doctor/checks/credentials.js +7 -1
  60. package/dist/doctor/checks/credentials.js.map +1 -1
  61. package/dist/exit-codes.d.ts +5 -4
  62. package/dist/exit-codes.d.ts.map +1 -1
  63. package/dist/exit-codes.js +5 -4
  64. package/dist/exit-codes.js.map +1 -1
  65. package/dist/index.d.ts +2 -2
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +2 -2
  68. package/dist/index.js.map +1 -1
  69. package/dist/integrations/clipboard/text.d.ts +43 -0
  70. package/dist/integrations/clipboard/text.d.ts.map +1 -0
  71. package/dist/integrations/clipboard/text.js +43 -0
  72. package/dist/integrations/clipboard/text.js.map +1 -0
  73. package/dist/integrations/mcp/servers.d.ts +9 -0
  74. package/dist/integrations/mcp/servers.d.ts.map +1 -1
  75. package/dist/integrations/mcp/servers.js +11 -4
  76. package/dist/integrations/mcp/servers.js.map +1 -1
  77. package/dist/integrations/notifications/terminal.d.ts +32 -0
  78. package/dist/integrations/notifications/terminal.d.ts.map +1 -0
  79. package/dist/integrations/notifications/terminal.js +46 -0
  80. package/dist/integrations/notifications/terminal.js.map +1 -0
  81. package/dist/integrations/plugins/runtime.d.ts +17 -0
  82. package/dist/integrations/plugins/runtime.d.ts.map +1 -0
  83. package/dist/integrations/plugins/runtime.js +100 -0
  84. package/dist/integrations/plugins/runtime.js.map +1 -0
  85. package/dist/integrations/providers/codex-device-login.d.ts +27 -0
  86. package/dist/integrations/providers/codex-device-login.d.ts.map +1 -0
  87. package/dist/integrations/providers/codex-device-login.js +195 -0
  88. package/dist/integrations/providers/codex-device-login.js.map +1 -0
  89. package/dist/integrations/providers/codex-oauth.d.ts +10 -0
  90. package/dist/integrations/providers/codex-oauth.d.ts.map +1 -0
  91. package/dist/integrations/providers/codex-oauth.js +95 -0
  92. package/dist/integrations/providers/codex-oauth.js.map +1 -0
  93. package/dist/integrations/providers/credential-store.d.ts +40 -4
  94. package/dist/integrations/providers/credential-store.d.ts.map +1 -1
  95. package/dist/integrations/providers/credential-store.js +236 -18
  96. package/dist/integrations/providers/credential-store.js.map +1 -1
  97. package/dist/integrations/providers/discover.d.ts +25 -13
  98. package/dist/integrations/providers/discover.d.ts.map +1 -1
  99. package/dist/integrations/providers/discover.js +98 -44
  100. package/dist/integrations/providers/discover.js.map +1 -1
  101. package/dist/integrations/providers/harness-credentials.d.ts +36 -0
  102. package/dist/integrations/providers/harness-credentials.d.ts.map +1 -0
  103. package/dist/integrations/providers/harness-credentials.js +146 -0
  104. package/dist/integrations/providers/harness-credentials.js.map +1 -0
  105. package/dist/integrations/providers/identity.d.ts +8 -15
  106. package/dist/integrations/providers/identity.d.ts.map +1 -1
  107. package/dist/integrations/providers/identity.js +8 -15
  108. package/dist/integrations/providers/identity.js.map +1 -1
  109. package/dist/integrations/providers/index.d.ts +7 -4
  110. package/dist/integrations/providers/index.d.ts.map +1 -1
  111. package/dist/integrations/providers/index.js +6 -3
  112. package/dist/integrations/providers/index.js.map +1 -1
  113. package/dist/integrations/providers/keychain.d.ts +0 -13
  114. package/dist/integrations/providers/keychain.d.ts.map +1 -1
  115. package/dist/integrations/providers/keychain.js +0 -76
  116. package/dist/integrations/providers/keychain.js.map +1 -1
  117. package/dist/integrations/providers/oauth.d.ts +46 -17
  118. package/dist/integrations/providers/oauth.d.ts.map +1 -1
  119. package/dist/integrations/providers/oauth.js +175 -45
  120. package/dist/integrations/providers/oauth.js.map +1 -1
  121. package/dist/integrations/providers/register.d.ts.map +1 -1
  122. package/dist/integrations/providers/register.js +9 -1
  123. package/dist/integrations/providers/register.js.map +1 -1
  124. package/dist/integrations/providers/registry.d.ts +8 -1
  125. package/dist/integrations/providers/registry.d.ts.map +1 -1
  126. package/dist/integrations/providers/registry.js +29 -0
  127. package/dist/integrations/providers/registry.js.map +1 -1
  128. package/dist/integrations/providers/subscription-login.d.ts +2 -0
  129. package/dist/integrations/providers/subscription-login.d.ts.map +1 -1
  130. package/dist/integrations/providers/subscription-login.js +117 -14
  131. package/dist/integrations/providers/subscription-login.js.map +1 -1
  132. package/dist/integrations/sessions/store.d.ts +111 -1
  133. package/dist/integrations/sessions/store.d.ts.map +1 -1
  134. package/dist/integrations/sessions/store.js +400 -7
  135. package/dist/integrations/sessions/store.js.map +1 -1
  136. package/dist/integrations/sessions/transcript-export.d.ts +25 -0
  137. package/dist/integrations/sessions/transcript-export.d.ts.map +1 -0
  138. package/dist/integrations/sessions/transcript-export.js +441 -0
  139. package/dist/integrations/sessions/transcript-export.js.map +1 -0
  140. package/dist/integrations/sessions/turn-evidence.d.ts +138 -0
  141. package/dist/integrations/sessions/turn-evidence.d.ts.map +1 -0
  142. package/dist/integrations/sessions/turn-evidence.js +506 -0
  143. package/dist/integrations/sessions/turn-evidence.js.map +1 -0
  144. package/dist/integrations/subagents/runtime.d.ts +7 -12
  145. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  146. package/dist/integrations/subagents/runtime.js +19 -10
  147. package/dist/integrations/subagents/runtime.js.map +1 -1
  148. package/dist/integrations/trust/store.d.ts.map +1 -1
  149. package/dist/integrations/trust/store.js +27 -13
  150. package/dist/integrations/trust/store.js.map +1 -1
  151. package/dist/permissions/canonical-project.d.ts +9 -0
  152. package/dist/permissions/canonical-project.d.ts.map +1 -0
  153. package/dist/permissions/canonical-project.js +13 -0
  154. package/dist/permissions/canonical-project.js.map +1 -0
  155. package/dist/permissions/checks.d.ts +65 -0
  156. package/dist/permissions/checks.d.ts.map +1 -0
  157. package/dist/permissions/checks.js +122 -0
  158. package/dist/permissions/checks.js.map +1 -0
  159. package/dist/permissions/headless-trust.d.ts +9 -5
  160. package/dist/permissions/headless-trust.d.ts.map +1 -1
  161. package/dist/permissions/headless-trust.js +18 -4
  162. package/dist/permissions/headless-trust.js.map +1 -1
  163. package/dist/permissions/rules.d.ts +16 -7
  164. package/dist/permissions/rules.d.ts.map +1 -1
  165. package/dist/permissions/rules.js +78 -13
  166. package/dist/permissions/rules.js.map +1 -1
  167. package/dist/tui/App.d.ts +5 -2
  168. package/dist/tui/App.d.ts.map +1 -1
  169. package/dist/tui/App.js +1621 -196
  170. package/dist/tui/App.js.map +1 -1
  171. package/dist/tui/Composer.d.ts +14 -3
  172. package/dist/tui/Composer.d.ts.map +1 -1
  173. package/dist/tui/Composer.js +53 -15
  174. package/dist/tui/Composer.js.map +1 -1
  175. package/dist/tui/EditPromptPicker.d.ts +8 -0
  176. package/dist/tui/EditPromptPicker.d.ts.map +1 -0
  177. package/dist/tui/EditPromptPicker.js +18 -0
  178. package/dist/tui/EditPromptPicker.js.map +1 -0
  179. package/dist/tui/LiveActivity.d.ts.map +1 -1
  180. package/dist/tui/LiveActivity.js +2 -1
  181. package/dist/tui/LiveActivity.js.map +1 -1
  182. package/dist/tui/Markdown.d.ts.map +1 -1
  183. package/dist/tui/Markdown.js +2 -1
  184. package/dist/tui/Markdown.js.map +1 -1
  185. package/dist/tui/PermissionOverlay.d.ts.map +1 -1
  186. package/dist/tui/PermissionOverlay.js +7 -1
  187. package/dist/tui/PermissionOverlay.js.map +1 -1
  188. package/dist/tui/Picker.d.ts +8 -6
  189. package/dist/tui/Picker.d.ts.map +1 -1
  190. package/dist/tui/Picker.js +145 -18
  191. package/dist/tui/Picker.js.map +1 -1
  192. package/dist/tui/ResumePicker.d.ts.map +1 -1
  193. package/dist/tui/ResumePicker.js +1 -1
  194. package/dist/tui/ResumePicker.js.map +1 -1
  195. package/dist/tui/Transcript.d.ts +4 -2
  196. package/dist/tui/Transcript.d.ts.map +1 -1
  197. package/dist/tui/Transcript.js +31 -5
  198. package/dist/tui/Transcript.js.map +1 -1
  199. package/dist/tui/agent.d.ts +123 -19
  200. package/dist/tui/agent.d.ts.map +1 -1
  201. package/dist/tui/agent.js +757 -144
  202. package/dist/tui/agent.js.map +1 -1
  203. package/dist/tui/compact-transcript.d.ts +24 -0
  204. package/dist/tui/compact-transcript.d.ts.map +1 -0
  205. package/dist/tui/compact-transcript.js +46 -0
  206. package/dist/tui/compact-transcript.js.map +1 -0
  207. package/dist/tui/conversation-history.d.ts +33 -0
  208. package/dist/tui/conversation-history.d.ts.map +1 -0
  209. package/dist/tui/conversation-history.js +42 -0
  210. package/dist/tui/conversation-history.js.map +1 -0
  211. package/dist/tui/edit-prompts.d.ts +23 -0
  212. package/dist/tui/edit-prompts.d.ts.map +1 -0
  213. package/dist/tui/edit-prompts.js +35 -0
  214. package/dist/tui/edit-prompts.js.map +1 -0
  215. package/dist/tui/live-window.d.ts +3 -1
  216. package/dist/tui/live-window.d.ts.map +1 -1
  217. package/dist/tui/live-window.js +20 -8
  218. package/dist/tui/live-window.js.map +1 -1
  219. package/dist/tui/login-prompt.d.ts +5 -0
  220. package/dist/tui/login-prompt.d.ts.map +1 -1
  221. package/dist/tui/login-prompt.js +14 -0
  222. package/dist/tui/login-prompt.js.map +1 -1
  223. package/dist/tui/slashCommands.d.ts +178 -9
  224. package/dist/tui/slashCommands.d.ts.map +1 -1
  225. package/dist/tui/slashCommands.js +340 -16
  226. package/dist/tui/slashCommands.js.map +1 -1
  227. package/dist/tui/terminal-display.d.ts +12 -0
  228. package/dist/tui/terminal-display.d.ts.map +1 -0
  229. package/dist/tui/terminal-display.js +65 -0
  230. package/dist/tui/terminal-display.js.map +1 -0
  231. package/dist/tui/types.d.ts +14 -2
  232. package/dist/tui/types.d.ts.map +1 -1
  233. package/dist/tui/workspace-diff.d.ts +40 -0
  234. package/dist/tui/workspace-diff.d.ts.map +1 -0
  235. package/dist/tui/workspace-diff.js +101 -0
  236. package/dist/tui/workspace-diff.js.map +1 -0
  237. package/package.json +8 -8
@@ -49,6 +49,12 @@ import { PROVIDER_REGISTRY } from './registry.js';
49
49
  * unusable from the one place that most needs it: a machine that has none.
50
50
  */
51
51
  export async function beginSubscriptionLogin(options = {}) {
52
+ options.signal?.throwIfAborted();
53
+ const cancelController = new AbortController();
54
+ const attemptSignal = options.signal
55
+ ? AbortSignal.any([options.signal, cancelController.signal])
56
+ : cancelController.signal;
57
+ const exchangeOptions = { ...options, signal: attemptSignal };
52
58
  const verifier = base64Url(randomBytes(32));
53
59
  const challenge = base64Url(createHash('sha256').update(verifier).digest());
54
60
  // An independent value, not the verifier reused.
@@ -59,7 +65,8 @@ export async function beginSubscriptionLogin(options = {}) {
59
65
  // the way — and the secret PKCE exists to keep out of that URL is exactly
60
66
  // the verifier.
61
67
  const state = base64Url(randomBytes(16));
62
- const listener = options.loopback === false ? null : await openLoopback(state);
68
+ const listener = options.loopback === false ? null : await openLoopback(state, attemptSignal);
69
+ attemptSignal.throwIfAborted();
63
70
  let settled = false;
64
71
  const exchangeOnce = async (code, seenState) => {
65
72
  if (settled)
@@ -71,7 +78,7 @@ export async function beginSubscriptionLogin(options = {}) {
71
78
  };
72
79
  }
73
80
  settled = true;
74
- return exchange(code, state, verifier, options);
81
+ return exchange(code, state, verifier, exchangeOptions);
75
82
  };
76
83
  return {
77
84
  url: authorizeUrl(challenge, state),
@@ -100,7 +107,10 @@ export async function beginSubscriptionLogin(options = {}) {
100
107
  }
101
108
  return exchangeOnce(parsed.code, parsed.state ?? state);
102
109
  },
103
- cancel: () => listener?.close(),
110
+ cancel: () => {
111
+ cancelController.abort(new Error('The sign-in attempt was cancelled.'));
112
+ listener?.close();
113
+ },
104
114
  };
105
115
  }
106
116
  /**
@@ -139,6 +149,30 @@ function authorizeUrl(challenge, state) {
139
149
  });
140
150
  return `${AUTHORIZE_URL}?${params.toString()}`;
141
151
  }
152
+ /**
153
+ * Bound a foreign promise even when its implementation ignores `signal`.
154
+ *
155
+ * Supplying an AbortSignal to fetch is only a cooperation request. A custom
156
+ * transport or response body can keep its promise pending after abort, so the
157
+ * caller also owns this independent settlement boundary.
158
+ */
159
+ async function awaitWithSignal(operation, signal) {
160
+ signal.throwIfAborted();
161
+ let rejectAbort = () => { };
162
+ const aborted = new Promise((_resolve, reject) => {
163
+ rejectAbort = reject;
164
+ });
165
+ const onAbort = () => rejectAbort(signal.reason);
166
+ signal.addEventListener('abort', onAbort, { once: true });
167
+ if (signal.aborted)
168
+ onAbort();
169
+ try {
170
+ return await Promise.race([operation, aborted]);
171
+ }
172
+ finally {
173
+ signal.removeEventListener('abort', onAbort);
174
+ }
175
+ }
142
176
  /**
143
177
  * Exchange the code, and store the result only once it is whole.
144
178
  *
@@ -147,10 +181,22 @@ function authorizeUrl(challenge, state) {
147
181
  * there is no path on which a failed login leaves a file behind.
148
182
  */
149
183
  async function exchange(code, state, verifier, options) {
184
+ const cancelled = () => ({
185
+ ok: false,
186
+ reason: 'The sign-in was cancelled before it could be stored. Nothing was stored.',
187
+ });
188
+ if (options.signal?.aborted)
189
+ return cancelled();
150
190
  const fetchFn = options.fetch ?? globalThis.fetch;
191
+ const deadline = AbortSignal.timeout(30_000);
192
+ const requestSignal = options.signal ? AbortSignal.any([options.signal, deadline]) : deadline;
193
+ const timedOut = () => ({
194
+ ok: false,
195
+ reason: 'The sign-in service did not answer within 30 seconds. Nothing was stored.',
196
+ });
151
197
  let res;
152
198
  try {
153
- res = await fetchFn(OAUTH_TOKEN_URL, {
199
+ res = await awaitWithSignal(fetchFn(OAUTH_TOKEN_URL, {
154
200
  method: 'POST',
155
201
  headers: { 'content-type': 'application/json', accept: 'application/json' },
156
202
  body: JSON.stringify({
@@ -161,10 +207,14 @@ async function exchange(code, state, verifier, options) {
161
207
  redirect_uri: REDIRECT_URI,
162
208
  code_verifier: verifier,
163
209
  }),
164
- signal: AbortSignal.timeout(30_000),
165
- });
210
+ signal: requestSignal,
211
+ }), requestSignal);
166
212
  }
167
213
  catch (err) {
214
+ if (options.signal?.aborted)
215
+ return cancelled();
216
+ if (deadline.aborted)
217
+ return timedOut();
168
218
  // The MESSAGE of a transport error is safe (a hostname, a timeout); the
169
219
  // body of a response is not, and there is none here.
170
220
  return {
@@ -172,6 +222,8 @@ async function exchange(code, state, verifier, options) {
172
222
  reason: `Could not reach the sign-in service (${err instanceof Error ? err.message : String(err)}). Nothing was stored.`,
173
223
  };
174
224
  }
225
+ if (options.signal?.aborted)
226
+ return cancelled();
175
227
  if (!res.ok) {
176
228
  // The status, never the body. A token endpoint answers failures with a
177
229
  // document that can contain the very thing this module must not leak.
@@ -182,14 +234,20 @@ async function exchange(code, state, verifier, options) {
182
234
  }
183
235
  let data;
184
236
  try {
185
- data = (await res.json());
237
+ data = (await awaitWithSignal(res.json(), requestSignal));
186
238
  }
187
239
  catch {
240
+ if (options.signal?.aborted)
241
+ return cancelled();
242
+ if (deadline.aborted)
243
+ return timedOut();
188
244
  return {
189
245
  ok: false,
190
246
  reason: 'The sign-in service answered with something that is not a token. Nothing was stored.',
191
247
  };
192
248
  }
249
+ if (options.signal?.aborted)
250
+ return cancelled();
193
251
  if (typeof data.access_token !== 'string' || data.access_token.length === 0) {
194
252
  return {
195
253
  ok: false,
@@ -207,6 +265,11 @@ async function exchange(code, state, verifier, options) {
207
265
  };
208
266
  let storedAt;
209
267
  try {
268
+ // The last foreign await was response-body parsing. Re-check ownership at
269
+ // the durable boundary so a surface that withdrew the attempt cannot get
270
+ // a credential file later. The synchronous write is the success terminal.
271
+ if (options.signal?.aborted)
272
+ return cancelled();
210
273
  storedAt = writeStoredSubscriptionCredential(credential, options.home);
211
274
  }
212
275
  catch (err) {
@@ -227,7 +290,8 @@ async function exchange(code, state, verifier, options) {
227
290
  * is no loopback interface. None of those is fatal, because the paste path
228
291
  * does not need this.
229
292
  */
230
- async function openLoopback(expectedState) {
293
+ async function openLoopback(expectedState, signal) {
294
+ signal?.throwIfAborted();
231
295
  let settle = () => { };
232
296
  const received = new Promise((r) => {
233
297
  let done = false;
@@ -268,19 +332,58 @@ async function openLoopback(expectedState) {
268
332
  finish(200, 'Signed in. You can close this tab and return to namzu.');
269
333
  settle({ code, state });
270
334
  });
271
- const bound = await new Promise((resolve) => {
272
- server.once('error', () => resolve(false));
273
- server.listen(SUBSCRIPTION_REDIRECT_PORT, '127.0.0.1', () => resolve(true));
335
+ let bindOwned = true;
336
+ let closeOwned = false;
337
+ let abortBind;
338
+ const close = () => {
339
+ if (closeOwned)
340
+ return;
341
+ closeOwned = true;
342
+ settle(null);
343
+ try {
344
+ server.close();
345
+ }
346
+ catch {
347
+ // A cancellation can win before `listen()` owns a handle. There is no
348
+ // resource to close in that branch, and the bind promise is rejected.
349
+ }
350
+ };
351
+ const bound = await new Promise((resolve, reject) => {
352
+ const finish = (value) => {
353
+ if (!bindOwned)
354
+ return;
355
+ bindOwned = false;
356
+ resolve(value);
357
+ };
358
+ abortBind = () => {
359
+ if (!bindOwned)
360
+ return;
361
+ bindOwned = false;
362
+ close();
363
+ reject(signal?.reason);
364
+ };
365
+ signal?.addEventListener('abort', abortBind, { once: true });
366
+ server.once('error', () => finish(false));
367
+ server.listen(SUBSCRIPTION_REDIRECT_PORT, '127.0.0.1', () => finish(true));
368
+ if (signal?.aborted)
369
+ abortBind();
274
370
  });
371
+ if (abortBind)
372
+ signal?.removeEventListener('abort', abortBind);
275
373
  if (!bound) {
276
- server.close();
374
+ close();
277
375
  return null;
278
376
  }
377
+ if (signal?.aborted) {
378
+ close();
379
+ throw signal.reason;
380
+ }
381
+ signal?.addEventListener('abort', close, { once: true });
279
382
  return {
280
383
  received,
281
384
  close: () => {
282
- settle(null);
283
- server.close();
385
+ signal?.removeEventListener('abort', close);
386
+ close();
284
387
  },
285
388
  };
286
389
  }
@@ -1 +1 @@
1
- {"version":3,"file":"subscription-login.js","sourceRoot":"","sources":["../../../src/integrations/providers/subscription-login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscription-login.js","sourceRoot":"","sources":["../../../src/integrations/providers/subscription-login.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACtE,OAAO,EAAe,YAAY,EAAE,MAAM,WAAW,CAAA;AAErD,OAAO,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAA;AAEzE,OAAO,EACN,aAAa,EACb,eAAe,EACf,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,0BAA0B,GAC1B,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAwDjD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC3C,UAAoC,EAAE;IAEtC,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAA;IAChC,MAAM,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAA;IAC9C,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM;QACnC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAA;IAC1B,MAAM,eAAe,GAA6B,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAA;IACvF,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;IAC3E,iDAAiD;IACjD,EAAE;IACF,wEAAwE;IACxE,yEAAyE;IACzE,2EAA2E;IAC3E,0EAA0E;IAC1E,gBAAgB;IAChB,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;IAExC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;IAC7F,aAAa,CAAC,cAAc,EAAE,CAAA;IAE9B,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,MAAM,YAAY,GAAG,KAAK,EAAE,IAAY,EAAE,SAAiB,EAAyB,EAAE;QACrF,IAAI,OAAO;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAA;QAC9E,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;YAC3C,OAAO;gBACN,EAAE,EAAE,KAAK;gBACT,MAAM,EACL,8IAA8I;aAC/I,CAAA;QACF,CAAC;QACD,OAAO,GAAG,IAAI,CAAA;QACd,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAA;IACxD,CAAC,CAAA;IAED,OAAO;QACN,GAAG,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC;QACnC,WAAW,EAAE,YAAY;QACzB,QAAQ,EAAE,QAAQ,KAAK,IAAI;QAC3B,eAAe,EAAE,GAAG,EAAE,CACrB,QAAQ,KAAK,IAAI;YAChB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAC/B,GAAG,KAAK,IAAI;gBACX,CAAC,CAAE;oBACD,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,yDAAyD;iBAChD;gBACnB,CAAC,CAAC,GAAG,CAAC,KAAK;oBACV,CAAC,CAAE;wBACD,EAAE,EAAE,KAAK;wBACT,MAAM,EAAE,iCAAiC,GAAG,CAAC,KAAK,wBAAwB;qBACzD;oBACnB,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CACrC;QACJ,sBAAsB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;YACtC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClB,OAAO;oBACN,EAAE,EAAE,KAAK;oBACT,MAAM,EACL,0HAA0H;iBAC3H,CAAA;YACF,CAAC;YACD,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,CAAA;QACxD,CAAC;QACD,MAAM,EAAE,GAAG,EAAE;YACZ,gBAAgB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAA;YACvE,QAAQ,EAAE,KAAK,EAAE,CAAA;QAClB,CAAC;KACD,CAAA;AACF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,4BAA4B,CAC3C,UAAgC,EAChC,QAAgB;IAEhB,OAAO;QACN,KAAK,EAAE,iBAAiB,CAAC,SAAS;QAClC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1C,MAAM,EAAE,UAAU,CAAC,WAAW;QAC9B,KAAK,EAAE;YACN,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,MAAM,EAAE,QAAQ;SAChB;QACD,YAAY,EAAE,EAAE;KAChB,CAAA;AACF,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB,EAAE,KAAa;IACrD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QAClC,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,eAAe;QAC1B,aAAa,EAAE,MAAM;QACrB,YAAY,EAAE,YAAY;QAC1B,KAAK,EAAE,YAAY;QACnB,cAAc,EAAE,SAAS;QACzB,qBAAqB,EAAE,MAAM;QAC7B,KAAK;KACL,CAAC,CAAA;IACF,OAAO,GAAG,aAAa,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAA;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,eAAe,CAAI,SAAyB,EAAE,MAAmB;IAC/E,MAAM,CAAC,cAAc,EAAE,CAAA;IACvB,IAAI,WAAW,GAA8B,GAAG,EAAE,GAAE,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;QACvD,WAAW,GAAG,MAAM,CAAA;IACrB,CAAC,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAChD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,EAAE,CAAA;IAC7B,IAAI,CAAC;QACJ,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;IAChD,CAAC;YAAS,CAAC;QACV,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,QAAQ,CACtB,IAAY,EACZ,KAAa,EACb,QAAgB,EAChB,OAAiC;IAEjC,MAAM,SAAS,GAAG,GAAiB,EAAE,CAAC,CAAC;QACtC,EAAE,EAAE,KAAK;QACT,MAAM,EAAE,0EAA0E;KAClF,CAAC,CAAA;IACF,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;QAAE,OAAO,SAAS,EAAE,CAAA;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAA;IACjD,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5C,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;IAC7F,MAAM,QAAQ,GAAG,GAAiB,EAAE,CAAC,CAAC;QACrC,EAAE,EAAE,KAAK;QACT,MAAM,EAAE,2EAA2E;KACnF,CAAC,CAAA;IACF,IAAI,GAAa,CAAA;IACjB,IAAI,CAAC;QACJ,GAAG,GAAG,MAAM,eAAe,CAC1B,OAAO,CAAC,eAAe,EAAE;YACxB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,EAAE;YAC3E,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACpB,UAAU,EAAE,oBAAoB;gBAChC,SAAS,EAAE,eAAe;gBAC1B,IAAI;gBACJ,KAAK;gBACL,YAAY,EAAE,YAAY;gBAC1B,aAAa,EAAE,QAAQ;aACvB,CAAC;YACF,MAAM,EAAE,aAAa;SACrB,CAAC,EACF,aAAa,CACb,CAAA;IACF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;YAAE,OAAO,SAAS,EAAE,CAAA;QAC/C,IAAI,QAAQ,CAAC,OAAO;YAAE,OAAO,QAAQ,EAAE,CAAA;QACvC,wEAAwE;QACxE,qDAAqD;QACrD,OAAO;YACN,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,wCAAwC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB;SACxH,CAAA;IACF,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;QAAE,OAAO,SAAS,EAAE,CAAA;IAC/C,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACb,uEAAuE;QACvE,sEAAsE;QACtE,OAAO;YACN,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,kDAAkD,GAAG,CAAC,MAAM,yEAAyE;SAC7I,CAAA;IACF,CAAC;IACD,IAAI,IAA+E,CAAA;IACnF,IAAI,CAAC;QACJ,IAAI,GAAG,CAAC,MAAM,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,aAAa,CAAC,CAAgB,CAAA;IACzE,CAAC;IAAC,MAAM,CAAC;QACR,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;YAAE,OAAO,SAAS,EAAE,CAAA;QAC/C,IAAI,QAAQ,CAAC,OAAO;YAAE,OAAO,QAAQ,EAAE,CAAA;QACvC,OAAO;YACN,EAAE,EAAE,KAAK;YACT,MAAM,EACL,sFAAsF;SACvF,CAAA;IACF,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;QAAE,OAAO,SAAS,EAAE,CAAA;IAC/C,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7E,OAAO;YACN,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,mEAAmE;SAC3E,CAAA;IACF,CAAC;IACD,MAAM,UAAU,GAAyB;QACxC,WAAW,EAAE,IAAI,CAAC,YAAY;QAC9B,GAAG,CAAC,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;YAC1E,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE;YACtC,CAAC,CAAC,EAAE,CAAC;QACN,GAAG,CAAC,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;YACtC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,EAAE;YACrD,CAAC,CAAC,EAAE,CAAC;KACN,CAAA;IACD,IAAI,QAAgB,CAAA;IACpB,IAAI,CAAC;QACJ,0EAA0E;QAC1E,yEAAyE;QACzE,0EAA0E;QAC1E,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;YAAE,OAAO,SAAS,EAAE,CAAA;QAC/C,QAAQ,GAAG,iCAAiC,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACvE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,wEAAwE;QACxE,6DAA6D;QAC7D,OAAO;YACN,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,gEAAgE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SAC1H,CAAA;IACF,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAA;AAC1C,CAAC;AAOD;;;;;;;GAOG;AACH,KAAK,UAAU,YAAY,CAAC,aAAqB,EAAE,MAAoB;IACtE,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,IAAI,MAAM,GAAwE,GAAG,EAAE,GAAE,CAAC,CAAA;IAC1F,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAyD,CAAC,CAAC,EAAE,EAAE;QAC1F,IAAI,IAAI,GAAG,KAAK,CAAA;QAChB,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE;YACd,IAAI,IAAI;gBAAE,OAAM;YAChB,IAAI,GAAG,IAAI,CAAA;YACX,CAAC,CAAC,CAAC,CAAC,CAAA;QACL,CAAC,CAAA;IACF,CAAC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAW,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAChD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,oBAAoB,0BAA0B,EAAE,CAAC,CAAA;QACrF,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACzC,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAC3C,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE;YAC/C,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,2BAA2B,EAAE,CAAC,CAAA;YACtE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACd,CAAC,CAAA;QACD,IAAI,KAAK,EAAE,CAAC;YACX,MAAM,CAAC,GAAG,EAAE,4CAA4C,CAAC,CAAA;YACzD,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;YACtC,OAAM;QACP,CAAC;QACD,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,oEAAoE;YACpE,wEAAwE;YACxE,MAAM,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAA;YACxC,OAAM;QACP,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC;YAC/C,iEAAiE;YACjE,oEAAoE;YACpE,sDAAsD;YACtD,MAAM,CAAC,GAAG,EAAE,4CAA4C,CAAC,CAAA;YACzD,OAAM;QACP,CAAC;QACD,MAAM,CAAC,GAAG,EAAE,wDAAwD,CAAC,CAAA;QACrE,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;IAEF,IAAI,SAAS,GAAG,IAAI,CAAA;IACpB,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,IAAI,SAAmC,CAAA;IACvC,MAAM,KAAK,GAAG,GAAG,EAAE;QAClB,IAAI,UAAU;YAAE,OAAM;QACtB,UAAU,GAAG,IAAI,CAAA;QACjB,MAAM,CAAC,IAAI,CAAC,CAAA;QACZ,IAAI,CAAC;YACJ,MAAM,CAAC,KAAK,EAAE,CAAA;QACf,CAAC;QAAC,MAAM,CAAC;YACR,sEAAsE;YACtE,sEAAsE;QACvE,CAAC;IACF,CAAC,CAAA;IACD,MAAM,KAAK,GAAG,MAAM,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5D,MAAM,MAAM,GAAG,CAAC,KAAc,EAAE,EAAE;YACjC,IAAI,CAAC,SAAS;gBAAE,OAAM;YACtB,SAAS,GAAG,KAAK,CAAA;YACjB,OAAO,CAAC,KAAK,CAAC,CAAA;QACf,CAAC,CAAA;QACD,SAAS,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,SAAS;gBAAE,OAAM;YACtB,SAAS,GAAG,KAAK,CAAA;YACjB,KAAK,EAAE,CAAA;YACP,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACvB,CAAC,CAAA;QACD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5D,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACzC,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QAC1E,IAAI,MAAM,EAAE,OAAO;YAAE,SAAS,EAAE,CAAA;IACjC,CAAC,CAAC,CAAA;IACF,IAAI,SAAS;QAAE,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,KAAK,EAAE,CAAA;QACP,OAAO,IAAI,CAAA;IACZ,CAAC;IACD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACrB,KAAK,EAAE,CAAA;QACP,MAAM,MAAM,CAAC,MAAM,CAAA;IACpB,CAAC;IACD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IACxD,OAAO;QACN,QAAQ;QACR,KAAK,EAAE,GAAG,EAAE;YACX,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAC3C,KAAK,EAAE,CAAA;QACR,CAAC;KACD,CAAA;AACF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC1B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAEjC,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;YAC1B,OAAO;gBACN,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS;gBAC/C,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS;aACjD,CAAA;QACF,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,EAAE,CAAA;QACV,CAAC;IACF,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;QAC5D,OAAO;YACN,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS;YACrC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS;SACvC,CAAA;IACF,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QACzC,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,SAAS,EAAE,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,CAAA;IAC9D,CAAC;IACD,2EAA2E;IAC3E,yEAAyE;IACzE,uDAAuD;IACvD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAC/B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;AACvB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,CAAS,EAAE,CAAS;IAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IACpC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAC9C,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC/B,OAAO,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;AACnC,CAAC"}
@@ -10,18 +10,36 @@
10
10
  * `<cwd>/.namzu`, the same root `query()` writes its runs under, so a
11
11
  * session's `session.json` and its `runs/` live in one place.
12
12
  */
13
- import { DiskSessionStore, type Message, type ProjectId, type SessionId, type TenantId, type TopicId } from '@namzu/sdk';
13
+ import { DiskSessionStore, type Message, type ProjectId, type SessionGoalStore, type SessionId, type TenantId, type TopicId, type UserMessage } from '@namzu/sdk';
14
+ import { DiskConversationEvidence } from './turn-evidence.js';
14
15
  export interface CliSessions {
15
16
  readonly store: DiskSessionStore;
17
+ /** Durable completion goal owned by each conversation Session. */
18
+ readonly goals: SessionGoalStore;
16
19
  readonly projectId: ProjectId;
17
20
  readonly topicId: TopicId;
18
21
  readonly tenantId: TenantId;
19
22
  /** Absolute path of the cwd's `.namzu` root (where pointers live). */
20
23
  readonly root: string;
24
+ /**
25
+ * CLI-only turn/run correlation. Optional for embedded test doubles and
26
+ * pre-feature hosts; {@link openSessions} always supplies it.
27
+ */
28
+ readonly turnEvidence?: DiskConversationEvidence;
21
29
  }
22
30
  export interface RecentConversation {
23
31
  readonly id: SessionId;
24
32
  readonly title: string;
33
+ /**
34
+ * Whether a person chose that title, or it was taken from the first thing
35
+ * they typed.
36
+ *
37
+ * Surfaced rather than inferred, because the two read identically in a
38
+ * list and mean different things: a derived title changes meaning as a
39
+ * conversation moves on from its opening question, and a named one does
40
+ * not. `/resume` is the place that difference matters.
41
+ */
42
+ readonly named: boolean;
25
43
  readonly updatedAt: string;
26
44
  readonly count: number;
27
45
  }
@@ -54,10 +72,102 @@ export declare function resolveConversation(s: CliSessions, key: string): Promis
54
72
  * the first run could never have shown this.
55
73
  */
56
74
  export declare function startConversation(s: CliSessions): Promise<SessionId>;
75
+ /**
76
+ * Sequential admission gate for a turn or conversation mutation.
77
+ *
78
+ * This establishes the state observed immediately before the operation. It is
79
+ * deliberately not described as a cross-process transaction: Project archive
80
+ * and Session mutation live in separate store records, so serializing an
81
+ * archive racing a live turn requires a durable lease shared by both paths.
82
+ * What this gate does guarantee is that a target already closed, archived or
83
+ * outside the current Project never silently reaches the requested operation.
84
+ */
85
+ export declare function requireWritableConversation(s: CliSessions, sessionId: SessionId, op?: string): Promise<void>;
57
86
  /** Append messages (in order) to a conversation. */
58
87
  export declare function appendMessages(s: CliSessions, sessionId: SessionId, messages: readonly Message[]): Promise<void>;
88
+ /**
89
+ * Replace the durable conversation view with a compacted history.
90
+ *
91
+ * The store writes this as one replacement record inside its append-only log,
92
+ * so a crash cannot expose the first half of a compacted conversation. Before
93
+ * replacing, pin the derived title without calling it a chosen name: the
94
+ * opening user message may be among the turns compacted away, and `/resume`
95
+ * must neither rename nor quote the conversation as a side effect of making
96
+ * it smaller.
97
+ */
98
+ export declare function replaceConversation(s: CliSessions, sessionId: SessionId, messages: readonly Message[]): Promise<void>;
59
99
  /** Load a conversation's full message history. */
60
100
  export declare function loadConversation(s: CliSessions, sessionId: SessionId): Promise<Message[]>;
101
+ /**
102
+ * Load one conversation for a new model turn.
103
+ *
104
+ * Reading an archived conversation remains legitimate — `history` and export
105
+ * are inspection surfaces — but resuming it would turn a tombstone back into a
106
+ * live writer without a restore operation. The Project gate is separate for
107
+ * the same reason: closing a workspace must not make its history disappear,
108
+ * while it must stop a later turn from starting there.
109
+ */
110
+ export declare function loadResumableConversation(s: CliSessions, sessionId: string): Promise<Message[]>;
61
111
  /** Recent non-empty conversations, newest first — for the `/resume` list. */
62
112
  export declare function listRecent(s: CliSessions, limit?: number): Promise<RecentConversation[]>;
113
+ /** The name a person gave this conversation, or `undefined`. */
114
+ export declare function titleOf(s: CliSessions, sessionId: SessionId): string | undefined;
115
+ /**
116
+ * Name a conversation, or with an empty name, take the name away.
117
+ *
118
+ * Removing rather than storing `''` is what keeps "named" a real distinction:
119
+ * an empty string is not a name, and leaving one behind would make `/resume`
120
+ * show a blank row that reads as a conversation with nothing in it.
121
+ */
122
+ export declare function setTitle(s: CliSessions, sessionId: SessionId, title: string): void;
123
+ /**
124
+ * Continue in a copy, leaving the original where it is.
125
+ *
126
+ * The copy is a real Session with the transcript written into it, not a
127
+ * pointer: the two diverge from here, and a pointer would make the original's
128
+ * later turns appear in the fork.
129
+ *
130
+ * **The fork is always named, and that is the load-bearing part.** Both
131
+ * conversations start with the same first message, so both DERIVE the same
132
+ * title — and `/resume` would show two rows a person cannot tell apart, which
133
+ * is a worse outcome than not being able to fork at all. The name is taken
134
+ * from the source's own, so a fork of a fork stays readable, and it is
135
+ * numbered against the names already in use so a second fork does not collide
136
+ * with the first.
137
+ */
138
+ export declare function forkConversation(s: CliSessions, sourceId: SessionId): Promise<{
139
+ id: SessionId;
140
+ title: string;
141
+ copied: number;
142
+ }>;
143
+ export interface ForkBeforeUserResult {
144
+ readonly id: SessionId;
145
+ readonly title: string;
146
+ /** Exact durable prefix copied into the fork. */
147
+ readonly messages: readonly Message[];
148
+ /** Exact durable user message the caller selected and may reopen. */
149
+ readonly selected: UserMessage;
150
+ }
151
+ /**
152
+ * Fork immediately before one durable user message.
153
+ *
154
+ * `userOrdinal` is zero-based among user messages, not among every message.
155
+ * The expected message is a compare-and-swap guard: a picker selects from an
156
+ * in-memory history, then this helper reloads disk. If another write changed
157
+ * that position, it refuses BEFORE creating a session instead of branching at
158
+ * a boundary the operator did not select.
159
+ *
160
+ * An empty prefix is valid. Editing the first prompt creates an empty branch
161
+ * and restores that prompt to the composer; refusing it would make the most
162
+ * common first-turn correction the one prompt this feature cannot edit.
163
+ */
164
+ export declare function forkConversationBeforeUser(s: CliSessions, sourceId: SessionId, userOrdinal: number, expected: UserMessage): Promise<ForkBeforeUserResult>;
165
+ /**
166
+ * `X (fork)`, then `X (fork 2)`, `X (fork 3)`.
167
+ *
168
+ * Numbered against the names in use rather than against a count of forks,
169
+ * because a name that was removed frees its number and a fork that was renamed
170
+ * never held one.
171
+ */
172
+ export declare function nextForkName(taken: Record<string, string>, source: string): string;
63
173
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/integrations/sessions/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EACN,gBAAgB,EAChB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,OAAO,EAMZ,MAAM,YAAY,CAAA;AAOnB,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACtB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA4BpE;AAgBD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAezF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAO1E;AAED,oDAAoD;AACpD,wBAAsB,cAAc,CACnC,CAAC,EAAE,WAAW,EACd,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,SAAS,OAAO,EAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,kDAAkD;AAClD,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAE/F;AAED,6EAA6E;AAC7E,wBAAsB,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAc1F"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/integrations/sessions/store.ts"],"names":[],"mappings":"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"}