M1: domain schemas, contracts pipeline, ledger and snapshot services
- packages/domain: zod schemas for the 07-scenario object set with a
schemaRegistry driving schema export, fixture generation, and Python
module naming; decimal-string/sha256/curve primitives enforce the
docs/11 §3.3 representation rules at the type layer
- contracts/: 12 JSON Schemas (draft 2020-12), 12 golden fixtures, 3
invalid fixtures crafted to fail on both sides (float money, bad
digest, missing concurrency version)
- skills-py: generated pydantic models (committed, never hand-edited),
regeneration script, mirror pytest using JSON-mode validation —
dual-side contract tests agree on all 15 fixtures
- packages/services: content-addressed immutable snapshot store
(memory + fs, rejects floats), LedgerService v1 with optimistic
concurrency and the P7 constraint cascade (monthly position bounds
day-ahead bids; no-anchor bids rejected), quality-gate stub
- cascade band shape is an OPEN-QUESTION A5 placeholder (pro-rata
daily share ±band) — see ledger.ts checkCascade
All green: tsc typecheck, 41 TS tests, 15 Python tests.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019u5SLNweVio6ozJX7yfxQr
🔮 View transcript: https://logs.lojong.info/s/e8u90k3t33w590r7b5y7yzqh
2026-09-01 21:50:22 -04:00
|
|
|
{
|
|
|
|
|
"name": "vpp-ai-platform",
|
|
|
|
|
"lockfileVersion": 3,
|
|
|
|
|
"requires": true,
|
|
|
|
|
"packages": {
|
|
|
|
|
"": {
|
|
|
|
|
"name": "vpp-ai-platform",
|
|
|
|
|
"workspaces": [
|
|
|
|
|
"packages/*"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/aix-ppc64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"ppc64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"aix"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/android-arm": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"android"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/android-arm64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"android"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/android-x64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"x64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"android"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/darwin-arm64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"darwin"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/darwin-x64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"x64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"darwin"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/freebsd-arm64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"freebsd"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/freebsd-x64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"x64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"freebsd"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/linux-arm": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/linux-arm64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/linux-ia32": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"ia32"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/linux-loong64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"loong64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/linux-mips64el": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"mips64el"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/linux-ppc64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"ppc64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/linux-riscv64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"riscv64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/linux-s390x": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"s390x"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/linux-x64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"x64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/netbsd-arm64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"netbsd"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/netbsd-x64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"x64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"netbsd"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/openbsd-arm64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"openbsd"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/openbsd-x64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"x64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"openbsd"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/openharmony-arm64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"openharmony"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/sunos-x64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"x64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"sunos"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/win32-arm64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"win32"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/win32-ia32": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"ia32"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"win32"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@esbuild/win32-x64": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"x64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"win32"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@jridgewell/sourcemap-codec": {
|
|
|
|
|
"version": "1.6.0",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz",
|
|
|
|
|
"integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT"
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@napi-rs/lzma-linux-x64-gnu": {
|
|
|
|
|
"version": "1.5.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz",
|
|
|
|
|
"integrity": "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"x64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": "^22.20 || ^24.12 || >=25"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-android-arm-eabi": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-UZ8sUxPTiHWYX9QNdJedb1kDZSpS1t/VPWBWGSgqHNi9w3Cu6IXvu2mzbhiTiPvtrqgTQJ+zqiAq2iPIPilpaQ==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"android"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-android-arm64": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-cQ4nFQABN5cDvDpbvJ7bMStCpnaVxynZrRMfUJYgxcIk9Sh54FIO1vtfkg0B69REjER77ioZ/ov+eAApx/KmLQ==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"android"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-darwin-arm64": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-FQNqd1lRy/0QhDk3xeRIkSBiCpXCiDnZO3YLVdcDKN1UBiKToNftCzcXYNLshmPDUMlu2TdeS8tGcsU6f3YF1Q==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"darwin"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-darwin-x64": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-pvD16V939D3CloK0+qikpGaxiPrDUXTe7Y5cWOMkMSy7m1cawa8EGy/kXYi/G/cKAC4HDAbSnzCIk1WmsoOKXg==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"x64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"darwin"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-freebsd-arm64": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-pcFGeL2345VwdTnJhA6zLbew+YgWB0qBG2+dMtXjCicf6+rm6kO6cOoh5VnTe0ZMrMRgRyuHmCJxZWrIdzYuOw==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"freebsd"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-freebsd-x64": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-mRJlqSRulVzcKq/LKA6ICSIc3K/l4fzlVn/gePn2nXIHy8seRi5z/eeRE0d/XMBxcMldiXtQTSpRj0tkkC3g8Q==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"x64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"freebsd"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-YDUNvVM85TI3g/1OpnqKP1h4NeW/j64DfWMf+G3M809xNk1bJSnpFp4sh83NpmVE5DXnkh8ULor4LTVZKoYLHw==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-7Mcn71p9ZuQFAj+h+dhQXy/yeLePRS2yKRnmW1DijA9thKO5qap0GNOIQK4yQ6iP3SU0Mrb/yWo8h8vgRba8lw==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-linux-arm64-gnu": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-4YiLQTX6U4CSl0L9cluep9A9W6UmTfqBDc2/CH6wlu54pl4E7Jn3cOD8oxzvBDEGk/JMKgJ47C8g+radF7mwvg==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-linux-arm64-musl": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-2ra8F7w8OquwZN9z2/fKFnli69wa8PLwaVzRMIPGb13ByMJwC28Fbp8YcVGoUhlYMTt7j5j9bNgpysrN2UM+vw==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-linux-loong64-gnu": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-Sy20ncyhjmBP0Ml+UvQbimjlk6VFgjW5uNP+qqwHB00mTE8Bl2C1TuHTlRwK2YoXeZbee5lP2XevBWVkAQAtSQ==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"loong64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-linux-loong64-musl": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-noITLp8oNjYliPnGWmLyelIHwULGqbHloQHGw1rtxbWhTuWooRpnZarZQJ1y9EUC4szuCusCc+HEpUtxpIwYvA==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"loong64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-linux-ppc64-gnu": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-hlxxXd+F1mWiAcaFR7Sv9ZQT6m6UfI8+Vy/kFJzztq2pDMU/0wZ9sish0iszNZvsQDo8Gc0i5yuFEOz5dDf6fA==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"ppc64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-linux-ppc64-musl": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-EF7OpqQTQ/BvGqLzUi4rEHuagCV9MugAUXSHemwPW5vxZ75RR+jxO/2j95Ph2dalMpFHSVECjRoioHZgA9zOYA==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"ppc64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-wQO3JesW9PRkwlabQ27y7sPfVOOTLRG73I4F2UYHG5PXun3J9U3y+b7ezVKSYbsvSKGQ1k1cq8Qlun4C9kLt3w==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"riscv64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-linux-riscv64-musl": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-ouAGwhO6wHRXdnOVCOsB0tRFkA7nhNB2Nwax6oECXN0YiN8EYUTBAOudADOB1PI+yDL61TeNx/u7MVCzksNbkQ==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"riscv64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-linux-s390x-gnu": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-q2R38Sn+1J8RxhfJ+T54wSWmyKXWec+9jgDfqO2AtArEqHO5R2aeayp5H5OYLr5UYDVGsVaZPEFUooMhYCdz5A==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"s390x"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-linux-x64-gnu": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-gfI5T24WLLuFfSKw7Go/zDXjAAV0fny0swTaDv+WjK7vqcw4cRhFfdsyKL1n+ukI+ooBxn3bVQnyrn06WpI50w==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"x64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-linux-x64-musl": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-4h6XqthmB4Hspji84wvgk+ElodTsGj+dbZqHJHHtKxj4mYq0ANSEEPX9ys3moJueqsRjwpaJYH7874Itwnj2ow==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"x64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"linux"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-openbsd-x64": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-dlfCOa87o1VAYegLQ9EKilx2JCeRofiyPGhTCmqnuXZ6bMPiycO1rq1+sKoulAp7pGLIsTIw+1x5R+zgh5LhhA==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"x64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"openbsd"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-openharmony-arm64": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-cjkLbOlfcm3QGhMM1J5zaZjsw1GggbN6rw9UTSSRrPrR1KkcXnN7Uq9rPw34xImQ9VOY9GN+6u2Zj80B9ptkcw==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"openharmony"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-win32-arm64-msvc": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-Li1KdUnWGE4N3e1F/B4RTB1ms+nG4WBgjByO46pkeBVX/2UBsY53xf5vK9WygVmnH3RwncIST7lkSdLSY6P9lg==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"arm64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"win32"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-win32-ia32-msvc": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-t4ZYOSoLTgwhuFMrmTMLx/+i1DQVK7HYqMc6kY46EApwi8X0nIVphzdNoThU3xt6n+N5urG1/gxBdCaKDLavfg==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"ia32"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"win32"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-win32-x64-gnu": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-RgroPfMmKlD1RzSDxvwgcPiy2HNQKoYV7OmwIXDsk73uKW5t6B/V8KIy27SMv/FNXFo/oSBtWc9J0X7t91ezZg==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"x64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"win32"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@rollup/rollup-win32-x64-msvc": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-at8QVep6S3h5Y6gSbdGU06bRY5WJkf6WUduM9YtvYMbYhB1MOFfUgc6kehitQXzOtMSaT70q7f9ydPhpqu821w==",
|
|
|
|
|
"cpu": [
|
|
|
|
|
"x64"
|
|
|
|
|
],
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"win32"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@types/chai": {
|
|
|
|
|
"version": "5.2.3",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz",
|
|
|
|
|
"integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"@types/deep-eql": "*",
|
|
|
|
|
"assertion-error": "^2.0.1"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@types/deep-eql": {
|
|
|
|
|
"version": "4.0.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz",
|
|
|
|
|
"integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT"
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@types/estree": {
|
|
|
|
|
"version": "1.0.9",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz",
|
|
|
|
|
"integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT"
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@types/node": {
|
|
|
|
|
"version": "26.4.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-26.4.1.tgz",
|
|
|
|
|
"integrity": "sha512-k97ENvZWtvA6yqz5/FS6a7duDgOPEeOQOc2iKS/nY6mX6qJUKtLnWzQS+Xj6tXweyj6ZcTAK2Qecetnvi9nCLA==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"undici-types": "~8.3.0"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@vitest/expect": {
|
|
|
|
|
"version": "3.2.7",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.7.tgz",
|
|
|
|
|
"integrity": "sha512-E8eBXaKibuvH2pSZErOjdVb5vF4PbKYcrnluBTYxEk1l/VhhwZg1kZQsdtjq+CsF5CFydf2Rdkz7jDHKSisi3w==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"@types/chai": "^5.2.2",
|
|
|
|
|
"@vitest/spy": "3.2.7",
|
|
|
|
|
"@vitest/utils": "3.2.7",
|
|
|
|
|
"chai": "^5.2.0",
|
|
|
|
|
"tinyrainbow": "^2.0.0"
|
|
|
|
|
},
|
|
|
|
|
"funding": {
|
|
|
|
|
"url": "https://opencollective.com/vitest"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@vitest/mocker": {
|
|
|
|
|
"version": "3.2.7",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.7.tgz",
|
|
|
|
|
"integrity": "sha512-Trr0hYO9CM3Wj6ksWHRhK9IZpIY6wTMO5u/MqXurMxT57sWBaOPEtP3Oq60ihZuh5JsiagKfz95OcxdEP6dBrA==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"@vitest/spy": "3.2.7",
|
|
|
|
|
"estree-walker": "^3.0.3",
|
|
|
|
|
"magic-string": "^0.30.17"
|
|
|
|
|
},
|
|
|
|
|
"funding": {
|
|
|
|
|
"url": "https://opencollective.com/vitest"
|
|
|
|
|
},
|
|
|
|
|
"peerDependencies": {
|
|
|
|
|
"msw": "^2.4.9",
|
|
|
|
|
"vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0"
|
|
|
|
|
},
|
|
|
|
|
"peerDependenciesMeta": {
|
|
|
|
|
"msw": {
|
|
|
|
|
"optional": true
|
|
|
|
|
},
|
|
|
|
|
"vite": {
|
|
|
|
|
"optional": true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@vitest/pretty-format": {
|
|
|
|
|
"version": "3.2.7",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.7.tgz",
|
|
|
|
|
"integrity": "sha512-KUHlwqVu0sRlhCdyPdQ/wBoTfRahjUky1MubOmYw9fWfIZy1gNoHpuaaQBPAaMaVYdQYHJLurzj8ECCj5OwTqA==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"tinyrainbow": "^2.0.0"
|
|
|
|
|
},
|
|
|
|
|
"funding": {
|
|
|
|
|
"url": "https://opencollective.com/vitest"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@vitest/runner": {
|
|
|
|
|
"version": "3.2.7",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.7.tgz",
|
|
|
|
|
"integrity": "sha512-sB9y4ovltoQP+WaUPwmSxO9WIg9Ig694Di5PalVPsYHklAdE027mehpWF2SQSVq+k6sFgaivbTjTJwZLSHbedA==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"@vitest/utils": "3.2.7",
|
|
|
|
|
"pathe": "^2.0.3",
|
|
|
|
|
"strip-literal": "^3.0.0"
|
|
|
|
|
},
|
|
|
|
|
"funding": {
|
|
|
|
|
"url": "https://opencollective.com/vitest"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@vitest/snapshot": {
|
|
|
|
|
"version": "3.2.7",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.7.tgz",
|
|
|
|
|
"integrity": "sha512-7C+MwShwtBSI5Buwoyg3s/iY1eHL9PKAf+O1wVh/TdnjXUtkoL/9YQtre90i4MtNXM6edP1wJ2zOBpfCyhIS7g==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"@vitest/pretty-format": "3.2.7",
|
|
|
|
|
"magic-string": "^0.30.17",
|
|
|
|
|
"pathe": "^2.0.3"
|
|
|
|
|
},
|
|
|
|
|
"funding": {
|
|
|
|
|
"url": "https://opencollective.com/vitest"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@vitest/spy": {
|
|
|
|
|
"version": "3.2.7",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.7.tgz",
|
|
|
|
|
"integrity": "sha512-Q2eQGI6d2L/hBtZ0qNuKcAGid68XK6cv1xsoaIma6PaJhHPoqcEJhYpXZ/5myCMqkNgtP6UKuBhbc0nHKnrkuQ==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"tinyspy": "^4.0.3"
|
|
|
|
|
},
|
|
|
|
|
"funding": {
|
|
|
|
|
"url": "https://opencollective.com/vitest"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@vitest/utils": {
|
|
|
|
|
"version": "3.2.7",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.7.tgz",
|
|
|
|
|
"integrity": "sha512-x6BDOd7dyo3PFLY3I9/HJ25X/6OurhGXk2/B9gOZNPF7XDVjeBK4k01lQE5uvDpbuheErh91qYuE1E2OEjK3Rw==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"@vitest/pretty-format": "3.2.7",
|
|
|
|
|
"loupe": "^3.1.4",
|
|
|
|
|
"tinyrainbow": "^2.0.0"
|
|
|
|
|
},
|
|
|
|
|
"funding": {
|
|
|
|
|
"url": "https://opencollective.com/vitest"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/@vpp/domain": {
|
|
|
|
|
"resolved": "packages/domain",
|
|
|
|
|
"link": true
|
|
|
|
|
},
|
M2: skill contracts, Python skill service, L2 eval harness with baseline
- packages/domain: ForecastRequest, BidOptimizationRequest/Result,
ReportRequest, SkillReport (+ golden and invalid fixtures, exported to
contracts/ and regenerated as pydantic models).
- skills-py/vpp_skills: FastAPI service with versioned registry; load/PV/
price forecasts (same-day-type EWM point forecast, conformal residual
quantiles — coverage test as acceptance gate); bid-optimization MILP on
HiGHS (binary block participation, hard ledger energy bounds, exact
Decimal fit of the rounded curve inside the bounds, revenue distribution
over quantile paths); report generator whose every figure is a
{tool_call_id, path} reference, with a verifier. 48 tests incl. hypothesis
property test that bids respect ledger constraints.
- packages/services: LedgerService.dayAheadBounds (the P7 cascade band
handed to the optimizer); Decimal resolved once for CJS/ESM interop.
- packages/evals: L2 metrics (MAPE, nRMSE, coverage, direction accuracy,
naive/hindsight revenue baselines), HTTP skill client, rolling-origin
harness that pushes each bid through the real ledger, CLI with
--check/--write-baseline; committed baseline on the SYNTHETIC dataset
(no historical Hubei data yet — baselines measure the harness, not KPI).
- CI: evals job boots the skill service and fails on baseline digest drift.
- docs/open-questions: A6 (flexibility marginal cost = offer floor); A4/B6
wired as placeholders. README/CLAUDE.md status → M2 done, M3 next.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UoYoGYzHkFyv3ALenkRPhA
2026-09-02 06:29:08 -04:00
|
|
|
"node_modules/@vpp/evals": {
|
|
|
|
|
"resolved": "packages/evals",
|
|
|
|
|
"link": true
|
|
|
|
|
},
|
M1: domain schemas, contracts pipeline, ledger and snapshot services
- packages/domain: zod schemas for the 07-scenario object set with a
schemaRegistry driving schema export, fixture generation, and Python
module naming; decimal-string/sha256/curve primitives enforce the
docs/11 §3.3 representation rules at the type layer
- contracts/: 12 JSON Schemas (draft 2020-12), 12 golden fixtures, 3
invalid fixtures crafted to fail on both sides (float money, bad
digest, missing concurrency version)
- skills-py: generated pydantic models (committed, never hand-edited),
regeneration script, mirror pytest using JSON-mode validation —
dual-side contract tests agree on all 15 fixtures
- packages/services: content-addressed immutable snapshot store
(memory + fs, rejects floats), LedgerService v1 with optimistic
concurrency and the P7 constraint cascade (monthly position bounds
day-ahead bids; no-anchor bids rejected), quality-gate stub
- cascade band shape is an OPEN-QUESTION A5 placeholder (pro-rata
daily share ±band) — see ledger.ts checkCascade
All green: tsc typecheck, 41 TS tests, 15 Python tests.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019u5SLNweVio6ozJX7yfxQr
🔮 View transcript: https://logs.lojong.info/s/e8u90k3t33w590r7b5y7yzqh
2026-09-01 21:50:22 -04:00
|
|
|
"node_modules/@vpp/services": {
|
|
|
|
|
"resolved": "packages/services",
|
|
|
|
|
"link": true
|
|
|
|
|
},
|
|
|
|
|
"node_modules/assertion-error": {
|
|
|
|
|
"version": "2.0.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
|
|
|
|
|
"integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=12"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/cac": {
|
|
|
|
|
"version": "6.7.14",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
|
|
|
|
|
"integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=8"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/chai": {
|
|
|
|
|
"version": "5.3.3",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz",
|
|
|
|
|
"integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"assertion-error": "^2.0.1",
|
|
|
|
|
"check-error": "^2.1.1",
|
|
|
|
|
"deep-eql": "^5.0.1",
|
|
|
|
|
"loupe": "^3.1.0",
|
|
|
|
|
"pathval": "^2.0.0"
|
|
|
|
|
},
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/check-error": {
|
|
|
|
|
"version": "2.1.3",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz",
|
|
|
|
|
"integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">= 16"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/debug": {
|
|
|
|
|
"version": "4.4.3",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
|
|
|
|
|
"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"ms": "^2.1.3"
|
|
|
|
|
},
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=6.0"
|
|
|
|
|
},
|
|
|
|
|
"peerDependenciesMeta": {
|
|
|
|
|
"supports-color": {
|
|
|
|
|
"optional": true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/decimal.js-light": {
|
|
|
|
|
"version": "2.5.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz",
|
|
|
|
|
"integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==",
|
|
|
|
|
"license": "MIT"
|
|
|
|
|
},
|
|
|
|
|
"node_modules/deep-eql": {
|
|
|
|
|
"version": "5.0.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
|
|
|
|
|
"integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=6"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/es-module-lexer": {
|
|
|
|
|
"version": "1.7.0",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
|
|
|
|
|
"integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT"
|
|
|
|
|
},
|
|
|
|
|
"node_modules/esbuild": {
|
|
|
|
|
"version": "0.28.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz",
|
|
|
|
|
"integrity": "sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"hasInstallScript": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"bin": {
|
|
|
|
|
"esbuild": "bin/esbuild"
|
|
|
|
|
},
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18"
|
|
|
|
|
},
|
|
|
|
|
"optionalDependencies": {
|
|
|
|
|
"@esbuild/aix-ppc64": "0.28.2",
|
|
|
|
|
"@esbuild/android-arm": "0.28.2",
|
|
|
|
|
"@esbuild/android-arm64": "0.28.2",
|
|
|
|
|
"@esbuild/android-x64": "0.28.2",
|
|
|
|
|
"@esbuild/darwin-arm64": "0.28.2",
|
|
|
|
|
"@esbuild/darwin-x64": "0.28.2",
|
|
|
|
|
"@esbuild/freebsd-arm64": "0.28.2",
|
|
|
|
|
"@esbuild/freebsd-x64": "0.28.2",
|
|
|
|
|
"@esbuild/linux-arm": "0.28.2",
|
|
|
|
|
"@esbuild/linux-arm64": "0.28.2",
|
|
|
|
|
"@esbuild/linux-ia32": "0.28.2",
|
|
|
|
|
"@esbuild/linux-loong64": "0.28.2",
|
|
|
|
|
"@esbuild/linux-mips64el": "0.28.2",
|
|
|
|
|
"@esbuild/linux-ppc64": "0.28.2",
|
|
|
|
|
"@esbuild/linux-riscv64": "0.28.2",
|
|
|
|
|
"@esbuild/linux-s390x": "0.28.2",
|
|
|
|
|
"@esbuild/linux-x64": "0.28.2",
|
|
|
|
|
"@esbuild/netbsd-arm64": "0.28.2",
|
|
|
|
|
"@esbuild/netbsd-x64": "0.28.2",
|
|
|
|
|
"@esbuild/openbsd-arm64": "0.28.2",
|
|
|
|
|
"@esbuild/openbsd-x64": "0.28.2",
|
|
|
|
|
"@esbuild/openharmony-arm64": "0.28.2",
|
|
|
|
|
"@esbuild/sunos-x64": "0.28.2",
|
|
|
|
|
"@esbuild/win32-arm64": "0.28.2",
|
|
|
|
|
"@esbuild/win32-ia32": "0.28.2",
|
|
|
|
|
"@esbuild/win32-x64": "0.28.2"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/estree-walker": {
|
|
|
|
|
"version": "3.0.3",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
|
|
|
|
|
"integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"@types/estree": "^1.0.0"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/expect-type": {
|
|
|
|
|
"version": "1.4.0",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz",
|
|
|
|
|
"integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "Apache-2.0",
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=12.0.0"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/fdir": {
|
|
|
|
|
"version": "6.5.0",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
|
|
|
|
|
"integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=12.0.0"
|
|
|
|
|
},
|
|
|
|
|
"peerDependencies": {
|
|
|
|
|
"picomatch": "^3 || ^4"
|
|
|
|
|
},
|
|
|
|
|
"peerDependenciesMeta": {
|
|
|
|
|
"picomatch": {
|
|
|
|
|
"optional": true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/fsevents": {
|
|
|
|
|
"version": "2.3.3",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
|
|
|
|
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"hasInstallScript": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"optional": true,
|
|
|
|
|
"os": [
|
|
|
|
|
"darwin"
|
|
|
|
|
],
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/js-tokens": {
|
|
|
|
|
"version": "9.0.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
|
|
|
|
|
"integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT"
|
|
|
|
|
},
|
|
|
|
|
"node_modules/loupe": {
|
|
|
|
|
"version": "3.2.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz",
|
|
|
|
|
"integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT"
|
|
|
|
|
},
|
|
|
|
|
"node_modules/magic-string": {
|
|
|
|
|
"version": "0.30.21",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
|
|
|
|
|
"integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"@jridgewell/sourcemap-codec": "^1.5.5"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/ms": {
|
|
|
|
|
"version": "2.1.3",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
|
|
|
|
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT"
|
|
|
|
|
},
|
|
|
|
|
"node_modules/nanoid": {
|
|
|
|
|
"version": "3.3.18",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz",
|
|
|
|
|
"integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"funding": [
|
|
|
|
|
{
|
|
|
|
|
"type": "github",
|
|
|
|
|
"url": "https://github.com/sponsors/ai"
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"bin": {
|
|
|
|
|
"nanoid": "bin/nanoid.cjs"
|
|
|
|
|
},
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/pathe": {
|
|
|
|
|
"version": "2.0.3",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
|
|
|
|
|
"integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT"
|
|
|
|
|
},
|
|
|
|
|
"node_modules/pathval": {
|
|
|
|
|
"version": "2.0.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz",
|
|
|
|
|
"integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">= 14.16"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/picocolors": {
|
|
|
|
|
"version": "1.1.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
|
|
|
|
|
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "ISC"
|
|
|
|
|
},
|
|
|
|
|
"node_modules/picomatch": {
|
|
|
|
|
"version": "4.0.7",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz",
|
|
|
|
|
"integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
M2: skill contracts, Python skill service, L2 eval harness with baseline
- packages/domain: ForecastRequest, BidOptimizationRequest/Result,
ReportRequest, SkillReport (+ golden and invalid fixtures, exported to
contracts/ and regenerated as pydantic models).
- skills-py/vpp_skills: FastAPI service with versioned registry; load/PV/
price forecasts (same-day-type EWM point forecast, conformal residual
quantiles — coverage test as acceptance gate); bid-optimization MILP on
HiGHS (binary block participation, hard ledger energy bounds, exact
Decimal fit of the rounded curve inside the bounds, revenue distribution
over quantile paths); report generator whose every figure is a
{tool_call_id, path} reference, with a verifier. 48 tests incl. hypothesis
property test that bids respect ledger constraints.
- packages/services: LedgerService.dayAheadBounds (the P7 cascade band
handed to the optimizer); Decimal resolved once for CJS/ESM interop.
- packages/evals: L2 metrics (MAPE, nRMSE, coverage, direction accuracy,
naive/hindsight revenue baselines), HTTP skill client, rolling-origin
harness that pushes each bid through the real ledger, CLI with
--check/--write-baseline; committed baseline on the SYNTHETIC dataset
(no historical Hubei data yet — baselines measure the harness, not KPI).
- CI: evals job boots the skill service and fails on baseline digest drift.
- docs/open-questions: A6 (flexibility marginal cost = offer floor); A4/B6
wired as placeholders. README/CLAUDE.md status → M2 done, M3 next.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UoYoGYzHkFyv3ALenkRPhA
2026-09-02 06:29:08 -04:00
|
|
|
"peer": true,
|
M1: domain schemas, contracts pipeline, ledger and snapshot services
- packages/domain: zod schemas for the 07-scenario object set with a
schemaRegistry driving schema export, fixture generation, and Python
module naming; decimal-string/sha256/curve primitives enforce the
docs/11 §3.3 representation rules at the type layer
- contracts/: 12 JSON Schemas (draft 2020-12), 12 golden fixtures, 3
invalid fixtures crafted to fail on both sides (float money, bad
digest, missing concurrency version)
- skills-py: generated pydantic models (committed, never hand-edited),
regeneration script, mirror pytest using JSON-mode validation —
dual-side contract tests agree on all 15 fixtures
- packages/services: content-addressed immutable snapshot store
(memory + fs, rejects floats), LedgerService v1 with optimistic
concurrency and the P7 constraint cascade (monthly position bounds
day-ahead bids; no-anchor bids rejected), quality-gate stub
- cascade band shape is an OPEN-QUESTION A5 placeholder (pro-rata
daily share ±band) — see ledger.ts checkCascade
All green: tsc typecheck, 41 TS tests, 15 Python tests.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019u5SLNweVio6ozJX7yfxQr
🔮 View transcript: https://logs.lojong.info/s/e8u90k3t33w590r7b5y7yzqh
2026-09-01 21:50:22 -04:00
|
|
|
"engines": {
|
|
|
|
|
"node": ">=12"
|
|
|
|
|
},
|
|
|
|
|
"funding": {
|
|
|
|
|
"url": "https://github.com/sponsors/jonschlinkert"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/postcss": {
|
|
|
|
|
"version": "8.5.26",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz",
|
|
|
|
|
"integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"funding": [
|
|
|
|
|
{
|
|
|
|
|
"type": "opencollective",
|
|
|
|
|
"url": "https://opencollective.com/postcss/"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "tidelift",
|
|
|
|
|
"url": "https://tidelift.com/funding/github/npm/postcss"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"type": "github",
|
|
|
|
|
"url": "https://github.com/sponsors/ai"
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"nanoid": "^3.3.17",
|
|
|
|
|
"picocolors": "^1.1.1",
|
|
|
|
|
"source-map-js": "^1.2.1"
|
|
|
|
|
},
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": "^10 || ^12 || >=14"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/rollup": {
|
|
|
|
|
"version": "4.63.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.63.1.tgz",
|
|
|
|
|
"integrity": "sha512-3Df9jsstwhccuEfmAMi9l8XUh/GOkVObmFTU7CCVBysEbcOZLl84jCtaAZMcPiMz2EGKsATzQcU+Xr3n/wU6cg==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"@types/estree": "1.0.9"
|
|
|
|
|
},
|
|
|
|
|
"bin": {
|
|
|
|
|
"rollup": "dist/bin/rollup"
|
|
|
|
|
},
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18.0.0",
|
|
|
|
|
"npm": ">=8.0.0"
|
|
|
|
|
},
|
|
|
|
|
"optionalDependencies": {
|
|
|
|
|
"@napi-rs/lzma-linux-x64-gnu": "1.5.1",
|
|
|
|
|
"@rollup/rollup-android-arm-eabi": "4.63.1",
|
|
|
|
|
"@rollup/rollup-android-arm64": "4.63.1",
|
|
|
|
|
"@rollup/rollup-darwin-arm64": "4.63.1",
|
|
|
|
|
"@rollup/rollup-darwin-x64": "4.63.1",
|
|
|
|
|
"@rollup/rollup-freebsd-arm64": "4.63.1",
|
|
|
|
|
"@rollup/rollup-freebsd-x64": "4.63.1",
|
|
|
|
|
"@rollup/rollup-linux-arm-gnueabihf": "4.63.1",
|
|
|
|
|
"@rollup/rollup-linux-arm-musleabihf": "4.63.1",
|
|
|
|
|
"@rollup/rollup-linux-arm64-gnu": "4.63.1",
|
|
|
|
|
"@rollup/rollup-linux-arm64-musl": "4.63.1",
|
|
|
|
|
"@rollup/rollup-linux-loong64-gnu": "4.63.1",
|
|
|
|
|
"@rollup/rollup-linux-loong64-musl": "4.63.1",
|
|
|
|
|
"@rollup/rollup-linux-ppc64-gnu": "4.63.1",
|
|
|
|
|
"@rollup/rollup-linux-ppc64-musl": "4.63.1",
|
|
|
|
|
"@rollup/rollup-linux-riscv64-gnu": "4.63.1",
|
|
|
|
|
"@rollup/rollup-linux-riscv64-musl": "4.63.1",
|
|
|
|
|
"@rollup/rollup-linux-s390x-gnu": "4.63.1",
|
|
|
|
|
"@rollup/rollup-linux-x64-gnu": "4.63.1",
|
|
|
|
|
"@rollup/rollup-linux-x64-musl": "4.63.1",
|
|
|
|
|
"@rollup/rollup-openbsd-x64": "4.63.1",
|
|
|
|
|
"@rollup/rollup-openharmony-arm64": "4.63.1",
|
|
|
|
|
"@rollup/rollup-win32-arm64-msvc": "4.63.1",
|
|
|
|
|
"@rollup/rollup-win32-ia32-msvc": "4.63.1",
|
|
|
|
|
"@rollup/rollup-win32-x64-gnu": "4.63.1",
|
|
|
|
|
"@rollup/rollup-win32-x64-msvc": "4.63.1",
|
|
|
|
|
"fsevents": "~2.3.2"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/siginfo": {
|
|
|
|
|
"version": "2.0.0",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
|
|
|
|
|
"integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "ISC"
|
|
|
|
|
},
|
|
|
|
|
"node_modules/source-map-js": {
|
|
|
|
|
"version": "1.2.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
|
|
|
|
|
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "BSD-3-Clause",
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=0.10.0"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/stackback": {
|
|
|
|
|
"version": "0.0.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
|
|
|
|
|
"integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT"
|
|
|
|
|
},
|
|
|
|
|
"node_modules/std-env": {
|
|
|
|
|
"version": "3.10.0",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz",
|
|
|
|
|
"integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT"
|
|
|
|
|
},
|
|
|
|
|
"node_modules/strip-literal": {
|
|
|
|
|
"version": "3.1.0",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz",
|
|
|
|
|
"integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"js-tokens": "^9.0.1"
|
|
|
|
|
},
|
|
|
|
|
"funding": {
|
|
|
|
|
"url": "https://github.com/sponsors/antfu"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/tinybench": {
|
|
|
|
|
"version": "2.9.0",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
|
|
|
|
|
"integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT"
|
|
|
|
|
},
|
|
|
|
|
"node_modules/tinyexec": {
|
|
|
|
|
"version": "0.3.2",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
|
|
|
|
|
"integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT"
|
|
|
|
|
},
|
|
|
|
|
"node_modules/tinyglobby": {
|
|
|
|
|
"version": "0.2.17",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz",
|
|
|
|
|
"integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"fdir": "^6.5.0",
|
|
|
|
|
"picomatch": "^4.0.4"
|
|
|
|
|
},
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=12.0.0"
|
|
|
|
|
},
|
|
|
|
|
"funding": {
|
|
|
|
|
"url": "https://github.com/sponsors/SuperchupuDev"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/tinypool": {
|
|
|
|
|
"version": "1.1.1",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz",
|
|
|
|
|
"integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": "^18.0.0 || >=20.0.0"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/tinyrainbow": {
|
|
|
|
|
"version": "2.0.0",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz",
|
|
|
|
|
"integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=14.0.0"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/tinyspy": {
|
|
|
|
|
"version": "4.0.4",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz",
|
|
|
|
|
"integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=14.0.0"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/tsx": {
|
|
|
|
|
"version": "4.23.13",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/tsx/-/tsx-4.23.13.tgz",
|
|
|
|
|
"integrity": "sha512-BL5MGkRln6aDYhb0xbQlEAGw743BaZYWdbWtdJOBriYJboKgUUYCadFp2/FpBBZquBC/ezNBn7wMMPx7FDZUDw==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"esbuild": "~0.28.0"
|
|
|
|
|
},
|
|
|
|
|
"bin": {
|
|
|
|
|
"tsx": "dist/cli.mjs"
|
|
|
|
|
},
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=18.0.0"
|
|
|
|
|
},
|
|
|
|
|
"optionalDependencies": {
|
|
|
|
|
"fsevents": "~2.3.3"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/typescript": {
|
|
|
|
|
"version": "5.9.3",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
|
|
|
|
|
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "Apache-2.0",
|
|
|
|
|
"bin": {
|
|
|
|
|
"tsc": "bin/tsc",
|
|
|
|
|
"tsserver": "bin/tsserver"
|
|
|
|
|
},
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=14.17"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/undici-types": {
|
|
|
|
|
"version": "8.3.0",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz",
|
|
|
|
|
"integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT"
|
|
|
|
|
},
|
|
|
|
|
"node_modules/vite": {
|
|
|
|
|
"version": "7.3.6",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/vite/-/vite-7.3.6.tgz",
|
|
|
|
|
"integrity": "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
M2: skill contracts, Python skill service, L2 eval harness with baseline
- packages/domain: ForecastRequest, BidOptimizationRequest/Result,
ReportRequest, SkillReport (+ golden and invalid fixtures, exported to
contracts/ and regenerated as pydantic models).
- skills-py/vpp_skills: FastAPI service with versioned registry; load/PV/
price forecasts (same-day-type EWM point forecast, conformal residual
quantiles — coverage test as acceptance gate); bid-optimization MILP on
HiGHS (binary block participation, hard ledger energy bounds, exact
Decimal fit of the rounded curve inside the bounds, revenue distribution
over quantile paths); report generator whose every figure is a
{tool_call_id, path} reference, with a verifier. 48 tests incl. hypothesis
property test that bids respect ledger constraints.
- packages/services: LedgerService.dayAheadBounds (the P7 cascade band
handed to the optimizer); Decimal resolved once for CJS/ESM interop.
- packages/evals: L2 metrics (MAPE, nRMSE, coverage, direction accuracy,
naive/hindsight revenue baselines), HTTP skill client, rolling-origin
harness that pushes each bid through the real ledger, CLI with
--check/--write-baseline; committed baseline on the SYNTHETIC dataset
(no historical Hubei data yet — baselines measure the harness, not KPI).
- CI: evals job boots the skill service and fails on baseline digest drift.
- docs/open-questions: A6 (flexibility marginal cost = offer floor); A4/B6
wired as placeholders. README/CLAUDE.md status → M2 done, M3 next.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UoYoGYzHkFyv3ALenkRPhA
2026-09-02 06:29:08 -04:00
|
|
|
"peer": true,
|
M1: domain schemas, contracts pipeline, ledger and snapshot services
- packages/domain: zod schemas for the 07-scenario object set with a
schemaRegistry driving schema export, fixture generation, and Python
module naming; decimal-string/sha256/curve primitives enforce the
docs/11 §3.3 representation rules at the type layer
- contracts/: 12 JSON Schemas (draft 2020-12), 12 golden fixtures, 3
invalid fixtures crafted to fail on both sides (float money, bad
digest, missing concurrency version)
- skills-py: generated pydantic models (committed, never hand-edited),
regeneration script, mirror pytest using JSON-mode validation —
dual-side contract tests agree on all 15 fixtures
- packages/services: content-addressed immutable snapshot store
(memory + fs, rejects floats), LedgerService v1 with optimistic
concurrency and the P7 constraint cascade (monthly position bounds
day-ahead bids; no-anchor bids rejected), quality-gate stub
- cascade band shape is an OPEN-QUESTION A5 placeholder (pro-rata
daily share ±band) — see ledger.ts checkCascade
All green: tsc typecheck, 41 TS tests, 15 Python tests.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019u5SLNweVio6ozJX7yfxQr
🔮 View transcript: https://logs.lojong.info/s/e8u90k3t33w590r7b5y7yzqh
2026-09-01 21:50:22 -04:00
|
|
|
"dependencies": {
|
|
|
|
|
"esbuild": "^0.27.0 || ^0.28.0",
|
|
|
|
|
"fdir": "^6.5.0",
|
|
|
|
|
"picomatch": "^4.0.3",
|
|
|
|
|
"postcss": "^8.5.6",
|
|
|
|
|
"rollup": "^4.43.0",
|
|
|
|
|
"tinyglobby": "^0.2.15"
|
|
|
|
|
},
|
|
|
|
|
"bin": {
|
|
|
|
|
"vite": "bin/vite.js"
|
|
|
|
|
},
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": "^20.19.0 || >=22.12.0"
|
|
|
|
|
},
|
|
|
|
|
"funding": {
|
|
|
|
|
"url": "https://github.com/vitejs/vite?sponsor=1"
|
|
|
|
|
},
|
|
|
|
|
"optionalDependencies": {
|
|
|
|
|
"fsevents": "~2.3.3"
|
|
|
|
|
},
|
|
|
|
|
"peerDependencies": {
|
|
|
|
|
"@types/node": "^20.19.0 || >=22.12.0",
|
|
|
|
|
"jiti": ">=1.21.0",
|
|
|
|
|
"less": "^4.0.0",
|
|
|
|
|
"lightningcss": "^1.21.0",
|
|
|
|
|
"sass": "^1.70.0",
|
|
|
|
|
"sass-embedded": "^1.70.0",
|
|
|
|
|
"stylus": ">=0.54.8",
|
|
|
|
|
"sugarss": "^5.0.0",
|
|
|
|
|
"terser": "^5.16.0",
|
|
|
|
|
"tsx": "^4.8.1",
|
|
|
|
|
"yaml": "^2.4.2"
|
|
|
|
|
},
|
|
|
|
|
"peerDependenciesMeta": {
|
|
|
|
|
"@types/node": {
|
|
|
|
|
"optional": true
|
|
|
|
|
},
|
|
|
|
|
"jiti": {
|
|
|
|
|
"optional": true
|
|
|
|
|
},
|
|
|
|
|
"less": {
|
|
|
|
|
"optional": true
|
|
|
|
|
},
|
|
|
|
|
"lightningcss": {
|
|
|
|
|
"optional": true
|
|
|
|
|
},
|
|
|
|
|
"sass": {
|
|
|
|
|
"optional": true
|
|
|
|
|
},
|
|
|
|
|
"sass-embedded": {
|
|
|
|
|
"optional": true
|
|
|
|
|
},
|
|
|
|
|
"stylus": {
|
|
|
|
|
"optional": true
|
|
|
|
|
},
|
|
|
|
|
"sugarss": {
|
|
|
|
|
"optional": true
|
|
|
|
|
},
|
|
|
|
|
"terser": {
|
|
|
|
|
"optional": true
|
|
|
|
|
},
|
|
|
|
|
"tsx": {
|
|
|
|
|
"optional": true
|
|
|
|
|
},
|
|
|
|
|
"yaml": {
|
|
|
|
|
"optional": true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/vite-node": {
|
|
|
|
|
"version": "3.2.4",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz",
|
|
|
|
|
"integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"cac": "^6.7.14",
|
|
|
|
|
"debug": "^4.4.1",
|
|
|
|
|
"es-module-lexer": "^1.7.0",
|
|
|
|
|
"pathe": "^2.0.3",
|
|
|
|
|
"vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0"
|
|
|
|
|
},
|
|
|
|
|
"bin": {
|
|
|
|
|
"vite-node": "vite-node.mjs"
|
|
|
|
|
},
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": "^18.0.0 || ^20.0.0 || >=22.0.0"
|
|
|
|
|
},
|
|
|
|
|
"funding": {
|
|
|
|
|
"url": "https://opencollective.com/vitest"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/vitest": {
|
|
|
|
|
"version": "3.2.7",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.7.tgz",
|
|
|
|
|
"integrity": "sha512-KrxIJ62Fd89gfysR4WotlgZABiz2dqFPgqGzX7s+CwsqLFomRH7777ZcrOD6+WVAh7khPQP41A+BKbpcJFrdEg==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"@types/chai": "^5.2.2",
|
|
|
|
|
"@vitest/expect": "3.2.7",
|
|
|
|
|
"@vitest/mocker": "3.2.7",
|
|
|
|
|
"@vitest/pretty-format": "^3.2.7",
|
|
|
|
|
"@vitest/runner": "3.2.7",
|
|
|
|
|
"@vitest/snapshot": "3.2.7",
|
|
|
|
|
"@vitest/spy": "3.2.7",
|
|
|
|
|
"@vitest/utils": "3.2.7",
|
|
|
|
|
"chai": "^5.2.0",
|
|
|
|
|
"debug": "^4.4.1",
|
|
|
|
|
"expect-type": "^1.2.1",
|
|
|
|
|
"magic-string": "^0.30.17",
|
|
|
|
|
"pathe": "^2.0.3",
|
|
|
|
|
"picomatch": "^4.0.2",
|
|
|
|
|
"std-env": "^3.9.0",
|
|
|
|
|
"tinybench": "^2.9.0",
|
|
|
|
|
"tinyexec": "^0.3.2",
|
|
|
|
|
"tinyglobby": "^0.2.14",
|
|
|
|
|
"tinypool": "^1.1.1",
|
|
|
|
|
"tinyrainbow": "^2.0.0",
|
|
|
|
|
"vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0",
|
|
|
|
|
"vite-node": "3.2.4",
|
|
|
|
|
"why-is-node-running": "^2.3.0"
|
|
|
|
|
},
|
|
|
|
|
"bin": {
|
|
|
|
|
"vitest": "vitest.mjs"
|
|
|
|
|
},
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": "^18.0.0 || ^20.0.0 || >=22.0.0"
|
|
|
|
|
},
|
|
|
|
|
"funding": {
|
|
|
|
|
"url": "https://opencollective.com/vitest"
|
|
|
|
|
},
|
|
|
|
|
"peerDependencies": {
|
|
|
|
|
"@edge-runtime/vm": "*",
|
|
|
|
|
"@types/debug": "^4.1.12",
|
|
|
|
|
"@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
|
|
|
|
|
"@vitest/browser": "3.2.7",
|
|
|
|
|
"@vitest/ui": "3.2.7",
|
|
|
|
|
"happy-dom": "*",
|
|
|
|
|
"jsdom": "*"
|
|
|
|
|
},
|
|
|
|
|
"peerDependenciesMeta": {
|
|
|
|
|
"@edge-runtime/vm": {
|
|
|
|
|
"optional": true
|
|
|
|
|
},
|
|
|
|
|
"@types/debug": {
|
|
|
|
|
"optional": true
|
|
|
|
|
},
|
|
|
|
|
"@types/node": {
|
|
|
|
|
"optional": true
|
|
|
|
|
},
|
|
|
|
|
"@vitest/browser": {
|
|
|
|
|
"optional": true
|
|
|
|
|
},
|
|
|
|
|
"@vitest/ui": {
|
|
|
|
|
"optional": true
|
|
|
|
|
},
|
|
|
|
|
"happy-dom": {
|
|
|
|
|
"optional": true
|
|
|
|
|
},
|
|
|
|
|
"jsdom": {
|
|
|
|
|
"optional": true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/why-is-node-running": {
|
|
|
|
|
"version": "2.3.0",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
|
|
|
|
|
"integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
|
|
|
|
|
"dev": true,
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"siginfo": "^2.0.0",
|
|
|
|
|
"stackback": "0.0.2"
|
|
|
|
|
},
|
|
|
|
|
"bin": {
|
|
|
|
|
"why-is-node-running": "cli.js"
|
|
|
|
|
},
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=8"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"node_modules/zod": {
|
|
|
|
|
"version": "4.5.4",
|
|
|
|
|
"resolved": "https://registry.npmjs.org/zod/-/zod-4.5.4.tgz",
|
|
|
|
|
"integrity": "sha512-sC95tT5iHHH9gtpj6A81kh+NEaRAUFN+qlUPDUbRfOMvNf5QCBqsb3WgvnpVtK5Y+4UfA6KqufotuTvMGiTlsA==",
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"funding": {
|
|
|
|
|
"url": "https://github.com/sponsors/colinhacks"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"packages/domain": {
|
|
|
|
|
"name": "@vpp/domain",
|
|
|
|
|
"version": "0.1.0",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"zod": "^4.1.0"
|
|
|
|
|
},
|
|
|
|
|
"devDependencies": {
|
|
|
|
|
"@types/node": "^26.4.1",
|
|
|
|
|
"tsx": "^4.19.0",
|
|
|
|
|
"typescript": "^5.6.0",
|
|
|
|
|
"vitest": "^3.0.0"
|
|
|
|
|
}
|
|
|
|
|
},
|
M2: skill contracts, Python skill service, L2 eval harness with baseline
- packages/domain: ForecastRequest, BidOptimizationRequest/Result,
ReportRequest, SkillReport (+ golden and invalid fixtures, exported to
contracts/ and regenerated as pydantic models).
- skills-py/vpp_skills: FastAPI service with versioned registry; load/PV/
price forecasts (same-day-type EWM point forecast, conformal residual
quantiles — coverage test as acceptance gate); bid-optimization MILP on
HiGHS (binary block participation, hard ledger energy bounds, exact
Decimal fit of the rounded curve inside the bounds, revenue distribution
over quantile paths); report generator whose every figure is a
{tool_call_id, path} reference, with a verifier. 48 tests incl. hypothesis
property test that bids respect ledger constraints.
- packages/services: LedgerService.dayAheadBounds (the P7 cascade band
handed to the optimizer); Decimal resolved once for CJS/ESM interop.
- packages/evals: L2 metrics (MAPE, nRMSE, coverage, direction accuracy,
naive/hindsight revenue baselines), HTTP skill client, rolling-origin
harness that pushes each bid through the real ledger, CLI with
--check/--write-baseline; committed baseline on the SYNTHETIC dataset
(no historical Hubei data yet — baselines measure the harness, not KPI).
- CI: evals job boots the skill service and fails on baseline digest drift.
- docs/open-questions: A6 (flexibility marginal cost = offer floor); A4/B6
wired as placeholders. README/CLAUDE.md status → M2 done, M3 next.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UoYoGYzHkFyv3ALenkRPhA
2026-09-02 06:29:08 -04:00
|
|
|
"packages/evals": {
|
|
|
|
|
"name": "@vpp/evals",
|
|
|
|
|
"version": "0.1.0",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"@vpp/domain": "*",
|
|
|
|
|
"@vpp/services": "*"
|
|
|
|
|
},
|
|
|
|
|
"devDependencies": {
|
|
|
|
|
"@types/node": "^26.4.1",
|
|
|
|
|
"tsx": "^4.19.0",
|
|
|
|
|
"typescript": "^5.6.0",
|
|
|
|
|
"vitest": "^3.0.0"
|
|
|
|
|
}
|
|
|
|
|
},
|
M1: domain schemas, contracts pipeline, ledger and snapshot services
- packages/domain: zod schemas for the 07-scenario object set with a
schemaRegistry driving schema export, fixture generation, and Python
module naming; decimal-string/sha256/curve primitives enforce the
docs/11 §3.3 representation rules at the type layer
- contracts/: 12 JSON Schemas (draft 2020-12), 12 golden fixtures, 3
invalid fixtures crafted to fail on both sides (float money, bad
digest, missing concurrency version)
- skills-py: generated pydantic models (committed, never hand-edited),
regeneration script, mirror pytest using JSON-mode validation —
dual-side contract tests agree on all 15 fixtures
- packages/services: content-addressed immutable snapshot store
(memory + fs, rejects floats), LedgerService v1 with optimistic
concurrency and the P7 constraint cascade (monthly position bounds
day-ahead bids; no-anchor bids rejected), quality-gate stub
- cascade band shape is an OPEN-QUESTION A5 placeholder (pro-rata
daily share ±band) — see ledger.ts checkCascade
All green: tsc typecheck, 41 TS tests, 15 Python tests.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019u5SLNweVio6ozJX7yfxQr
🔮 View transcript: https://logs.lojong.info/s/e8u90k3t33w590r7b5y7yzqh
2026-09-01 21:50:22 -04:00
|
|
|
"packages/services": {
|
|
|
|
|
"name": "@vpp/services",
|
|
|
|
|
"version": "0.1.0",
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"@vpp/domain": "*",
|
|
|
|
|
"decimal.js-light": "^2.5.1"
|
|
|
|
|
},
|
|
|
|
|
"devDependencies": {
|
|
|
|
|
"@types/node": "^26.4.1",
|
|
|
|
|
"typescript": "^5.6.0",
|
|
|
|
|
"vitest": "^3.0.0"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|