@exellix/catalox-graphs 1.2.9 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.3.0 — 2026-06-25
4
+
5
+ ### Breaking
6
+
7
+ - **Layer split:** HTTP BFF and browser/React moved to sibling packages:
8
+ - `@exellix/catalox-graphs-http` — `registerCataloxGraphRoutes`
9
+ - `@exellix/catalox-graphs-ui` — `cataloxApi`, `CataloxGraphPicker`, `useCataloxGraphs`
10
+ - Removed subpath exports `./http`, `./browser`, `./react` from this package.
11
+ - This package is now **Node data tier only** (stores, loaders, Catalox runtime).
12
+
3
13
  ## 1.2.9 — 2026-06-24
4
14
 
5
15
  ### Added
package/README.md CHANGED
@@ -1,17 +1,24 @@
1
1
  # @exellix/catalox-graphs
2
2
 
3
- Shared Catalox data tier for **graphs-studio**, **jobs-api**, and **jobs-ui**: graph catalog CRUD, version checkpoints, templates, execute-time loading, HTTP proxy routes, browser client, and `CataloxGraphPicker`.
3
+ Node data tier for Catalox graph catalogs: CRUD stores, version checkpoints, templates, execute-time loaders, and readiness probes.
4
4
 
5
5
  **Authoritative store:** Catalox catalog `graphs` (full `AuthoringGraphDocument`). Mongo `exellix.graphs` is matrix id-registry only.
6
6
 
7
+ Related packages (split by layer):
8
+
9
+ | Package | Layer |
10
+ |---------|-------|
11
+ | `@exellix/catalox-graphs` | **Data tier** — stores, loaders, Catalox runtime (this package) |
12
+ | `@exellix/catalox-graphs-http` | **HTTP BFF** — Fastify `/api/catalox/*` routes |
13
+ | `@exellix/catalox-graphs-ui` | **Browser + React** — fetch client, `CataloxGraphPicker` |
14
+
7
15
  ## Exports
8
16
 
9
17
  | Import | Use |
10
18
  |--------|-----|
11
- | `@exellix/catalox-graphs` | Server stores, `createCataloxGraphDocumentLoader` / `createExecuteGraphLoader`, readiness |
12
- | `@exellix/catalox-graphs/http` | Fastify route registrar (`/api/catalox/*`) |
13
- | `@exellix/catalox-graphs/browser` | Browser fetch client |
14
- | `@exellix/catalox-graphs/react` | `CataloxGraphPicker`, `useCataloxGraphs` |
19
+ | `@exellix/catalox-graphs` | `saveGraphToCatalox`, `loadGraphFromCatalox`, `createExecuteGraphLoader`, stores, types |
20
+
21
+ For HTTP routes use `@exellix/catalox-graphs-http`. For browser/React use `@exellix/catalox-graphs-ui`.
15
22
 
16
23
  ## Env
17
24
 
@@ -25,10 +32,11 @@ Same Firebase / Catalox vars as graphs-studio:
25
32
 
26
33
  ## HTTP routes
27
34
 
28
- Mount with:
35
+ Mount BFF from the sibling package:
29
36
 
30
37
  ```ts
31
- import { registerCataloxGraphRoutes } from '@x12i/catalox-graphs/http';
38
+ import { registerCataloxGraphRoutes } from '@exellix/catalox-graphs-http';
39
+
32
40
  await registerCataloxGraphRoutes(app, { prefix: '/api/catalox' });
33
41
  ```
34
42
 
@@ -44,7 +52,7 @@ Key endpoints:
44
52
  ## React picker
45
53
 
46
54
  ```tsx
47
- import { CataloxGraphPicker } from '@x12i/catalox-graphs/react';
55
+ import { CataloxGraphPicker } from '@exellix/catalox-graphs-ui/react';
48
56
 
49
57
  <CataloxGraphPicker
50
58
  value={graphId}
@@ -55,17 +63,6 @@ import { CataloxGraphPicker } from '@x12i/catalox-graphs/react';
55
63
  />
56
64
  ```
57
65
 
58
- Studio load mode:
59
-
60
- ```tsx
61
- <CataloxGraphPicker
62
- onLoad={async (result) => {
63
- if (!result.ok) return;
64
- applyImportedGraph(result.graph, { versionSource: 'catalox', forceApply: true });
65
- }}
66
- />
67
- ```
68
-
69
66
  ## graphs-studio integration
70
67
 
71
68
  See [docs/STUDIO_INTEGRATION.md](./docs/STUDIO_INTEGRATION.md). Pair with [`@x12i/memorix-mongo`](../memorix-mongo/docs/STUDIO_INTEGRATION.md) for job memory context.
@@ -76,3 +73,30 @@ See [docs/STUDIO_INTEGRATION.md](./docs/STUDIO_INTEGRATION.md). Pair with [`@x12
76
73
  - `graph-versions` — version checkpoints
77
74
  - `graph-templates` — saved/system templates
78
75
  - `graph-concepts` — legacy concept rows (dual-write optional in studio)
76
+
77
+ ## Migration from 1.2.x
78
+
79
+ Subpath exports moved to dedicated packages:
80
+
81
+ | Before | After |
82
+ |--------|-------|
83
+ | `@exellix/catalox-graphs/http` | `@exellix/catalox-graphs-http` |
84
+ | `@exellix/catalox-graphs/browser` | `@exellix/catalox-graphs-ui` |
85
+ | `@exellix/catalox-graphs/react` | `@exellix/catalox-graphs-ui/react` |
86
+
87
+ ## Publish
88
+
89
+ Requires root `.npmrc` with your npm token (copy from `.npmrc.example` at repo root).
90
+
91
+ ```bash
92
+ # This package only
93
+ cd catalox-graphs && npm run publish
94
+
95
+ # Plan without publishing
96
+ npm run publish:dry
97
+
98
+ # All three catalox packages in order (graphs → http → ui)
99
+ node ../scripts/publish-all.mjs --packages catalox-graphs,catalox-graphs-http,catalox-graphs-ui --no-bump
100
+ ```
101
+
102
+ From repo root: `npm run publish:all` publishes the full core chain in dependency order.
@@ -1,4 +1,6 @@
1
1
  import type { CataloxBound } from '@x12i/catalox/embedder';
2
+ /** Share one Catalox/Firebase bound with Memorix retrieval (avoids double Firebase init). */
3
+ export declare function seedCataloxBound(preloaded: CataloxBound): void;
2
4
  export declare function resetCataloxRuntimeCache(): void;
3
5
  export declare function getCataloxBound(): Promise<CataloxBound>;
4
6
  //# sourceMappingURL=catalox-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalox-runtime.d.ts","sourceRoot":"","sources":["../../src/client/catalox-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAY3D,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAoB7D"}
1
+ {"version":3,"file":"catalox-runtime.d.ts","sourceRoot":"","sources":["../../src/client/catalox-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAY3D,6FAA6F;AAC7F,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAG9D;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAoB7D"}
@@ -3,6 +3,11 @@ import { createCataloxFromEnv } from '@x12i/catalox/firebase';
3
3
  import { cataloxContextFromEnv, readCataloxAppId, readCataloxStoreId, } from '../config/catalox-context-from-env.js';
4
4
  let bound = null;
5
5
  let init = null;
6
+ /** Share one Catalox/Firebase bound with Memorix retrieval (avoids double Firebase init). */
7
+ export function seedCataloxBound(preloaded) {
8
+ bound = preloaded;
9
+ init = Promise.resolve(preloaded);
10
+ }
6
11
  export function resetCataloxRuntimeCache() {
7
12
  bound = null;
8
13
  init = null;
@@ -1 +1 @@
1
- {"version":3,"file":"catalox-runtime.js","sourceRoot":"","sources":["../../src/client/catalox-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uCAAuC,CAAC;AAE/C,IAAI,KAAK,GAAwB,IAAI,CAAC;AACtC,IAAI,IAAI,GAAiC,IAAI,CAAC;AAE9C,MAAM,UAAU,wBAAwB;IACtC,KAAK,GAAG,IAAI,CAAC;IACb,IAAI,GAAG,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE;YACjB,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAClF,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,GAAG,oBAAoB,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG;gBACV,KAAK;gBACL,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,GAAG,qBAAqB,EAAE;aAC3B,CAAC;YACF,KAAK,GAAG,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACzC,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"catalox-runtime.js","sourceRoot":"","sources":["../../src/client/catalox-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uCAAuC,CAAC;AAE/C,IAAI,KAAK,GAAwB,IAAI,CAAC;AACtC,IAAI,IAAI,GAAiC,IAAI,CAAC;AAE9C,6FAA6F;AAC7F,MAAM,UAAU,gBAAgB,CAAC,SAAuB;IACtD,KAAK,GAAG,SAAS,CAAC;IAClB,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,KAAK,GAAG,IAAI,CAAC;IACb,IAAI,GAAG,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE;YACjB,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAClF,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,GAAG,oBAAoB,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG;gBACV,KAAK;gBACL,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,GAAG,qBAAqB,EAAE;aAC3B,CAAC;YACF,KAAK,GAAG,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACzC,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { CATALOG_IDS, DEFAULT_LIST_LIMIT, GRAPH_VERSION_HISTORY_MAX } from './config/catalog-ids.js';
2
2
  export { cataloxContextFromEnv, hasFirebaseCredentials, readCataloxAppId, readCataloxStoreId, type CataloxServiceContext, } from './config/catalox-context-from-env.js';
3
- export { getCataloxBound, resetCataloxRuntimeCache } from './client/catalox-runtime.js';
3
+ export { getCataloxBound, resetCataloxRuntimeCache, seedCataloxBound } from './client/catalox-runtime.js';
4
4
  export { listCatalogItems, getCatalogItem, upsertCatalogItem, deleteCatalogItem, type CatalogListResponse, type CatalogGetResponse, type CatalogWriteResponse, } from './client/catalox-api.js';
5
5
  export { probeCataloxReady, invalidateCataloxReadyCache, type CataloxReadyStatus } from './readiness.js';
6
6
  export { listGraphsFromCatalox, loadGraphFromCatalox, saveGraphToCatalox, deleteGraphFromCatalox, listCompatibleGraphsFromCatalox, graphProjectSummaryFromItem, buildGraphProjectDocument, graphToCatalogPayload, readGraphFromProjectData, readAuthoringGraphFromProjectData, type CompatibleGraphFromCatalox, type ReadAuthoringGraphResult, } from './stores/graph-store.js';
@@ -12,5 +12,4 @@ export { saveGraphVersionToCatalox, loadGraphVersionFromCatalox, listGraphVersio
12
12
  export { listGraphTemplatesFromCatalox, getGraphTemplateFromCatalox, saveGraphTemplateToCatalox, deleteGraphTemplateFromCatalox, type GraphTemplateSummary, } from './stores/graph-template-store.js';
13
13
  export { loadConceptFromCatalox, saveConceptToCatalox, deleteConceptFromCatalox, } from './stores/concept-store.js';
14
14
  export type { GraphProjectSummary, GraphProjectDocument, LoadGraphResult, SaveGraphOptions, GraphVersionPayload, GraphTemplatePayload, CataloxGraphErrorCode, } from './types/graph-project.js';
15
- export { registerCataloxGraphRoutes, type RegisterCataloxGraphRoutesOptions } from './http/register-routes.js';
16
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACrG,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,qBAAqB,GAC3B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzG,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,+BAA+B,EAC/B,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,iCAAiC,EACjC,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAE7F,OAAO,EACL,4BAA4B,EAC5B,oCAAoC,GACrC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,wCAAwC,EACxC,2BAA2B,EAC3B,+BAA+B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,GACjC,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,gCAAgC,EAChC,wBAAwB,EACxB,KAAK,uCAAuC,EAC5C,KAAK,uBAAuB,GAC7B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,8BAA8B,EAC9B,KAAK,oBAAoB,GAC1B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,0BAA0B,EAAE,KAAK,iCAAiC,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACrG,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,qBAAqB,GAC3B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC1G,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzG,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,+BAA+B,EAC/B,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,iCAAiC,EACjC,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAE7F,OAAO,EACL,4BAA4B,EAC5B,oCAAoC,GACrC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,wCAAwC,EACxC,2BAA2B,EAC3B,+BAA+B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,GACjC,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,gCAAgC,EAChC,wBAAwB,EACxB,KAAK,uCAAuC,EAC5C,KAAK,uBAAuB,GAC7B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,8BAA8B,EAC9B,KAAK,oBAAoB,GAC1B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export { CATALOG_IDS, DEFAULT_LIST_LIMIT, GRAPH_VERSION_HISTORY_MAX } from './config/catalog-ids.js';
2
2
  export { cataloxContextFromEnv, hasFirebaseCredentials, readCataloxAppId, readCataloxStoreId, } from './config/catalox-context-from-env.js';
3
- export { getCataloxBound, resetCataloxRuntimeCache } from './client/catalox-runtime.js';
3
+ export { getCataloxBound, resetCataloxRuntimeCache, seedCataloxBound } from './client/catalox-runtime.js';
4
4
  export { listCatalogItems, getCatalogItem, upsertCatalogItem, deleteCatalogItem, } from './client/catalox-api.js';
5
5
  export { probeCataloxReady, invalidateCataloxReadyCache } from './readiness.js';
6
6
  export { listGraphsFromCatalox, loadGraphFromCatalox, saveGraphToCatalox, deleteGraphFromCatalox, listCompatibleGraphsFromCatalox, graphProjectSummaryFromItem, buildGraphProjectDocument, graphToCatalogPayload, readGraphFromProjectData, readAuthoringGraphFromProjectData, } from './stores/graph-store.js';
@@ -11,5 +11,4 @@ export { createCataloxGraphDocumentLoader, createExecuteGraphLoader, } from './s
11
11
  export { saveGraphVersionToCatalox, loadGraphVersionFromCatalox, listGraphVersionsFromCatalox, deleteGraphVersionFromCatalox, pruneGraphVersionsBeyondLimit, graphVersionItemId, parseGraphVersionItemId, } from './stores/graph-version-store.js';
12
12
  export { listGraphTemplatesFromCatalox, getGraphTemplateFromCatalox, saveGraphTemplateToCatalox, deleteGraphTemplateFromCatalox, } from './stores/graph-template-store.js';
13
13
  export { loadConceptFromCatalox, saveConceptToCatalox, deleteConceptFromCatalox, } from './stores/concept-store.js';
14
- export { registerCataloxGraphRoutes } from './http/register-routes.js';
15
14
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACrG,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,GAEnB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAIlB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAA2B,MAAM,gBAAgB,CAAC;AAEzG,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,+BAA+B,EAC/B,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,iCAAiC,GAGlC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAE7F,OAAO,EACL,4BAA4B,EAC5B,oCAAoC,GACrC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,wCAAwC,EACxC,2BAA2B,EAC3B,+BAA+B,GAIhC,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,gCAAgC,EAChC,wBAAwB,GAGzB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,8BAA8B,GAE/B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AAYnC,OAAO,EAAE,0BAA0B,EAA0C,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACrG,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,GAEnB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC1G,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAIlB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAA2B,MAAM,gBAAgB,CAAC;AAEzG,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,+BAA+B,EAC/B,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,iCAAiC,GAGlC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAE7F,OAAO,EACL,4BAA4B,EAC5B,oCAAoC,GACrC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,wCAAwC,EACxC,2BAA2B,EAC3B,+BAA+B,GAIhC,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,gCAAgC,EAChC,wBAAwB,GAGzB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,8BAA8B,GAE/B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC"}
@@ -3,24 +3,30 @@
3
3
  **Single source of truth:** executable graph documents live in the Catalox `graphs` catalog only.
4
4
  Do not duplicate save/load logic or persist full graphs to Mongo `exellix.graphs` (matrix id-registry only).
5
5
 
6
- ## Package
6
+ ## Packages
7
7
 
8
- `@exellix/catalox-graphs` use this for **all** graph catalog CRUD, listing, and execute-time loading.
8
+ | Layer | Package |
9
+ |-------|---------|
10
+ | Data tier (Node) | `@exellix/catalox-graphs` |
11
+ | HTTP BFF | `@exellix/catalox-graphs-http` |
12
+ | Browser + React | `@exellix/catalox-graphs-ui` |
13
+
14
+ Use `@exellix/catalox-graphs` for **all** server-side graph catalog CRUD, listing, and execute-time loading.
9
15
 
10
16
  ## Required studio integration
11
17
 
12
- | Concern | Use from `@exellix/catalox-graphs` | Do not |
13
- |---------|-----------------------------------|--------|
18
+ | Concern | Use | Do not |
19
+ |---------|-----|--------|
14
20
  | Save / load graph | `saveGraphToCatalox`, `loadGraphFromCatalox` | Inline Catalox SDK calls, duplicate HTTP |
15
- | List / picker | `listGraphsFromCatalox`, `CataloxGraphPicker`, `useCataloxGraphs` | Separate graph list API |
21
+ | List / picker | `CataloxGraphPicker`, `useCataloxGraphs` (`@exellix/catalox-graphs-ui/react`) | Separate graph list API |
16
22
  | Execute / compile load | `createCataloxGraphDocumentLoader` or `createExecuteGraphLoader` | Mongo `exellix.graphs` documents |
17
- | Versions / templates | `saveGraphVersionToCatalox`, `listGraphTemplatesFromCatalox`, HTTP routes | Ad-hoc catalog writes |
23
+ | Versions / templates | store functions from `@exellix/catalox-graphs`, HTTP from `@exellix/catalox-graphs-http` | Ad-hoc catalog writes |
18
24
  | HTTP BFF | `registerCataloxGraphRoutes(app, { prefix: '/api/catalox' })` | Re-implement `/api/catalox/*` |
19
25
 
20
26
  ### Server (BFF)
21
27
 
22
28
  ```ts
23
- import { registerCataloxGraphRoutes } from '@exellix/catalox-graphs/http';
29
+ import { registerCataloxGraphRoutes } from '@exellix/catalox-graphs-http';
24
30
 
25
31
  await registerCataloxGraphRoutes(app, { prefix: '/api/catalox' });
26
32
  ```
@@ -28,8 +34,8 @@ await registerCataloxGraphRoutes(app, { prefix: '/api/catalox' });
28
34
  ### Browser / React
29
35
 
30
36
  ```ts
31
- import { cataloxApi } from '@exellix/catalox-graphs/browser';
32
- import { CataloxGraphPicker, useCataloxGraphs } from '@exellix/catalox-graphs/react';
37
+ import { cataloxApi } from '@exellix/catalox-graphs-ui';
38
+ import { CataloxGraphPicker, useCataloxGraphs } from '@exellix/catalox-graphs-ui/react';
33
39
  ```
34
40
 
35
41
  ### Save path
@@ -46,7 +52,7 @@ Studio-only metadata (examples, `graphsStudio` UI blobs) stays in the **graphs-s
46
52
 
47
53
  | Concern | Package |
48
54
  |---------|---------|
49
- | Graph catalog, versions, templates | `@exellix/catalox-graphs` |
55
+ | Graph catalog, versions, templates | `@exellix/catalox-graphs` (+ HTTP/UI siblings) |
50
56
  | Context query types, resolution, source reads | `@x12i/memorix-mongo` |
51
57
 
52
58
  See [`@x12i/memorix-mongo` STUDIO_INTEGRATION.md](../../memorix-mongo/docs/STUDIO_INTEGRATION.md).
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@exellix/catalox-graphs",
3
- "version": "1.2.9",
4
- "description": "Catalox graph catalog data tier: CRUD for graphs, versions, templates, and shared React picker.",
3
+ "version": "1.3.0",
4
+ "description": "Catalox graph catalog data tier (Node): CRUD stores, document loaders, and readiness probes.",
5
5
  "type": "module",
6
6
  "engines": {
7
7
  "node": ">=20"
@@ -16,18 +16,6 @@
16
16
  ".": {
17
17
  "types": "./dist/index.d.ts",
18
18
  "import": "./dist/index.js"
19
- },
20
- "./http": {
21
- "types": "./dist/http/register-routes.d.ts",
22
- "import": "./dist/http/register-routes.js"
23
- },
24
- "./browser": {
25
- "types": "./dist/browser/catalox-api-client.d.ts",
26
- "import": "./dist/browser/catalox-api-client.js"
27
- },
28
- "./react": {
29
- "types": "./dist/react/index.d.ts",
30
- "import": "./dist/react/index.js"
31
19
  }
32
20
  },
33
21
  "files": [
@@ -37,9 +25,11 @@
37
25
  "docs"
38
26
  ],
39
27
  "scripts": {
40
- "build": "tsc -p tsconfig.build.json && tsc -p tsconfig.react.json",
28
+ "build": "tsc -p tsconfig.build.json",
41
29
  "clean": "node -e \"import('node:fs').then(fs=>fs.promises.rm('dist',{recursive:true,force:true}))\"",
42
30
  "prepack": "npm run build",
31
+ "publish": "node ../scripts/publish-package.mjs",
32
+ "publish:dry": "node ../scripts/publish-package.mjs --dry-run",
43
33
  "test": "vitest run",
44
34
  "test:watch": "vitest",
45
35
  "patch:graphs-graphid-index": "node scripts/patch-graphs-catalog-graphid-index.mjs"
@@ -52,9 +42,6 @@
52
42
  },
53
43
  "devDependencies": {
54
44
  "@types/node": "^22.10.2",
55
- "@types/react": "^19.2.17",
56
- "fastify": "^5.8.5",
57
- "react": "^19.2.7",
58
45
  "typescript": "^5.7.2",
59
46
  "vitest": "^3.0.0"
60
47
  },