@exellix/catalox-graphs 1.2.0 → 1.2.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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,13 @@
1
+ # Changelog
2
+
3
+ ## 1.2.2 — 2026-06-23
4
+
5
+ ### Added
6
+
7
+ - **`createCataloxGraphDocumentLoader`** — Catalox-first `loadGraph` for execute/compile paths (same catalog Graph Studio saves to).
8
+ - **`createExecuteGraphLoader`** — alias for factory and matrix workers.
9
+ - Tests for loader precedence (Catalox wins over Mongo fallback).
10
+
11
+ ### Changed
12
+
13
+ - README and `docs/STUDIO_INTEGRATION.md`: Catalox `graphs` catalog is the single authoritative store for executable documents; Mongo `exellix.graphs` is matrix id-registry only.
package/README.md CHANGED
@@ -1,15 +1,17 @@
1
- # @x12i/catalox-graphs
1
+ # @exellix/catalox-graphs
2
2
 
3
- Shared Catalox data tier for **graphs-studio** and **jobs-ui**: graph catalog CRUD, version checkpoints, templates, legacy concepts, HTTP proxy routes, browser client, and `CataloxGraphPicker`.
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`.
4
+
5
+ **Authoritative store:** Catalox catalog `graphs` (full `AuthoringGraphDocument`). Mongo `exellix.graphs` is matrix id-registry only.
4
6
 
5
7
  ## Exports
6
8
 
7
9
  | Import | Use |
8
10
  |--------|-----|
9
- | `@x12i/catalox-graphs` | Server stores, readiness probe, types |
10
- | `@x12i/catalox-graphs/http` | Fastify route registrar (`/api/catalox/*`) |
11
- | `@x12i/catalox-graphs/browser` | Browser fetch client |
12
- | `@x12i/catalox-graphs/react` | `CataloxGraphPicker`, `useCataloxGraphs` |
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` |
13
15
 
14
16
  ## Env
15
17
 
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export { getCataloxBound, resetCataloxRuntimeCache } from './client/catalox-runt
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, type CompatibleGraphFromCatalox, } from './stores/graph-store.js';
7
+ export { createCataloxGraphDocumentLoader, createExecuteGraphLoader, type CreateCataloxGraphDocumentLoaderOptions, type GraphDocumentLoaderLike, } from './stores/graph-document-loader.js';
7
8
  export { saveGraphVersionToCatalox, loadGraphVersionFromCatalox, listGraphVersionsFromCatalox, deleteGraphVersionFromCatalox, pruneGraphVersionsBeyondLimit, graphVersionItemId, parseGraphVersionItemId, } from './stores/graph-version-store.js';
8
9
  export { listGraphTemplatesFromCatalox, getGraphTemplateFromCatalox, saveGraphTemplateToCatalox, deleteGraphTemplateFromCatalox, type GraphTemplateSummary, } from './stores/graph-template-store.js';
9
10
  export { loadConceptFromCatalox, saveConceptToCatalox, deleteConceptFromCatalox, } from './stores/concept-store.js';
@@ -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,KAAK,0BAA0B,GAChC,MAAM,yBAAyB,CAAC;AAEjC,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,GACrB,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,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,KAAK,0BAA0B,GAChC,MAAM,yBAAyB,CAAC;AAEjC,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,GACrB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,0BAA0B,EAAE,KAAK,iCAAiC,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ export { getCataloxBound, resetCataloxRuntimeCache } from './client/catalox-runt
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, } from './stores/graph-store.js';
7
+ export { createCataloxGraphDocumentLoader, createExecuteGraphLoader, } from './stores/graph-document-loader.js';
7
8
  export { saveGraphVersionToCatalox, loadGraphVersionFromCatalox, listGraphVersionsFromCatalox, deleteGraphVersionFromCatalox, pruneGraphVersionsBeyondLimit, graphVersionItemId, parseGraphVersionItemId, } from './stores/graph-version-store.js';
8
9
  export { listGraphTemplatesFromCatalox, getGraphTemplateFromCatalox, saveGraphTemplateToCatalox, deleteGraphTemplateFromCatalox, } from './stores/graph-template-store.js';
9
10
  export { loadConceptFromCatalox, saveConceptToCatalox, deleteConceptFromCatalox, } from './stores/concept-store.js';
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,GAEtB,MAAM,yBAAyB,CAAC;AAEjC,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;AAWnC,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,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,GAEtB,MAAM,yBAAyB,CAAC;AAEjC,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;AAWnC,OAAO,EAAE,0BAA0B,EAA0C,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { CataloxBound } from '@x12i/catalox/embedder';
2
+ /** Minimal loader surface shared with jobs-db {@link GraphDocumentLoader}. */
3
+ export type GraphDocumentLoaderLike = {
4
+ loadGraph(graphId: string): Promise<unknown>;
5
+ };
6
+ export type CreateCataloxGraphDocumentLoaderOptions = {
7
+ bound?: CataloxBound;
8
+ /**
9
+ * Optional fallback when the graph id is absent from Catalox.
10
+ * Not used when Catalox returns a graph — authoritative source is always Catalox when present.
11
+ */
12
+ fallback?: GraphDocumentLoaderLike;
13
+ };
14
+ /**
15
+ * Loads executable graph documents from the Catalox `graphs` catalog — same source Graph Studio saves to.
16
+ *
17
+ * Mongo `exellix.graphs` config rows (matrix metadata) are not AuthoringGraphDocuments and must not
18
+ * be used as the primary execution source.
19
+ */
20
+ export declare function createCataloxGraphDocumentLoader(options?: CreateCataloxGraphDocumentLoaderOptions): GraphDocumentLoaderLike;
21
+ /** Alias for factory/matrix execute paths — same Catalox-first loader. */
22
+ export declare const createExecuteGraphLoader: typeof createCataloxGraphDocumentLoader;
23
+ //# sourceMappingURL=graph-document-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-document-loader.d.ts","sourceRoot":"","sources":["../../src/stores/graph-document-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAI3D,8EAA8E;AAC9E,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,uCAAuC,GAAG;IACpD,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CACpC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,GAAE,uCAA4C,GACpD,uBAAuB,CAkBzB;AAED,0EAA0E;AAC1E,eAAO,MAAM,wBAAwB,yCAAmC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { getCataloxBound } from '../client/catalox-runtime.js';
2
+ import { loadGraphFromCatalox } from './graph-store.js';
3
+ /**
4
+ * Loads executable graph documents from the Catalox `graphs` catalog — same source Graph Studio saves to.
5
+ *
6
+ * Mongo `exellix.graphs` config rows (matrix metadata) are not AuthoringGraphDocuments and must not
7
+ * be used as the primary execution source.
8
+ */
9
+ export function createCataloxGraphDocumentLoader(options = {}) {
10
+ return {
11
+ async loadGraph(graphId) {
12
+ const bound = options.bound ?? (await getCataloxBound());
13
+ const fromCatalox = await loadGraphFromCatalox(graphId, { bound });
14
+ if (fromCatalox.ok && fromCatalox.graph != null) {
15
+ return fromCatalox.graph;
16
+ }
17
+ if (options.fallback) {
18
+ return options.fallback.loadGraph(graphId);
19
+ }
20
+ const message = !fromCatalox.ok && 'error' in fromCatalox && fromCatalox.error
21
+ ? fromCatalox.error
22
+ : `Graph "${graphId}" not found in Catalox graphs catalog`;
23
+ throw new Error(message);
24
+ },
25
+ };
26
+ }
27
+ /** Alias for factory/matrix execute paths — same Catalox-first loader. */
28
+ export const createExecuteGraphLoader = createCataloxGraphDocumentLoader;
29
+ //# sourceMappingURL=graph-document-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-document-loader.js","sourceRoot":"","sources":["../../src/stores/graph-document-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAgBxD;;;;;GAKG;AACH,MAAM,UAAU,gCAAgC,CAC9C,UAAmD,EAAE;IAErD,OAAO;QACL,KAAK,CAAC,SAAS,CAAC,OAAe;YAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC;YACzD,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACnE,IAAI,WAAW,CAAC,EAAE,IAAI,WAAW,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;gBAChD,OAAO,WAAW,CAAC,KAAK,CAAC;YAC3B,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,OAAO,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,OAAO,GACX,CAAC,WAAW,CAAC,EAAE,IAAI,OAAO,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK;gBAC5D,CAAC,CAAC,WAAW,CAAC,KAAK;gBACnB,CAAC,CAAC,UAAU,OAAO,uCAAuC,CAAC;YAC/D,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,CAAC,MAAM,wBAAwB,GAAG,gCAAgC,CAAC"}
@@ -0,0 +1,61 @@
1
+ # graphs-studio — Catalox data tier integration
2
+
3
+ **Single source of truth:** executable graph documents live in the Catalox `graphs` catalog only.
4
+ Do not duplicate save/load logic or persist full graphs to Mongo `exellix.graphs` (matrix id-registry only).
5
+
6
+ ## Package
7
+
8
+ `@exellix/catalox-graphs` — use this for **all** graph catalog CRUD, listing, and execute-time loading.
9
+
10
+ ## Required studio integration
11
+
12
+ | Concern | Use from `@exellix/catalox-graphs` | Do not |
13
+ |---------|-----------------------------------|--------|
14
+ | Save / load graph | `saveGraphToCatalox`, `loadGraphFromCatalox` | Inline Catalox SDK calls, duplicate HTTP |
15
+ | List / picker | `listGraphsFromCatalox`, `CataloxGraphPicker`, `useCataloxGraphs` | Separate graph list API |
16
+ | Execute / compile load | `createCataloxGraphDocumentLoader` or `createExecuteGraphLoader` | Mongo `exellix.graphs` documents |
17
+ | Versions / templates | `saveGraphVersionToCatalox`, `listGraphTemplatesFromCatalox`, HTTP routes | Ad-hoc catalog writes |
18
+ | HTTP BFF | `registerCataloxGraphRoutes(app, { prefix: '/api/catalox' })` | Re-implement `/api/catalox/*` |
19
+
20
+ ### Server (BFF)
21
+
22
+ ```ts
23
+ import { registerCataloxGraphRoutes } from '@exellix/catalox-graphs/http';
24
+
25
+ await registerCataloxGraphRoutes(app, { prefix: '/api/catalox' });
26
+ ```
27
+
28
+ ### Browser / React
29
+
30
+ ```ts
31
+ import { cataloxApi } from '@exellix/catalox-graphs/browser';
32
+ import { CataloxGraphPicker, useCataloxGraphs } from '@exellix/catalox-graphs/react';
33
+ ```
34
+
35
+ ### Save path
36
+
37
+ ```ts
38
+ import { saveGraphToCatalox } from '@exellix/catalox-graphs';
39
+
40
+ await saveGraphToCatalox(authoringDocument, { title, concept });
41
+ ```
42
+
43
+ Studio-only metadata (examples, `graphsStudio` UI blobs) stays in the **graphs-studio DB** per `GraphStudioDocument` — not in Mongo config, not duplicated in Catalox unless explicitly modeled as `concept`.
44
+
45
+ ## Job memory context (with Memorix)
46
+
47
+ | Concern | Package |
48
+ |---------|---------|
49
+ | Graph catalog, versions, templates | `@exellix/catalox-graphs` |
50
+ | Context query types, resolution, source reads | `@x12i/memorix-mongo` |
51
+
52
+ See [`@x12i/memorix-mongo` STUDIO_INTEGRATION.md](../../memorix-mongo/docs/STUDIO_INTEGRATION.md).
53
+
54
+ ## Same package used by jobs
55
+
56
+ `@exellix/jobs-api` and `@exellix/jobs` load executable graphs via `createExecuteGraphLoader` → Catalox first.
57
+ Studio and factory runs therefore share one catalog document.
58
+
59
+ ## Env
60
+
61
+ Same Firebase / Catalox vars as jobs-api — see [README.md](../README.md).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exellix/catalox-graphs",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "Catalox graph catalog data tier: CRUD for graphs, versions, templates, and shared React picker.",
5
5
  "type": "module",
6
6
  "engines": {
@@ -32,7 +32,9 @@
32
32
  },
33
33
  "files": [
34
34
  "dist",
35
- "README.md"
35
+ "README.md",
36
+ "CHANGELOG.md",
37
+ "docs"
36
38
  ],
37
39
  "scripts": {
38
40
  "build": "tsc -p tsconfig.build.json && tsc -p tsconfig.react.json",