@fallen-8/studio 0.0.37 → 0.0.38

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 (40) hide show
  1. package/dist-lib/{Canvas3D-CmDAo5BT.js → Canvas3D-DEWoiNMD.js} +1 -1
  2. package/dist-lib/{F8GraphCanvas-COQKIUas.js → F8GraphCanvas-Cu6dtIgq.js} +667 -659
  3. package/dist-lib/canvas.js +1 -1
  4. package/dist-lib/{cssMode-Cm-p9yGb.js → cssMode-1gdBAwNQ.js} +1 -1
  5. package/dist-lib/f8-studio.css +1 -1
  6. package/dist-lib/f8-studio.js +2 -2
  7. package/dist-lib/{freemarker2-DU-Ctapi.js → freemarker2-DOQZLtnt.js} +1 -1
  8. package/dist-lib/{handlebars-BsqZtC5a.js → handlebars-CIXlymxU.js} +1 -1
  9. package/dist-lib/{html-CUyknR5b.js → html--Bi9VDgI.js} +1 -1
  10. package/dist-lib/{htmlMode-DjyPljE2.js → htmlMode-BqCrpeeP.js} +1 -1
  11. package/dist-lib/{index-BQbFjItv.js → index-0ioFtrZM.js} +24086 -23585
  12. package/dist-lib/{javascript-CVQBymBa.js → javascript-BL3tIzUw.js} +1 -1
  13. package/dist-lib/{jsonMode-B3hcJ0l3.js → jsonMode-FxM7KRm5.js} +1 -1
  14. package/dist-lib/{liquid-DLrt4Cls.js → liquid-wB7unZht.js} +1 -1
  15. package/dist-lib/{mdx-DePkemui.js → mdx-DmS41r19.js} +1 -1
  16. package/dist-lib/{python-CUe0bWsE.js → python-C24igqMV.js} +1 -1
  17. package/dist-lib/{razor-DD_zUh3z.js → razor-BRvioLVk.js} +1 -1
  18. package/dist-lib/{tsMode-Ae3UtOmp.js → tsMode-zMn1qnUE.js} +1 -1
  19. package/dist-lib/types/api/client.d.ts +49 -0
  20. package/dist-lib/types/api/endpoints.d.ts +49 -3
  21. package/dist-lib/types/api/types.d.ts +65 -3
  22. package/dist-lib/types/components/ConfigurationSurface.d.ts +23 -2
  23. package/dist-lib/types/components/ErrorBox.d.ts +6 -0
  24. package/dist-lib/types/components/SemanticBlockEditor.d.ts +4 -1
  25. package/dist-lib/types/components/SemanticQueryEditor.d.ts +8 -1
  26. package/dist-lib/types/components/SettingRow.d.ts +14 -0
  27. package/dist-lib/types/delegate/nl/NlDraftStats.d.ts +13 -0
  28. package/dist-lib/types/delegate/nl/config.d.ts +5 -4
  29. package/dist-lib/types/delegate/nl/generate.d.ts +6 -0
  30. package/dist-lib/types/lib/fieldHelp.d.ts +3 -1
  31. package/dist-lib/types/lib/fileLimits.d.ts +69 -0
  32. package/dist-lib/types/lib/format.d.ts +8 -0
  33. package/dist-lib/types/lib/modelProvenance.d.ts +26 -0
  34. package/dist-lib/types/lib/vectorIndexCreate.d.ts +49 -0
  35. package/dist-lib/types/state/instanceStore.d.ts +28 -2
  36. package/dist-lib/types/state/integrations.d.ts +11 -1
  37. package/dist-lib/{typescript-LNGesWYR.js → typescript-BIjKKvsW.js} +1 -1
  38. package/dist-lib/{xml-BuD_-6ib.js → xml-CT-uMOiT.js} +1 -1
  39. package/dist-lib/{yaml-DCzPbyTS.js → yaml-Dezcc_VH.js} +1 -1
  40. package/package.json +1 -1
@@ -0,0 +1,49 @@
1
+ import type { EmbeddingProviderStatsREST, PropertySpecification } from "../api/types";
2
+ /**
3
+ * What a NEW vector index is created with, in one place: two screens create one (the Indexes
4
+ * screen's create panel and the Query screen's semantic on-ramp, feature
5
+ * semantic-search-onramp) and the numbers are not a preference. A bound index whose dimension
6
+ * or metric disagrees with the model writing into it is refused on every later embed and every
7
+ * later search, so the provider is the authority and guessing it twice is how the two copies
8
+ * would drift.
9
+ */
10
+ /**
11
+ * Fallbacks for a server that reports no usable provider. Not a recommendation: a shape the
12
+ * engine accepts, so the form has something to submit while saying (at the call site) that
13
+ * these are defaults rather than the instance's own numbers.
14
+ */
15
+ export declare const VECTOR_INDEX_FALLBACK: {
16
+ readonly dimension: "384";
17
+ readonly metric: "Cosine";
18
+ };
19
+ export interface VectorIndexDefaults {
20
+ /** The provider is on AND names a dimension, so its numbers are the authoritative ones. */
21
+ providerReady: boolean;
22
+ dimension: string;
23
+ metric: string;
24
+ }
25
+ /** The dimension + metric a new vector index should default to on this instance. */
26
+ export declare function vectorIndexDefaults(provider: EmbeddingProviderStatsREST | null | undefined): VectorIndexDefaults;
27
+ /** The engine's own bounds on a vector index's dimension (VectorIndex.Initialize). */
28
+ export declare const VECTOR_DIMENSION_RANGE: {
29
+ readonly min: 1;
30
+ readonly max: 4096;
31
+ };
32
+ /**
33
+ * Whether this dimension is one the engine will take. The number input's `min`/`max` are not
34
+ * enough on their own: neither attribute blocks an EMPTY field, and neither is consulted at all
35
+ * unless the button is a submit. An empty value travels as `propertyValue: ""` against
36
+ * `System.Int32`, which the server cannot convert, so the round trip is spent to be told so.
37
+ */
38
+ export declare function isValidVectorDimension(dimension: string): boolean;
39
+ /**
40
+ * The `pluginOptions` of POST /index for a vector index. Options travel as typed literals
41
+ * (vector-index README §creation), and embeddingName/model are emitted only when set, so a raw
42
+ * index keeps exactly the two-option shape (pinned by index-management.test.tsx).
43
+ */
44
+ export declare function vectorIndexPluginOptions(options: {
45
+ dimension: string;
46
+ metric: string;
47
+ embeddingName?: string;
48
+ model?: string;
49
+ }): Record<string, PropertySpecification>;
@@ -98,13 +98,23 @@ export interface PathDraft {
98
98
  semantic: SemanticDraft;
99
99
  }
100
100
  export declare const DEFAULT_PATH_DRAFT: PathDraft;
101
+ /** The Query screen's three ways of asking (feature index-workspace / semantic-search-onramp). */
102
+ export declare const QUERY_MODES: readonly ["property", "index", "semantic"];
103
+ export type QueryMode = (typeof QUERY_MODES)[number];
101
104
  /**
102
105
  * The Query screen's whole input form (feature index-workspace). Persisted per instance
103
106
  * so leaving for the Canvas and coming back restores it exactly — results are re-run on
104
107
  * demand (kept out of the lean persisted store). Reset via the screen's Clear button.
105
108
  */
106
109
  export interface QueryDraft {
107
- mode: "property" | "index";
110
+ /**
111
+ * "semantic" is text-in kNN (feature semantic-search-onramp): its own mode rather than a
112
+ * source toggle inside the index mode's vector form, because a capability reachable only
113
+ * after picking the right index is one nobody finds. It shares the kNN parameters below
114
+ * with that form - same question, different query source - but NOT the index, which is
115
+ * drawn from a different set (see semanticIndexId).
116
+ */
117
+ mode: QueryMode;
108
118
  /** Property-scan scope: one named "key" (typed operator) or "any" property (contains search). */
109
119
  propertyScope: "key" | "any";
110
120
  propertyId: string;
@@ -113,6 +123,13 @@ export interface QueryDraft {
113
123
  /** All-property search label restrictor (propertyScope === "any"); empty scans every label. */
114
124
  searchLabel: string;
115
125
  indexId: string;
126
+ /**
127
+ * The semantic mode's index, kept apart from `indexId` because the two modes choose from
128
+ * different sets: every registered index there, only the ones that can rank a vector here.
129
+ * Sharing one field meant picking a vector index for a semantic search silently replaced the
130
+ * operator's index-mode selection AND the query form that went with it.
131
+ */
132
+ semanticIndexId: string;
116
133
  form: IndexCapability;
117
134
  operator: BinaryOperatorName;
118
135
  resultType: "Vertices" | "Edges" | "Both";
@@ -124,14 +141,23 @@ export interface QueryDraft {
124
141
  fulltextQuery: string;
125
142
  spatialElementId: string;
126
143
  spatialDistance: string;
144
+ /** The pasted query vector (index mode, vector form); the semantic mode never uses it. */
127
145
  vectorText: string;
128
146
  vectorK: string;
129
147
  vectorKind: "any" | "vertex" | "edge";
130
148
  vectorLabel: string;
131
- vectorSource: "vector" | "text";
149
+ /** The query text of the semantic mode, embedded once server-side. */
132
150
  vectorSearchText: string;
133
151
  }
134
152
  export declare const DEFAULT_QUERY_DRAFT: QueryDraft;
153
+ /**
154
+ * Rehydrates a persisted Query draft. Text-in kNN used to be a `vectorSource` toggle INSIDE the
155
+ * index mode's vector form; feature semantic-search-onramp made it its own mode, so a draft
156
+ * written by an older build is LIFTED rather than dropped: the text, k, kind and label are the
157
+ * same question asked the same way, and only the route to the form changed. The stale key is
158
+ * stripped instead of spread through, so nothing carries a field this build has no meaning for.
159
+ */
160
+ export declare function migrateQueryDraft(persisted: Partial<QueryDraft> | undefined): QueryDraft;
135
161
  /**
136
162
  * One pattern row of the subgraph builder: a pattern spec plus a stable list key and the
137
163
  * step's vertex-slot state (feature subgraph-semantic-thresholds) — the slot MODE and the
@@ -1,5 +1,5 @@
1
1
  import type { InstanceConfig } from "../instances/types";
2
- import type { IntegrationProvider } from "../api/types";
2
+ import type { FileLimits, IntegrationProvider } from "../api/types";
3
3
  /**
4
4
  * The integrations capability of one instance (feature integrations), read from the one route that
5
5
  * answers it: the provider catalog.
@@ -15,6 +15,16 @@ import type { IntegrationProvider } from "../api/types";
15
15
  */
16
16
  export type IntegrationsCapability = "checking" | "available" | "absent" | "unreachable";
17
17
  export declare function useIntegrationProviders(instance: InstanceConfig | null): import("@tanstack/react-query").UseQueryResult<NoInfer<IntegrationProvider[] | null>, unknown>;
18
+ /**
19
+ * What a job may carry on this instance (feature integration-file-transport). Read once per
20
+ * instance and held for the session: the ceilings come from configuration, so they change when the
21
+ * instance is redeployed and never while a screen is open.
22
+ *
23
+ * It fails softly on purpose. An instance too old to serve the route answers 404, and a form that
24
+ * cannot read the ceilings must check NOTHING rather than fall back to a number of its own - see
25
+ * `lib/fileLimits.ts`, which is the only place allowed to interpret the absence.
26
+ */
27
+ export declare function useIntegrationLimits(instance: InstanceConfig | null): import("@tanstack/react-query").UseQueryResult<NoInfer<FileLimits | null>, unknown>;
18
28
  /** Whether a failure is the capability being off rather than the instance being unwell. */
19
29
  export declare function isCapabilityRefusal(error: unknown): boolean;
20
30
  /** The capability verdict of a providers query, for the rail and for a deep link. */
@@ -1,4 +1,4 @@
1
- import { m as s } from "./index-BQbFjItv.js";
1
+ import { m as s } from "./index-0ioFtrZM.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-BQbFjItv.js";
1
+ import { m as r } from "./index-0ioFtrZM.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-BQbFjItv.js";
1
+ import { m as l } from "./index-0ioFtrZM.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,6 +1,6 @@
1
1
  {
2
2
  "name": "@fallen-8/studio",
3
- "version": "0.0.37",
3
+ "version": "0.0.38",
4
4
  "description": "F8 Studio - browser frontend for Fallen-8 instances, and its graph canvas as a standalone component",
5
5
  "license": "MIT",
6
6
  "author": "Henning Rauch",