@farmslot/protocol 0.76.0 → 0.77.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 (158) hide show
  1. package/CHANGELOG.md +22 -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 +2 -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/prefetch.d.ts +13 -1
  14. package/dist/client-cache/prefetch.d.ts.map +1 -1
  15. package/dist/client-cache/prefetch.js +88 -26
  16. package/dist/client-cache/prefetch.js.map +1 -1
  17. package/dist/client-cache/read-stored.d.ts +5 -1
  18. package/dist/client-cache/read-stored.d.ts.map +1 -1
  19. package/dist/client-cache/read-stored.js +64 -1
  20. package/dist/client-cache/read-stored.js.map +1 -1
  21. package/dist/client-cache/registry.d.ts +29 -1
  22. package/dist/client-cache/registry.d.ts.map +1 -1
  23. package/dist/client-cache/registry.js +55 -4
  24. package/dist/client-cache/registry.js.map +1 -1
  25. package/dist/client-cache/store.d.ts +2 -0
  26. package/dist/client-cache/store.d.ts.map +1 -1
  27. package/dist/client-cache/store.js +9 -1
  28. package/dist/client-cache/store.js.map +1 -1
  29. package/dist/client-cache/transport.d.ts +3 -1
  30. package/dist/client-cache/transport.d.ts.map +1 -1
  31. package/dist/client-cache/transport.js +2 -1
  32. package/dist/client-cache/transport.js.map +1 -1
  33. package/dist/client-cache/types.d.ts +8 -1
  34. package/dist/client-cache/types.d.ts.map +1 -1
  35. package/dist/contracts/agents.d.ts +5 -2
  36. package/dist/contracts/agents.d.ts.map +1 -1
  37. package/dist/contracts/agents.js.map +1 -1
  38. package/dist/contracts/config.d.ts +3 -0
  39. package/dist/contracts/config.d.ts.map +1 -1
  40. package/dist/contracts/config.js +5 -1
  41. package/dist/contracts/config.js.map +1 -1
  42. package/dist/contracts/family.d.ts +55 -3
  43. package/dist/contracts/family.d.ts.map +1 -1
  44. package/dist/contracts/family.js.map +1 -1
  45. package/dist/contracts/review-workspace.d.ts +23 -1
  46. package/dist/contracts/review-workspace.d.ts.map +1 -1
  47. package/dist/contracts/review-workspace.js +3 -0
  48. package/dist/contracts/review-workspace.js.map +1 -1
  49. package/dist/contracts/reviews.d.ts +1 -0
  50. package/dist/contracts/reviews.d.ts.map +1 -1
  51. package/dist/contracts/reviews.js.map +1 -1
  52. package/dist/contracts/runs.d.ts +45 -5
  53. package/dist/contracts/runs.d.ts.map +1 -1
  54. package/dist/contracts/runs.js.map +1 -1
  55. package/dist/contracts/runtime-capabilities.d.ts +9 -0
  56. package/dist/contracts/runtime-capabilities.d.ts.map +1 -1
  57. package/dist/contracts/runtime-capabilities.js.map +1 -1
  58. package/dist/contracts/slot-recovery.d.ts +2 -2
  59. package/dist/contracts/slot-recovery.d.ts.map +1 -1
  60. package/dist/contracts/slot-recovery.js +5 -3
  61. package/dist/contracts/slot-recovery.js.map +1 -1
  62. package/dist/index.d.ts +3 -0
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +3 -0
  65. package/dist/index.js.map +1 -1
  66. package/dist/performance/client.d.ts +18 -0
  67. package/dist/performance/client.d.ts.map +1 -0
  68. package/dist/performance/client.js +66 -0
  69. package/dist/performance/client.js.map +1 -0
  70. package/dist/performance/histogram.d.ts +5 -0
  71. package/dist/performance/histogram.d.ts.map +1 -0
  72. package/dist/performance/histogram.js +38 -0
  73. package/dist/performance/histogram.js.map +1 -0
  74. package/dist/performance/index.d.ts +10 -0
  75. package/dist/performance/index.d.ts.map +1 -0
  76. package/dist/performance/index.js +10 -0
  77. package/dist/performance/index.js.map +1 -0
  78. package/dist/performance/paint.d.ts +3 -0
  79. package/dist/performance/paint.d.ts.map +1 -0
  80. package/dist/performance/paint.js +14 -0
  81. package/dist/performance/paint.js.map +1 -0
  82. package/dist/performance/prometheus.d.ts +3 -0
  83. package/dist/performance/prometheus.d.ts.map +1 -0
  84. package/dist/performance/prometheus.js +53 -0
  85. package/dist/performance/prometheus.js.map +1 -0
  86. package/dist/performance/ranking.d.ts +26 -0
  87. package/dist/performance/ranking.d.ts.map +1 -0
  88. package/dist/performance/ranking.js +92 -0
  89. package/dist/performance/ranking.js.map +1 -0
  90. package/dist/performance/recorder.d.ts +43 -0
  91. package/dist/performance/recorder.d.ts.map +1 -0
  92. package/dist/performance/recorder.js +352 -0
  93. package/dist/performance/recorder.js.map +1 -0
  94. package/dist/performance/types.d.ts +93 -0
  95. package/dist/performance/types.d.ts.map +1 -0
  96. package/dist/performance/types.js +40 -0
  97. package/dist/performance/types.js.map +1 -0
  98. package/dist/performance/validation.d.ts +3 -0
  99. package/dist/performance/validation.d.ts.map +1 -0
  100. package/dist/performance/validation.js +55 -0
  101. package/dist/performance/validation.js.map +1 -0
  102. package/dist/recipes/step-io.d.ts +2 -0
  103. package/dist/recipes/step-io.d.ts.map +1 -1
  104. package/dist/recipes/step-io.js.map +1 -1
  105. package/dist/rpc/auth.d.ts +1 -0
  106. package/dist/rpc/auth.d.ts.map +1 -1
  107. package/dist/rpc/auth.js.map +1 -1
  108. package/dist/rpc/fs.d.ts +2 -0
  109. package/dist/rpc/fs.d.ts.map +1 -1
  110. package/dist/rpc/fs.js +2 -0
  111. package/dist/rpc/fs.js.map +1 -1
  112. package/dist/rpc/index.d.ts +1 -0
  113. package/dist/rpc/index.d.ts.map +1 -1
  114. package/dist/rpc/index.js +1 -0
  115. package/dist/rpc/index.js.map +1 -1
  116. package/dist/rpc/performance.d.ts +6 -0
  117. package/dist/rpc/performance.d.ts.map +1 -0
  118. package/dist/rpc/performance.js +2 -0
  119. package/dist/rpc/performance.js.map +1 -0
  120. package/dist/rpc/registry.d.ts +2 -0
  121. package/dist/rpc/registry.d.ts.map +1 -1
  122. package/dist/rpc/registry.js +2 -0
  123. package/dist/rpc/registry.js.map +1 -1
  124. package/dist/rpc/run.d.ts +4 -0
  125. package/dist/rpc/run.d.ts.map +1 -1
  126. package/dist/rpc/runtime-capabilities.d.ts +6 -0
  127. package/dist/rpc/runtime-capabilities.d.ts.map +1 -1
  128. package/dist/rpc/runtime-capabilities.js.map +1 -1
  129. package/dist/rpc/slot.d.ts +2 -0
  130. package/dist/rpc/slot.d.ts.map +1 -1
  131. package/dist/rpc/tmux.d.ts +1 -1
  132. package/dist/rpc/tmux.d.ts.map +1 -1
  133. package/dist/runs/list-trim.d.ts.map +1 -1
  134. package/dist/runs/list-trim.js +1 -19
  135. package/dist/runs/list-trim.js.map +1 -1
  136. package/dist/surfaces/run-view-state.d.ts +22 -0
  137. package/dist/surfaces/run-view-state.d.ts.map +1 -0
  138. package/dist/surfaces/run-view-state.js +26 -0
  139. package/dist/surfaces/run-view-state.js.map +1 -0
  140. package/dist/surfaces/view-links.d.ts +1 -1
  141. package/dist/surfaces/view-links.d.ts.map +1 -1
  142. package/dist/surfaces/view-links.js +144 -16
  143. package/dist/surfaces/view-links.js.map +1 -1
  144. package/dist/surfaces/view-state.d.ts +50 -0
  145. package/dist/surfaces/view-state.d.ts.map +1 -0
  146. package/dist/surfaces/view-state.js +181 -0
  147. package/dist/surfaces/view-state.js.map +1 -0
  148. package/dist/transport/gateway-recovery.d.ts +39 -0
  149. package/dist/transport/gateway-recovery.d.ts.map +1 -0
  150. package/dist/transport/gateway-recovery.js +134 -0
  151. package/dist/transport/gateway-recovery.js.map +1 -0
  152. package/dist/utf8-byte-length.d.ts +2 -0
  153. package/dist/utf8-byte-length.d.ts.map +1 -0
  154. package/dist/utf8-byte-length.js +22 -0
  155. package/dist/utf8-byte-length.js.map +1 -0
  156. package/dist/version.d.ts +1 -1
  157. package/dist/version.js +1 -1
  158. package/package.json +6 -1
@@ -0,0 +1,22 @@
1
+ /** Shared logical run panels, before a person selects URL overrides. */
2
+ export declare const RUN_DETAIL_PANEL_DEFAULTS: {
3
+ readonly 'run-step-progress': true;
4
+ readonly 'run-review-history': false;
5
+ readonly 'run-artifacts': false;
6
+ readonly 'run-acceptance': true;
7
+ readonly 'run-results': true;
8
+ readonly 'run-sessions': false;
9
+ readonly 'run-posture': false;
10
+ readonly 'run-grade': false;
11
+ readonly 'run-transfers': false;
12
+ };
13
+ export type RunDetailPanelId = keyof typeof RUN_DETAIL_PANEL_DEFAULTS;
14
+ export declare const RUN_VIEW_FIELDS: {
15
+ panels: import("./view-state.js").ViewStateField<string>;
16
+ rounds: import("./view-state.js").ViewStateField<readonly string[]>;
17
+ };
18
+ export declare function runDetailPanelField(id: RunDetailPanelId): import("./view-state.js").ViewStateField<boolean>;
19
+ /** Evidence at the decision's recorded scope, without selecting a later recipe run. */
20
+ export declare const DECISION_EVIDENCE_RECIPE_RUN_PARAM = "decision-evidence";
21
+ export declare function acceptanceClaimField(id: string): import("./view-state.js").ViewStateField<boolean>;
22
+ //# sourceMappingURL=run-view-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-view-state.d.ts","sourceRoot":"","sources":["../../src/surfaces/run-view-state.ts"],"names":[],"mappings":"AAEA,wEAAwE;AACxE,eAAO,MAAM,yBAAyB;;;;;;;;;;CAU5B,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,yBAAyB,CAAC;AAEtE,eAAO,MAAM,eAAe;;;CAG3B,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,gBAAgB,qDAEvD;AAED,uFAAuF;AACvF,eAAO,MAAM,kCAAkC,sBAAsB,CAAC;AAEtE,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,qDAE9C"}
@@ -0,0 +1,26 @@
1
+ import { viewListField, viewTextField, viewToggleField } from './view-state.js';
2
+ /** Shared logical run panels, before a person selects URL overrides. */
3
+ export const RUN_DETAIL_PANEL_DEFAULTS = {
4
+ 'run-step-progress': true,
5
+ 'run-review-history': false,
6
+ 'run-artifacts': false,
7
+ 'run-acceptance': true,
8
+ 'run-results': true,
9
+ 'run-sessions': false,
10
+ 'run-posture': false,
11
+ 'run-grade': false,
12
+ 'run-transfers': false,
13
+ };
14
+ export const RUN_VIEW_FIELDS = {
15
+ panels: viewTextField('panels'),
16
+ rounds: viewListField('round'),
17
+ };
18
+ export function runDetailPanelField(id) {
19
+ return viewToggleField(RUN_VIEW_FIELDS.panels.key, id, RUN_DETAIL_PANEL_DEFAULTS[id]);
20
+ }
21
+ /** Evidence at the decision's recorded scope, without selecting a later recipe run. */
22
+ export const DECISION_EVIDENCE_RECIPE_RUN_PARAM = 'decision-evidence';
23
+ export function acceptanceClaimField(id) {
24
+ return viewToggleField(RUN_VIEW_FIELDS.panels.key, `claim:${id}`, false);
25
+ }
26
+ //# sourceMappingURL=run-view-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-view-state.js","sourceRoot":"","sources":["../../src/surfaces/run-view-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEhF,wEAAwE;AACxE,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,mBAAmB,EAAE,IAAI;IACzB,oBAAoB,EAAE,KAAK;IAC3B,eAAe,EAAE,KAAK;IACtB,gBAAgB,EAAE,IAAI;IACtB,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,KAAK;IACrB,aAAa,EAAE,KAAK;IACpB,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,KAAK;CACd,CAAC;AAIX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC;IAC/B,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,EAAoB;IACtD,OAAO,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,uFAAuF;AACvF,MAAM,CAAC,MAAM,kCAAkC,GAAG,mBAAmB,CAAC;AAEtE,MAAM,UAAU,oBAAoB,CAAC,EAAU;IAC7C,OAAO,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;AAC3E,CAAC"}
@@ -50,7 +50,7 @@ export type SharedViewLink = {
50
50
  };
51
51
  export declare function commandCenterUrlError(value: string): string | null;
52
52
  /** One mapping for Companion generation and Command Center receipt. */
53
- export declare function resolveSharedViewLink(location: SharedViewLocation, commandCenterUrl?: string): SharedViewLink;
53
+ export declare function resolveSharedViewLink(location: SharedViewLocation, commandCenterUrl?: string, appScheme?: string): SharedViewLink;
54
54
  export interface SharedViewDeployment {
55
55
  commandCenterUrl?: string;
56
56
  gatewayUrls: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"view-links.d.ts","sourceRoot":"","sources":["../../src/surfaces/view-links.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view-links.d.ts","sourceRoot":"","sources":["../../src/surfaces/view-links.ts"],"names":[],"mappings":"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"}
@@ -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([
@@ -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,38 @@ 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
+ 'runId',
157
+ 'sessionId',
158
+ 'executionNodeId',
159
+ 'contextId',
160
+ ].includes(key))
161
+ continue;
162
+ for (const value of selected.getAll(key))
163
+ params.append(key, value);
142
164
  }
143
165
  return `#${name}${params.toString() ? `?${params}` : ''}`;
144
166
  };
@@ -299,29 +321,121 @@ function companionViewRoute(location) {
299
321
  };
300
322
  return collections[path] ? route(collections[path]) : null;
301
323
  }
324
+ function configuredNativeScheme(value) {
325
+ const scheme = value?.trim().replace(/:\/\/$/, '');
326
+ return scheme &&
327
+ /^[a-z][a-z0-9+.-]*$/i.test(scheme) &&
328
+ !/^(unknown|https?|wss?|javascript|data|file|blob|about)$/i.test(scheme)
329
+ ? scheme
330
+ : null;
331
+ }
332
+ /** Native links use existing Expo paths; virtual artifact selections open their real viewer. */
333
+ function nativeViewUrl(location, selection, scheme) {
334
+ const source = viewStateSearchParams(location.params);
335
+ const params = new URLSearchParams(selection);
336
+ const nativeSelectors = new Set([
337
+ 'ac',
338
+ 'evidenceDecision',
339
+ 'evidenceExecution',
340
+ 'path',
341
+ 'filter',
342
+ 'section',
343
+ ]);
344
+ for (const [key] of source)
345
+ if (!params.has(key) &&
346
+ !privateSelectors.has(key) &&
347
+ (VIEW_QUERY_PARAMETERS.has(key) || nativeSelectors.has(key)))
348
+ for (const entry of source.getAll(key))
349
+ params.append(key, entry);
350
+ params.delete('sharedView');
351
+ let pathname = location.pathname.replace(/^\/\(tabs\)/, '') || '/';
352
+ if (location.artifactSelection) {
353
+ const artifact = location.artifactSelection;
354
+ if (!viewId.test(artifact.runId) ||
355
+ !artifact.path ||
356
+ artifact.path.startsWith('/') ||
357
+ /[\\\u0000-\u001f]/.test(artifact.path) ||
358
+ /^[a-z][a-z0-9+.-]*:/i.test(artifact.path) ||
359
+ artifact.path.split('/').includes('..') ||
360
+ (artifact.traceIndex !== undefined &&
361
+ (!Number.isSafeInteger(artifact.traceIndex) || artifact.traceIndex < 0)))
362
+ return null;
363
+ pathname = `/evidence/${artifact.runId}`;
364
+ params.set('evidence', artifact.path);
365
+ if (artifact.criterionId)
366
+ params.set('ac', artifact.criterionId);
367
+ params.set('recipeRun', artifact.recipeRunId ?? DECISION_EVIDENCE_RECIPE_RUN_PARAM);
368
+ }
369
+ const worker = params.get('worker');
370
+ if (location.workerSelection && worker)
371
+ params.set('workerRef', encodeURIComponent(worker));
372
+ let complete = true;
373
+ pathname = pathname.replace(/\[([^\]]+)\]/g, (segment, key) => {
374
+ const value = source.get(key);
375
+ if (!value || !viewId.test(value)) {
376
+ complete = false;
377
+ return segment;
378
+ }
379
+ params.delete(key);
380
+ return encodeURIComponent(value);
381
+ });
382
+ 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);
383
+ return complete &&
384
+ supported &&
385
+ pathname
386
+ .split('/')
387
+ .filter(Boolean)
388
+ .every((part) => viewId.test(part))
389
+ ? `${scheme}://${pathname}${params.size ? `?${params}` : ''}`
390
+ : null;
391
+ }
302
392
  /** One mapping for Companion generation and Command Center receipt. */
303
- export function resolveSharedViewLink(location, commandCenterUrl) {
304
- if (!commandCenterUrl?.trim())
393
+ export function resolveSharedViewLink(location, commandCenterUrl, appScheme) {
394
+ const webUrl = commandCenterUrl?.trim();
395
+ const nativeScheme = !webUrl && 'companion' in location ? configuredNativeScheme(appScheme) : null;
396
+ if (!webUrl && !nativeScheme)
305
397
  return unavailable(noWebUrl, 'web-url-unset');
306
- const error = commandCenterUrlError(commandCenterUrl.trim());
398
+ const error = webUrl ? commandCenterUrlError(webUrl) : null;
307
399
  if (error)
308
400
  return unavailable(`Web link unavailable: ${error}`, 'invalid-web-url');
309
- const base = new URL(commandCenterUrl.trim());
401
+ const base = webUrl ? new URL(webUrl) : null;
310
402
  let candidate;
311
403
  if ('companion' in location) {
312
- if (location.companion.unavailableMessage)
404
+ if (location.companion.unavailableMessage && !nativeScheme)
313
405
  return unavailable(location.companion.unavailableMessage);
314
- if (location.companion.pathname === '/native') {
406
+ const companionPath = location.companion.pathname.replace(/^\/\(tabs\)/, '') || '/';
407
+ if (companionPath === '/native') {
315
408
  if (location.companion.params.workerManaged === '1')
316
409
  return unavailable('Web link unavailable: task conversations have no exact web route yet.');
317
410
  if (location.companion.params.sessionObserved !== '1')
318
411
  return unavailable('Web link unavailable: select a loaded conversation.');
319
412
  }
320
413
  candidate = companionViewRoute(location.companion);
414
+ if (nativeScheme) {
415
+ const native = location.companion;
416
+ if ((companionPath === '/native' || companionPath === '/terminal/worker') && !candidate)
417
+ return unavailable('This selection cannot be shared.', 'invalid-view');
418
+ const params = candidate && validViewRoute(candidate)
419
+ ? new URLSearchParams(candidate.split('?')[1] ?? '')
420
+ : new URLSearchParams();
421
+ const url = nativeViewUrl(native, params, nativeScheme);
422
+ if (!url)
423
+ return unavailable('This view cannot be shared.', 'invalid-view');
424
+ const target = new URL(url);
425
+ return {
426
+ status: 'available',
427
+ route: candidate
428
+ ? withoutSharedViewMarker(candidate)
429
+ : `${target.pathname}${target.search}`,
430
+ url,
431
+ };
432
+ }
321
433
  }
322
434
  else if ('route' in location)
323
435
  candidate = location.route;
324
436
  else {
437
+ if (!base)
438
+ return unavailable(noWebUrl, 'web-url-unset');
325
439
  try {
326
440
  const incoming = new URL(location.url);
327
441
  if (incoming.origin !== base.origin ||
@@ -377,11 +491,25 @@ export function resolveSharedViewLink(location, commandCenterUrl) {
377
491
  const params = new URLSearchParams(query);
378
492
  const seen = new Set();
379
493
  for (const [key] of params) {
380
- if (privateSelectors.has(key) || (seen.has(key) && key !== 'round'))
494
+ if (privateSelectors.has(key) ||
495
+ (seen.has(key) &&
496
+ ![
497
+ 'round',
498
+ 'treeOpen',
499
+ 'branchFilesClosed',
500
+ 'changesClosed',
501
+ 'messages',
502
+ 'turnFiles',
503
+ 'rawClaims',
504
+ 'devicePanes',
505
+ 'claims',
506
+ ].includes(key)))
381
507
  return unavailable('Web link unavailable: this selection cannot be shared.', 'invalid-view');
382
508
  seen.add(key);
383
509
  }
384
510
  const route = withoutSharedViewMarker(candidate);
511
+ if (!base)
512
+ return unavailable(noWebUrl, 'web-url-unset');
385
513
  params.set('sharedView', '1');
386
514
  base.hash = `${path}${params.toString() ? `?${params}` : ''}`;
387
515
  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":"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"}
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,OAAO,EAAE,kCAAkC,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE9F,+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;IAC1B,eAAe,CAAC,MAAM,CAAC,GAAG;IAC1B,GAAG,qBAAqB;CACzB,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,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YACtD,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrE,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvE,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,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC7B,IACE,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;gBACf;oBACE,UAAU;oBACV,UAAU;oBACV,OAAO;oBACP,WAAW;oBACX,KAAK;oBACL,QAAQ;oBACR,QAAQ;oBACR,OAAO;oBACP,QAAQ;oBACR,MAAM;oBACN,OAAO;oBACP,WAAW;oBACX,iBAAiB;oBACjB,WAAW;iBACZ,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAEf,SAAS;YACX,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtE,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,SAAS,sBAAsB,CAAC,KAAyB;IACvD,MAAM,MAAM,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACnD,OAAO,MAAM;QACX,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,CAAC,0DAA0D,CAAC,IAAI,CAAC,MAAM,CAAC;QACxE,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,gGAAgG;AAChG,SAAS,aAAa,CACpB,QAA+B,EAC/B,SAA0B,EAC1B,MAAc;IAEd,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;QAC9B,IAAI;QACJ,kBAAkB;QAClB,mBAAmB;QACnB,MAAM;QACN,QAAQ;QACR,SAAS;KACV,CAAC,CAAC;IACH,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM;QACxB,IACE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YAChB,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;YAC1B,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAE5D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5B,IAAI,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;IACnE,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,iBAAiB,CAAC;QAC5C,IACE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC5B,CAAC,QAAQ,CAAC,IAAI;YACd,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAC7B,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACvC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC1C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YACvC,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS;gBAChC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;YAE1E,OAAO,IAAI,CAAC;QACd,QAAQ,GAAG,aAAa,QAAQ,CAAC,KAAK,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,QAAQ,CAAC,WAAW;YAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,kCAAkC,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,QAAQ,CAAC,eAAe,IAAI,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5F,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,GAAW,EAAE,EAAE;QACpE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GACb,+VAA+V,CAAC,IAAI,CAClW,QAAQ,CACT,CAAC;IACJ,OAAO,QAAQ;QACb,SAAS;QACT,QAAQ;aACL,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,OAAO,CAAC;aACf,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC,GAAG,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7D,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,qBAAqB,CACnC,QAA4B,EAC5B,gBAAyB,EACzB,SAAkB;IAElB,MAAM,MAAM,GAAG,gBAAgB,EAAE,IAAI,EAAE,CAAC;IACxC,MAAM,YAAY,GAChB,CAAC,MAAM,IAAI,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY;QAAE,OAAO,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,IAAI,KAAK;QAAE,OAAO,WAAW,CAAC,yBAAyB,KAAK,EAAE,EAAE,iBAAiB,CAAC,CAAC;IACnF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,IAAI,SAAwB,CAAC;IAC7B,IAAI,WAAW,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,QAAQ,CAAC,SAAS,CAAC,kBAAkB,IAAI,CAAC,YAAY;YACxD,OAAO,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;QACpF,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,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;QACnD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC;YAClC,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,kBAAkB,CAAC,IAAI,CAAC,SAAS;gBACrF,OAAO,WAAW,CAAC,kCAAkC,EAAE,cAAc,CAAC,CAAC;YACzE,MAAM,MAAM,GACV,SAAS,IAAI,cAAc,CAAC,SAAS,CAAC;gBACpC,CAAC,CAAC,IAAI,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpD,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YACxD,IAAI,CAAC,GAAG;gBAAE,OAAO,WAAW,CAAC,6BAA6B,EAAE,cAAc,CAAC,CAAC;YAC5E,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;gBACL,MAAM,EAAE,WAAW;gBACnB,KAAK,EAAE,SAAS;oBACd,CAAC,CAAC,uBAAuB,CAAC,SAAS,CAAC;oBACpC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE;gBACxC,GAAG;aACJ,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,IAAI,QAAQ;QAAE,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;SACtD,CAAC;QACJ,IAAI,CAAC,IAAI;YAAE,OAAO,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACzD,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,IACE,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;YACzB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBACZ,CAAC;oBACC,OAAO;oBACP,UAAU;oBACV,mBAAmB;oBACnB,eAAe;oBACf,UAAU;oBACV,WAAW;oBACX,WAAW;oBACX,aAAa;oBACb,QAAQ;iBACT,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAElB,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,IAAI,CAAC,IAAI;QAAE,OAAO,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACzD,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"}
@@ -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