@fallen-8/studio 0.0.35 → 0.0.37
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/dist-lib/{Canvas3D-C5og4ZIQ.js → Canvas3D-CmDAo5BT.js} +1 -1
- package/dist-lib/{F8GraphCanvas-Db7vzDtJ.js → F8GraphCanvas-COQKIUas.js} +826 -812
- package/dist-lib/canvas.js +1 -1
- package/dist-lib/{cssMode-C_3o84wD.js → cssMode-Cm-p9yGb.js} +1 -1
- package/dist-lib/f8-studio.css +1 -1
- package/dist-lib/f8-studio.js +2 -2
- package/dist-lib/{freemarker2-2fqgZiA6.js → freemarker2-DU-Ctapi.js} +1 -1
- package/dist-lib/{handlebars-CpHr0qpx.js → handlebars-BsqZtC5a.js} +1 -1
- package/dist-lib/{html-Bug9RG5l.js → html-CUyknR5b.js} +1 -1
- package/dist-lib/{htmlMode-Ml4537rc.js → htmlMode-DjyPljE2.js} +1 -1
- package/dist-lib/{index-B9b5xEwe.js → index-BQbFjItv.js} +26366 -25874
- package/dist-lib/{javascript-DvuxCyB4.js → javascript-CVQBymBa.js} +1 -1
- package/dist-lib/{jsonMode-BU3w8kmM.js → jsonMode-B3hcJ0l3.js} +1 -1
- package/dist-lib/{liquid-r_J0hX64.js → liquid-DLrt4Cls.js} +1 -1
- package/dist-lib/{mdx-5vg3Qy8b.js → mdx-DePkemui.js} +1 -1
- package/dist-lib/{python-DlLCDuTf.js → python-CUe0bWsE.js} +1 -1
- package/dist-lib/{razor-D-OmEXY0.js → razor-DD_zUh3z.js} +1 -1
- package/dist-lib/{tsMode-Dophy2cR.js → tsMode-Ae3UtOmp.js} +1 -1
- package/dist-lib/types/api/client.d.ts +40 -0
- package/dist-lib/types/api/endpoints.d.ts +28 -2
- package/dist-lib/types/api/types.d.ts +96 -2
- package/dist-lib/types/app/namespaceSignals.d.ts +41 -0
- package/dist-lib/types/app/nav.d.ts +2 -12
- package/dist-lib/types/app/routes.d.ts +7 -2
- package/dist-lib/types/app/scopedRoute.d.ts +24 -0
- package/dist-lib/types/components/DurabilityNotice.d.ts +22 -7
- package/dist-lib/types/components/FileDropzone.d.ts +7 -2
- package/dist-lib/types/components/Stat.d.ts +1 -1
- package/dist-lib/types/components/StoredQueriesPanel.d.ts +16 -11
- package/dist-lib/types/components/StoredQueryControls.d.ts +3 -4
- package/dist-lib/types/delegate/nl/useNlRun.d.ts +7 -0
- package/dist-lib/types/firstrun/FirstRunOverlay.d.ts +37 -4
- package/dist-lib/types/firstrun/FirstRunShow.d.ts +4 -4
- package/dist-lib/types/instances/registry.d.ts +8 -2
- package/dist-lib/types/lib/embeddingProperties.d.ts +22 -0
- package/dist-lib/types/lib/findSimilar.d.ts +21 -0
- package/dist-lib/types/lib/pollIntervals.d.ts +13 -0
- package/dist-lib/types/lib/samples.d.ts +1 -1
- package/dist-lib/types/lib/storedQueries.d.ts +10 -0
- package/dist-lib/types/screens/IntegrationsScreen.d.ts +4 -3
- package/dist-lib/types/screens/PathScreen.d.ts +3 -0
- package/dist-lib/types/screens/SamplesScreen.d.ts +3 -3
- package/dist-lib/types/screens/TraverseScreen.d.ts +1 -0
- package/dist-lib/types/state/instanceStore.d.ts +51 -0
- package/dist-lib/types/state/status.d.ts +20 -1
- package/dist-lib/{typescript-oqqsXxrY.js → typescript-LNGesWYR.js} +1 -1
- package/dist-lib/{xml-pmqwhaBA.js → xml-BuD_-6ib.js} +1 -1
- package/dist-lib/{yaml-DN1I59zm.js → yaml-DCzPbyTS.js} +1 -1
- package/package.json +1 -1
- package/dist-lib/types/screens/DashboardScreen.d.ts +0 -13
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
* needed its own component would be a contract failure rather than a UI task, and the agent that
|
|
8
8
|
* writes the fourth integration cannot write a React component for it anyway.
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* Submitting STARTS a run and does not wait for it: the runtime answers a run id, and this screen
|
|
11
|
+
* then watches that run - the phase it is in, and its report once it ends. That is not a run history
|
|
12
|
+
* (the boundary is on IntegrationRunState), so there is no schedule, no list of past runs and no
|
|
13
|
+
* saved job list here; timing belongs to whoever wants the data.
|
|
13
14
|
*/
|
|
14
15
|
export declare function IntegrationsScreen(): import("react").JSX.Element;
|
|
@@ -5,5 +5,8 @@
|
|
|
5
5
|
* editor - /path swallows compile errors, so an empty result here is "no paths found",
|
|
6
6
|
* never an error (FR-13). Filters come from inline fragments or a stored query — the
|
|
7
7
|
* source toggle keeps the two mutually exclusive (concept spec §5.1).
|
|
8
|
+
*
|
|
9
|
+
* Rendered as the "Path finding" tab of the Traverse screen (feature studio-traverse-merge),
|
|
10
|
+
* which also owns the stored-query library this screen used to host at its foot.
|
|
8
11
|
*/
|
|
9
12
|
export declare function PathScreen(): import("react").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Samples (feature sample-graphs): the one-click demo gallery
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Samples (feature sample-graphs): the one-click demo gallery. It has its own rail entry so every
|
|
3
|
+
* card spans the full width and carries its "what you can test" steps, with a tag bar to filter
|
|
4
|
+
* by capability. Namespace-scoped - a load replaces
|
|
5
5
|
* the active namespace's graph (SampleGraphsPanel owns the loader + typed-confirm wipe).
|
|
6
6
|
*/
|
|
7
7
|
export declare function SamplesScreen(): import("react").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function TraverseScreen(): import("react").JSX.Element;
|
|
@@ -67,6 +67,19 @@ export interface ResultSet {
|
|
|
67
67
|
}
|
|
68
68
|
/** Where a path/subgraph run takes its fragments from (concept spec §5.1). */
|
|
69
69
|
export type FilterSource = "inline" | "stored";
|
|
70
|
+
/**
|
|
71
|
+
* The tabs of the merged Traverse screen (feature studio-traverse-merge), in strip order.
|
|
72
|
+
* ONE home for the ids: the tab strip renders them, the route validates `?tab=` against them,
|
|
73
|
+
* and the persisted `traverseTab` remembers the last one per instance-and-namespace.
|
|
74
|
+
*/
|
|
75
|
+
export declare const TRAVERSE_TABS: readonly ["path", "subgraph", "stored"];
|
|
76
|
+
export type TraverseTab = (typeof TRAVERSE_TABS)[number];
|
|
77
|
+
/** The tab a fresh workspace opens on: path finding is the more frequent scenario. */
|
|
78
|
+
export declare const DEFAULT_TRAVERSE_TAB: TraverseTab;
|
|
79
|
+
/** Guard for the two untrusted sources of a tab id: the `?tab=` search param and storage. */
|
|
80
|
+
export declare const isTraverseTab: (value: unknown) => value is TraverseTab;
|
|
81
|
+
/** The scenario tab a stored query of this kind belongs to (its `kind` is `string | null`). */
|
|
82
|
+
export declare const traverseTabForKind: (kind: string | null | undefined) => TraverseTab;
|
|
70
83
|
export interface PathDraft {
|
|
71
84
|
from: string;
|
|
72
85
|
to: string;
|
|
@@ -199,12 +212,41 @@ export declare const DEFAULT_CANVAS_TOOLS_DRAFT: CanvasToolsDraft;
|
|
|
199
212
|
/** One-shot navigation intent: "open Query with this index preselected" (cleared on consume). */
|
|
200
213
|
export interface ScanPrefill {
|
|
201
214
|
indexId: string;
|
|
215
|
+
/**
|
|
216
|
+
* A query vector to search WITH, in the bracketed form the vector box parses. Set by the
|
|
217
|
+
* "find similar" gesture, which reads it off the source element's own stored embedding: the
|
|
218
|
+
* search surface takes a vector, never an element id, so the element-as-query gesture is
|
|
219
|
+
* composed on this side rather than asked of the server.
|
|
220
|
+
*/
|
|
221
|
+
vectorText?: string;
|
|
222
|
+
/**
|
|
223
|
+
* The element the vector came from, so it can be dropped from its own results. There is no
|
|
224
|
+
* self-exclusion anywhere in the engine or the REST contract, so an unfiltered search returns
|
|
225
|
+
* the source element at rank 1 every time.
|
|
226
|
+
*/
|
|
227
|
+
sourceElementId?: number;
|
|
228
|
+
/**
|
|
229
|
+
* The source element's label, inherited as the search constraint. Not a convenience: several
|
|
230
|
+
* entity kinds embed as little more than their identifier, so an unconstrained similarity
|
|
231
|
+
* search over such a graph ranks identifier-shaped noise against real matches.
|
|
232
|
+
*/
|
|
233
|
+
label?: string;
|
|
234
|
+
kind?: "any" | "vertex" | "edge";
|
|
202
235
|
}
|
|
203
236
|
export interface WorkspaceState {
|
|
204
237
|
/** The Events panel's interest filter (feature studio-event-feed, see feedFilter.ts). */
|
|
205
238
|
feedFilter: FeedFilterDraft;
|
|
206
239
|
/** One-shot navigation intent: "open the Browser inspecting this element id". */
|
|
207
240
|
inspectPrefill: number | null;
|
|
241
|
+
/**
|
|
242
|
+
* The integration identity whose run this instance is watching, or null.
|
|
243
|
+
*
|
|
244
|
+
* PERSISTED, unlike the one-shot prefills, and that is the point: a run outlives the request that
|
|
245
|
+
* started it and can take hours, so reopening the screen - or reloading the page - has to re-attach
|
|
246
|
+
* to it rather than lose it. The identity is enough to re-find the run, because the runtime keys its
|
|
247
|
+
* slot by exactly that.
|
|
248
|
+
*/
|
|
249
|
+
integrationWatch: string | null;
|
|
208
250
|
canvasNodes: Record<number, CanvasNode>;
|
|
209
251
|
canvasEdges: Record<number, CanvasEdge>;
|
|
210
252
|
styleConfig: StyleConfig;
|
|
@@ -217,6 +259,13 @@ export interface WorkspaceState {
|
|
|
217
259
|
browserDraft: BrowserDraft;
|
|
218
260
|
analyticsDraft: AnalyticsDraft;
|
|
219
261
|
canvasToolsDraft: CanvasToolsDraft;
|
|
262
|
+
/**
|
|
263
|
+
* The Traverse tab last left open (feature studio-traverse-merge). Persisted rather than
|
|
264
|
+
* URL-only because switching namespace or instance rewrites the leaf WITHOUT the search
|
|
265
|
+
* param (see app/scopedRoute.ts), and being dumped on another tab by a context switch is
|
|
266
|
+
* the same "lose what you were looking at" the switchers exist to avoid.
|
|
267
|
+
*/
|
|
268
|
+
traverseTab: TraverseTab;
|
|
220
269
|
scanPrefill: ScanPrefill | null;
|
|
221
270
|
mergeIntoCanvas: (vertices: VertexREST[], edges: EdgeREST[]) => void;
|
|
222
271
|
removeFromCanvas: (kind: "node" | "edge", id: number) => void;
|
|
@@ -237,9 +286,11 @@ export interface WorkspaceState {
|
|
|
237
286
|
setAnalyticsDraft: (patch: Partial<AnalyticsDraft>) => void;
|
|
238
287
|
resetAnalyticsDraft: () => void;
|
|
239
288
|
setCanvasToolsDraft: (patch: Partial<CanvasToolsDraft>) => void;
|
|
289
|
+
setTraverseTab: (tab: TraverseTab) => void;
|
|
240
290
|
setScanPrefill: (prefill: ScanPrefill | null) => void;
|
|
241
291
|
setFeedFilter: (patch: Partial<FeedFilterDraft>) => void;
|
|
242
292
|
setInspectPrefill: (id: number | null) => void;
|
|
293
|
+
setIntegrationWatch: (instanceId: string | null) => void;
|
|
243
294
|
}
|
|
244
295
|
type WorkspaceStore = UseBoundStore<StoreApi<WorkspaceState>>;
|
|
245
296
|
/**
|
|
@@ -4,8 +4,27 @@ import type { InstanceConfig } from "../instances/types";
|
|
|
4
4
|
* consumer reads one cache row and rides its periodic refresh; /status is the cheap
|
|
5
5
|
* discovery surface (available plugins + live index inventory — feature
|
|
6
6
|
* studio-index-discovery), unlike the budgeted Graph-shape pass in graphShape.ts.
|
|
7
|
+
*
|
|
8
|
+
* Accepts null and then asks nothing: the shell-level readers (the durability banner, the
|
|
9
|
+
* first-run auto-show) render outside the connection gate, so "no instance yet" is a state they
|
|
10
|
+
* pass through rather than an assertion they can make.
|
|
11
|
+
*
|
|
12
|
+
* Pass poll: true to drive the shared row on a timer. Exactly one caller does - the app shell,
|
|
13
|
+
* on the same 15s cadence as its instance health probe - because the durability banner is a
|
|
14
|
+
* warning nobody goes looking for: it has to arrive while the operator is on some other screen.
|
|
15
|
+
* Every other observer rides that refresh through the shared cache row and asks for nothing.
|
|
16
|
+
*
|
|
17
|
+
* Polling implies `retry: 0`, matching the health probe, and that pairing is load-bearing rather
|
|
18
|
+
* than tidy: on a server that predates namespaces the bound view collapses to the raw instance, so
|
|
19
|
+
* this row and the probe become the SAME query key. react-query takes `retry` from whichever
|
|
20
|
+
* observer initiated the current fetch, so without this the probe's deliberate fail-fast became a
|
|
21
|
+
* coin flip against a default of three retries - and for the ~7s of backoff that won, a dead
|
|
22
|
+
* instance still read "online" with the nav unlocked. There is no point retrying a 15s poll anyway;
|
|
23
|
+
* the next tick is the retry.
|
|
7
24
|
*/
|
|
8
|
-
export declare function useStatus(instance: InstanceConfig
|
|
25
|
+
export declare function useStatus(instance: InstanceConfig | null, options?: {
|
|
26
|
+
poll?: boolean;
|
|
27
|
+
}): import("@tanstack/react-query").UseQueryResult<NoInfer<import("../api/types").StatusREST | null>, Error>;
|
|
9
28
|
/**
|
|
10
29
|
* The instance's configuration (features instance-config and writable-instance-config): the setting
|
|
11
30
|
* inventory, the semantic providers and the observability posture behind the Connect Configuration
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { m as s } from "./index-
|
|
1
|
+
import { m as s } from "./index-BQbFjItv.js";
|
|
2
2
|
var c = Object.defineProperty, a = Object.getOwnPropertyDescriptor, p = Object.getOwnPropertyNames, g = Object.prototype.hasOwnProperty, l = (t, e, o, i) => {
|
|
3
3
|
if (e && typeof e == "object" || typeof e == "function")
|
|
4
4
|
for (let n of p(e))
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { m as r } from "./index-
|
|
1
|
+
import { m as r } from "./index-BQbFjItv.js";
|
|
2
2
|
var m = Object.defineProperty, c = Object.getOwnPropertyDescriptor, l = Object.getOwnPropertyNames, d = Object.prototype.hasOwnProperty, p = (t, e, o, i) => {
|
|
3
3
|
if (e && typeof e == "object" || typeof e == "function")
|
|
4
4
|
for (let n of l(e))
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { m as l } from "./index-
|
|
1
|
+
import { m as l } from "./index-BQbFjItv.js";
|
|
2
2
|
var i = Object.defineProperty, c = Object.getOwnPropertyDescriptor, u = Object.getOwnPropertyNames, s = Object.prototype.hasOwnProperty, d = (n, e, r, o) => {
|
|
3
3
|
if (e && typeof e == "object" || typeof e == "function")
|
|
4
4
|
for (let t of u(e))
|
package/package.json
CHANGED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dashboard (FR-2/3/4): the status overview for the active namespace — vertex/edge counts
|
|
3
|
-
* and memory, from /status. It is deliberately lean: the sample gallery, the persistence/
|
|
4
|
-
* administration actions, the stored-query library, the plugin registry, and the instance
|
|
5
|
-
* configuration (semantic providers, observability) each have their own home (Samples, Save
|
|
6
|
-
* games, Query, Plugins, and the Connect Configuration section).
|
|
7
|
-
*
|
|
8
|
-
* On an empty, not-yet-dismissed namespace this is also the home of the first-run show
|
|
9
|
-
* (feature studio-first-run): instead of three zeroed tiles a newcomer gets an animated,
|
|
10
|
-
* read-only walkthrough that creates nothing. It is dismissed per namespace and re-armed the
|
|
11
|
-
* moment the namespace is seen non-empty, so a returning user is never nagged.
|
|
12
|
-
*/
|
|
13
|
-
export declare function DashboardScreen(): import("react").JSX.Element;
|