@ultrst-armada/kloks 1.10.0 → 1.10.2

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.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schema": 1,
3
3
  "packageName": "@ultrst-armada/kloks",
4
- "version": "1.10.0",
5
- "sourceCommit": "302682bf08b2a4adcb8109f8f4a6a44651b25909",
4
+ "version": "1.10.2",
5
+ "sourceCommit": "4a3966cdcb02dd9710777acbe76c5fba6abe6353",
6
6
  "releaseWorkflow": "npm Release",
7
- "workflowRunId": "40287961465"
7
+ "workflowRunId": "40316830979"
8
8
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ultrst-armada/kloks",
3
- "version": "1.10.0",
3
+ "version": "1.10.2",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -4,7 +4,7 @@ import {
4
4
 
5
5
  // src/client/useBackend.ts
6
6
  import React, { createContext, useContext, useMemo } from "react";
7
- var BackendContext = createContext(null);
7
+ var BackendContext = typeof createContext === "function" ? createContext(null) : null;
8
8
  function BackendProvider({ client, resolver, session, children }) {
9
9
  const activeClient = useMemo(() => {
10
10
  if (client) return client;
@@ -1,16 +1,10 @@
1
1
  import {
2
2
  workspaceGraphService
3
- } from "./chunk-VKSGYMAH.js";
3
+ } from "./chunk-5RXXC6GE.js";
4
4
  import {
5
5
  getSrklAccounts,
6
6
  srklListBackblazeBuckets
7
7
  } from "./chunk-XHADDA75.js";
8
- import {
9
- StorageAdapterFactory
10
- } from "./chunk-SHZAQTIT.js";
11
- import {
12
- b2ListBuckets
13
- } from "./chunk-4QEMALXF.js";
14
8
  import {
15
9
  formatCanonicalWorkspaceFolderName,
16
10
  sanitizeWorkspaceName
@@ -25,6 +19,12 @@ import {
25
19
  import {
26
20
  queryUnifiedDb
27
21
  } from "./chunk-VAFCR2MS.js";
22
+ import {
23
+ StorageAdapterFactory
24
+ } from "./chunk-SHZAQTIT.js";
25
+ import {
26
+ b2ListBuckets
27
+ } from "./chunk-4QEMALXF.js";
28
28
  import {
29
29
  RateLimiter,
30
30
  SessionManager,
@@ -2,7 +2,7 @@ import {
2
2
  BackendProvider,
3
3
  useBackend,
4
4
  useBackendClient
5
- } from "../chunk-G3ZOSXUR.js";
5
+ } from "../chunk-N7OUR5R5.js";
6
6
  import {
7
7
  BackendClient,
8
8
  BackendResolver,
@@ -30,9 +30,6 @@ import {
30
30
  syncSrklAccounts,
31
31
  useSrklServices
32
32
  } from "./chunk-3IUA66RS.js";
33
- import {
34
- S3Adapter
35
- } from "./chunk-RBQ4CW3T.js";
36
33
  import {
37
34
  RemoteWorkspaceService,
38
35
  SyncEngine,
@@ -49,6 +46,9 @@ import {
49
46
  syncWorkspace,
50
47
  workingWorkspaceService
51
48
  } from "./chunk-BTMIK44G.js";
49
+ import {
50
+ S3Adapter
51
+ } from "./chunk-RBQ4CW3T.js";
52
52
  import {
53
53
  AuthServiceDefinition,
54
54
  AuthServiceFacade,
@@ -82,35 +82,15 @@ import {
82
82
  krnlWorkspaceGraphServiceFacade,
83
83
  krnlWorkspaceServiceDefinition,
84
84
  krnlWorkspaceServiceFacade
85
- } from "./chunk-UMEO6XS4.js";
85
+ } from "./chunk-R62OJR5I.js";
86
86
  import {
87
87
  workspaceGraphService
88
- } from "./chunk-VKSGYMAH.js";
88
+ } from "./chunk-5RXXC6GE.js";
89
89
  import {
90
90
  getPrimarySrklDeploymentUrl,
91
91
  getSrklAccounts,
92
92
  srklListBackblazeBuckets
93
93
  } from "./chunk-XHADDA75.js";
94
- import {
95
- BackblazeB2Adapter,
96
- LocalFSAdapter,
97
- StorageAdapterFactory,
98
- SupabaseStorageAdapter,
99
- ensureS3DirectoryMarker,
100
- isSecretMasked,
101
- normalizeBackblazeCredentials,
102
- permanentDeleteS3Folder,
103
- permanentDeleteS3Object,
104
- renameS3Folder,
105
- resolveBackblazeEndpoint
106
- } from "./chunk-SHZAQTIT.js";
107
- import {
108
- authorizeB2,
109
- b2DownloadFile,
110
- b2ListBuckets,
111
- b2ListFileNames,
112
- b2UploadFile
113
- } from "./chunk-4QEMALXF.js";
114
94
  import {
115
95
  formatCanonicalWorkspaceFolderName,
116
96
  sanitizeWorkspaceName
@@ -145,6 +125,26 @@ import {
145
125
  getUnifiedDbUrl,
146
126
  queryUnifiedDb
147
127
  } from "./chunk-VAFCR2MS.js";
128
+ import {
129
+ BackblazeB2Adapter,
130
+ LocalFSAdapter,
131
+ StorageAdapterFactory,
132
+ SupabaseStorageAdapter,
133
+ ensureS3DirectoryMarker,
134
+ isSecretMasked,
135
+ normalizeBackblazeCredentials,
136
+ permanentDeleteS3Folder,
137
+ permanentDeleteS3Object,
138
+ renameS3Folder,
139
+ resolveBackblazeEndpoint
140
+ } from "./chunk-SHZAQTIT.js";
141
+ import {
142
+ authorizeB2,
143
+ b2DownloadFile,
144
+ b2ListBuckets,
145
+ b2ListFileNames,
146
+ b2UploadFile
147
+ } from "./chunk-4QEMALXF.js";
148
148
  import {
149
149
  BaseStorageAdapter,
150
150
  GoogleDriveAdapter,
@@ -176,7 +176,15 @@ import {
176
176
  BackendProvider,
177
177
  useBackend,
178
178
  useBackendClient
179
- } from "./chunk-G3ZOSXUR.js";
179
+ } from "./chunk-N7OUR5R5.js";
180
+ import {
181
+ AuditLogger,
182
+ ControlPlaneManager,
183
+ DatabaseClusterManager,
184
+ detectDatabaseEngine,
185
+ getSystemDatabaseUrls,
186
+ resolveSystemDatabaseClusterNodes
187
+ } from "./chunk-RCCQ7IRM.js";
180
188
  import {
181
189
  BackendRegistry,
182
190
  ConcurrencyConflictError,
@@ -201,14 +209,6 @@ import {
201
209
  WebSocketTransport,
202
210
  createBackendClient
203
211
  } from "./chunk-NIP22V2G.js";
204
- import {
205
- AuditLogger,
206
- ControlPlaneManager,
207
- DatabaseClusterManager,
208
- detectDatabaseEngine,
209
- getSystemDatabaseUrls,
210
- resolveSystemDatabaseClusterNodes
211
- } from "./chunk-RCCQ7IRM.js";
212
212
  import {
213
213
  AgentHarnessRuntime,
214
214
  AgentHarnessServiceDefinition,
@@ -31,14 +31,14 @@ import {
31
31
  krnlWorkspaceGraphServiceFacade,
32
32
  krnlWorkspaceServiceDefinition,
33
33
  krnlWorkspaceServiceFacade
34
- } from "./chunk-UMEO6XS4.js";
35
- import "./chunk-VKSGYMAH.js";
34
+ } from "./chunk-R62OJR5I.js";
35
+ import "./chunk-5RXXC6GE.js";
36
36
  import "./chunk-XHADDA75.js";
37
- import "./chunk-SHZAQTIT.js";
38
- import "./chunk-4QEMALXF.js";
39
37
  import "./chunk-FZKBTF34.js";
40
38
  import "./chunk-6K75XXFD.js";
41
39
  import "./chunk-VAFCR2MS.js";
40
+ import "./chunk-SHZAQTIT.js";
41
+ import "./chunk-4QEMALXF.js";
42
42
  import "./chunk-KKRWZDMN.js";
43
43
  import "./chunk-WTBAG4AV.js";
44
44
  import "./chunk-TY32TUNI.js";
@@ -14,10 +14,10 @@ import {
14
14
  } from "../chunk-RBF2OGMC.js";
15
15
  import {
16
16
  workspaceGraphService
17
- } from "../chunk-VKSGYMAH.js";
18
- import "../chunk-SHZAQTIT.js";
17
+ } from "../chunk-5RXXC6GE.js";
19
18
  import "../chunk-6K75XXFD.js";
20
19
  import "../chunk-VAFCR2MS.js";
20
+ import "../chunk-SHZAQTIT.js";
21
21
  import "../chunk-KKRWZDMN.js";
22
22
  import "../chunk-TY32TUNI.js";
23
23
  export {
@@ -16,8 +16,8 @@ import {
16
16
  getSrklAccounts,
17
17
  srklListBackblazeBuckets
18
18
  } from "../chunk-XHADDA75.js";
19
- import "../chunk-4QEMALXF.js";
20
19
  import "../chunk-VAFCR2MS.js";
20
+ import "../chunk-4QEMALXF.js";
21
21
  export {
22
22
  CANONICAL_SRKL_URL,
23
23
  SrklClient,
@@ -452,7 +452,9 @@ function getUIComponentPromotion(purpose) {
452
452
  function buildUIComponentArtifact(session) {
453
453
  const purpose = getUIComponentPurpose(session.context);
454
454
  const origin = session.metadata.origin === "kult" || session.metadata.origin === "theta" || session.metadata.origin === "kelt" ? session.metadata.origin : "other";
455
- const root = session.nodes.find((node) => node.kind === "component" && !node.parentId)?.assetRef;
455
+ const requestedRootId = session.metadata.rootComponentId;
456
+ const root = session.nodes.find((node) => node.kind === "component" && node.id === requestedRootId) || session.nodes.find((node) => node.kind === "component");
457
+ const rootAsset = root?.assetRef;
456
458
  return {
457
459
  artifactId: "kloks.ui-artifact." + session.sessionId,
458
460
  schemaVersion: "1.0.0",
@@ -462,7 +464,7 @@ function buildUIComponentArtifact(session) {
462
464
  context: session.context,
463
465
  name: session.metadata.name || session.sessionId,
464
466
  description: session.metadata.description || "",
465
- rootAsset: root,
467
+ rootAsset,
466
468
  session
467
469
  };
468
470
  }
@@ -1879,13 +1879,28 @@ function validateSession(session) {
1879
1879
  ids.add(node.id);
1880
1880
  if (node.parentId && !session.nodes.some((parent) => parent.id === node.parentId)) errors.push(`Missing parent for node: ${node.id}`);
1881
1881
  if (node.kind === "page" && node.parentId) errors.push(`Page cannot have a parent: ${node.id}`);
1882
+ if (node.kind === "section" && !node.parentId) errors.push(`Section requires a page parent: ${node.id}`);
1882
1883
  if (node.kind === "section" && node.parentId && !session.nodes.some((parent) => parent.id === node.parentId && parent.kind === "page")) errors.push(`Section parent must be a page: ${node.id}`);
1884
+ if (node.kind === "component" && !node.parentId) errors.push(`Component requires a section parent: ${node.id}`);
1883
1885
  if (node.kind === "component" && node.parentId && !session.nodes.some((parent) => parent.id === node.parentId && parent.kind === "section")) errors.push(`Component parent must be a section: ${node.id}`);
1884
1886
  }
1885
1887
  if (session.nodes.some((node) => node.kind === "component" && !node.assetRef)) errors.push("Every component node requires a FLOKS asset reference.");
1886
1888
  if (session.context === "service" && !session.metadata.serviceId) errors.push("Service authoring requires metadata.serviceId.");
1887
1889
  for (const binding of session.bindings) {
1888
- if (!session.nodes.some((node) => node.id === binding.componentId)) errors.push(`Binding references missing component: ${binding.componentId}`);
1890
+ const component = session.nodes.find((node) => node.id === binding.componentId);
1891
+ if (!component) errors.push(`Binding references missing component: ${binding.componentId}`);
1892
+ else if (component.kind !== "component") errors.push(`Binding target must be a component node: ${binding.componentId}`);
1893
+ const operation = session.operations.find((item) => item.operationId === binding.target.apiId);
1894
+ if (!operation) {
1895
+ errors.push(`Binding references missing operation: ${binding.target.apiId}`);
1896
+ continue;
1897
+ }
1898
+ const fields = binding.target.kind === "api-input" ? operation.inputFields : operation.outputFields;
1899
+ const field = fields?.find((item) => item.name === binding.target.field);
1900
+ if (!field) errors.push(`Binding references missing ${binding.target.kind === "api-input" ? "input" : "output"} field: ${binding.target.apiId}.${binding.target.field}`);
1901
+ else if (field.type.toLowerCase() !== binding.target.fieldType.toLowerCase()) {
1902
+ errors.push(`Binding field type mismatch for ${binding.target.apiId}.${binding.target.field}: expected ${field.type}, received ${binding.target.fieldType}`);
1903
+ }
1889
1904
  }
1890
1905
  if (!session.operations.length) warnings.push("No service operations have been attached to this authoring session.");
1891
1906
  return { valid: errors.length === 0, errors, warnings };
@@ -7,6 +7,29 @@ import {
7
7
  instantiateSubgraph
8
8
  } from "./chunk-S22PMERU.js";
9
9
  import "./chunk-RHRXPY2U.js";
10
+ import {
11
+ CommandApi,
12
+ GhostStore,
13
+ GraphStore
14
+ } from "./chunk-4UVGXFEM.js";
15
+ import {
16
+ BaseGraph,
17
+ BaseNode,
18
+ BaseViewWindow,
19
+ CustomGraph,
20
+ CustomNode,
21
+ CustomViewWindow,
22
+ DEFAULT_GRAPH_SETTINGS
23
+ } from "./chunk-KG6QYS26.js";
24
+ import {
25
+ LifecycleCycleError,
26
+ LifecycleGraph,
27
+ SKIPO_STATE,
28
+ SkipoStateEngine,
29
+ useLifecycleScope,
30
+ useSkipoBind,
31
+ useSkipoState
32
+ } from "./chunk-EW4ACSZB.js";
10
33
  import {
11
34
  AttractionEngine,
12
35
  GhostInferenceEngine,
@@ -22,20 +45,6 @@ import {
22
45
  WireTypeRegistry,
23
46
  initializeDefaultGraphRules
24
47
  } from "./chunk-TZOL3RN7.js";
25
- import {
26
- CommandApi,
27
- GhostStore,
28
- GraphStore
29
- } from "./chunk-4UVGXFEM.js";
30
- import {
31
- BaseGraph,
32
- BaseNode,
33
- BaseViewWindow,
34
- CustomGraph,
35
- CustomNode,
36
- CustomViewWindow,
37
- DEFAULT_GRAPH_SETTINGS
38
- } from "./chunk-KG6QYS26.js";
39
48
  import {
40
49
  AutoSolidify,
41
50
  SpatialEngine,
@@ -49,15 +58,6 @@ import {
49
58
  import {
50
59
  CompatibilityMatrix
51
60
  } from "./chunk-ISFNY7EZ.js";
52
- import {
53
- LifecycleCycleError,
54
- LifecycleGraph,
55
- SKIPO_STATE,
56
- SkipoStateEngine,
57
- useLifecycleScope,
58
- useSkipoBind,
59
- useSkipoState
60
- } from "./chunk-EW4ACSZB.js";
61
61
 
62
62
  // ../../node_modules/.pnpm/@ultrst-armada+krnl@1.0.3/node_modules/@ultrst-armada/krnl/packages/core/dist/index.js
63
63
  var ServiceStateStore = class {
@@ -1,9 +1,9 @@
1
- import {
2
- StorageAdapterFactory
3
- } from "./chunk-SHZAQTIT.js";
4
1
  import {
5
2
  findUserWorkspace
6
3
  } from "./chunk-6K75XXFD.js";
4
+ import {
5
+ StorageAdapterFactory
6
+ } from "./chunk-SHZAQTIT.js";
7
7
 
8
8
  // src/services/workspaceGraphService.ts
9
9
  function slugify(name) {