@meridianlabs/log-viewer 0.3.252 → 0.3.254

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 (114) hide show
  1. package/lib/index.js +62409 -58575
  2. package/lib/index.js.map +1 -1
  3. package/lib/src/app/App.d.ts.map +1 -1
  4. package/lib/src/app/flow/hooks.d.ts +5 -3
  5. package/lib/src/app/flow/hooks.d.ts.map +1 -1
  6. package/lib/src/app/log-view/LogView.d.ts.map +1 -1
  7. package/lib/src/app/log-view/LogViewLayout.d.ts.map +1 -1
  8. package/lib/src/app/log-view/tabs/ConfigCard.d.ts +14 -0
  9. package/lib/src/app/log-view/tabs/ConfigCard.d.ts.map +1 -0
  10. package/lib/src/app/log-view/tabs/ModelsTab.d.ts +21 -2
  11. package/lib/src/app/log-view/tabs/ModelsTab.d.ts.map +1 -1
  12. package/lib/src/app/log-view/tabs/SamplesTab.d.ts.map +1 -1
  13. package/lib/src/app/log-view/tabs/TaskTab.d.ts +21 -2
  14. package/lib/src/app/log-view/tabs/TaskTab.d.ts.map +1 -1
  15. package/lib/src/app/log-view/tabs/timeline/HistoryList.d.ts +24 -0
  16. package/lib/src/app/log-view/tabs/timeline/HistoryList.d.ts.map +1 -0
  17. package/lib/src/app/log-view/tabs/timeline/TimelineChart.d.ts +32 -0
  18. package/lib/src/app/log-view/tabs/timeline/TimelineChart.d.ts.map +1 -0
  19. package/lib/src/app/log-view/tabs/timeline/TimelineTab.d.ts +572 -0
  20. package/lib/src/app/log-view/tabs/timeline/TimelineTab.d.ts.map +1 -0
  21. package/lib/src/app/log-view/tabs/timeline/timelineData.d.ts +158 -0
  22. package/lib/src/app/log-view/tabs/timeline/timelineData.d.ts.map +1 -0
  23. package/lib/src/app/log-view/title-view/CollapsedTitleBar.d.ts.map +1 -1
  24. package/lib/src/app/log-view/title-view/EditMetadataDialog.d.ts.map +1 -1
  25. package/lib/src/app/log-view/title-view/EditTagsDialog.d.ts.map +1 -1
  26. package/lib/src/app/log-view/title-view/PrimaryBar.d.ts.map +1 -1
  27. package/lib/src/app/log-view/title-view/SecondaryBar.d.ts.map +1 -1
  28. package/lib/src/app/log-view/useShowTimeline.d.ts +24 -0
  29. package/lib/src/app/log-view/useShowTimeline.d.ts.map +1 -0
  30. package/lib/src/app/routing/AppRouter.d.ts +1 -1
  31. package/lib/src/app/routing/AppRouter.d.ts.map +1 -1
  32. package/lib/src/app/routing/loaders/LoaderHost.d.ts +2 -2
  33. package/lib/src/app/samples/SampleDisplay.d.ts.map +1 -1
  34. package/lib/src/app/samples/sample-tools/SelectScorer.d.ts.map +1 -1
  35. package/lib/src/app/samples/transcript/TranscriptFilter.d.ts.map +1 -1
  36. package/lib/src/app/samples/transcript/chunked/ChunkedTranscriptPanel.d.ts.map +1 -1
  37. package/lib/src/app/server/useEvalSet.d.ts +8 -5
  38. package/lib/src/app/server/useEvalSet.d.ts.map +1 -1
  39. package/lib/src/app/shared/ColumnSelectorPopover.d.ts.map +1 -1
  40. package/lib/src/app/shared/data-grid/DataGrid.d.ts.map +1 -1
  41. package/lib/src/app_config/appConfig.d.ts +27 -17
  42. package/lib/src/app_config/appConfig.d.ts.map +1 -1
  43. package/lib/src/app_config/hooks.d.ts +3 -1
  44. package/lib/src/app_config/hooks.d.ts.map +1 -1
  45. package/lib/src/app_config/index.d.ts +2 -1
  46. package/lib/src/app_config/index.d.ts.map +1 -1
  47. package/lib/src/app_config/resolveBackend.d.ts +52 -0
  48. package/lib/src/app_config/resolveBackend.d.ts.map +1 -0
  49. package/lib/src/app_config/singleFileMode.d.ts +4 -4
  50. package/lib/src/app_config/singleFileMode.d.ts.map +1 -1
  51. package/lib/src/client/api/client-api.d.ts +5 -5
  52. package/lib/src/client/api/client-api.d.ts.map +1 -1
  53. package/lib/src/client/api/static-http/api-static-http.d.ts +8 -2
  54. package/lib/src/client/api/static-http/api-static-http.d.ts.map +1 -1
  55. package/lib/src/client/api/types.d.ts +24 -6
  56. package/lib/src/client/api/types.d.ts.map +1 -1
  57. package/lib/src/client/api/view-server/api-view-server.d.ts +23 -6
  58. package/lib/src/client/api/view-server/api-view-server.d.ts.map +1 -1
  59. package/lib/src/client/api/vscode/api-vscode.d.ts +20 -2
  60. package/lib/src/client/api/vscode/api-vscode.d.ts.map +1 -1
  61. package/lib/src/client/remote/remoteLogFile.d.ts +18 -2
  62. package/lib/src/client/remote/remoteLogFile.d.ts.map +1 -1
  63. package/lib/src/constants.d.ts +1 -0
  64. package/lib/src/constants.d.ts.map +1 -1
  65. package/lib/src/index.d.ts +1 -0
  66. package/lib/src/index.d.ts.map +1 -1
  67. package/lib/src/log_data/FetchEngineController.d.ts +12 -0
  68. package/lib/src/log_data/FetchEngineController.d.ts.map +1 -0
  69. package/lib/src/log_data/chunked/log.d.ts +1 -0
  70. package/lib/src/log_data/chunked/log.d.ts.map +1 -1
  71. package/lib/src/log_data/chunkedAttachments.d.ts +0 -7
  72. package/lib/src/log_data/chunkedAttachments.d.ts.map +1 -1
  73. package/lib/src/log_data/chunkedSampleQuery.d.ts +1 -1
  74. package/lib/src/log_data/chunkedSampleQuery.d.ts.map +1 -1
  75. package/lib/src/log_data/conversation.d.ts +39 -0
  76. package/lib/src/log_data/conversation.d.ts.map +1 -0
  77. package/lib/src/log_data/fetchEngine.d.ts.map +1 -1
  78. package/lib/src/log_data/index.d.ts +4 -1
  79. package/lib/src/log_data/index.d.ts.map +1 -1
  80. package/lib/src/log_data/messageRows.d.ts +54 -0
  81. package/lib/src/log_data/messageRows.d.ts.map +1 -0
  82. package/lib/src/log_data/messageRowsQuery.d.ts +21 -0
  83. package/lib/src/log_data/messageRowsQuery.d.ts.map +1 -0
  84. package/lib/src/log_data/messageRowsWindowed.d.ts +12 -0
  85. package/lib/src/log_data/messageRowsWindowed.d.ts.map +1 -0
  86. package/lib/src/log_data/messagesExport.d.ts +13 -0
  87. package/lib/src/log_data/messagesExport.d.ts.map +1 -0
  88. package/lib/src/log_data/messagesFromEvents.d.ts.map +1 -0
  89. package/lib/src/log_data/replicationControl.d.ts +23 -12
  90. package/lib/src/log_data/replicationControl.d.ts.map +1 -1
  91. package/lib/src/log_data/sampleData.d.ts +1 -1
  92. package/lib/src/log_data/sampleData.d.ts.map +1 -1
  93. package/lib/src/log_data/sampleMessages.d.ts +21 -0
  94. package/lib/src/log_data/sampleMessages.d.ts.map +1 -0
  95. package/lib/src/log_data/sampleMessagesSource.d.ts +10 -0
  96. package/lib/src/log_data/sampleMessagesSource.d.ts.map +1 -0
  97. package/lib/src/log_data/sampleQuery.d.ts +4 -4
  98. package/lib/src/log_data/sampleQuery.d.ts.map +1 -1
  99. package/lib/src/log_data/testFixtures.d.ts +27 -0
  100. package/lib/src/log_data/testFixtures.d.ts.map +1 -0
  101. package/lib/src/state/hooks.d.ts +9 -1
  102. package/lib/src/state/hooks.d.ts.map +1 -1
  103. package/lib/styles/index.css +7226 -5750
  104. package/package.json +19 -19
  105. package/lib/src/app/samples/messagesFromEvents.d.ts.map +0 -1
  106. package/lib/src/app_config/resolveApi.d.ts +0 -10
  107. package/lib/src/app_config/resolveApi.d.ts.map +0 -1
  108. package/lib/src/client/api/vscode/api-vscode-http.d.ts +0 -9
  109. package/lib/src/client/api/vscode/api-vscode-http.d.ts.map +0 -1
  110. package/lib/src/client/api/vscode/jsonrpc.d.ts +0 -17
  111. package/lib/src/client/api/vscode/jsonrpc.d.ts.map +0 -1
  112. package/lib/src/log_data/chunkedMessages.d.ts +0 -28
  113. package/lib/src/log_data/chunkedMessages.d.ts.map +0 -1
  114. /package/lib/src/{app/samples → log_data}/messagesFromEvents.d.ts +0 -0
@@ -0,0 +1,158 @@
1
+ import { ConfigUpdate, ConnectionLimitChange, EarlyStoppingSummary, EvalConfig, EvalStats, LogUpdate } from '@tsmono/inspect-common/types';
2
+ import { EvalLogStatus } from '../../../../@types/extraInspect';
3
+ import { SampleSummary } from '../../../../client/api/types';
4
+ /** Epoch seconds; timeline math shares the connection-history convention. */
5
+ export interface TimeWindow {
6
+ start: number;
7
+ end: number;
8
+ }
9
+ export type SampleStatus = "completed" | "error" | "limit" | "cancelled" | "started";
10
+ /** One palette for dots, collapsed bands, and legend swatches. */
11
+ export declare const kStatusColor: Record<SampleStatus, string>;
12
+ /** Mirrors deriveSampleStatus in samples/status — cancellations are not
13
+ * errors, and a sample that never completed is still running. */
14
+ export declare const sampleStatus: (sample: SampleSummary) => SampleStatus;
15
+ export interface Termination {
16
+ time: number;
17
+ status: SampleStatus;
18
+ sample: SampleSummary;
19
+ }
20
+ export declare const terminations: (samples: SampleSummary[]) => Termination[];
21
+ /** Elastic terminations rail (design canvas 34a): every termination is an
22
+ * individual dot at every density. Radius steps down a 3-step ladder as the
23
+ * densest column grows (row pitch = 2r + 1px air); past the ladder floor
24
+ * the band grows instead, uncapped. */
25
+ export interface DotLadderStep {
26
+ r: number;
27
+ pitch: number;
28
+ }
29
+ export declare const dotLadderStep: (maxBin: number) => DotLadderStep;
30
+ /** Pathology guard: past a screen-height band the rail defaults collapsed
31
+ * (the band chip opts into the full wall — no data is summarized away). */
32
+ export declare const kTallRailHeight = 900;
33
+ /** Densest column under uniform time slices approximating the chart's ~8px
34
+ * pixel bins at a typical plot width — feeds the tall-rail guard, which
35
+ * must decide before the chart (and its real width) ever renders. */
36
+ export declare const densestTerminationBin: (dots: Termination[], window: TimeWindow) => number;
37
+ export interface StepPoint {
38
+ time: number;
39
+ value: number;
40
+ }
41
+ /** Concurrently-active sample count over time (+1 at start, -1 at end). */
42
+ export declare const activeSamplesSeries: (samples: SampleSummary[], window: TimeWindow, running?: boolean) => StepPoint[];
43
+ /** Compact value text for markers/rows — shared formatter, terse "null". */
44
+ export declare const formatShort: (value: unknown) => string;
45
+ /** A full-height ◆ on the chart: a config retune or a tag/metadata edit. */
46
+ export type TimelineMarker = {
47
+ time: number;
48
+ /** Index into its source array — the History-row link. */
49
+ index: number;
50
+ /** Tooltip/aria text — markers render only their ordinal inline. */
51
+ label: string;
52
+ postRun: boolean;
53
+ /** Process-scoped update inherited from before this run started — its
54
+ * timestamp predates the run, so it is launch context, not run activity:
55
+ * it never widens the plotted window (the chart clamps it to the left
56
+ * edge) and sorts by its real time in the History list. */
57
+ preRun: boolean;
58
+ /** Chronological 1..N over config markers only (design canvas 36c). */
59
+ ordinal?: number;
60
+ } & ({
61
+ kind: "config";
62
+ update: ConfigUpdate;
63
+ } | {
64
+ kind: "log";
65
+ update: LogUpdate;
66
+ });
67
+ export declare const markerKey: (kind: "config" | "log", index: number) => string;
68
+ /** Ordinals are assigned by chronological index over the whole run — cluster
69
+ * merging on the chart never renumbers them. Tag/metadata markers stay
70
+ * unnumbered, keeping the number space small and meaningful. */
71
+ export declare const withConfigOrdinals: (markers: TimelineMarker[]) => TimelineMarker[];
72
+ export declare const configMarkers: (updates: ConfigUpdate[] | null | undefined, runEnd?: number) => TimelineMarker[];
73
+ export declare const logMarkers: (updates: LogUpdate[] | null | undefined, runEnd?: number) => TimelineMarker[];
74
+ /** A violet dashed guide that steps at the ◆ that changed it. */
75
+ export interface GuideSegment {
76
+ from: number;
77
+ to: number;
78
+ value: number;
79
+ }
80
+ export declare const guideSegments: (launchValue: number | null | undefined, knob: string, markers: TimelineMarker[], window: TimeWindow) => GuideSegment[];
81
+ /** One category per thing you'd filter for (design canvas 35c) — the old
82
+ * Runtime junk drawer splits into limits / errors & retries / run. */
83
+ export type HistoryCategory = "config" | "connections" | "limits" | "errors" | "cancels" | "tags" | "run";
84
+ export declare const kHistoryCategories: HistoryCategory[];
85
+ /** Canonical strings — short forms for Kind cells, long for filter pills. */
86
+ export declare const kCategoryShort: Record<HistoryCategory, string>;
87
+ export declare const kCategoryLong: Record<HistoryCategory, string>;
88
+ export type HistoryRow = {
89
+ time: number;
90
+ postRun: boolean;
91
+ /** Inherited process update — launch context predating the run; sorts by
92
+ * its real time instead of being clamped into the run window. */
93
+ preRun?: boolean;
94
+ } & ({
95
+ kind: "config";
96
+ update: ConfigUpdate;
97
+ index: number;
98
+ } | {
99
+ kind: "logUpdate";
100
+ update: LogUpdate;
101
+ index: number;
102
+ } | {
103
+ kind: "runStart";
104
+ detail: string;
105
+ } | {
106
+ kind: "runEnd";
107
+ status: EvalLogStatus;
108
+ detail: string;
109
+ } | {
110
+ kind: "connections";
111
+ model: string;
112
+ reason: ConnectionLimitChange["reason"];
113
+ from: number;
114
+ to: number;
115
+ /** Contiguous controller steps aggregated into this row. */
116
+ count: number;
117
+ } | {
118
+ kind: "sampleError";
119
+ sample: SampleSummary;
120
+ } | {
121
+ kind: "sampleCancelled";
122
+ sample: SampleSummary;
123
+ } | {
124
+ kind: "sampleLimit";
125
+ sample: SampleSummary;
126
+ } | {
127
+ kind: "fallback";
128
+ sample: SampleSummary;
129
+ line: string;
130
+ } | {
131
+ kind: "earlyStopping";
132
+ summary: EarlyStoppingSummary;
133
+ });
134
+ export declare const rowCategory: (row: HistoryRow) => HistoryCategory;
135
+ /** Free-text search haystack: knob path, sample id, author, reason … the
136
+ * fields a per-column filter instinct actually wants (canvas 37a). */
137
+ export declare const rowHaystack: (row: HistoryRow) => string;
138
+ /** m:ss under an hour, h:mm:ss above — the one duration formatter shared
139
+ * by the timeline surfaces (History detail, termination popover). */
140
+ export declare const fmtDuration: (seconds?: number | null) => string;
141
+ interface HistoryInputs {
142
+ status?: EvalLogStatus;
143
+ stats?: EvalStats;
144
+ launchConfig?: EvalConfig;
145
+ model?: string;
146
+ configUpdates?: ConfigUpdate[] | null;
147
+ logUpdates?: LogUpdate[] | null;
148
+ earlyStopping?: EarlyStoppingSummary | null;
149
+ samples: SampleSummary[];
150
+ }
151
+ /**
152
+ * Every row the log header + sample summaries can produce, in time order.
153
+ * Chart-only signals (per-sample started/ended, routine controller motion)
154
+ * deliberately never become rows.
155
+ */
156
+ export declare const historyRows: (inputs: HistoryInputs) => HistoryRow[];
157
+ export {};
158
+ //# sourceMappingURL=timelineData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timelineData.d.ts","sourceRoot":"","sources":["../../../../../../src/app/log-view/tabs/timeline/timelineData.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CollapsedTitleBar.d.ts","sourceRoot":"","sources":["../../../../../src/app/log-view/title-view/CollapsedTitleBar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAIrE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAiB1D,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAqExD,CAAC"}
1
+ {"version":3,"file":"CollapsedTitleBar.d.ts","sourceRoot":"","sources":["../../../../../src/app/log-view/title-view/CollapsedTitleBar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAIrE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAkB1D,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAwExD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"EditMetadataDialog.d.ts","sourceRoot":"","sources":["../../../../../src/app/log-view/title-view/EditMetadataDialog.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,EAAE,EAOH,MAAM,OAAO,CAAC;AAiBf,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IAGZ,IAAI,EAAE,MAAM,CAAC;IAMb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAGhB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,uBAAuB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAUD;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aAEzB,GAAG,EAAE,MAAM;aACX,IAAI,EAAE,MAAM;aACZ,KAAK,EAAE,OAAO;gBAFd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO;CAKjC;AAmBD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,SAAS,KAAG,OASjD,CAAC;AAmBF,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CA6V1D,CAAC"}
1
+ {"version":3,"file":"EditMetadataDialog.d.ts","sourceRoot":"","sources":["../../../../../src/app/log-view/title-view/EditMetadataDialog.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,EAAE,EAOH,MAAM,OAAO,CAAC;AAiBf,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IAGZ,IAAI,EAAE,MAAM,CAAC;IAMb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAGhB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,uBAAuB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAUD;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aAEzB,GAAG,EAAE,MAAM;aACX,IAAI,EAAE,MAAM;aACZ,KAAK,EAAE,OAAO;gBAFd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO;CAKjC;AAmBD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,SAAS,KAAG,OASjD,CAAC;AAmBF,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAsW1D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"EditTagsDialog.d.ts","sourceRoot":"","sources":["../../../../../src/app/log-view/title-view/EditTagsDialog.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAuD,MAAM,OAAO,CAAC;AAehF,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAqPlD,CAAC"}
1
+ {"version":3,"file":"EditTagsDialog.d.ts","sourceRoot":"","sources":["../../../../../src/app/log-view/title-view/EditTagsDialog.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAuD,MAAM,OAAO,CAAC;AAehF,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CA8PlD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PrimaryBar.d.ts","sourceRoot":"","sources":["../../../../../src/app/log-view/title-view/PrimaryBar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAIrE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAa1D,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAiH1C,CAAC"}
1
+ {"version":3,"file":"PrimaryBar.d.ts","sourceRoot":"","sources":["../../../../../src/app/log-view/title-view/PrimaryBar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAIrE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAc1D,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAoH1C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SecondaryBar.d.ts","sourceRoot":"","sources":["../../../../../src/app/log-view/title-view/SecondaryBar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAE3B,OAAO,EAEL,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,SAAS,EAEV,MAAM,8BAA8B,CAAC;AAkBtC,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAiI9C,CAAC"}
1
+ {"version":3,"file":"SecondaryBar.d.ts","sourceRoot":"","sources":["../../../../../src/app/log-view/title-view/SecondaryBar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AAEpC,OAAO,EAEL,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,SAAS,EAEV,MAAM,8BAA8B,CAAC;AA4BtC,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAwJ9C,CAAC"}
@@ -0,0 +1,24 @@
1
+ export declare const kTimelineBag = "timeline";
2
+ export declare const timelineBandId: (band: string, model?: string) => string;
3
+ /** A timeline property key scoped to the log currently in view. */
4
+ export declare const useTimelineLogKey: (name: string) => string;
5
+ /** The band-picker property key for the log currently in view. */
6
+ export declare const useTimelineBandsKey: () => string;
7
+ /** The modifier keys that turn a navigation click into open-in-new-tab. */
8
+ export interface NavClickEvent {
9
+ metaKey: boolean;
10
+ ctrlKey: boolean;
11
+ shiftKey: boolean;
12
+ }
13
+ /**
14
+ * Navigate to the Timeline tab — the target of every "View on timeline"
15
+ * affordance (config chips, connection lanes, popovers). Cmd/ctrl/shift
16
+ * click opens the tab in a new browser tab instead.
17
+ */
18
+ export declare const useShowTimeline: () => ((event?: NavClickEvent) => void);
19
+ /**
20
+ * Navigate to the Timeline tab with a model's Connections band toggled on
21
+ * (the Models tab's deep link).
22
+ */
23
+ export declare const useShowTimelineForModel: () => ((model: string, event?: NavClickEvent) => void);
24
+ //# sourceMappingURL=useShowTimeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useShowTimeline.d.ts","sourceRoot":"","sources":["../../../../src/app/log-view/useShowTimeline.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,YAAY,aAAa,CAAC;AAEvC,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAG,MAC3B,CAAC;AAEpC,mEAAmE;AACnE,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,MAKhD,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,QAAO,MACD,CAAC;AAEvC,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAAO,CAAC,CAAC,KAAK,CAAC,EAAE,aAAa,KAAK,IAAI,CAsBlE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAAO,CAAC,CAC1C,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,aAAa,KAClB,IAAI,CA4BR,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const AppRouter: import('react-router-dom').DataRouter;
1
+ export declare const AppRouter: import('react-router').DataRouter;
2
2
  //# sourceMappingURL=AppRouter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppRouter.d.ts","sourceRoot":"","sources":["../../../../src/app/routing/AppRouter.tsx"],"names":[],"mappings":"AAyFA,eAAO,MAAM,SAAS,uCAwCrB,CAAC"}
1
+ {"version":3,"file":"AppRouter.d.ts","sourceRoot":"","sources":["../../../../src/app/routing/AppRouter.tsx"],"names":[],"mappings":"AAyFA,eAAO,MAAM,SAAS,mCAwCrB,CAAC"}
@@ -5,8 +5,8 @@ import { FC, ReactNode } from 'react';
5
5
  * `logDir`), so `useLogDir()` resolves synchronously. Mounts the per-log
6
6
  * `<LogLoadController>` and per-sample `<SampleLoadController>` reaction
7
7
  * controllers for both modes; the single-file `?log_file=` selection happens
8
- * at app-config resolution (`resolveAppConfig`). Replication/engine activation
9
- * is on-demand inside acquisition — nothing to mount for it.
8
+ * at app-config resolution (`resolveAppConfig`). Engine activation is owned
9
+ * by `<FetchEngineController>` at the composition root (AppContent).
10
10
  */
11
11
  export declare const LoaderMounts: FC<{
12
12
  children: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"SampleDisplay.d.ts","sourceRoot":"","sources":["../../../../src/app/samples/SampleDisplay.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,EAAE,EAIF,SAAS,EAMV,MAAM,OAAO,CAAC;AAuGf,UAAU,kBAAkB;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC5C,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAID;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CA25BhD,CAAC"}
1
+ {"version":3,"file":"SampleDisplay.d.ts","sourceRoot":"","sources":["../../../../src/app/samples/SampleDisplay.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,EAAE,EAIF,SAAS,EAMV,MAAM,OAAO,CAAC;AAwGf,UAAU,kBAAkB;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC5C,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAQD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CA86BhD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectScorer.d.ts","sourceRoot":"","sources":["../../../../../src/app/samples/sample-tools/SelectScorer.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAkC,MAAM,OAAO,CAAC;AAI3D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKhD,UAAU,iBAAiB;IACzB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,UAAU,EAAE,CAAC;IAC9B,iBAAiB,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;CACnD;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAwG9C,CAAC"}
1
+ {"version":3,"file":"SelectScorer.d.ts","sourceRoot":"","sources":["../../../../../src/app/samples/sample-tools/SelectScorer.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAkC,MAAM,OAAO,CAAC;AAI3D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKhD,UAAU,iBAAiB;IACzB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,UAAU,EAAE,CAAC;IAC9B,iBAAiB,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;CACnD;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CA2G9C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TranscriptFilter.d.ts","sourceRoot":"","sources":["../../../../../src/app/samples/transcript/TranscriptFilter.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAO3B,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,UAAU,EAAE,WAAW,GAAG,IAAI,CAAC;CAChC;AAED,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,qBAAqB,CAmF7D,CAAC"}
1
+ {"version":3,"file":"TranscriptFilter.d.ts","sourceRoot":"","sources":["../../../../../src/app/samples/transcript/TranscriptFilter.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAO3B,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,UAAU,EAAE,WAAW,GAAG,IAAI,CAAC;CAChC;AAED,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,qBAAqB,CAgF7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChunkedTranscriptPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/app/samples/transcript/chunked/ChunkedTranscriptPanel.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,EAAE,EACF,SAAS,EAMV,MAAM,OAAO,CAAC;AAcf,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAQ9B,UAAU,2BAA2B;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB,EAAE,EAAE,CAAC,2BAA2B,CAySlE,CAAC"}
1
+ {"version":3,"file":"ChunkedTranscriptPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/app/samples/transcript/chunked/ChunkedTranscriptPanel.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,EAAE,EACF,SAAS,EAMV,MAAM,OAAO,CAAC;AAcf,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAQ9B,UAAU,2BAA2B;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB,EAAE,EAAE,CAAC,2BAA2B,CA0SlE,CAAC"}
@@ -1,11 +1,14 @@
1
1
  import { EvalSet } from '@tsmono/inspect-common/types';
2
2
  import { AsyncData } from '@tsmono/util';
3
3
  /**
4
- * Resolve the eval-set for `dir`, a subdir RELATIVE to the configured log dir
5
- * ("" at the listing root) — passing an absolute dir doubles the path
6
- * server-side. Keyed on the dir so navigation re-fetches, and on the log root
7
- * so a host-driven root switch (VS Code) re-fetches; `staleTime: Infinity`
8
- * because an eval-set's identity doesn't change under a fixed root and dir.
4
+ * Resolve the eval-set for `dir`, a subdir RELATIVE to the log root ("" at
5
+ * the listing root) — passing an absolute dir doubles the path server-side.
6
+ * Keyed on the dir so navigation re-fetches, and on the log root because the
7
+ * root is part of the data's identity. `api` and `logDir` come from one
8
+ * config snapshot (the api instance is bound to that dir at construction),
9
+ * so the key and the fetch can't pair values from different roots.
10
+ * `staleTime: Infinity` because an eval-set's identity doesn't change under
11
+ * a fixed root and dir.
9
12
  */
10
13
  export declare const useEvalSet: (dir: string) => AsyncData<EvalSet | undefined>;
11
14
  //# sourceMappingURL=useEvalSet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useEvalSet.d.ts","sourceRoot":"","sources":["../../../../src/app/server/useEvalSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,SAAS,CAAC,OAAO,GAAG,SAAS,CAWrE,CAAC"}
1
+ {"version":3,"file":"useEvalSet.d.ts","sourceRoot":"","sources":["../../../../src/app/server/useEvalSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,SAAS,CAAC,OAAO,GAAG,SAAS,CAWrE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSelectorPopover.d.ts","sourceRoot":"","sources":["../../../../src/app/shared/ColumnSelectorPopover.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AAKpC,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIrE,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,YAAY,CAAC;AAE9D,UAAU,0BAA0B;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB;;;0CAGsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAClE,UAAU,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;+DAE2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC9D;;8CAE0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AAQD,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CAqMhE,CAAC"}
1
+ {"version":3,"file":"ColumnSelectorPopover.d.ts","sourceRoot":"","sources":["../../../../src/app/shared/ColumnSelectorPopover.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAW,MAAM,OAAO,CAAC;AAKpC,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIrE,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,YAAY,CAAC;AAE9D,UAAU,0BAA0B;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB;;;0CAGsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAClE,UAAU,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;+DAE2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC9D;;8CAE0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AAQD,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CA6MhE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataGrid.d.ts","sourceRoot":"","sources":["../../../../../src/app/shared/data-grid/DataGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,EAMjB,YAAY,EAEZ,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAKL,YAAY,EACZ,SAAS,EAMV,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,UAAU,EAChB,MAAM,yCAAyC,CAAC;AASjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAyFlD,MAAM,WAAW,aAAa,CAAC,IAAI;IACjC,IAAI,EAAE,IAAI,EAAE,CAAC;IACb,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;IACnC,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,CAAC;IAChC,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,eAAe,CAAC;IACnC;6CACyC;IACzC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,qDAAqD;IACrD,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC3D;;;0CAGsC;IACtC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAChD,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7C,oBAAoB,CAAC,EAAE,CACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,UAAU,GAAG,IAAI,KACpB,IAAI,CAAC;IACV;;8EAE0E;IAC1E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;sEAGkE;IAClE,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC;IAC1C;;qCAEiC;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC7C;kBACc;IACd,aAAa,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;2DAEuD;IACvD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;qEAEiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;6DAEyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,EAC7B,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,aAAa,EACb,SAAsB,EACtB,YAA4B,EAC5B,SAAiB,EACjB,OAAe,EACf,YAAkC,EAClC,SAAS,EACT,SAAiB,EACjB,SAAS,GACV,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,YAAY,CAqwBpC"}
1
+ {"version":3,"file":"DataGrid.d.ts","sourceRoot":"","sources":["../../../../../src/app/shared/data-grid/DataGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,EAMjB,YAAY,EAEZ,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAKL,YAAY,EACZ,SAAS,EAMV,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,UAAU,EAChB,MAAM,yCAAyC,CAAC;AASjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAyFlD,MAAM,WAAW,aAAa,CAAC,IAAI;IACjC,IAAI,EAAE,IAAI,EAAE,CAAC;IACb,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;IACnC,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,CAAC;IAChC,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,eAAe,CAAC;IACnC;6CACyC;IACzC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,qDAAqD;IACrD,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC3D;;;0CAGsC;IACtC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAChD,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7C,oBAAoB,CAAC,EAAE,CACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,UAAU,GAAG,IAAI,KACpB,IAAI,CAAC;IACV;;8EAE0E;IAC1E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;sEAGkE;IAClE,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC;IAC1C;;qCAEiC;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC7C;kBACc;IACd,aAAa,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;2DAEuD;IACvD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;qEAEiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;6DAEyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,EAC7B,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,aAAa,EACb,SAAsB,EACtB,YAA4B,EAC5B,SAAiB,EACjB,OAAe,EACf,YAAkC,EAClC,SAAS,EACT,SAAiB,EACjB,SAAS,GACV,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,YAAY,CA6wBpC"}
@@ -1,4 +1,5 @@
1
1
  import { ClientAPI } from '../client/api/types';
2
+ import { BackendBootstrap } from './resolveBackend';
2
3
  /**
3
4
  * The application configuration — the one currency. Everything the viewer needs
4
5
  * to know about how it was launched and what it's pointed at. Obtained, in
@@ -7,6 +8,12 @@ import { ClientAPI } from '../client/api/types';
7
8
  * 2. `useAppConfigAsync()` — how the gate itself waits on the config.
8
9
  * 3. `resolveAppConfig()` — async, memoized; for non-react code that needs it.
9
10
  * 4. `getAppConfig()` — sync, asserts resolved; the non-react escape hatch.
11
+ *
12
+ * `api` and `logDir` are one snapshot: the api instance is bound to `logDir`
13
+ * at construction and never answers about any other dir (see the contract on
14
+ * `ClientAPI`). A dir change replaces the whole config — new api, new dir,
15
+ * published together (`setLogRoot`) — so a query's key and its fetch can
16
+ * never pair values from different roots.
10
17
  */
11
18
  export interface AppConfig {
12
19
  api: ClientAPI;
@@ -22,11 +29,12 @@ export interface AppConfig {
22
29
  * The synchronously-knowable prefix of the config — resolved from the URL + DOM
23
30
  * before any network call. Infrastructure only: it's what the async resolution
24
31
  * builds on, and the one thing the pre-gate boot path (`main.tsx` / the store)
25
- * can read before the full config exists. Everything else uses `useAppConfig` /
26
- * `getAppConfig`.
32
+ * can read before the full config exists. No `ClientAPI` lives here — an api
33
+ * instance requires a resolved dir, so the bootstrap carries the backend's
34
+ * dir-discovery + construction recipe instead (see `BackendBootstrap`).
27
35
  */
28
36
  export interface AppConfigBootstrap {
29
- api: ClientAPI;
37
+ backend: BackendBootstrap;
30
38
  singleFileMode: boolean;
31
39
  loader: "direct" | "replicator";
32
40
  logFile?: string;
@@ -39,9 +47,11 @@ export declare const resolveBootstrap: () => AppConfigBootstrap;
39
47
  /** The memoized bootstrap. Infra only (boot path); resolved once per session. */
40
48
  export declare const getBootstrap: () => AppConfigBootstrap;
41
49
  /**
42
- * Resolve the full config from its bootstrap — the two things that need a
43
- * round-trip (versions + logDir), combined with the bootstrap. Framework-free
44
- * (no react-query) and throws on failure so the query surfaces the error.
50
+ * Resolve the full config from its bootstrap. Dir discovery runs first — an
51
+ * api instance is bound to one dir at construction, so no `ClientAPI` can
52
+ * exist until the dir is known — then the backend's factory builds the
53
+ * instance and the version round-trip runs through it. Framework-free (no
54
+ * react-query) and throws on failure so the query surfaces the error.
45
55
  */
46
56
  export declare const loadResolvedAppConfig: (bs: AppConfigBootstrap) => Promise<AppConfig>;
47
57
  /**
@@ -61,16 +71,16 @@ export declare const peekAppConfig: () => AppConfig | undefined;
61
71
  /** Seed the resolved singleton directly. For tests. */
62
72
  export declare const initAppConfig: (config: AppConfig) => AppConfig;
63
73
  /**
64
- * Update the resolved `logDir` — embedded (VS Code) live navigation, the one
65
- * place it changes after resolution. Returns the new config so the caller can
66
- * mirror it into the react-query cache.
67
- */
68
- export declare const setResolvedLogDir: (logDir: string, absLogDir?: string) => AppConfig; /**
69
- * Update the resolved log dir — embedded (VS Code) live navigation, the one
70
- * place logDir changes after resolution. Updates the config singleton (source of
71
- * truth) and mirrors it into the react-query cache so `useAppConfig` re-renders.
74
+ * Point the session at a different log dir — embedded (VS Code) live
75
+ * navigation, the one impure operation after resolution. Rebuilds, never
76
+ * mutates: the backend factory constructs a fresh api bound to the new dir,
77
+ * and the new config (api + logDir together) replaces the singleton and the
78
+ * react-query mirror as one snapshot. In-flight responses from the old
79
+ * instance are still about the old dir and land under the old dir's keys.
80
+ *
81
+ * A same-dir call is a no-op: preserving config identity keeps the fetch
82
+ * engine running and the api's caches warm (the host re-sends `updateState`
83
+ * for the dir the gate already resolved on VS Code single-file boot).
72
84
  */
73
- export declare const setLogRoot: (logDir: string, absLogDir?: string) => void; /** Non-React accessor for slice / routing code (undefined until resolved). */
74
- export declare const getLogDir: () => string | undefined;
75
- export declare const getAbsLogDir: () => string | undefined;
85
+ export declare const setLogRoot: (logDir: string) => void;
76
86
  //# sourceMappingURL=appConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"appConfig.d.ts","sourceRoot":"","sources":["../../../src/app_config/appConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAW,MAAM,qBAAqB,CAAC;AAczD;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,SAAS,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,QAAQ,GAAG,YAAY,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,SAAS,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,QAAQ,GAAG,YAAY,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAAO,kBASnC,CAAC;AAIF,iFAAiF;AACjF,eAAO,MAAM,YAAY,QAAO,kBACI,CAAC;AA0CrC;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAChC,IAAI,kBAAkB,KACrB,OAAO,CAAC,SAAS,CAmBnB,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,SAAS,CAW1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,QAAO,SAG/B,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,aAAa,QAAO,SAAS,GAAG,SAAsB,CAAC;AAEpE,uDAAuD;AACvD,eAAO,MAAM,aAAa,GAAI,QAAQ,SAAS,KAAG,SAC5B,CAAC;AAEvB;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,MAAM,EACd,YAAY,MAAM,KACjB,SAAmE,CAAC,CAAC;;;;GAIrE;AAEH,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,EAAE,YAAY,MAAM,KAAG,IAG/D,CAAC,CAAC,8EAA8E;AAEjF,eAAO,MAAM,SAAS,QAAO,MAAM,GAAG,SAAoC,CAAC;AAC3E,eAAO,MAAM,YAAY,QAAO,MAAM,GAAG,SACb,CAAC"}
1
+ {"version":3,"file":"appConfig.d.ts","sourceRoot":"","sources":["../../../src/app_config/appConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAW,MAAM,qBAAqB,CAAC;AAKzD,OAAO,EAAE,gBAAgB,EAAkB,MAAM,kBAAkB,CAAC;AASpE;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,SAAS,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,QAAQ,GAAG,YAAY,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,QAAQ,GAAG,YAAY,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAAO,kBASnC,CAAC;AAIF,iFAAiF;AACjF,eAAO,MAAM,YAAY,QAAO,kBACI,CAAC;AAgDrC;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAChC,IAAI,kBAAkB,KACrB,OAAO,CAAC,SAAS,CAqBnB,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,SAAS,CAW1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,QAAO,SAG/B,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,aAAa,QAAO,SAAS,GAAG,SAAsB,CAAC;AAEpE,uDAAuD;AACvD,eAAO,MAAM,aAAa,GAAI,QAAQ,SAAS,KAAG,SAC5B,CAAC;AAEvB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,KAAG,IAa3C,CAAC"}
@@ -17,7 +17,9 @@ export declare const useAppConfigAsync: () => AsyncData<AppConfig>;
17
17
  * Safe to call only below <AppConfigGate />
18
18
  */
19
19
  export declare const useAppConfig: () => AppConfig;
20
- /** The api client. Safe to call at any point in time. */
20
+ /** The api client of the resolved config — the instance bound to the current
21
+ * log dir. Safe to call only after resolution (below <AppConfigGate />, or in
22
+ * code that runs post-gate); no api exists before the dir is known. */
21
23
  export declare const getApi: () => ClientAPI;
22
24
  /** Safe to call only below <AppConfigGate /> */
23
25
  export declare const useLogDir: () => string;
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/app_config/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAkC,MAAM,aAAa,CAAC;AAExE,eAAO,MAAM,cAAc,yBAA0B,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QAAO,SAAS,CAAC,SAAS,CAKpD,CAAC;AAEL;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,QAAO,SAI/B,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,MAAM,QAAO,SAA+B,CAAC;AAE1D,gDAAgD;AAChD,eAAO,MAAM,SAAS,QAAO,MAA+B,CAAC;AAC7D,+EAA+E,CAAC,eAAO,MAAM,YAAY,QACnG,MAAM,GAAG,SAAqC,CAAC"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/app_config/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAkC,MAAM,aAAa,CAAC;AAExE,eAAO,MAAM,cAAc,yBAA0B,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QAAO,SAAS,CAAC,SAAS,CAKpD,CAAC;AAEL;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,QAAO,SAI/B,CAAC;AAEF;;wEAEwE;AACxE,eAAO,MAAM,MAAM,QAAO,SAA+B,CAAC;AAE1D,gDAAgD;AAChD,eAAO,MAAM,SAAS,QAAO,MAA+B,CAAC;AAC7D,+EAA+E,CAAC,eAAO,MAAM,YAAY,QACnG,MAAM,GAAG,SAAqC,CAAC"}
@@ -1,7 +1,8 @@
1
1
  export type { AppConfig } from './appConfig';
2
- export { getAppConfig, getLogDir, initAppConfig, // TODO: Exported for tests?! review
2
+ export { getAppConfig, getBootstrap, initAppConfig, // TODO: Exported for tests?! review
3
3
  setLogRoot, } from './appConfig';
4
4
  export { AppConfigGate } from './AppConfigGate';
5
+ export { setApiFactory } from './resolveBackend';
5
6
  export { readEmbeddedStartupState, // TODO: This should be private/encapsulated
6
7
  resolveEmbeddedLogDir, } from './singleFileMode';
7
8
  export { APP_CONFIG_KEY, // TODO: Exported for tests?! review
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/app_config/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,SAAS,EACT,aAAa,EAAE,oCAAoC;AACnD,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,wBAAwB,EAAE,4CAA4C;AACtE,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EAAE,oCAAoC;AACpD,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/app_config/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EAAE,oCAAoC;AACnD,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,wBAAwB,EAAE,4CAA4C;AACtE,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EAAE,oCAAoC;AACpD,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,MAAM,SAAS,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { ClientAPI, LogRoot } from '../client/api/types';
2
+ import { UrlLogSource } from './urlLogSource';
3
+ /** Transport facts knowable before any api instance exists — what the store
4
+ * capabilities need at boot (main.tsx runs above the config gate). */
5
+ export interface BackendCapabilities {
6
+ downloadLogs: boolean;
7
+ streamSamples: boolean;
8
+ }
9
+ /**
10
+ * A backend's bootstrap: how to discover the log dir, and how to build a
11
+ * `ClientAPI` once it's known. Dir discovery and construction are separate
12
+ * stages by design (#392) — an api instance is immutable per dir, so the dir
13
+ * must exist first, and a dir change means calling `createApi` again (see
14
+ * `setLogRoot`). `createApi` is the seam an embedder-supplied api factory
15
+ * plugs into (see `setApiFactory`).
16
+ */
17
+ export interface BackendBootstrap {
18
+ /** Discover the log root (dir mode). Runs once, before any `ClientAPI`. */
19
+ resolveLogRoot: () => Promise<LogRoot | undefined>;
20
+ /** The backend's configured dir, for resolving a bare single-file ref
21
+ * (`?log_file=foo.eval`). Absent when the backend has no such notion. */
22
+ resolveConfiguredDir?: () => Promise<string | undefined>;
23
+ /** Pure per-dir construction: same transport, different dir → independent
24
+ * instances. */
25
+ createApi: (logDir: string) => ClientAPI;
26
+ capabilities: BackendCapabilities;
27
+ }
28
+ /**
29
+ * Install a per-dir api factory from an external embedder hosting the viewer
30
+ * in-process (e.g. one that serves logs through its own authenticated /
31
+ * multiplexed backend). When installed it supersedes every URL/DOM-derived
32
+ * backend; standalone `inspect view` never calls this and is unaffected.
33
+ *
34
+ * Call once, before `initializeStore` / rendering `<App/>`; installing after
35
+ * the backend has resolved throws (a late factory could only be ignored).
36
+ * The factory is pure per-dir construction: boot calls it with the resolved
37
+ * dir, and re-pointing the viewer at a different dir is `setLogRoot(dir)` —
38
+ * the one impure operation — which calls it again. `initialLogDir` seeds root
39
+ * discovery; without it the dir must arrive via the URL (`?log_dir=`).
40
+ */
41
+ export declare const setApiFactory: (createApi: (logDir: string) => ClientAPI, initialLogDir?: string) => void;
42
+ /** Reset the installed embedder factory. For tests. */
43
+ export declare const resetApiFactory: () => void;
44
+ /**
45
+ * Resolves the backend bootstrap from the invocation-time log source (see
46
+ * `app_config/urlLogSource.ts`) plus the ambient signals (vscode host,
47
+ * embedded `#log_dir_context`, `?inspect_server=true`). An embedder-installed
48
+ * factory (`setApiFactory`) supersedes them all. Called once, by
49
+ * `resolveBootstrap()`.
50
+ */
51
+ export declare const resolveBackend: (source: UrlLogSource) => BackendBootstrap;
52
+ //# sourceMappingURL=resolveBackend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveBackend.d.ts","sourceRoot":"","sources":["../../../src/app_config/resolveBackend.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAYzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAU9C;uEACuE;AACvE,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,cAAc,EAAE,MAAM,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IACnD;8EAC0E;IAC1E,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACzD;qBACiB;IACjB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC;IACzC,YAAY,EAAE,mBAAmB,CAAC;CACnC;AAWD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,GACxB,WAAW,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,EACxC,gBAAgB,MAAM,KACrB,IASF,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,eAAe,QAAO,IAGlC,CAAC;AAwDF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,YAAY,KAAG,gBAyErD,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ClientAPI, UpdateStateMessage } from '../client/api/types';
1
+ import { UpdateStateMessage } from '../client/api/types';
2
2
  import { UrlLogSource } from './urlLogSource';
3
3
  /**
4
4
  * Single-file mode is set when the viewer is opened against a specific log
@@ -23,10 +23,10 @@ export declare const readEmbeddedStartupState: (doc?: Pick<Document, "getElement
23
23
  * The log dir for a single-file session. In single-file mode we don't ask the
24
24
  * server for the log root (which would walk the whole directory); we resolve it
25
25
  * from the file itself: its own directory if it has one, else the backend's
26
- * configured dir, else the page folder. Always defined — never the dishonest
27
- * empty-string sentinel.
26
+ * configured dir (a bootstrap probe — no api instance exists yet), else the
27
+ * page folder. Always defined — never the dishonest empty-string sentinel.
28
28
  */
29
- export declare const resolveSingleFileLogDir: (fileRef: string, api: ClientAPI) => Promise<string>;
29
+ export declare const resolveSingleFileLogDir: (fileRef: string, resolveConfiguredDir?: () => Promise<string | undefined>) => Promise<string>;
30
30
  /** Synchronous resolution for the embedded/VS Code seed (URLs are absolute). */
31
31
  export declare const resolveEmbeddedLogDir: (fileRef: string) => string;
32
32
  //# sourceMappingURL=singleFileMode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"singleFileMode.d.ts","sourceRoot":"","sources":["../../../src/app_config/singleFileMode.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,GACtC,QAAQ,YAAY,EACpB,KAAK,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,KACpC,OAQF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAK,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAY,KAC/C,kBAAkB,CAAC,MAAM,CAAC,GAAG,IAK/B,CAAC;AAWF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,KAAK,SAAS,KACb,OAAO,CAAC,MAAM,CAMhB,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,qBAAqB,GAAI,SAAS,MAAM,KAAG,MAGvD,CAAC"}
1
+ {"version":3,"file":"singleFileMode.d.ts","sourceRoot":"","sources":["../../../src/app_config/singleFileMode.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,GACtC,QAAQ,YAAY,EACpB,KAAK,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,KACpC,OAQF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAK,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAY,KAC/C,kBAAkB,CAAC,MAAM,CAAC,GAAG,IAK/B,CAAC;AAWF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,uBAAuB,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,KACvD,OAAO,CAAC,MAAM,CAMhB,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,qBAAqB,GAAI,SAAS,MAAM,KAAG,MAGvD,CAAC"}
@@ -10,10 +10,10 @@ export declare class SampleSizeLimitedExceededError extends Error {
10
10
  constructor(id: string | number, epoch: number, maxBytes: number);
11
11
  }
12
12
  /**
13
- * This provides an API implementation that will serve a single
14
- * file using an http parameter, designed to be deployed
15
- * to a webserver without inspect or the ability to enumerate log
16
- * files
13
+ * Adapt a backend `LogViewAPI` into the `ClientAPI` the app consumes:
14
+ * format handling (.eval zip vs JSON), per-log caching, sample-data path
15
+ * selection, and edit etag plumbing. Dir-agnostic — the dir binding lives
16
+ * in the backend instance (see the contract on `LogViewAPI`).
17
17
  */
18
- export declare const clientApi: (api: LogViewAPI, log_file?: string, debug?: boolean) => ClientAPI;
18
+ export declare const clientApi: (api: LogViewAPI, debug?: boolean) => ClientAPI;
19
19
  //# sourceMappingURL=client-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-api.d.ts","sourceRoot":"","sources":["../../../../src/client/api/client-api.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,SAAS,EAMT,UAAU,EAIX,MAAM,SAAS,CAAC;AAMjB;;GAEG;AACH,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;gBAEnB,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAajE;AAOD;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GACpB,KAAK,UAAU,EACf,WAAW,MAAM,EACjB,eAAa,KACZ,SAsmBF,CAAC"}
1
+ {"version":3,"file":"client-api.d.ts","sourceRoot":"","sources":["../../../../src/client/api/client-api.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,SAAS,EAKT,UAAU,EAIX,MAAM,SAAS,CAAC;AAMjB;;GAEG;AACH,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;gBAEnB,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAajE;AAOD;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,UAAU,EAAE,eAAa,KAAG,SA0jB1D,CAAC"}
@@ -1,10 +1,16 @@
1
1
  import { AppConfig } from '@tsmono/inspect-common/types';
2
- import { LogViewAPI } from '../types';
2
+ import { LogRoot, LogViewAPI } from '../types';
3
+ /**
4
+ * Bootstrap: the log root a static deployment serves, resolved synchronously
5
+ * from its configured dir — no api instance involved (dir discovery precedes
6
+ * construction, see #392).
7
+ */
8
+ export declare const staticLogRoot: (log_dir: string, abs_log_dir?: string) => LogRoot;
3
9
  /**
4
10
  * This provides an API implementation that will serve a single
5
11
  * file using an http parameter, designed to be deployed
6
12
  * to a webserver without inspect or the ability to enumerate log
7
13
  * files
8
14
  */
9
- export default function staticHttpApi(log_dir?: string, log_file?: string, abs_log_dir?: string, app_config?: AppConfig): LogViewAPI;
15
+ export default function staticHttpApi(log_dir: string, app_config?: AppConfig): LogViewAPI;
10
16
  //# sourceMappingURL=api-static-http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-static-http.d.ts","sourceRoot":"","sources":["../../../../../src/client/api/static-http/api-static-http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAW,MAAM,8BAA8B,CAAC;AAMlE,OAAO,EAAqC,UAAU,EAAE,MAAM,UAAU,CAAC;AA6BzE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,SAAS,GACrB,UAAU,CASZ"}
1
+ {"version":3,"file":"api-static-http.d.ts","sourceRoot":"","sources":["../../../../../src/client/api/static-http/api-static-http.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAGV,MAAM,8BAA8B,CAAC;AAMtC,OAAO,EAA4B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AA6BzE;;;;GAIG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS,MAAM,EACf,cAAc,MAAM,KACnB,OAID,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,SAAS,GACrB,UAAU,CAKZ"}