@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.
- package/CHANGELOG.md +22 -0
- package/dist/client-cache/cache.d.ts.map +1 -1
- package/dist/client-cache/cache.js +174 -14
- package/dist/client-cache/cache.js.map +1 -1
- package/dist/client-cache/command-method.d.ts +1 -1
- package/dist/client-cache/command-method.d.ts.map +1 -1
- package/dist/client-cache/command-method.js +2 -0
- package/dist/client-cache/command-method.js.map +1 -1
- package/dist/client-cache/index.d.ts +1 -1
- package/dist/client-cache/index.d.ts.map +1 -1
- package/dist/client-cache/index.js +1 -1
- package/dist/client-cache/index.js.map +1 -1
- package/dist/client-cache/prefetch.d.ts +13 -1
- package/dist/client-cache/prefetch.d.ts.map +1 -1
- package/dist/client-cache/prefetch.js +88 -26
- package/dist/client-cache/prefetch.js.map +1 -1
- package/dist/client-cache/read-stored.d.ts +5 -1
- package/dist/client-cache/read-stored.d.ts.map +1 -1
- package/dist/client-cache/read-stored.js +64 -1
- package/dist/client-cache/read-stored.js.map +1 -1
- package/dist/client-cache/registry.d.ts +29 -1
- package/dist/client-cache/registry.d.ts.map +1 -1
- package/dist/client-cache/registry.js +55 -4
- package/dist/client-cache/registry.js.map +1 -1
- package/dist/client-cache/store.d.ts +2 -0
- package/dist/client-cache/store.d.ts.map +1 -1
- package/dist/client-cache/store.js +9 -1
- package/dist/client-cache/store.js.map +1 -1
- package/dist/client-cache/transport.d.ts +3 -1
- package/dist/client-cache/transport.d.ts.map +1 -1
- package/dist/client-cache/transport.js +2 -1
- package/dist/client-cache/transport.js.map +1 -1
- package/dist/client-cache/types.d.ts +8 -1
- package/dist/client-cache/types.d.ts.map +1 -1
- package/dist/contracts/agents.d.ts +5 -2
- package/dist/contracts/agents.d.ts.map +1 -1
- package/dist/contracts/agents.js.map +1 -1
- package/dist/contracts/config.d.ts +3 -0
- package/dist/contracts/config.d.ts.map +1 -1
- package/dist/contracts/config.js +5 -1
- package/dist/contracts/config.js.map +1 -1
- package/dist/contracts/family.d.ts +55 -3
- package/dist/contracts/family.d.ts.map +1 -1
- package/dist/contracts/family.js.map +1 -1
- package/dist/contracts/review-workspace.d.ts +23 -1
- package/dist/contracts/review-workspace.d.ts.map +1 -1
- package/dist/contracts/review-workspace.js +3 -0
- package/dist/contracts/review-workspace.js.map +1 -1
- package/dist/contracts/reviews.d.ts +1 -0
- package/dist/contracts/reviews.d.ts.map +1 -1
- package/dist/contracts/reviews.js.map +1 -1
- package/dist/contracts/runs.d.ts +45 -5
- package/dist/contracts/runs.d.ts.map +1 -1
- package/dist/contracts/runs.js.map +1 -1
- package/dist/contracts/runtime-capabilities.d.ts +9 -0
- package/dist/contracts/runtime-capabilities.d.ts.map +1 -1
- package/dist/contracts/runtime-capabilities.js.map +1 -1
- package/dist/contracts/slot-recovery.d.ts +2 -2
- package/dist/contracts/slot-recovery.d.ts.map +1 -1
- package/dist/contracts/slot-recovery.js +5 -3
- package/dist/contracts/slot-recovery.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/performance/client.d.ts +18 -0
- package/dist/performance/client.d.ts.map +1 -0
- package/dist/performance/client.js +66 -0
- package/dist/performance/client.js.map +1 -0
- package/dist/performance/histogram.d.ts +5 -0
- package/dist/performance/histogram.d.ts.map +1 -0
- package/dist/performance/histogram.js +38 -0
- package/dist/performance/histogram.js.map +1 -0
- package/dist/performance/index.d.ts +10 -0
- package/dist/performance/index.d.ts.map +1 -0
- package/dist/performance/index.js +10 -0
- package/dist/performance/index.js.map +1 -0
- package/dist/performance/paint.d.ts +3 -0
- package/dist/performance/paint.d.ts.map +1 -0
- package/dist/performance/paint.js +14 -0
- package/dist/performance/paint.js.map +1 -0
- package/dist/performance/prometheus.d.ts +3 -0
- package/dist/performance/prometheus.d.ts.map +1 -0
- package/dist/performance/prometheus.js +53 -0
- package/dist/performance/prometheus.js.map +1 -0
- package/dist/performance/ranking.d.ts +26 -0
- package/dist/performance/ranking.d.ts.map +1 -0
- package/dist/performance/ranking.js +92 -0
- package/dist/performance/ranking.js.map +1 -0
- package/dist/performance/recorder.d.ts +43 -0
- package/dist/performance/recorder.d.ts.map +1 -0
- package/dist/performance/recorder.js +352 -0
- package/dist/performance/recorder.js.map +1 -0
- package/dist/performance/types.d.ts +93 -0
- package/dist/performance/types.d.ts.map +1 -0
- package/dist/performance/types.js +40 -0
- package/dist/performance/types.js.map +1 -0
- package/dist/performance/validation.d.ts +3 -0
- package/dist/performance/validation.d.ts.map +1 -0
- package/dist/performance/validation.js +55 -0
- package/dist/performance/validation.js.map +1 -0
- package/dist/recipes/step-io.d.ts +2 -0
- package/dist/recipes/step-io.d.ts.map +1 -1
- package/dist/recipes/step-io.js.map +1 -1
- package/dist/rpc/auth.d.ts +1 -0
- package/dist/rpc/auth.d.ts.map +1 -1
- package/dist/rpc/auth.js.map +1 -1
- package/dist/rpc/fs.d.ts +2 -0
- package/dist/rpc/fs.d.ts.map +1 -1
- package/dist/rpc/fs.js +2 -0
- package/dist/rpc/fs.js.map +1 -1
- package/dist/rpc/index.d.ts +1 -0
- package/dist/rpc/index.d.ts.map +1 -1
- package/dist/rpc/index.js +1 -0
- package/dist/rpc/index.js.map +1 -1
- package/dist/rpc/performance.d.ts +6 -0
- package/dist/rpc/performance.d.ts.map +1 -0
- package/dist/rpc/performance.js +2 -0
- package/dist/rpc/performance.js.map +1 -0
- package/dist/rpc/registry.d.ts +2 -0
- package/dist/rpc/registry.d.ts.map +1 -1
- package/dist/rpc/registry.js +2 -0
- package/dist/rpc/registry.js.map +1 -1
- package/dist/rpc/run.d.ts +4 -0
- package/dist/rpc/run.d.ts.map +1 -1
- package/dist/rpc/runtime-capabilities.d.ts +6 -0
- package/dist/rpc/runtime-capabilities.d.ts.map +1 -1
- package/dist/rpc/runtime-capabilities.js.map +1 -1
- package/dist/rpc/slot.d.ts +2 -0
- package/dist/rpc/slot.d.ts.map +1 -1
- package/dist/rpc/tmux.d.ts +1 -1
- package/dist/rpc/tmux.d.ts.map +1 -1
- package/dist/runs/list-trim.d.ts.map +1 -1
- package/dist/runs/list-trim.js +1 -19
- package/dist/runs/list-trim.js.map +1 -1
- package/dist/surfaces/run-view-state.d.ts +22 -0
- package/dist/surfaces/run-view-state.d.ts.map +1 -0
- package/dist/surfaces/run-view-state.js +26 -0
- package/dist/surfaces/run-view-state.js.map +1 -0
- package/dist/surfaces/view-links.d.ts +1 -1
- package/dist/surfaces/view-links.d.ts.map +1 -1
- package/dist/surfaces/view-links.js +144 -16
- package/dist/surfaces/view-links.js.map +1 -1
- package/dist/surfaces/view-state.d.ts +50 -0
- package/dist/surfaces/view-state.d.ts.map +1 -0
- package/dist/surfaces/view-state.js +181 -0
- package/dist/surfaces/view-state.js.map +1 -0
- package/dist/transport/gateway-recovery.d.ts +39 -0
- package/dist/transport/gateway-recovery.d.ts.map +1 -0
- package/dist/transport/gateway-recovery.js +134 -0
- package/dist/transport/gateway-recovery.js.map +1 -0
- package/dist/utf8-byte-length.d.ts +2 -0
- package/dist/utf8-byte-length.d.ts.map +1 -0
- package/dist/utf8-byte-length.js +22 -0
- package/dist/utf8-byte-length.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- 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":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
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
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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) ||
|
|
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":"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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
|