@exellix/graph-composer 2.12.0 → 2.14.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.
Files changed (3) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +15 -19
  3. package/package.json +6 -24
package/CHANGELOG.md CHANGED
@@ -111,7 +111,7 @@
111
111
 
112
112
  ### Fixed
113
113
 
114
- - Load `@exellix/ai-skills` analysis helpers via resolved file paths instead of non-exported package subpaths, so consumers importing `@exellix/graph-composer` or `@exellix/exellix-runtime` (e.g. `@exellix/exellix-jobs`) no longer fail at module load.
114
+ - Load `@exellix/ai-skills` analysis helpers via resolved file paths instead of non-exported package subpaths, so consumers importing `@exellix/graph-composer` or `@x12i/exellix-runtime` (e.g. `@x12i/exellix-jobs`) no longer fail at module load.
115
115
 
116
116
  ## 2.5.0
117
117
 
package/README.md CHANGED
@@ -1,9 +1,9 @@
1
- # @x12i/graph-composer
1
+ # @exellix/graph-composer
2
2
 
3
3
  | | Location |
4
4
  |---|----------|
5
5
  | **GitHub (source)** | [`woroces/graph-composer`](https://github.com/woroces/graph-composer) — clone: `git@github.com:woroces/graph-composer.git` |
6
- | **npm (package)** | [`@x12i/graph-composer`](https://www.npmjs.com/package/@x12i/graph-composer) |
6
+ | **npm (package)** | [`@exellix/graph-composer`](https://www.npmjs.com/package/@exellix/graph-composer) |
7
7
 
8
8
  The Git repo lives under the **woroces** org with repo name **graph-composer**. That is separate from the npm scope **@x12i**.
9
9
 
@@ -62,7 +62,7 @@ Copy [`.env.example`](./.env.example) to `.env` for local development. **Do not
62
62
  ## Quick start (direct worker)
63
63
 
64
64
  ```ts
65
- import { runGraphComposer } from "@x12i/graph-composer";
65
+ import { runGraphComposer } from "@exellix/graph-composer";
66
66
 
67
67
  const result = await runGraphComposer(
68
68
  {
@@ -103,7 +103,7 @@ const result = await runGraphComposer(
103
103
  ### Orchestrator (toolbox)
104
104
 
105
105
  ```ts
106
- import { runGraphComposerAgent } from "@x12i/graph-composer";
106
+ import { runGraphComposerAgent } from "@exellix/graph-composer";
107
107
 
108
108
  const out = await runGraphComposerAgent(
109
109
  {
@@ -162,7 +162,7 @@ Types: `GraphConceptPatch`, `GraphConceptPatchKey`, `PrimaryIntentType`. Helper:
162
162
  **Example using the bundled fixture helper:**
163
163
 
164
164
  ```ts
165
- import { runGraphComposer, inputSuggestConceptObjectiveNetworkVulnSubnet } from "@x12i/graph-composer";
165
+ import { runGraphComposer, inputSuggestConceptObjectiveNetworkVulnSubnet } from "@exellix/graph-composer";
166
166
 
167
167
  const result = await runGraphComposer(inputSuggestConceptObjectiveNetworkVulnSubnet(), {
168
168
  askTimeoutMs: 120_000,
@@ -186,7 +186,7 @@ import {
186
186
  configureGraphComposerLogging,
187
187
  getGraphComposerLoggingConfig,
188
188
  runGraphComposer,
189
- } from "@x12i/graph-composer";
189
+ } from "@exellix/graph-composer";
190
190
 
191
191
  // Process-wide (e.g. after reading your service config)
192
192
  configureGraphComposerLogging({ logsLevel: "info" });
@@ -205,7 +205,7 @@ Precedence per worker run: **`options.logsLevel`** → **`configureGraphComposer
205
205
  Use `generateGraphJsonInputExample` when a host has a graph-specific expected input JSON Schema and wants a realistic smoke-test payload. It wraps Funcx `generateJsonExample`, adding graph metadata such as `metadata.graphConcept.expectedInput` and core tasks to the guidance.
206
206
 
207
207
  ```ts
208
- import { generateGraphJsonInputExample } from "@x12i/graph-composer";
208
+ import { generateGraphJsonInputExample } from "@exellix/graph-composer";
209
209
 
210
210
  const out = await generateGraphJsonInputExample({
211
211
  existingGraph: myGraphJson,
@@ -220,7 +220,7 @@ The package also re-exports Funcx `generateJsonExample`, `generateMdExample`, an
220
220
 
221
221
  ### Catalog resolution & creation (`suggestCatalogResolution`, `suggestCatalogCreations`)
222
222
 
223
- Both **require** `existingGraph`. Pass **`catalogCandidates`** (from **Catalox** via `loadCatalogCandidatesFromCatalox`, or fixtures): `aiSkills`, `utilitySkills`, `scopingMaps`, `narrixTemplates` — see [`docs/worox-graphs-catalogs.md`](./docs/worox-graphs-catalogs.md) and [`docs/catalog-metadb-end-state-contract.md`](./docs/catalog-metadb-end-state-contract.md) (**Catalox bridge + `catalogCandidates` as documented there: `@x12i/graph-composer` ≥ 1.6.0**).
223
+ Both **require** `existingGraph`. Pass **`catalogCandidates`** (from **Catalox** via `loadCatalogCandidatesFromCatalox`, or fixtures): `aiSkills`, `utilitySkills`, `scopingMaps`, `narrixTemplates` — see [`docs/worox-graphs-catalogs.md`](./docs/worox-graphs-catalogs.md) and [`docs/catalog-metadb-end-state-contract.md`](./docs/catalog-metadb-end-state-contract.md) (**Catalox bridge + `catalogCandidates` as documented there: `@exellix/graph-composer` ≥ 1.6.0**).
224
224
 
225
225
  - **`suggestCatalogResolution`** — Per-node style recommendations: `skillResolution`, `scopingResolution`, `narrixResolution`, `gaps`. Optional **`matchLists`** pre-pass (skills / scoping / narrix) injects **`catalogMatchHints`** into the worker prompt when `catalogMatchListsAssist !== false` (default) and an OpenRouter **client** is available.
226
226
  - **`suggestCatalogCreations`** — `catalogRequestProposals` (+ optional `newSkillDescriptors`). Host applies approved rows via **Catalox** (or your store); this package emits JSON only.
@@ -228,7 +228,7 @@ Both **require** `existingGraph`. Pass **`catalogCandidates`** (from **Catalox**
228
228
  ### Scoping need match & scoping map creation
229
229
 
230
230
  - **`suggestScopingNeedMatch`** — **Does not** require `existingGraph` (optional context). **Requires** non-empty **`catalogCandidates.scopingMaps`**. Put the data need in **`intent.description`**. Output: **`hasSuitableMatch`**, **`recommended`** (`scopingMapId` / `questionId` when true, **`null` when false**), **`gaps`**, optional **`alternatives`**. Optional **`matchLists`** injects **`scopingNeedMatchHints`** (same client / `catalogMatchListsAssist` flag).
231
- - **`suggestScopingMapCreation`** — Plan a new scoping map: **`scopingMapProposal`** + non-empty **`catalogRequestProposals`**. Host persists approved artifacts; see **`WoroxScopingMapCatalogCreatePayload`** exported from **`@x12i/graph-composer`** (authored as `src/scopingCatalogHostTypes.ts` in this repo).
231
+ - **`suggestScopingMapCreation`** — Plan a new scoping map: **`scopingMapProposal`** + non-empty **`catalogRequestProposals`**. Host persists approved artifacts; see **`WoroxScopingMapCatalogCreatePayload`** exported from **`@exellix/graph-composer`** (authored as `src/scopingCatalogHostTypes.ts` in this repo).
232
232
 
233
233
  ### `RunGraphComposerOptions` (workers)
234
234
 
@@ -266,8 +266,8 @@ Authoritative JSON shapes: [`functions/graph-composer/meta.json`](./functions/gr
266
266
 
267
267
  ```bash
268
268
  export OPENROUTER_API_KEY=sk-or-...
269
- npx @x12i/graph-composer explain-basic
270
- npx @x12i/graph-composer network-vuln
269
+ npx @exellix/graph-composer explain-basic
270
+ npx @exellix/graph-composer network-vuln
271
271
  ```
272
272
 
273
273
  Or use the binary name:
@@ -339,11 +339,7 @@ npm run typecheck
339
339
  npm test # live tests; needs OPENROUTER_API_KEY in .env
340
340
  ```
341
341
 
342
- Optional: [nx-config2](https://www.npmjs.com/package/nx-config2) for scripts that load `.env`:
343
-
344
- ```bash
345
- npx nx-config2 run --env-file .env -- npm test
346
- ```
342
+ Live tests and scripts load `.env` via `@x12i/env` (`x12i-env run --env-file .env -- …`); see `npm test` / `npm run test:live` scripts.
347
343
 
348
344
  **Maintainer smoke (suggest only, truncated JSON):** `npm run suggest-smoke` (repo only; uses `scripts/run-suggest-concept-smoke.ts`).
349
345
 
@@ -363,11 +359,11 @@ Published npm tarball still **does not** ship `docs/`; clone the repo or read th
363
359
 
364
360
  ## Publishing (maintainers)
365
361
 
366
- Scoped package `@x12i/graph-composer` uses `publishConfig.access: "public"`. Ensure your npm user is a member of the **x12i** org (or owns the scope) and has a valid token in `~/.npmrc` or project `.npmrc` (never commit tokens).
362
+ Scoped package `@exellix/graph-composer` uses `publishConfig.access: "public"`. Ensure your npm user is a member of the **x12i** org (or owns the scope) and has a valid token in the **monorepo root** `.npmrc` (copy from `.npmrc.example`; never commit tokens). Publish via `npm run publish:all` from the repo root — do not run `npm publish` in this folder directly.
367
363
 
368
364
  ```bash
369
- npm run build
370
- npm publish
365
+ # From monorepo root (uses root .npmrc for all packages)
366
+ npm run publish:all -- --packages graph-composer
371
367
  ```
372
368
 
373
369
  Confirm tarball: `npm run pack:check` (must **not** list `docs/`, `.env`, or `test/`).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exellix/graph-composer",
3
- "version": "2.12.0",
3
+ "version": "2.14.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -28,7 +28,6 @@
28
28
  ".env.example"
29
29
  ],
30
30
  "scripts": {
31
- "postinstall": "node -e \"const fs=require('fs'),p=require('path');const s=p.join('node_modules','nx-config2','bin','nx-config2.js'),d=p.join('node_modules','@x12i','env','bin','nx-config2.js');try{if(fs.existsSync(s)&&!fs.existsSync(d))fs.copyFileSync(s,d);}catch(_){}\"",
32
31
  "build": "tsc -p tsconfig.build.json",
33
32
  "prepublishOnly": "npm run build",
34
33
  "start": "x12i-env run --env-file .env -- node dist/cli.js",
@@ -57,34 +56,18 @@
57
56
  },
58
57
  "repository": {
59
58
  "type": "git",
60
- "url": "git+https://github.com/woroces/graph-composer.git"
59
+ "url": "git+ssh://git@github.com/exellix/exellix-engine-mono-repo.git",
60
+ "directory": "graph-composer"
61
61
  },
62
62
  "bugs": {
63
63
  "url": "https://github.com/woroces/graph-composer/issues"
64
64
  },
65
65
  "homepage": "https://github.com/woroces/graph-composer#readme",
66
- "overrides": {
67
- "@x12i/graphenix-authoring-format": "^2.7.3",
68
- "@x12i/graphenix-case-format": "^2.7.3",
69
- "@x12i/graphenix-core": "^2.7.3",
70
- "@x12i/graphenix-executable-contracts": "^2.7.3",
71
- "@x12i/graphenix-executable-format": "^2.7.3",
72
- "@x12i/graphenix-execute-envelope": "^2.7.3",
73
- "@x12i/graphenix-format": "^2.0.0",
74
- "@x12i/graphenix-plan-compiler": "^2.7.3",
75
- "@x12i/graphenix-plan-format": "^2.7.3",
76
- "@x12i/graphenix-task-node-format": "^2.7.3",
77
- "@x12i/graphenix-trace-format": "^2.7.3"
78
- },
79
66
  "peerDependencies": {
80
67
  "@exellix/ai-skills": "^6.12.5",
81
- "@exellix/ai-tasks": "^10.0.13",
82
- "@exellix/graph-engine": "^8.6.0"
68
+ "@exellix/ai-tasks": "^10.0.13"
83
69
  },
84
70
  "peerDependenciesMeta": {
85
- "@exellix/graph-engine": {
86
- "optional": true
87
- },
88
71
  "@exellix/ai-tasks": {
89
72
  "optional": true
90
73
  },
@@ -93,18 +76,17 @@
93
76
  }
94
77
  },
95
78
  "dependencies": {
79
+ "@exellix/graph-engine": "^8.6.0",
96
80
  "@x12i/catalox": "^5.9.8",
97
- "@x12i/env": "^4.0.1",
81
+ "@x12i/env": "^4.0.3",
98
82
  "@x12i/funcx": "^4.9.13",
99
83
  "@x12i/logxer": "^4.6.0"
100
84
  },
101
85
  "devDependencies": {
102
86
  "@exellix/ai-skills": "^6.12.5",
103
87
  "@exellix/ai-tasks": "^10.0.13",
104
- "@exellix/graph-engine": "^8.6.0",
105
88
  "@types/node": "^22.10.2",
106
89
  "@x12i/rendrix": "^4.3.0",
107
- "nx-config2": "^3.6.5",
108
90
  "tsx": "^4.19.2",
109
91
  "typescript": "^5.7.2"
110
92
  }