@farmslot/protocol 0.76.0 → 0.78.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 (168) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/client-cache/cache.d.ts.map +1 -1
  3. package/dist/client-cache/cache.js +174 -14
  4. package/dist/client-cache/cache.js.map +1 -1
  5. package/dist/client-cache/command-method.d.ts +1 -1
  6. package/dist/client-cache/command-method.d.ts.map +1 -1
  7. package/dist/client-cache/command-method.js +3 -0
  8. package/dist/client-cache/command-method.js.map +1 -1
  9. package/dist/client-cache/index.d.ts +1 -1
  10. package/dist/client-cache/index.d.ts.map +1 -1
  11. package/dist/client-cache/index.js +1 -1
  12. package/dist/client-cache/index.js.map +1 -1
  13. package/dist/client-cache/native-history.d.ts.map +1 -1
  14. package/dist/client-cache/native-history.js +1 -0
  15. package/dist/client-cache/native-history.js.map +1 -1
  16. package/dist/client-cache/prefetch.d.ts +13 -1
  17. package/dist/client-cache/prefetch.d.ts.map +1 -1
  18. package/dist/client-cache/prefetch.js +88 -26
  19. package/dist/client-cache/prefetch.js.map +1 -1
  20. package/dist/client-cache/read-stored.d.ts +5 -1
  21. package/dist/client-cache/read-stored.d.ts.map +1 -1
  22. package/dist/client-cache/read-stored.js +64 -1
  23. package/dist/client-cache/read-stored.js.map +1 -1
  24. package/dist/client-cache/registry.d.ts +29 -1
  25. package/dist/client-cache/registry.d.ts.map +1 -1
  26. package/dist/client-cache/registry.js +55 -4
  27. package/dist/client-cache/registry.js.map +1 -1
  28. package/dist/client-cache/store.d.ts +2 -0
  29. package/dist/client-cache/store.d.ts.map +1 -1
  30. package/dist/client-cache/store.js +9 -1
  31. package/dist/client-cache/store.js.map +1 -1
  32. package/dist/client-cache/transport.d.ts +3 -1
  33. package/dist/client-cache/transport.d.ts.map +1 -1
  34. package/dist/client-cache/transport.js +2 -1
  35. package/dist/client-cache/transport.js.map +1 -1
  36. package/dist/client-cache/types.d.ts +8 -1
  37. package/dist/client-cache/types.d.ts.map +1 -1
  38. package/dist/contracts/agents.d.ts +5 -2
  39. package/dist/contracts/agents.d.ts.map +1 -1
  40. package/dist/contracts/agents.js.map +1 -1
  41. package/dist/contracts/config.d.ts +3 -0
  42. package/dist/contracts/config.d.ts.map +1 -1
  43. package/dist/contracts/config.js +5 -1
  44. package/dist/contracts/config.js.map +1 -1
  45. package/dist/contracts/family.d.ts +55 -3
  46. package/dist/contracts/family.d.ts.map +1 -1
  47. package/dist/contracts/family.js.map +1 -1
  48. package/dist/contracts/review-workspace.d.ts +23 -1
  49. package/dist/contracts/review-workspace.d.ts.map +1 -1
  50. package/dist/contracts/review-workspace.js +3 -0
  51. package/dist/contracts/review-workspace.js.map +1 -1
  52. package/dist/contracts/reviews.d.ts +1 -0
  53. package/dist/contracts/reviews.d.ts.map +1 -1
  54. package/dist/contracts/reviews.js.map +1 -1
  55. package/dist/contracts/runs.d.ts +50 -10
  56. package/dist/contracts/runs.d.ts.map +1 -1
  57. package/dist/contracts/runs.js.map +1 -1
  58. package/dist/contracts/runtime-capabilities.d.ts +9 -0
  59. package/dist/contracts/runtime-capabilities.d.ts.map +1 -1
  60. package/dist/contracts/runtime-capabilities.js.map +1 -1
  61. package/dist/contracts/slot-recovery.d.ts +2 -2
  62. package/dist/contracts/slot-recovery.d.ts.map +1 -1
  63. package/dist/contracts/slot-recovery.js +5 -3
  64. package/dist/contracts/slot-recovery.js.map +1 -1
  65. package/dist/index.d.ts +3 -0
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +3 -0
  68. package/dist/index.js.map +1 -1
  69. package/dist/performance/client.d.ts +18 -0
  70. package/dist/performance/client.d.ts.map +1 -0
  71. package/dist/performance/client.js +66 -0
  72. package/dist/performance/client.js.map +1 -0
  73. package/dist/performance/histogram.d.ts +5 -0
  74. package/dist/performance/histogram.d.ts.map +1 -0
  75. package/dist/performance/histogram.js +38 -0
  76. package/dist/performance/histogram.js.map +1 -0
  77. package/dist/performance/index.d.ts +10 -0
  78. package/dist/performance/index.d.ts.map +1 -0
  79. package/dist/performance/index.js +10 -0
  80. package/dist/performance/index.js.map +1 -0
  81. package/dist/performance/paint.d.ts +3 -0
  82. package/dist/performance/paint.d.ts.map +1 -0
  83. package/dist/performance/paint.js +14 -0
  84. package/dist/performance/paint.js.map +1 -0
  85. package/dist/performance/prometheus.d.ts +3 -0
  86. package/dist/performance/prometheus.d.ts.map +1 -0
  87. package/dist/performance/prometheus.js +53 -0
  88. package/dist/performance/prometheus.js.map +1 -0
  89. package/dist/performance/ranking.d.ts +26 -0
  90. package/dist/performance/ranking.d.ts.map +1 -0
  91. package/dist/performance/ranking.js +92 -0
  92. package/dist/performance/ranking.js.map +1 -0
  93. package/dist/performance/recorder.d.ts +43 -0
  94. package/dist/performance/recorder.d.ts.map +1 -0
  95. package/dist/performance/recorder.js +352 -0
  96. package/dist/performance/recorder.js.map +1 -0
  97. package/dist/performance/types.d.ts +93 -0
  98. package/dist/performance/types.d.ts.map +1 -0
  99. package/dist/performance/types.js +40 -0
  100. package/dist/performance/types.js.map +1 -0
  101. package/dist/performance/validation.d.ts +3 -0
  102. package/dist/performance/validation.d.ts.map +1 -0
  103. package/dist/performance/validation.js +55 -0
  104. package/dist/performance/validation.js.map +1 -0
  105. package/dist/recipes/step-io.d.ts +2 -0
  106. package/dist/recipes/step-io.d.ts.map +1 -1
  107. package/dist/recipes/step-io.js.map +1 -1
  108. package/dist/rpc/auth.d.ts +1 -0
  109. package/dist/rpc/auth.d.ts.map +1 -1
  110. package/dist/rpc/auth.js.map +1 -1
  111. package/dist/rpc/fs.d.ts +2 -0
  112. package/dist/rpc/fs.d.ts.map +1 -1
  113. package/dist/rpc/fs.js +2 -0
  114. package/dist/rpc/fs.js.map +1 -1
  115. package/dist/rpc/index.d.ts +1 -0
  116. package/dist/rpc/index.d.ts.map +1 -1
  117. package/dist/rpc/index.js +1 -0
  118. package/dist/rpc/index.js.map +1 -1
  119. package/dist/rpc/native-session.d.ts +17 -0
  120. package/dist/rpc/native-session.d.ts.map +1 -1
  121. package/dist/rpc/native-session.js.map +1 -1
  122. package/dist/rpc/performance.d.ts +6 -0
  123. package/dist/rpc/performance.d.ts.map +1 -0
  124. package/dist/rpc/performance.js +2 -0
  125. package/dist/rpc/performance.js.map +1 -0
  126. package/dist/rpc/registry.d.ts +3 -0
  127. package/dist/rpc/registry.d.ts.map +1 -1
  128. package/dist/rpc/registry.js +3 -0
  129. package/dist/rpc/registry.js.map +1 -1
  130. package/dist/rpc/run.d.ts +4 -0
  131. package/dist/rpc/run.d.ts.map +1 -1
  132. package/dist/rpc/runtime-capabilities.d.ts +6 -0
  133. package/dist/rpc/runtime-capabilities.d.ts.map +1 -1
  134. package/dist/rpc/runtime-capabilities.js.map +1 -1
  135. package/dist/rpc/slot.d.ts +2 -0
  136. package/dist/rpc/slot.d.ts.map +1 -1
  137. package/dist/rpc/tmux.d.ts +1 -1
  138. package/dist/rpc/tmux.d.ts.map +1 -1
  139. package/dist/runs/list-trim.d.ts.map +1 -1
  140. package/dist/runs/list-trim.js +1 -19
  141. package/dist/runs/list-trim.js.map +1 -1
  142. package/dist/runs/review-retries.d.ts +8 -2
  143. package/dist/runs/review-retries.d.ts.map +1 -1
  144. package/dist/runs/review-retries.js +140 -2
  145. package/dist/runs/review-retries.js.map +1 -1
  146. package/dist/surfaces/run-view-state.d.ts +22 -0
  147. package/dist/surfaces/run-view-state.d.ts.map +1 -0
  148. package/dist/surfaces/run-view-state.js +26 -0
  149. package/dist/surfaces/run-view-state.js.map +1 -0
  150. package/dist/surfaces/view-links.d.ts +1 -1
  151. package/dist/surfaces/view-links.d.ts.map +1 -1
  152. package/dist/surfaces/view-links.js +146 -17
  153. package/dist/surfaces/view-links.js.map +1 -1
  154. package/dist/surfaces/view-state.d.ts +50 -0
  155. package/dist/surfaces/view-state.d.ts.map +1 -0
  156. package/dist/surfaces/view-state.js +181 -0
  157. package/dist/surfaces/view-state.js.map +1 -0
  158. package/dist/transport/gateway-recovery.d.ts +39 -0
  159. package/dist/transport/gateway-recovery.d.ts.map +1 -0
  160. package/dist/transport/gateway-recovery.js +134 -0
  161. package/dist/transport/gateway-recovery.js.map +1 -0
  162. package/dist/utf8-byte-length.d.ts +2 -0
  163. package/dist/utf8-byte-length.d.ts.map +1 -0
  164. package/dist/utf8-byte-length.js +22 -0
  165. package/dist/utf8-byte-length.js.map +1 -0
  166. package/dist/version.d.ts +1 -1
  167. package/dist/version.js +1 -1
  168. package/package.json +6 -1
@@ -1,4 +1,6 @@
1
1
  import { BACKLOG_STATUSES } from '../contracts/backlog.js';
2
+ import { DECISION_EVIDENCE_RECIPE_RUN_PARAM, RUN_VIEW_FIELDS } from './run-view-state.js';
3
+ import { VIEW_STATE_PARAMETERS, viewListField, viewStateSearchParams } from './view-state.js';
2
4
  // Full-view links preserve navigation state without exposing the app's private
3
5
  // loopback origin or accepting connection credentials from an external link.
4
6
  const routes = new Set([
@@ -35,7 +37,7 @@ export const ARTIFACT_BROWSER_PARAMS = [
35
37
  'artifactPreview',
36
38
  ];
37
39
  export const VIEW_QUERY_PARAMETERS = new Set([
38
- ...('cwd custom effort a b activity artifact artifactAc artifactRun artifactTrace artifactPhase artifactView assessment backlogProject backlogStatus capture create demo dispatchConfig draft draftMode file item resource runId contextId history historyRun host recipeRun recipeDependency ' +
40
+ ...('cwd custom effort approvalMode a b activity artifact artifactAc artifactRun artifactTrace artifactPhase artifactView assessment backlogProject backlogStatus capture create demo dispatchConfig draft draftMode file item resource runId contextId history historyRun host recipeRun recipeDependency ' +
39
41
  'recipeNode recipeArtifact recipeEvidenceMode recipeViewer recipeViewerMode recipeViewerPair review reviewAt reviewCheck reviewDrawer reviewFile comment commentFile commentLine commentHead ' +
40
42
  'cmpSort cmpTab diffArtifact diffRun direction evidence evidencePreview family familyId flow flowType focus gate graph intent lane ' +
41
43
  'layout lightboxIndex lightboxRecipeRunId machines modal mode model node panel parentRunId pr prDraft prEditor prHistory prHost project projects ' +
@@ -43,6 +45,8 @@ export const VIEW_QUERY_PARAMETERS = new Set([
43
45
  'reviewValidationDepth round run runner runsTab slot sort start_ref startRef state status step suggestion tab tag ticket tokens trajectory transport ' +
44
46
  'validationDepth variant view window worker group promote runnerPicker slotSelector spec workGraphProject wgSort wgDirection sharedView sessionId executionNodeId').split(' '),
45
47
  ...ARTIFACT_BROWSER_PARAMS,
48
+ RUN_VIEW_FIELDS.panels.key,
49
+ ...VIEW_STATE_PARAMETERS,
46
50
  ]);
47
51
  export function validViewRoute(route) {
48
52
  if (typeof route !== 'string' ||
@@ -125,20 +129,39 @@ function companionViewRoute(location) {
125
129
  };
126
130
  const route = (name, values = {}) => {
127
131
  const params = new URLSearchParams();
132
+ const selected = viewStateSearchParams(location.params);
128
133
  if (name !== 'native') {
129
- if (location.projects !== undefined)
130
- params.set('projects', location.projects.join(','));
131
- if (location.machines !== undefined)
132
- params.set('machines', location.machines.join(','));
134
+ const projects = viewListField('projects', [], 'csv');
135
+ const machines = viewListField('machines', [], 'csv');
136
+ projects.write(params, location.projects ?? projects.read(selected));
137
+ machines.write(params, location.machines ?? machines.read(selected));
133
138
  }
134
139
  for (const [key, value] of Object.entries(values))
135
140
  if (value)
136
141
  params.set(key, value);
137
- if (name.startsWith('run/')) {
138
- const selected = location.params.round;
139
- for (const value of typeof selected === 'string' ? [selected] : (selected ?? []))
140
- if (value)
141
- params.append('round', value);
142
+ for (const [key] of selected) {
143
+ if (!VIEW_QUERY_PARAMETERS.has(key) ||
144
+ params.has(key) ||
145
+ [
146
+ 'projects',
147
+ 'machines',
148
+ 'draft',
149
+ 'draftMode',
150
+ 'cwd',
151
+ 'custom',
152
+ 'runner',
153
+ 'model',
154
+ 'effort',
155
+ 'mode',
156
+ 'approvalMode',
157
+ 'runId',
158
+ 'sessionId',
159
+ 'executionNodeId',
160
+ 'contextId',
161
+ ].includes(key))
162
+ continue;
163
+ for (const value of selected.getAll(key))
164
+ params.append(key, value);
142
165
  }
143
166
  return `#${name}${params.toString() ? `?${params}` : ''}`;
144
167
  };
@@ -299,29 +322,121 @@ function companionViewRoute(location) {
299
322
  };
300
323
  return collections[path] ? route(collections[path]) : null;
301
324
  }
325
+ function configuredNativeScheme(value) {
326
+ const scheme = value?.trim().replace(/:\/\/$/, '');
327
+ return scheme &&
328
+ /^[a-z][a-z0-9+.-]*$/i.test(scheme) &&
329
+ !/^(unknown|https?|wss?|javascript|data|file|blob|about)$/i.test(scheme)
330
+ ? scheme
331
+ : null;
332
+ }
333
+ /** Native links use existing Expo paths; virtual artifact selections open their real viewer. */
334
+ function nativeViewUrl(location, selection, scheme) {
335
+ const source = viewStateSearchParams(location.params);
336
+ const params = new URLSearchParams(selection);
337
+ const nativeSelectors = new Set([
338
+ 'ac',
339
+ 'evidenceDecision',
340
+ 'evidenceExecution',
341
+ 'path',
342
+ 'filter',
343
+ 'section',
344
+ ]);
345
+ for (const [key] of source)
346
+ if (!params.has(key) &&
347
+ !privateSelectors.has(key) &&
348
+ (VIEW_QUERY_PARAMETERS.has(key) || nativeSelectors.has(key)))
349
+ for (const entry of source.getAll(key))
350
+ params.append(key, entry);
351
+ params.delete('sharedView');
352
+ let pathname = location.pathname.replace(/^\/\(tabs\)/, '') || '/';
353
+ if (location.artifactSelection) {
354
+ const artifact = location.artifactSelection;
355
+ if (!viewId.test(artifact.runId) ||
356
+ !artifact.path ||
357
+ artifact.path.startsWith('/') ||
358
+ /[\\\u0000-\u001f]/.test(artifact.path) ||
359
+ /^[a-z][a-z0-9+.-]*:/i.test(artifact.path) ||
360
+ artifact.path.split('/').includes('..') ||
361
+ (artifact.traceIndex !== undefined &&
362
+ (!Number.isSafeInteger(artifact.traceIndex) || artifact.traceIndex < 0)))
363
+ return null;
364
+ pathname = `/evidence/${artifact.runId}`;
365
+ params.set('evidence', artifact.path);
366
+ if (artifact.criterionId)
367
+ params.set('ac', artifact.criterionId);
368
+ params.set('recipeRun', artifact.recipeRunId ?? DECISION_EVIDENCE_RECIPE_RUN_PARAM);
369
+ }
370
+ const worker = params.get('worker');
371
+ if (location.workerSelection && worker)
372
+ params.set('workerRef', encodeURIComponent(worker));
373
+ let complete = true;
374
+ pathname = pathname.replace(/\[([^\]]+)\]/g, (segment, key) => {
375
+ const value = source.get(key);
376
+ if (!value || !viewId.test(value)) {
377
+ complete = false;
378
+ return segment;
379
+ }
380
+ params.delete(key);
381
+ return encodeURIComponent(value);
382
+ });
383
+ const supported = /^\/(?:fleet|runs|inbox|roadmap|backlog|work-graphs|dispatch-queue|prs|pr-automation|native|copilot|gate-review\/[^/]+|backlog\/edit\/[^/]+|(?:run|evidence|artifacts|visual-review|family|decision|roadmap|backlog|run-terminal|terminal|diff)\/[^/]+|diff\/slot\/[^/]+|workspace\/(?:run|slot)\/[^/]+\/(?:timeline|evidence|files|diff|gate|slot|terminal))$/.test(pathname);
384
+ return complete &&
385
+ supported &&
386
+ pathname
387
+ .split('/')
388
+ .filter(Boolean)
389
+ .every((part) => viewId.test(part))
390
+ ? `${scheme}://${pathname}${params.size ? `?${params}` : ''}`
391
+ : null;
392
+ }
302
393
  /** One mapping for Companion generation and Command Center receipt. */
303
- export function resolveSharedViewLink(location, commandCenterUrl) {
304
- if (!commandCenterUrl?.trim())
394
+ export function resolveSharedViewLink(location, commandCenterUrl, appScheme) {
395
+ const webUrl = commandCenterUrl?.trim();
396
+ const nativeScheme = !webUrl && 'companion' in location ? configuredNativeScheme(appScheme) : null;
397
+ if (!webUrl && !nativeScheme)
305
398
  return unavailable(noWebUrl, 'web-url-unset');
306
- const error = commandCenterUrlError(commandCenterUrl.trim());
399
+ const error = webUrl ? commandCenterUrlError(webUrl) : null;
307
400
  if (error)
308
401
  return unavailable(`Web link unavailable: ${error}`, 'invalid-web-url');
309
- const base = new URL(commandCenterUrl.trim());
402
+ const base = webUrl ? new URL(webUrl) : null;
310
403
  let candidate;
311
404
  if ('companion' in location) {
312
- if (location.companion.unavailableMessage)
405
+ if (location.companion.unavailableMessage && !nativeScheme)
313
406
  return unavailable(location.companion.unavailableMessage);
314
- if (location.companion.pathname === '/native') {
407
+ const companionPath = location.companion.pathname.replace(/^\/\(tabs\)/, '') || '/';
408
+ if (companionPath === '/native') {
315
409
  if (location.companion.params.workerManaged === '1')
316
410
  return unavailable('Web link unavailable: task conversations have no exact web route yet.');
317
411
  if (location.companion.params.sessionObserved !== '1')
318
412
  return unavailable('Web link unavailable: select a loaded conversation.');
319
413
  }
320
414
  candidate = companionViewRoute(location.companion);
415
+ if (nativeScheme) {
416
+ const native = location.companion;
417
+ if ((companionPath === '/native' || companionPath === '/terminal/worker') && !candidate)
418
+ return unavailable('This selection cannot be shared.', 'invalid-view');
419
+ const params = candidate && validViewRoute(candidate)
420
+ ? new URLSearchParams(candidate.split('?')[1] ?? '')
421
+ : new URLSearchParams();
422
+ const url = nativeViewUrl(native, params, nativeScheme);
423
+ if (!url)
424
+ return unavailable('This view cannot be shared.', 'invalid-view');
425
+ const target = new URL(url);
426
+ return {
427
+ status: 'available',
428
+ route: candidate
429
+ ? withoutSharedViewMarker(candidate)
430
+ : `${target.pathname}${target.search}`,
431
+ url,
432
+ };
433
+ }
321
434
  }
322
435
  else if ('route' in location)
323
436
  candidate = location.route;
324
437
  else {
438
+ if (!base)
439
+ return unavailable(noWebUrl, 'web-url-unset');
325
440
  try {
326
441
  const incoming = new URL(location.url);
327
442
  if (incoming.origin !== base.origin ||
@@ -377,11 +492,25 @@ export function resolveSharedViewLink(location, commandCenterUrl) {
377
492
  const params = new URLSearchParams(query);
378
493
  const seen = new Set();
379
494
  for (const [key] of params) {
380
- if (privateSelectors.has(key) || (seen.has(key) && key !== 'round'))
495
+ if (privateSelectors.has(key) ||
496
+ (seen.has(key) &&
497
+ ![
498
+ 'round',
499
+ 'treeOpen',
500
+ 'branchFilesClosed',
501
+ 'changesClosed',
502
+ 'messages',
503
+ 'turnFiles',
504
+ 'rawClaims',
505
+ 'devicePanes',
506
+ 'claims',
507
+ ].includes(key)))
381
508
  return unavailable('Web link unavailable: this selection cannot be shared.', 'invalid-view');
382
509
  seen.add(key);
383
510
  }
384
511
  const route = withoutSharedViewMarker(candidate);
512
+ if (!base)
513
+ return unavailable(noWebUrl, 'web-url-unset');
385
514
  params.set('sharedView', '1');
386
515
  base.hash = `${path}${params.toString() ? `?${params}` : ''}`;
387
516
  return { status: 'available', route, url: base.href };
@@ -1 +1 @@
1
- {"version":3,"file":"view-links.js","sourceRoot":"","sources":["../../src/surfaces/view-links.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,+EAA+E;AAC/E,6EAA6E;AAC7E,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC;IACrB,OAAO;IACP,QAAQ;IACR,UAAU;IACV,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,aAAa;IACb,KAAK;IACL,WAAW;IACX,MAAM;IACN,cAAc;IACd,OAAO;IACP,UAAU;IACV,cAAc;IACd,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,YAAY;CACb,CAAC,CAAC;AACH,MAAM,MAAM,GACV,uFAAuF,CAAC;AAC1F,2DAA2D;AAC3D,2EAA2E;AAC3E,oEAAoE;AACpE,MAAM,MAAM,GACV,uFAAuF,CAAC;AAC1F,0EAA0E;AAC1E,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,eAAe;IACf,eAAe;IACf,cAAc;IACd,iBAAiB;CACT,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAChE,GAAG,CACD,2RAA2R;QAC3R,8LAA8L;QAC9L,oIAAoI;QACpI,kJAAkJ;QAClJ,sHAAsH;QACtH,sJAAsJ;QACtJ,kKAAkK,CACnK,CAAC,KAAK,CAAC,GAAG,CAAC;IACZ,GAAG,uBAAuB;CAC3B,CAAC,CAAC;AAEH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,MAAM,GAAG,IAAI;QACnB,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QACtB,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;QAEjC,OAAO,KAAK,CAAC;IACf,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxD,IACE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,UAAU,CAAC,MAAM,GAAG,CAAC;QACrB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAE5B,OAAO,KAAK,CAAC;IACf,IAAI,CAAC;QACH,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,mEAAmE;IAChG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,+CAA+C;IACjD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;IACrF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAAE,OAAO,IAAI,CAAC;IACpF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACrD,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AA+CD,MAAM,QAAQ,GAAG,kDAAkD,CAAC;AACpE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;AACjG,MAAM,MAAM,GAAG,oCAAoC,CAAC;AAEpD,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ;aACtB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;aACvB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;aAClB,WAAW,EAAE,CAAC;QACjB,IACE,GAAG,CAAC,QAAQ,KAAK,QAAQ;YACzB,GAAG,CAAC,QAAQ;YACZ,GAAG,CAAC,QAAQ;YACZ,GAAG,CAAC,MAAM;YACV,GAAG,CAAC,IAAI;YACR,IAAI,KAAK,WAAW;YACpB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC3B,IAAI,KAAK,SAAS;YAClB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YACvB,IAAI,KAAK,IAAI;YACb,IAAI,KAAK,KAAK;YACd,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;YAEnC,OAAO,kFAAkF,CAAC;QAC5F,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,6CAA6C,CAAC;IACvD,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,OAAe,EACf,SAAuE,kBAAkB;IAEzF,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa;IAC5C,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5B,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,kBAAkB,CAAC,QAA+B;IACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;IACjE,MAAM,GAAG,GAAG,CAAC,GAAW,EAAU,EAAE;QAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzF,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,SAA2C,EAAE,EAAU,EAAE;QACpF,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;gBAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACzF,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;gBAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3F,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,IAAI,KAAK;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrF,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;YACvC,KAAK,MAAM,KAAK,IAAI,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;gBAC9E,IAAI,KAAK;oBAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC5D,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,UAAkB,EAAE,IAAY,EAAE,KAAa,EAAiB,EAAE;QAChF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC,CAAC;IACF,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACtE,OAAO,KAAK,CAAC,UAAU,EAAE;YACvB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpD,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IACD,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,EACJ,KAAK,EACL,MAAM,EACN,WAAW,EACX,IAAI,EAAE,QAAQ,EACd,WAAW,EACX,UAAU,GACX,GAAG,QAAQ,CAAC,iBAAiB,CAAC;QAC/B,IACE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YACnB,CAAC,QAAQ;YACT,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;YACxB,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC;YACrC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAElC,OAAO,IAAI,CAAC;QACd,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,WAAW,IAAI,UAAU,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACzD,IACE,CAAC,MAAM;gBACP,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;gBACpB,CAAC,qCAAqC,CAAC,IAAI,CAAC,WAAW,CAAC;gBAExD,OAAO,IAAI,CAAC;YACd,OAAO,KAAK,CAAC,QAAQ,MAAM,EAAE,EAAE;gBAC7B,KAAK;gBACL,SAAS,EAAE,WAAW;gBACtB,cAAc,EAAE,QAAQ;gBACxB,YAAY,EAAE,GAAG;gBACjB,YAAY,EAAE,QAAQ;aACvB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC;YACnF,OAAO,IAAI,CAAC;QACd,OAAO,KAAK,CAAC,OAAO,KAAK,EAAE,EAAE;YAC3B,KAAK,EAAE,UAAU;YACjB,GAAG,EAAE,UAAU;YACf,WAAW,EAAE,KAAK;YAClB,QAAQ;YACR,UAAU,EAAE,WAAW,IAAI,EAAE;YAC7B,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC5C,CAAC,CAAC;IACL,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,IAAI,GAAG;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,YAAY,GAAG,MAAM,CACzB,kEAAkE,EAClE,KAAK,EACL,OAAO,CACR,CAAC;IACF,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,sEAAsE;QACtE,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QACnD,IAAI,GAAG,KAAK,MAAM;YAChB,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,OAAO,KAAK,CAAC,YAAY,EAAE;YACzB,KAAK,EAAE,GAAG;YACV,GAAG,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;YACzC,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC;YAC3B,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,qBAAqB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACnE,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/F,OAAO,KAAK,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,IAAI,GACR,MAAM,CAAC,mBAAmB,EAAE,MAAM,EAAE,IAAI,CAAC;QACzC,MAAM,CAAC,oCAAoC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjE,IAAI,IAAI;QAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,QAAQ,GACZ,MAAM,CAAC,uBAAuB,EAAE,UAAU,EAAE,QAAQ,CAAC;QACrD,MAAM,CAAC,wCAAwC,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACzE,IAAI,QAAQ,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;QAC/C,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3D,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,2BAA2B,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACxE,IAAI,WAAW;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,uCAAuC,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACnF,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtF,MAAM,OAAO,GAAG,MAAM,CAAC,sBAAsB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAChE,IAAI,OAAO,IAAI,OAAO,KAAK,gBAAgB;QACzC,OAAO,KAAK,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,MAAM,CAAC,4BAA4B,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1E,IAAI,WAAW;QACb,OAAO,KAAK,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACxF,IAAI,IAAI,KAAK,iBAAiB;QAAE,OAAO,KAAK,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,MAAM,CAAC,sBAAsB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAChE,IAAI,OAAO;QAAE,OAAO,KAAK,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;QACnC,MAAM,eAAe,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/C,OAAO,SAAS,IAAI,eAAe,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;YAC3F,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;YACjD,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC;QACtC,OAAO,KAAK,CAAC,MAAM,EAAE;YACnB,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,EAAE;YAC/B,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE;YAC3B,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE;YAC3B,IAAI,EAAE,SAAS,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC;YACjE,CAAC,EAAE,SAAS,EAAE,MAAM,IAAI,EAAE;YAC1B,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,KAAK,UAAU;QACrB,OAAO,KAAK,CAAC,SAAS,EAAE;YACtB,aAAa,EAAE,gBAAgB,CAAC,MAAM,CACpC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,UAAU,CACvD,CAAC,IAAI,CAAC,GAAG,CAAC;YACX,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QACtE,OAAO,KAAK,CAAC,KAAK,EAAE;YAClB,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;YACjB,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,OAAO;YAChC,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;IACL,CAAC;IACD,IACE,IAAI,KAAK,UAAU;QACnB,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,KAAK,KAAK,CAAC;YACnD,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,KAAK,KAAK,CAAC;YAC1D,GAAG,CAAC,cAAc,CAAC;YACnB,GAAG,CAAC,iBAAiB,CAAC,KAAK,GAAG,CAAC;QAEjC,OAAO,IAAI,CAAC;IACd,MAAM,WAAW,GAAqC;QACpD,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE,SAAS;KACtB,CAAC;IACF,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,qBAAqB,CACnC,QAA4B,EAC5B,gBAAyB;IAEzB,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE;QAAE,OAAO,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,IAAI,KAAK;QAAE,OAAO,WAAW,CAAC,yBAAyB,KAAK,EAAE,EAAE,iBAAiB,CAAC,CAAC;IACnF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,IAAI,SAAwB,CAAC;IAC7B,IAAI,WAAW,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,QAAQ,CAAC,SAAS,CAAC,kBAAkB;YACvC,OAAO,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC5D,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC9C,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,KAAK,GAAG;gBACjD,OAAO,WAAW,CAAC,uEAAuE,CAAC,CAAC;YAC9F,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,KAAK,GAAG;gBACnD,OAAO,WAAW,CAAC,qDAAqD,CAAC,CAAC;QAC9E,CAAC;QACD,SAAS,GAAG,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,OAAO,IAAI,QAAQ;QAAE,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;SACtD,CAAC;QACJ,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACvC,IACE,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;gBAC/B,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;gBACnC,QAAQ,CAAC,MAAM;gBACf,QAAQ,CAAC,QAAQ;gBACjB,QAAQ,CAAC,QAAQ;gBAEjB,OAAO,WAAW,CAChB,gEAAgE,EAChE,cAAc,CACf,CAAC;YACJ,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,WAAW,CAAC,yCAAyC,EAAE,cAAc,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,UAAU,GACd,WAAW,IAAI,QAAQ;YACvB,oDAAoD,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/D,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;QAClC,MAAM,cAAc,GAClB,WAAW,IAAI,QAAQ;YACvB,4DAA4D,CAAC,IAAI,CAAC,IAAI,CAAC;YACvE,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;QAClC,MAAM,IAAI,GAAG,UAAU;YACrB,CAAC,CAAC,uBAAuB;YACzB,CAAC,CAAC,cAAc;gBACd,CAAC,CAAC,2BAA2B;gBAC7B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;oBACjC,CAAC,CAAC,mBAAmB;oBACrB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;wBACrB,CAAC,CAAC,qBAAqB;wBACvB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;4BACtD,CAAC,CAAC,iBAAiB;4BACnB,CAAC,CAAC,IAAI,KAAK,kBAAkB;gCAC3B,CAAC,CAAC,sBAAsB;gCACxB,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,aAAa;oCAC9C,CAAC,CAAC,kCAAkC;oCACpC,CAAC,CAAC,IAAI,KAAK,MAAM;wCACf,CAAC,CAAC,gBAAgB;wCAClB,CAAC,CAAC,IAAI,KAAK,UAAU;4CACnB,CAAC,CAAC,qBAAqB;4CACvB,CAAC,CAAC,IAAI,KAAK,UAAU;gDACnB,CAAC,CAAC,sBAAsB;gDACxB,CAAC,CAAC,IAAI,KAAK,gBAAgB;oDACzB,CAAC,CAAC,2BAA2B;oDAC7B,CAAC,CAAC,IAAI,KAAK,mBAAmB;wDAC5B,CAAC,CAAC,aAAa;wDACf,CAAC,CAAC,aAAa,CAAC;QACxC,OAAO,WAAW,CAAC,yBAAyB,IAAI,oCAAoC,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;QAC5B,OAAO,WAAW,CAAC,+CAA+C,EAAE,cAAc,CAAC,CAAC;IACtF,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,OAAO,CAAC;YACjE,OAAO,WAAW,CAAC,wDAAwD,EAAE,cAAc,CAAC,CAAC;QAC/F,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IACD,MAAM,KAAK,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC9D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACxD,CAAC;AAYD,4EAA4E;AAC5E,MAAM,UAAU,qBAAqB,CACnC,GAAW,EACX,UAAkB,EAClB,UAAgC;IAEhC,IAAI,QAAa,CAAC;IAClB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;IACnF,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACzE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAChE,IAAI,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,GAAG;QACpF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC;IACtF,MAAM,QAAQ,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACzE,IACE,CAAC,QAAQ;QACT,CAAC,UAAU,CAAC,MAAM;QAClB,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;QAClC,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAE9B,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,4EAA4E;SACtF,CAAC;IACJ,MAAM,QAAQ,GAAG,qBAAqB,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC7E,OAAO,QAAQ,CAAC,MAAM,KAAK,WAAW;QACpC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE;QAC/C,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAa;IAC9C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,IACE,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;YACvC,GAAG,CAAC,QAAQ;YACZ,GAAG,CAAC,QAAQ;YACZ,GAAG,CAAC,MAAM;YACV,GAAG,CAAC,IAAI;YAER,OAAO,IAAI,CAAC;QACd,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"view-links.js","sourceRoot":"","sources":["../../src/surfaces/view-links.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /** Persistent display choices. Contexts declare fields; platform adapters own navigation. */
2
+ export type ViewStateHistory = 'push' | 'replace';
3
+ export interface ViewStateField<T> {
4
+ readonly key: string;
5
+ read(params: URLSearchParams): T;
6
+ write(params: URLSearchParams, value: T): void;
7
+ }
8
+ export interface ViewStateValues {
9
+ get<T>(field: ViewStateField<T>): T;
10
+ set<T>(field: ViewStateField<T>, value: NoInfer<T>): void;
11
+ }
12
+ export interface ViewStateAdapter {
13
+ read(): URLSearchParams;
14
+ write(params: URLSearchParams, history: ViewStateHistory): void;
15
+ subscribe(listener: () => void): () => void;
16
+ }
17
+ export interface ViewStateContext {
18
+ get<T>(field: ViewStateField<T>): T;
19
+ set<T>(field: ViewStateField<T>, value: NoInfer<T>, history?: ViewStateHistory): void;
20
+ update(edit: (values: ViewStateValues) => void, history?: ViewStateHistory): void;
21
+ snapshot(): string;
22
+ subscribe(listener: () => void): () => void;
23
+ }
24
+ export declare function viewStateParams(source: URLSearchParams, edit: (values: ViewStateValues) => void): URLSearchParams;
25
+ export declare function createViewStateContext(adapter: ViewStateAdapter): ViewStateContext;
26
+ export declare function viewTextField(key: string, defaultValue?: string): ViewStateField<string>;
27
+ export declare function viewChoiceField<T extends string>(key: string, defaultValue: T, choices: readonly T[]): ViewStateField<T>;
28
+ export declare function viewListField(key: string, defaultValue?: readonly string[], encoding?: 'repeat' | 'csv'): ViewStateField<readonly string[]>;
29
+ /** A compact collection contains only toggles that differ from their context's defaults. */
30
+ export declare function viewToggleField(key: string, id: string, defaultValue: boolean): ViewStateField<boolean>;
31
+ /** Router adapters use the same repeated-value representation as browser query strings. */
32
+ export declare function viewStateSearchParams(values: Readonly<Record<string, string | readonly string[] | undefined>>): URLSearchParams;
33
+ /** Undefined entries remove old route parameters when a configured default is restored. */
34
+ export declare function viewStateRoutePatch(before: URLSearchParams, next: URLSearchParams): Record<string, string | string[] | undefined>;
35
+ export declare function viewNullableTextField(key: string): ViewStateField<string | null>;
36
+ export declare function viewIntegerField(key: string, defaultValue?: number): ViewStateField<number>;
37
+ /** Explicit per-entry overrides, such as opened/closed folds whose default depends on data. */
38
+ export declare function viewToggleMapField(key: string): ViewStateField<Readonly<Record<string, boolean>>>;
39
+ /** A status-derived default may change; an explicit disclosure choice must survive it. */
40
+ export declare function viewToggleOverrideField(key: string, id: string, defaultValue: boolean): ViewStateField<boolean>;
41
+ /** Display parameters carried across sibling workspace tabs; no action or authority inputs. */
42
+ export declare const VIEW_STATE_PARAMETERS: ReadonlySet<string>;
43
+ export declare function selectedViewStateParams(params: Readonly<Record<string, string | readonly string[] | undefined>>): Record<string, string | string[]>;
44
+ /** An explicit new selection has its own index; reloading the same selection keeps it. */
45
+ export declare function viewScopedIntegerField(key: string, scopeKey: string, scope: string, defaultValue?: number): ViewStateField<number>;
46
+ /** Explicit destination selectors win; current display options survive narrowed selections. */
47
+ export declare function mergeViewStateParams<T extends object>(params: Readonly<Record<string, string | readonly string[] | undefined>>, destination: T): {
48
+ [x: string]: string | string[];
49
+ } & T;
50
+ //# sourceMappingURL=view-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-state.d.ts","sourceRoot":"","sources":["../../src/surfaces/view-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ export function viewStateParams(source, edit) {
2
+ const params = new URLSearchParams(source);
3
+ edit({
4
+ get: (field) => field.read(params),
5
+ set: (field, value) => field.write(params, value),
6
+ });
7
+ return params;
8
+ }
9
+ export function createViewStateContext(adapter) {
10
+ const update = (edit, history = 'push') => {
11
+ const before = adapter.read();
12
+ const next = viewStateParams(before, edit);
13
+ if (before.toString() !== next.toString())
14
+ adapter.write(next, history);
15
+ };
16
+ return {
17
+ get: (field) => field.read(adapter.read()),
18
+ set: (field, value, history) => update((values) => values.set(field, value), history),
19
+ update,
20
+ snapshot: () => adapter.read().toString(),
21
+ subscribe: (listener) => adapter.subscribe(listener),
22
+ };
23
+ }
24
+ export function viewTextField(key, defaultValue = '') {
25
+ return {
26
+ key,
27
+ read: (params) => params.get(key) ?? defaultValue,
28
+ write: (params, value) => {
29
+ if (value === defaultValue)
30
+ params.delete(key);
31
+ else
32
+ params.set(key, value);
33
+ },
34
+ };
35
+ }
36
+ export function viewChoiceField(key, defaultValue, choices) {
37
+ return {
38
+ ...viewTextField(key, defaultValue),
39
+ read: (params) => choices.find((choice) => choice === params.get(key)) ?? defaultValue,
40
+ };
41
+ }
42
+ export function viewListField(key, defaultValue = [], encoding = 'repeat') {
43
+ return {
44
+ key,
45
+ read: (params) => {
46
+ if (!params.has(key))
47
+ return [...defaultValue];
48
+ const values = params.getAll(key);
49
+ return (encoding === 'csv' ? values.flatMap((value) => value.split(',')) : values).filter((value) => value !== '');
50
+ },
51
+ write: (params, values) => {
52
+ params.delete(key);
53
+ if (values.length === defaultValue.length &&
54
+ values.every((value, i) => value === defaultValue[i]))
55
+ return;
56
+ if (!values.length)
57
+ params.set(key, '');
58
+ else if (encoding === 'csv')
59
+ params.set(key, values.join(','));
60
+ else
61
+ for (const value of values)
62
+ params.append(key, value);
63
+ },
64
+ };
65
+ }
66
+ /** A compact collection contains only toggles that differ from their context's defaults. */
67
+ export function viewToggleField(key, id, defaultValue) {
68
+ const entries = viewListField(key, [], 'csv');
69
+ const entryId = id.replaceAll('%', '%25').replaceAll(',', '%2C');
70
+ return {
71
+ key,
72
+ read: (params) => {
73
+ for (const value of entries.read(params).slice().reverse()) {
74
+ if (value === entryId)
75
+ return true;
76
+ if (value === `!${entryId}`)
77
+ return false;
78
+ }
79
+ return defaultValue;
80
+ },
81
+ write: (params, value) => {
82
+ const values = entries
83
+ .read(params)
84
+ .filter((entry) => entry !== entryId && entry !== `!${entryId}`);
85
+ if (value !== defaultValue)
86
+ values.push(value ? entryId : `!${entryId}`);
87
+ entries.write(params, [...new Set(values)].sort());
88
+ },
89
+ };
90
+ }
91
+ /** Router adapters use the same repeated-value representation as browser query strings. */
92
+ export function viewStateSearchParams(values) {
93
+ const params = new URLSearchParams();
94
+ for (const [key, value] of Object.entries(values)) {
95
+ if (typeof value === 'string')
96
+ params.append(key, value);
97
+ else
98
+ for (const item of value ?? [])
99
+ params.append(key, item);
100
+ }
101
+ return params;
102
+ }
103
+ /** Undefined entries remove old route parameters when a configured default is restored. */
104
+ export function viewStateRoutePatch(before, next) {
105
+ const patch = {};
106
+ for (const key of new Set([...before.keys(), ...next.keys()])) {
107
+ const values = next.getAll(key);
108
+ patch[key] = values.length > 1 ? values : values[0];
109
+ }
110
+ return patch;
111
+ }
112
+ export function viewNullableTextField(key) {
113
+ const text = viewTextField(key);
114
+ return {
115
+ key,
116
+ read: (params) => text.read(params) || null,
117
+ write: (params, value) => text.write(params, value ?? ''),
118
+ };
119
+ }
120
+ export function viewIntegerField(key, defaultValue = 0) {
121
+ const text = viewTextField(key, String(defaultValue));
122
+ return {
123
+ key,
124
+ read: (params) => {
125
+ const value = Number(text.read(params));
126
+ return Number.isSafeInteger(value) && value >= 0 ? value : defaultValue;
127
+ },
128
+ write: (params, value) => text.write(params, String(value)),
129
+ };
130
+ }
131
+ /** Explicit per-entry overrides, such as opened/closed folds whose default depends on data. */
132
+ export function viewToggleMapField(key) {
133
+ const list = viewListField(key, [], 'csv');
134
+ return {
135
+ key,
136
+ read: (params) => Object.fromEntries(list
137
+ .read(params)
138
+ .map((entry) => entry.startsWith('!')
139
+ ? [entry.slice(1).replaceAll('%2C', ',').replaceAll('%25', '%'), false]
140
+ : [entry.replaceAll('%2C', ',').replaceAll('%25', '%'), true])),
141
+ write: (params, values) => list.write(params, Object.entries(values)
142
+ .map(([id, value]) => value
143
+ ? id.replaceAll('%', '%25').replaceAll(',', '%2C')
144
+ : `!${id.replaceAll('%', '%25').replaceAll(',', '%2C')}`)
145
+ .sort()),
146
+ };
147
+ }
148
+ /** A status-derived default may change; an explicit disclosure choice must survive it. */
149
+ export function viewToggleOverrideField(key, id, defaultValue) {
150
+ const field = viewToggleMapField(key);
151
+ return {
152
+ key,
153
+ read: (params) => field.read(params)[id] ?? defaultValue,
154
+ write: (params, value) => field.write(params, { ...field.read(params), [id]: value }),
155
+ };
156
+ }
157
+ /** Display parameters carried across sibling workspace tabs; no action or authority inputs. */
158
+ export const VIEW_STATE_PARAMETERS = new Set('panels round step section runsTab flow lane sort q tag workers treeOpen branchFilesView branchFilesClosed changesView changesClosed problemSource commentFilter commentAuthor commentThread logFilter compareStep workerSession expandedSlot messages turnFiles rawClaims prReviews prMonitors folds terminalView reviewReport stage delivery diffMode devicePanes deviceLayout sidebarWidth diffFilter diffQuery diffPath mobileDiffMode claims evidenceFilter compareIndex mediaIndex mediaSource prFilter subtasks mediaGroups familyCompareIndex assessmentConsumer finetuneProject flowNode nativeFilesTab nativeDirectory nativeFile nativeFileView projects machines'.split(' '));
159
+ export function selectedViewStateParams(params) {
160
+ return Object.fromEntries(Object.entries(params).flatMap(([key, value]) => VIEW_STATE_PARAMETERS.has(key) && value !== undefined
161
+ ? [[key, typeof value === 'string' ? value : [...value]]]
162
+ : []));
163
+ }
164
+ /** An explicit new selection has its own index; reloading the same selection keeps it. */
165
+ export function viewScopedIntegerField(key, scopeKey, scope, defaultValue = 0) {
166
+ const index = viewIntegerField(key, defaultValue);
167
+ const owner = viewTextField(scopeKey);
168
+ return {
169
+ key,
170
+ read: (params) => (owner.read(params) === scope ? index.read(params) : defaultValue),
171
+ write: (params, value) => {
172
+ index.write(params, value);
173
+ owner.write(params, value === defaultValue ? '' : scope);
174
+ },
175
+ };
176
+ }
177
+ /** Explicit destination selectors win; current display options survive narrowed selections. */
178
+ export function mergeViewStateParams(params, destination) {
179
+ return { ...selectedViewStateParams(params), ...destination };
180
+ }
181
+ //# sourceMappingURL=view-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-state.js","sourceRoot":"","sources":["../../src/surfaces/view-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /** One retry/liveness policy; platforms supply sockets and lifecycle/network wake events. */
2
+ export type GatewayRecoveryState = 'connecting' | 'connected' | 'disconnected';
3
+ export interface GatewayRecoveryOptions {
4
+ enabled(): boolean;
5
+ connect(): void;
6
+ retire(): void;
7
+ canProbe(): boolean;
8
+ ping(): Promise<unknown>;
9
+ onResponse?(latencyMs: number, completedAt: number): void;
10
+ }
11
+ export declare const GATEWAY_HEARTBEAT_MS = 30000;
12
+ export declare const GATEWAY_CONNECT_DEADLINE_MS = 20000;
13
+ export declare const GATEWAY_PING_DEADLINE_MS = 5000;
14
+ /** Network and RPC timeouts never revoke a saved login or its cached observations. */
15
+ export declare function gatewayAuthenticationRefused(error: unknown): boolean;
16
+ export declare const GATEWAY_OFFLINE_LABEL = "Gateway offline \u00B7 Reconnecting\u2026";
17
+ export declare function gatewayOfflineLabel(state: string, enabled: boolean): string | undefined;
18
+ export declare class GatewayRecovery {
19
+ private readonly options;
20
+ private state?;
21
+ private timer?;
22
+ private delay;
23
+ private generation;
24
+ private probing;
25
+ private disposed;
26
+ private lastWake;
27
+ constructor(options: GatewayRecoveryOptions);
28
+ update(state: GatewayRecoveryState): void;
29
+ /** Focus/visibility/network events bypass the wait, sharing one attempt or ping. */
30
+ wake(): void;
31
+ reset(): void;
32
+ dispose(): void;
33
+ private enabled;
34
+ private probe;
35
+ private fail;
36
+ private schedule;
37
+ private cancel;
38
+ }
39
+ //# sourceMappingURL=gateway-recovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-recovery.d.ts","sourceRoot":"","sources":["../../src/transport/gateway-recovery.ts"],"names":[],"mappings":"AAEA,6FAA6F;AAC7F,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,CAAC;AAE/E,MAAM,WAAW,sBAAsB;IACrC,OAAO,IAAI,OAAO,CAAC;IACnB,OAAO,IAAI,IAAI,CAAC;IAChB,MAAM,IAAI,IAAI,CAAC;IACf,QAAQ,IAAI,OAAO,CAAC;IACpB,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACzB,UAAU,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3D;AAED,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAC3C,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAClD,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAE9C,sFAAsF;AACtF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQpE;AAED,eAAO,MAAM,qBAAqB,8CAAoC,CAAC;AAEvE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAEvF;AAED,qBAAa,eAAe;IASd,OAAO,CAAC,QAAQ,CAAC,OAAO;IARpC,OAAO,CAAC,KAAK,CAAC,CAAuB;IACrC,OAAO,CAAC,KAAK,CAAC,CAAgC;IAC9C,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAa;gBAEA,OAAO,EAAE,sBAAsB;IAE5D,MAAM,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI;IAoBzC,oFAAoF;IACpF,IAAI,IAAI,IAAI;IAYZ,KAAK,IAAI,IAAI;IAOb,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,KAAK;IA6Bb,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,MAAM;CAMf"}