{"_id":"@axicharts/charts-planner","_rev":"10-667fdbc968b317f13cd270f6c7f3d7f7","name":"@axicharts/charts-planner","dist-tags":{"latest":"0.2.6"},"versions":{"0.1.2":{"name":"@axicharts/charts-planner","version":"0.1.2","license":"MIT","_id":"@axicharts/charts-planner@0.1.2","maintainers":[{"name":"axidrain","email":"axidify@gmail.com"}],"homepage":"https://github.com/Axidify/axicharts#readme","bugs":{"url":"https://github.com/Axidify/axicharts/issues"},"bin":{"charts-planner":"dist/cli.js"},"dist":{"shasum":"320df9e36adbcda7ed58f1185a4001f0c3df241c","tarball":"https://registry.npmjs.org/@axicharts/charts-planner/-/charts-planner-0.1.2.tgz","fileCount":14,"integrity":"sha512-cWCbGP7nB720nQd3h7xi3pyZccn12pJB+PZwWmgnJBCfx+urCjzMufQ3j36E2EZrmjMkN/VDFEhYxrq+u6bwAg==","signatures":[{"sig":"MEYCIQDbTPxwf/A34MbZzUx7h0PkuVh8rmAhZk9bgSQBIpduQwIhANTZkNG8Ih0JwFea/pWA5PS/lY1PYR6jQhcUwyMEXkUZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34124},"type":"module","_from":"file:axicharts-charts-planner-0.1.2.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./server":{"types":"./dist/server-entry.d.ts","import":"./dist/server-entry.js"}},"scripts":{"dev":"tsup src/index.ts src/cli.ts src/server-entry.ts --format esm --dts --external @axicharts/charts-spec --watch","test":"vitest run","build":"tsup src/index.ts src/cli.ts src/server-entry.ts --format esm --dts --external @axicharts/charts-spec --clean","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"axidrain","email":"axidify@gmail.com"},"_resolved":"/tmp/fc71584ba1d765b1954ab61160c4daa8/axicharts-charts-planner-0.1.2.tgz","_integrity":"sha512-cWCbGP7nB720nQd3h7xi3pyZccn12pJB+PZwWmgnJBCfx+urCjzMufQ3j36E2EZrmjMkN/VDFEhYxrq+u6bwAg==","repository":{"url":"git+https://github.com/Axidify/axicharts.git","type":"git","directory":"packages/charts-planner"},"_npmVersion":"10.9.8","description":"Phase 3 server-side dashboard planner — intent parsing, LLM provider hooks, validation with rules fallback.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@axicharts/charts-spec":"0.2.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/node":"^22.13.10"},"_npmOperationalInternal":{"tmp":"tmp/charts-planner_0.1.2_1784331713219_0.11984432761587471","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@axicharts/charts-planner","version":"0.1.3","license":"MIT","_id":"@axicharts/charts-planner@0.1.3","maintainers":[{"name":"axidrain","email":"axidify@gmail.com"}],"homepage":"https://github.com/Axidify/axicharts#readme","bugs":{"url":"https://github.com/Axidify/axicharts/issues"},"bin":{"charts-planner":"dist/cli.js"},"dist":{"shasum":"484c5a1575b412edcb8c50f69e11eb1be2017e9e","tarball":"https://registry.npmjs.org/@axicharts/charts-planner/-/charts-planner-0.1.3.tgz","fileCount":14,"integrity":"sha512-RqA6bARqjTF2igCFk8iz4ynf2VW9gBpD5OxWQ1riK348aN7p7g5/MdnNGPUsiK2Ai4b/A9z3QgyH3ZN66PanQA==","signatures":[{"sig":"MEYCIQCxWyOzXBMsOGO6lWz6fqll7bpt/Aj9pioJNUq9GLXXfgIhAKB60cKMCinU5J6ZCPDxLQGUZJ9zZNrInEDnOhb6gK66","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34250},"type":"module","_from":"file:axicharts-charts-planner-0.1.3.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./server":{"types":"./dist/server-entry.d.ts","import":"./dist/server-entry.js"}},"scripts":{"dev":"tsup src/index.ts src/cli.ts src/server-entry.ts --format esm --dts --external @axicharts/charts-spec --watch","test":"vitest run","build":"tsup src/index.ts src/cli.ts src/server-entry.ts --format esm --dts --external @axicharts/charts-spec --clean","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"axidrain","email":"axidify@gmail.com"},"_resolved":"/tmp/3d5b75c9c39c665a9f5966392b5e751d/axicharts-charts-planner-0.1.3.tgz","_integrity":"sha512-RqA6bARqjTF2igCFk8iz4ynf2VW9gBpD5OxWQ1riK348aN7p7g5/MdnNGPUsiK2Ai4b/A9z3QgyH3ZN66PanQA==","repository":{"url":"git+https://github.com/Axidify/axicharts.git","type":"git","directory":"packages/charts-planner"},"_npmVersion":"10.9.8","description":"Phase 3 server-side dashboard planner — intent parsing, LLM provider hooks, validation with rules fallback.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@axicharts/charts-spec":"0.2.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/node":"^22.13.10"},"_npmOperationalInternal":{"tmp":"tmp/charts-planner_0.1.3_1784335905948_0.8392262499613581","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@axicharts/charts-planner","version":"0.1.4","license":"MIT","_id":"@axicharts/charts-planner@0.1.4","maintainers":[{"name":"axidrain","email":"axidify@gmail.com"}],"homepage":"https://github.com/Axidify/axicharts#readme","bugs":{"url":"https://github.com/Axidify/axicharts/issues"},"bin":{"charts-planner":"dist/cli.js"},"dist":{"shasum":"e62b1ebc7485da6571daeceb25c8e132140732f7","tarball":"https://registry.npmjs.org/@axicharts/charts-planner/-/charts-planner-0.1.4.tgz","fileCount":16,"integrity":"sha512-DC5FUhFjs3pv/HHueVpXHNK5xELz6B6H6hZkrAOcpFnQDnw8x8Q9DTIdlZh10l5DJ1+5d2S4nPgbirPUpe5Bqw==","signatures":[{"sig":"MEYCIQCcItEiYcqR3inkjxlf6Ziqpr/BafG+DrryQ83VIP42XAIhAMNbU7vZOU6WzeP/k47HiVdue05pd8dIQBDS+Isi66Xa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36029},"type":"module","_from":"file:axicharts-charts-planner-0.1.4.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./server":{"types":"./dist/server-entry.d.ts","import":"./dist/server-entry.js"}},"scripts":{"dev":"tsup src/index.ts src/cli.ts src/server-entry.ts --format esm --dts --external @axicharts/charts-spec --watch","test":"vitest run","build":"tsup src/index.ts src/cli.ts src/server-entry.ts --format esm --dts --external @axicharts/charts-spec --clean","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"axidrain","email":"axidify@gmail.com"},"_resolved":"/tmp/2b774477b789c1c081c07a52a365a41f/axicharts-charts-planner-0.1.4.tgz","_integrity":"sha512-DC5FUhFjs3pv/HHueVpXHNK5xELz6B6H6hZkrAOcpFnQDnw8x8Q9DTIdlZh10l5DJ1+5d2S4nPgbirPUpe5Bqw==","repository":{"url":"git+https://github.com/Axidify/axicharts.git","type":"git","directory":"packages/charts-planner"},"_npmVersion":"10.9.8","description":"Phase 3 server-side dashboard planner — intent parsing, LLM provider hooks, validation with rules fallback.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@axicharts/charts-spec":"0.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/node":"^22.13.10"},"_npmOperationalInternal":{"tmp":"tmp/charts-planner_0.1.4_1784344140032_0.5726849845190545","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@axicharts/charts-planner","version":"0.2.0","license":"MIT","_id":"@axicharts/charts-planner@0.2.0","maintainers":[{"name":"axidrain","email":"axidify@gmail.com"}],"homepage":"https://github.com/Axidify/axicharts#readme","bugs":{"url":"https://github.com/Axidify/axicharts/issues"},"bin":{"charts-planner":"dist/cli.js"},"dist":{"shasum":"ac45f47bef867f07985fb0f5caf7ad83de3c13cc","tarball":"https://registry.npmjs.org/@axicharts/charts-planner/-/charts-planner-0.2.0.tgz","fileCount":16,"integrity":"sha512-TX5iwskg+4/Ep6g4kOS2p8DBlQlkJ1Dwhfazhi8LgJRE/MfgiqgjAe4Khzl1t0qY0L1crQ0cKwU9ET7tI6I/Ew==","signatures":[{"sig":"MEQCIAQ+DynyyFFAQTKfnaCRxXkAuHkqH8yvTZWmhaHAL5tiAiANFgn61X3SeO4WXr09PIgQOnsY70KwnDmRbIw/RY8H+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36711},"type":"module","_from":"file:axicharts-charts-planner-0.2.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./server":{"types":"./dist/server-entry.d.ts","import":"./dist/server-entry.js"}},"scripts":{"dev":"tsup src/index.ts src/cli.ts src/server-entry.ts --format esm --dts --external @axicharts/charts-spec --watch","test":"vitest run","build":"tsup src/index.ts src/cli.ts src/server-entry.ts --format esm --dts --external @axicharts/charts-spec --clean","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"axidrain","email":"axidify@gmail.com"},"_resolved":"/tmp/3b3c6ff8d65c36c8c9ecf9e443f4016a/axicharts-charts-planner-0.2.0.tgz","_integrity":"sha512-TX5iwskg+4/Ep6g4kOS2p8DBlQlkJ1Dwhfazhi8LgJRE/MfgiqgjAe4Khzl1t0qY0L1crQ0cKwU9ET7tI6I/Ew==","repository":{"url":"git+https://github.com/Axidify/axicharts.git","type":"git","directory":"packages/charts-planner"},"_npmVersion":"10.9.8","description":"Phase 3 server-side dashboard planner — intent parsing, LLM provider hooks, validation with rules fallback.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@axicharts/charts-spec":"0.3.52"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/node":"^22.13.10"},"_npmOperationalInternal":{"tmp":"tmp/charts-planner_0.2.0_1784430205615_0.4314851979382368","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@axicharts/charts-planner","version":"0.2.1","license":"MIT","_id":"@axicharts/charts-planner@0.2.1","maintainers":[{"name":"axidrain","email":"axidify@gmail.com"}],"homepage":"https://github.com/Axidify/axicharts#readme","bugs":{"url":"https://github.com/Axidify/axicharts/issues"},"bin":{"charts-planner":"dist/cli.js"},"dist":{"shasum":"ef74a74fda282070d1d52ce79ba6f2405ce63707","tarball":"https://registry.npmjs.org/@axicharts/charts-planner/-/charts-planner-0.2.1.tgz","fileCount":16,"integrity":"sha512-R4mJ3TpgTOMLGhWp+ruXZkWXS9ps7dvg6MUPwQG+U2WIA3cT2pjTZCkOF9RVZ8aldHNHNlfbQgyQ8y/kQdt6eQ==","signatures":[{"sig":"MEQCIC9y8vUT5yOJhBhOjronn9EOQYnvqQEjGg27P0k3axV8AiB+fQYXF+6A/zagGpo7QPSO4fhhOXfpme9l4bP4h092YA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37219},"type":"module","_from":"file:axicharts-charts-planner-0.2.1.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./server":{"types":"./dist/server-entry.d.ts","import":"./dist/server-entry.js"}},"scripts":{"dev":"tsup src/index.ts src/cli.ts src/server-entry.ts --format esm --dts --external @axicharts/charts-spec --watch","test":"vitest run","build":"tsup src/index.ts src/cli.ts src/server-entry.ts --format esm --dts --external @axicharts/charts-spec --clean","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"axidrain","email":"axidify@gmail.com"},"_resolved":"/tmp/0766ea4b4a3664f3d4291b0f23381aa4/axicharts-charts-planner-0.2.1.tgz","_integrity":"sha512-R4mJ3TpgTOMLGhWp+ruXZkWXS9ps7dvg6MUPwQG+U2WIA3cT2pjTZCkOF9RVZ8aldHNHNlfbQgyQ8y/kQdt6eQ==","repository":{"url":"git+https://github.com/Axidify/axicharts.git","type":"git","directory":"packages/charts-planner"},"_npmVersion":"10.9.8","description":"Phase 3 server-side dashboard planner — intent parsing, LLM provider hooks, validation with rules fallback.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/node":"^22.13.10","@axicharts/charts-spec":"0.4.4"},"peerDependencies":{"@axicharts/charts-spec":"^0.4.3"},"_npmOperationalInternal":{"tmp":"tmp/charts-planner_0.2.1_1784452640388_0.017752999379271106","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@axicharts/charts-planner","version":"0.2.2","license":"MIT","_id":"@axicharts/charts-planner@0.2.2","maintainers":[{"name":"axidrain","email":"axidify@gmail.com"}],"homepage":"https://github.com/Axidify/axicharts#readme","bugs":{"url":"https://github.com/Axidify/axicharts/issues"},"bin":{"charts-planner":"dist/cli.js"},"dist":{"shasum":"953376562fc1f2dcc72e3926b6f215d1ffc5d1a2","tarball":"https://registry.npmjs.org/@axicharts/charts-planner/-/charts-planner-0.2.2.tgz","fileCount":21,"integrity":"sha512-VXXFpnR7alApNacYprUgp/+L3TJ6qIaO9yt1FPSX/sqKtnFX958umZ3wxgVcAzZLHSQCtU9KWEOZ1Lijs57xzg==","signatures":[{"sig":"MEUCIQDj3XR6TmPOXqTorzfTG3qiXk213EzE9uTuR2qe53E6JQIgdnVQIWRSTzMuW3x7RT4tDqrHo4lVIb/gZqW5+hW7d8c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41587},"type":"module","_from":"file:axicharts-charts-planner-0.2.2.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./server":{"types":"./dist/server-entry.d.ts","import":"./dist/server-entry.js"},"./tabular":{"types":"./dist/entry/tabular.d.ts","import":"./dist/entry/tabular.js"}},"scripts":{"dev":"tsup src/index.ts src/cli.ts src/server-entry.ts src/entry/tabular.ts --format esm --dts --external @axicharts/charts-spec --watch","test":"vitest run","build":"tsup src/index.ts src/cli.ts src/server-entry.ts src/entry/tabular.ts --format esm --dts --external @axicharts/charts-spec --clean","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"axidrain","email":"axidify@gmail.com"},"_resolved":"/tmp/3d49e246be2facb252ea7fc8cc623fcd/axicharts-charts-planner-0.2.2.tgz","_integrity":"sha512-VXXFpnR7alApNacYprUgp/+L3TJ6qIaO9yt1FPSX/sqKtnFX958umZ3wxgVcAzZLHSQCtU9KWEOZ1Lijs57xzg==","repository":{"url":"git+https://github.com/Axidify/axicharts.git","type":"git","directory":"packages/charts-planner"},"_npmVersion":"10.9.8","description":"Phase 3 server-side dashboard planner — intent parsing, LLM provider hooks, validation with rules fallback.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/node":"^22.13.10","@axicharts/charts-spec":"0.4.14"},"peerDependencies":{"@axicharts/charts-spec":"^0.4.14"},"_npmOperationalInternal":{"tmp":"tmp/charts-planner_0.2.2_1784470766103_0.7563317300413466","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@axicharts/charts-planner","version":"0.2.3","license":"MIT","_id":"@axicharts/charts-planner@0.2.3","maintainers":[{"name":"axidrain","email":"axidify@gmail.com"}],"homepage":"https://github.com/Axidify/axicharts#readme","bugs":{"url":"https://github.com/Axidify/axicharts/issues"},"bin":{"charts-planner":"dist/cli.js"},"dist":{"shasum":"3c48777245ce29b62ff576ca3287f92beeb87df4","tarball":"https://registry.npmjs.org/@axicharts/charts-planner/-/charts-planner-0.2.3.tgz","fileCount":21,"integrity":"sha512-D2R0XZ/xbF8fonH7XCnbTpYP0Z5Vo01kNH8yNTEj504xIOh/46CVi0laRE+wLmyHeuQiElWzYg7EQo1DdbYGoQ==","signatures":[{"sig":"MEYCIQCfix2/lTUEu1cT8eEWekU8ji69P3FwpHHjwZWG9HyXaQIhANy0JuVFegXsJgEsW9gfHIO/XRRleyDmpkzzB2mhklY4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46782},"type":"module","_from":"file:axicharts-charts-planner-0.2.3.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./server":{"types":"./dist/server-entry.d.ts","import":"./dist/server-entry.js"},"./tabular":{"types":"./dist/entry/tabular.d.ts","import":"./dist/entry/tabular.js"}},"scripts":{"dev":"tsup src/index.ts src/cli.ts src/server-entry.ts src/entry/tabular.ts --format esm --dts --external @axicharts/charts-spec --watch","test":"vitest run","build":"tsup src/index.ts src/cli.ts src/server-entry.ts src/entry/tabular.ts --format esm --dts --external @axicharts/charts-spec --clean","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"axidrain","email":"axidify@gmail.com"},"_resolved":"/tmp/041e609a180ca99bc3728fd52eb4517d/axicharts-charts-planner-0.2.3.tgz","_integrity":"sha512-D2R0XZ/xbF8fonH7XCnbTpYP0Z5Vo01kNH8yNTEj504xIOh/46CVi0laRE+wLmyHeuQiElWzYg7EQo1DdbYGoQ==","repository":{"url":"git+https://github.com/Axidify/axicharts.git","type":"git","directory":"packages/charts-planner"},"_npmVersion":"10.9.8","description":"Phase 3 server-side dashboard planner — intent parsing, LLM provider hooks, validation with rules fallback.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/node":"^22.13.10","@axicharts/charts-spec":"0.4.35"},"peerDependencies":{"@axicharts/charts-spec":"^0.4.35"},"_npmOperationalInternal":{"tmp":"tmp/charts-planner_0.2.3_1784650121303_0.02881590525040645","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@axicharts/charts-planner","version":"0.2.4","license":"MIT","_id":"@axicharts/charts-planner@0.2.4","maintainers":[{"name":"axidrain","email":"axidify@gmail.com"}],"homepage":"https://github.com/Axidify/axicharts#readme","bugs":{"url":"https://github.com/Axidify/axicharts/issues"},"bin":{"charts-planner":"dist/cli.js"},"dist":{"shasum":"4d31df2de60a68d3025e3159358a47e291cebb69","tarball":"https://registry.npmjs.org/@axicharts/charts-planner/-/charts-planner-0.2.4.tgz","fileCount":21,"integrity":"sha512-3lOZv+y1hNc/fXRuhVVC1rqYo02+cPtjJoioxslYW80eu5lF3+GITxgwCIIUdUDzsr2sqQfymtqR3HxaqIDU+g==","signatures":[{"sig":"MEUCICmUU6Aqdj4NMCzWMLAlO6DTWJNUZ9XOsWJLVA2LrEDbAiEAghFxUhNhrvuP1kVN6jTTBamFvj5GH/hXs4q03IZqaUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49665},"type":"module","_from":"file:axicharts-charts-planner-0.2.4.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./server":{"types":"./dist/server-entry.d.ts","import":"./dist/server-entry.js"},"./tabular":{"types":"./dist/entry/tabular.d.ts","import":"./dist/entry/tabular.js"}},"scripts":{"dev":"tsup src/index.ts src/cli.ts src/server-entry.ts src/entry/tabular.ts --format esm --dts --external @axicharts/charts-spec --watch","test":"vitest run","build":"tsup src/index.ts src/cli.ts src/server-entry.ts src/entry/tabular.ts --format esm --dts --external @axicharts/charts-spec --clean","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"axidrain","email":"axidify@gmail.com"},"_resolved":"/tmp/019d31cf26bcd9344650072748c5b1a0/axicharts-charts-planner-0.2.4.tgz","_integrity":"sha512-3lOZv+y1hNc/fXRuhVVC1rqYo02+cPtjJoioxslYW80eu5lF3+GITxgwCIIUdUDzsr2sqQfymtqR3HxaqIDU+g==","repository":{"url":"git+https://github.com/Axidify/axicharts.git","type":"git","directory":"packages/charts-planner"},"_npmVersion":"10.9.8","description":"Phase 3 server-side dashboard planner — intent parsing, LLM provider hooks, validation with rules fallback.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/node":"^22.13.10","@axicharts/charts-spec":"0.4.36"},"peerDependencies":{"@axicharts/charts-spec":"^0.4.36"},"_npmOperationalInternal":{"tmp":"tmp/charts-planner_0.2.4_1784710609552_0.5735490964745724","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@axicharts/charts-planner","version":"0.2.5","license":"MIT","_id":"@axicharts/charts-planner@0.2.5","maintainers":[{"name":"axidrain","email":"axidify@gmail.com"}],"homepage":"https://github.com/Axidify/axicharts#readme","bugs":{"url":"https://github.com/Axidify/axicharts/issues"},"bin":{"charts-planner":"dist/cli.js"},"dist":{"shasum":"454877cfc14a91241db9c7de434a8df8c47bc669","tarball":"https://registry.npmjs.org/@axicharts/charts-planner/-/charts-planner-0.2.5.tgz","fileCount":23,"integrity":"sha512-xpDIg1JLQ+LBwsAhYTzudPzK6/JDvRvaq2eePa2FYtVgSwHwBsWU25QqBxLQl32lgsuAOy/TDmg51JArT6jUkA==","signatures":[{"sig":"MEUCIQC+Cjc7/iSlTGsJdjDTJ3kZVVFDdKBjWSHLsGOtOScxpgIgQXqe5vtro1xbhiPoFsn4z2WbqbNIHIVg/guJ+BmaWVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":672865},"type":"module","_from":"file:axicharts-charts-planner-0.2.5.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./server":{"types":"./dist/server-entry.d.ts","import":"./dist/server-entry.js"},"./tabular":{"types":"./dist/entry/tabular.d.ts","import":"./dist/entry/tabular.js","require":"./dist/entry/tabular.cjs"}},"scripts":{"dev":"tsup src/index.ts src/cli.ts src/server-entry.ts src/entry/tabular.ts --format esm --dts --external @axicharts/charts-spec --watch","test":"vitest run","build":"tsup src/index.ts src/cli.ts src/server-entry.ts src/entry/tabular.ts --format esm --dts --external @axicharts/charts-spec --clean && tsup --config tsup.tabular-cjs.config.ts","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"axidrain","email":"axidify@gmail.com"},"_resolved":"/tmp/5a68893c69c1b9748d46f6ccdb8bb536/axicharts-charts-planner-0.2.5.tgz","_integrity":"sha512-xpDIg1JLQ+LBwsAhYTzudPzK6/JDvRvaq2eePa2FYtVgSwHwBsWU25QqBxLQl32lgsuAOy/TDmg51JArT6jUkA==","repository":{"url":"git+https://github.com/Axidify/axicharts.git","type":"git","directory":"packages/charts-planner"},"_npmVersion":"10.9.8","description":"Phase 3 server-side dashboard planner — intent parsing, LLM provider hooks, validation with rules fallback.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.0.8","typescript":"^5.8.2","@types/node":"^22.13.10","@axicharts/charts-spec":"0.4.37"},"peerDependencies":{"@axicharts/charts-spec":"^0.4.37"},"_npmOperationalInternal":{"tmp":"tmp/charts-planner_0.2.5_1784713250637_0.6655480151058664","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@axicharts/charts-planner","version":"0.2.6","description":"Phase 3 server-side dashboard planner — intent parsing, LLM provider hooks, validation with rules fallback.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/Axidify/axicharts.git","directory":"packages/charts-planner"},"publishConfig":{"access":"public"},"type":"module","sideEffects":false,"bin":{"charts-planner":"dist/cli.js"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./server":{"types":"./dist/server-entry.d.ts","import":"./dist/server-entry.js"},"./tabular":{"types":"./dist/entry/tabular.d.ts","import":"./dist/entry/tabular.js","require":"./dist/entry/tabular.cjs"}},"peerDependencies":{"@axicharts/charts-spec":"^0.4.39"},"devDependencies":{"@types/node":"^22.13.10","tsup":"^8.4.0","typescript":"^5.8.2","vitest":"^3.0.8","@axicharts/charts-spec":"0.4.39"},"scripts":{"build":"tsup src/index.ts src/cli.ts src/server-entry.ts src/entry/tabular.ts --format esm --dts --external @axicharts/charts-spec --clean && tsup --config tsup.tabular-cjs.config.ts","dev":"tsup src/index.ts src/cli.ts src/server-entry.ts src/entry/tabular.ts --format esm --dts --external @axicharts/charts-spec --watch","test":"vitest run","typecheck":"tsc -p tsconfig.json --noEmit"},"_id":"@axicharts/charts-planner@0.2.6","bugs":{"url":"https://github.com/Axidify/axicharts/issues"},"homepage":"https://github.com/Axidify/axicharts#readme","_integrity":"sha512-4VbUyUsuI+ubTIaj4ZtqCV9bibENERx3w507p2C4xYtKFetoSsUjGRociQgY9lvkcNHd3mCD8EOJ9cyA7GqfVA==","_resolved":"/tmp/860b3870c108f59905d09c250abe51aa/axicharts-charts-planner-0.2.6.tgz","_from":"file:axicharts-charts-planner-0.2.6.tgz","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-4VbUyUsuI+ubTIaj4ZtqCV9bibENERx3w507p2C4xYtKFetoSsUjGRociQgY9lvkcNHd3mCD8EOJ9cyA7GqfVA==","shasum":"e880579e1d6608b5f995495e96e498f4ae60d50e","tarball":"https://registry.npmjs.org/@axicharts/charts-planner/-/charts-planner-0.2.6.tgz","fileCount":23,"unpackedSize":672949,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFsCGBg7RtowbpPHanNcHdXkfl9OZwvwhRsm2Ntcej21AiEAz/yEqUc6V3CMC/wZSKd/elr4j5NG1e/M8WeccnS22kA="}]},"_npmUser":{"name":"axidrain","email":"axidify@gmail.com"},"directories":{},"maintainers":[{"name":"axidrain","email":"axidify@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/charts-planner_0.2.6_1784811974127_0.775360204068485"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-17T23:41:53.009Z","modified":"2026-07-23T13:06:14.458Z","0.1.2":"2026-07-17T23:41:53.352Z","0.1.3":"2026-07-18T00:51:46.086Z","0.1.4":"2026-07-18T03:09:00.203Z","0.2.0":"2026-07-19T03:03:25.742Z","0.2.1":"2026-07-19T09:17:20.524Z","0.2.2":"2026-07-19T14:19:26.231Z","0.2.3":"2026-07-21T16:08:41.476Z","0.2.4":"2026-07-22T08:56:49.692Z","0.2.5":"2026-07-22T09:40:50.801Z","0.2.6":"2026-07-23T13:06:14.320Z"},"bugs":{"url":"https://github.com/Axidify/axicharts/issues"},"license":"MIT","homepage":"https://github.com/Axidify/axicharts#readme","repository":{"type":"git","url":"git+https://github.com/Axidify/axicharts.git","directory":"packages/charts-planner"},"description":"Phase 3 server-side dashboard planner — intent parsing, LLM provider hooks, validation with rules fallback.","maintainers":[{"name":"axidrain","email":"axidify@gmail.com"}],"readme":"# @axicharts/charts-planner\n\nServer-side dashboard planner for AxiCharts. Converts metric profiles and natural-language intent into validated `charts-spec` plans, with rules fallback when LLM output is invalid.\n\n**Cartesian panels (RFC-002 / C139):** Cartesian rule paths emit **`type: \"cartesian\"` + `marks[]` only** via `planPanelsFromProfile` and vertical rule packs. Use **`createCartesianPanel`** / **`reviseCartesianPanel`** from `@axicharts/charts-spec` for single-panel agent tools. Non-cartesian types (`pie`, `gauge`, `stat`, `candlestick`, etc.) are unchanged.\n\nSee [charts-spec/CARTESIAN.md](../charts-spec/CARTESIAN.md).\n\n## Install\n\n```bash\nnpm install @axicharts/charts-planner @axicharts/charts-spec\n```\n\n**Version lockstep:** `@axicharts/charts-planner` peers `@axicharts/charts-spec` at the same **minor** as `@axicharts/charts` (e.g. planner `0.2.4` + spec/charts `0.4.36`). Install both explicitly — do not rely on a nested spec copy from an older planner release.\n\n| Platform (`@axicharts/charts`) | Planner | Spec peer |\n|-------------------------------|---------|-----------|\n| `0.4.38` | `@axicharts/charts-planner@0.2.5` | `@axicharts/charts-spec@^0.4.38` |\n| `0.4.37` | `@axicharts/charts-planner@0.2.5` | `@axicharts/charts-spec@^0.4.37` |\n| `0.4.36` | `@axicharts/charts-planner@0.2.4` | `@axicharts/charts-spec@^0.4.36` |\n| `0.4.35` | `@axicharts/charts-planner@0.2.3` | `@axicharts/charts-spec@^0.4.35` |\n| `0.4.3+` | `@axicharts/charts-planner@0.2.1+` | `@axicharts/charts-spec@^0.4.3` |\n\nFull matrix: [Version matrix guide](https://axidify.github.io/axicharts/guides/versions).\n\n## Server vs browser entry points\n\n`@axicharts/charts-planner` ships **three** npm subpaths. Pick the one that matches your runtime — importing the wrong entry is the most common Node integration failure.\n\n| Entry | Use when | Exports |\n|-------|----------|---------|\n| `@axicharts/charts-planner/tabular` | **API / Nest / Node** — tabular fallback only | `planDashboardFromRows` |\n| `@axicharts/charts-planner/server` | Standalone HTTP planner | `createPlannerServer` |\n| `@axicharts/charts-planner` | Browser bundlers, full planner surface | `planFromIntent`, `planWithProvider`, CSV path, … |\n\n### Tabular planner (server-safe)\n\nUse this in API processes and agent chat backends. It imports `@axicharts/charts-spec/planning` only — **no React Chart, no uPlot CSS**.\n\n```ts\nimport { planDashboardFromRows } from \"@axicharts/charts-planner/tabular\";\n\nconst plan = planDashboardFromRows(rows, { intent: \"tasks by status\" });\n// → { panels: [...], layout, notes }\n```\n\n### NestJS / CommonJS consumers\n\n`@axicharts/charts-planner/tabular` ships **both** ESM and a bundled CJS build (`tabular.cjs`, `0.2.5+`). NestJS apps compiled to CommonJS can use a static import or `require()`:\n\n```ts\n// apps/api — NestJS service (CJS compile) — supported in planner 0.2.5+\nimport { planDashboardFromRows } from \"@axicharts/charts-planner/tabular\";\n\n// or CommonJS require()\nconst { planDashboardFromRows } = require(\"@axicharts/charts-planner/tabular\");\n```\n\nOn planner `0.2.4` and below, use dynamic `import()`:\n\n```ts\nconst { planDashboardFromRows } = await import(\"@axicharts/charts-planner/tabular\");\n```\n\nAlternatively, compile the API to ESM (`\"module\": \"NodeNext\"` in `tsconfig`) so static ESM imports work.\n\n### Main entry (browser / full planner)\n\nThe default export re-exports through the main `@axicharts/charts-spec` barrel, which pulls React Chart and uPlot CSS. **Do not import the main entry in server-only processes.**\n\n```ts\n// ✅ Browser / Vite / Next client components\nimport { planFromIntent } from \"@axicharts/charts-planner\";\n\n// ❌ Nest API / Node scripts — use ./tabular instead\nimport { planFromIntent } from \"@axicharts/charts-planner\";\n```\n\n### HTTP server entry\n\n```ts\nimport { createPlannerServer } from \"@axicharts/charts-planner/server\";\n\nconst server = createPlannerServer({ port: 3921 });\n```\n\nOr use the CLI: `charts-planner serve --port 3921` (see [HTTP server](#http-server) below).\n\n### Jest / CJS test runners\n\nWhen testing adapters that call the tabular planner, prefer **mocking at the adapter boundary**. If you need real resolution, add `moduleNameMapper` entries — see [Agent chat integration guide](https://axidify.github.io/axicharts/guides/agent-chat-integration#jest--cjs-test-runners).\n\n## Rules + intent planner\n\n```ts\nimport { DEFAULT_OPS_PROFILE, planFromIntent } from \"@axicharts/charts-planner\";\n\nconst plan = planFromIntent(DEFAULT_OPS_PROFILE, \"Line 3 night shift overview\");\n// → { template: \"ops-2x2\", layout: \"embed\", feed: \"historian\", panels: [...] }\n```\n\n### Vertical rule packs (C90)\n\nBeyond C71/C78 color/size/curve inference, vertical packs enrich `PanelSpec` from intent + `DataProfile.fields`:\n\n| Vertical | Examples inferred |\n|----------|-------------------|\n| **finance** | waterfall for variance/bridge; dual-axis `cartesian` (bar + line marks) for revenue vs margin; `stat` KPI tones; `vsPlan` color fields |\n| **trading** | candlestick + `volumeField` + brush/sync hints; RSI follower `cartesian` area mark; `side`/`pnl` color fields |\n| **ops** | `alert` panel for alarms; `gauge` thresholds; SLO `rule` + `band` marks on latency `cartesian`; severity color fields |\n\n```bash\ncharts-planner plan examples/finance.profile.json --intent \"P&L variance waterfall\"\ncharts-planner plan examples/trading.profile.json --intent \"Trading blotter candlestick with volume\"\n```\n\nProfile examples: `examples/finance.profile.json`, `examples/trading.profile.json`, `examples/ops.profile.json`.\n\nCSV sample for Path 2: `examples/sample-weekly.csv` — see [CSV dashboard guide](https://axidify.github.io/axicharts/guides/csv-dashboard).\n\n## Planner feeds\n\n`inferFeed()` maps intent keywords to `DashboardPlan.feed`. Each feed binds to a shipped import\ngallery fixture — same presets surfaced in Axiboard **Plan** and the\n[runtime import gallery](https://axidify.github.io/axicharts/runtime/import#planner-feeds).\n\n| Feed | Sample intent | Gallery preset |\n|------|---------------|----------------|\n| `static` | Static CSV snapshot batch report | `ops-embed` |\n| `historian` | Line 3 night shift live telemetry | `ops-historian` |\n| `rest` | REST API polling /api/metrics endpoint | `ops-rest` |\n| `websocket` | WebSocket push feed trading desk | `ops-websocket` |\n| `mqtt` | MQTT plant floor sparkplug telemetry | `ops-mqtt` |\n| `mock-live` | Mock-live synthetic demo drift sandbox | `ops-mock-live` |\n\nMosaic intents surface multiple fixtures (wall + feed bind) via `plannerAdapterFixtures()` in\n`@axicharts/charts-runtime/validation`.\n\n## OpenAI-compatible provider\n\nSet `OPENAI_API_KEY` (or `AXICHARTS_PLANNER_API_KEY`) and start the server:\n\n```bash\nexport OPENAI_API_KEY=sk-...\npnpm planner\n# or: charts-planner serve --provider openai\n```\n\nOptional env:\n\n| Variable | Default |\n|----------|---------|\n| `OPENAI_MODEL` / `AXICHARTS_PLANNER_MODEL` | `gpt-4o-mini` |\n| `OPENAI_BASE_URL` / `AXICHARTS_PLANNER_BASE_URL` | `https://api.openai.com/v1` |\n\nCLI with LLM:\n\n```bash\ncharts-planner plan examples/ops.profile.json --intent \"Finance board deck\" --llm\n```\n\nProgrammatic:\n\n```ts\nimport {\n  createOpenAiChatProvider,\n  planWithProvider,\n  resolvePlannerProviderFromEnv,\n} from \"@axicharts/charts-planner\";\n\nconst provider = resolvePlannerProviderFromEnv();\n// or createOpenAiChatProvider({ apiKey, model, baseUrl })\n```\n\nInvalid LLM JSON always falls back to the rules planner with a warning on the plan.\n\n## HTTP server\n\n```bash\nnpx @axicharts/charts-planner serve --port 3921\n```\n\n```bash\ncurl -s http://127.0.0.1:3921/plan \\\n  -H 'content-type: application/json' \\\n  -d '{\"profile\":{\"metrics\":[{\"name\":\"cpu\",\"unit\":\"%\"}]},\"intent\":\"Line 3 night shift\"}'\n```\n\n## CLI\n\n```bash\ncharts-planner plan examples/ops.profile.json --intent \"Line 3 night shift overview\"\ncharts-planner serve --port 3921\n```\n\n## Planner track (C33–C43)\n\nAxiboard share exports include planner `meta` (layout, feed, template, mosaic preset,\npresentation). Import restores the same fields — see the\n[import gallery planner track notes](https://axidify.github.io/axicharts/runtime/import#planner-track).\n\n| Slice | Shipped |\n|-------|---------|\n| C33 | PlannerPanel adapter hints, docs RuntimeHubNav |\n| C34 | WS/MQTT feed intents, feed gallery deep links |\n| C35 | REST feed intent, adapter health strip fixture links |\n| C36 | Mock-live feed, mosaic multi-adapter hints |\n| C37 | `PLANNER_FEED_ROWS`, import gallery planner index |\n| C38 | Runtime planner HTTP docs, FeedIntentGlossary |\n| C39 | Start page CLI, EmbedDialog feed hints |\n| C40 | ShareDialog meta export, Spec Phase 3 cross-link |\n| C41 | ImportDialog meta restore hints, track release notes |\n| C42 | Runtime adapters planner feed column, share-import round-trip docs |\n| C43 | RuntimeHubNav share-import link, ShareDialog/ImportDialog Storybook fixtures |\n","readmeFilename":"README.md"}