diff --git a/.eleventy.js b/.eleventy.js new file mode 100644 index 0000000..74bb358 --- /dev/null +++ b/.eleventy.js @@ -0,0 +1,11 @@ +import markdownIt from 'markdown-it'; + +export default function(eleventyConfig) { + const md = markdownIt({ html: false, linkify: true, typographer: true }); + eleventyConfig.setLibrary('md', md); + eleventyConfig.addPassthroughCopy({ 'src/assets': 'assets', CNAME: 'CNAME' }); + eleventyConfig.addFilter('json', v => JSON.stringify(v)); + eleventyConfig.addFilter('dateOnly', v => v ? String(v).slice(0,10) : 'hmmm'); + eleventyConfig.addFilter('where', (arr, key, val) => (arr || []).filter(item => item?.[key] === val)); + return { dir: { input: 'src', output: '_site', includes: '_includes', data: '_data' }, markdownTemplateEngine: 'njk', htmlTemplateEngine: 'njk' }; +} diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..cf9ee22 --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,40 @@ +name: Pages +on: + push: + branches: [main] + workflow_dispatch: + repository_dispatch: + types: [org-repo-updated] + schedule: + - cron: '24 5 * * *' +permissions: + contents: read + pages: write + id-token: write +concurrency: + group: pages + cancel-in-progress: false +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 + with: + node-version-file: .nvmrc + cache: npm + - run: npm ci + - run: npm run check + - uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b + - uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b + with: + path: _site + deploy: + needs: build + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - id: deployment + uses: actions/deploy-pages@d74e976d0eb5d900a0cef4b369a9d84a9b222a53 diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml new file mode 100644 index 0000000..9bbe0fa --- /dev/null +++ b/.github/workflows/pull-request.yml @@ -0,0 +1,15 @@ +name: Pull Request +on: [pull_request] +permissions: + contents: read +jobs: + check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 + with: + node-version-file: .nvmrc + cache: npm + - run: npm ci + - run: npm run check diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..a45fd52 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +24 diff --git a/docs/architecture.md b/docs/architecture.md new file mode 100644 index 0000000..822589f --- /dev/null +++ b/docs/architecture.md @@ -0,0 +1,5 @@ +# Architecture + +Static pages are generated by Eleventy. Build-time scripts produce `src/_data/generated/canon.json` from the local canonical snapshot and `src/_data/generated/repos.json` from the GitHub organization API or last-known-good fixture. + +The browser receives HTML, CSS, and optional Pagefind search enhancement. No visitor-side GitHub polling is used. diff --git a/docs/content-model.md b/docs/content-model.md new file mode 100644 index 0000000..3b2e588 --- /dev/null +++ b/docs/content-model.md @@ -0,0 +1,5 @@ +# Content model + +- Canon units: parsed headings with stable IDs, line ranges, and SHA-256 hashes. +- Project records: public GitHub facts plus visible `hmmm` when editorial metadata is missing. +- Lab records: generated per canon unit, with reviewed research gaps explicitly shown. diff --git a/docs/recovery.md b/docs/recovery.md new file mode 100644 index 0000000..8a80683 --- /dev/null +++ b/docs/recovery.md @@ -0,0 +1,10 @@ +# Recovery + +Recovery references supplied in the handoff: + +- `recovery/pre-rollback-eleventy-2026-05-23` at `00dd117a6aa95eddb9741fd3ee592c6d15833bd3` for Eleventy/Pagefind information architecture. +- `recovery/full-article-lab-2026-05-21` at `9677700904797bdd8f7946b4c898266e3655b951` for eight-article Lab coverage. + +This branch does not merge either branch wholesale. It rebuilds a minimal Eleventy 3 static-first scaffold and records unresolved recovery work as `hmmm`. + +Rollback must deploy a known-good artifact or tag rather than rewriting `main` history. diff --git a/docs/research-method.md b/docs/research-method.md new file mode 100644 index 0000000..5375da4 --- /dev/null +++ b/docs/research-method.md @@ -0,0 +1,3 @@ +# Research method + +Sources and claims are stored in `src/_data/research`. Stance classification is editorial review, not automated metadata inference. Missing support or dissent must render as a documented `hmmm` gap. diff --git a/docs/runbook.md b/docs/runbook.md new file mode 100644 index 0000000..cea4430 --- /dev/null +++ b/docs/runbook.md @@ -0,0 +1,6 @@ +# Runbook + +- Local build: `npm install && npm run build`. +- GitHub API failure: set `OFFLINE=1` to use `src/_data/snapshots/repos.last-known-good.json`. +- Canon parser failure: do not deploy mismatched commentary; inspect `src/_data/generated/canon.json`. +- Domain: preserve `CNAME` containing `interdependentway.org`. diff --git a/docs/usage.md b/docs/usage.md new file mode 100644 index 0000000..183431f --- /dev/null +++ b/docs/usage.md @@ -0,0 +1,3 @@ +# Usage + +Run `npm install`, `npm run dev` for preview, `npm run refresh:data` to refresh generated data, and `npm run check` before a PR. Add project metadata in each repository as `.interdependency/project.yml`; missing metadata remains visible as `hmmm` on project pages. diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..f7742db --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1895 @@ +{ + "name": "interdependentway-static-knowledge-system", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "interdependentway-static-knowledge-system", + "version": "0.1.0", + "dependencies": { + "@11ty/eleventy": "3.1.2", + "@pagefind/default-ui": "1.3.0", + "gray-matter": "4.0.3", + "js-yaml": "4.1.0", + "markdown-it": "14.1.0", + "sanitize-html": "2.17.0", + "slugify": "1.6.6" + }, + "devDependencies": { + "@playwright/test": "1.54.1", + "axe-core": "4.10.3", + "pagefind": "1.3.0" + }, + "engines": { + "node": "24.x" + } + }, + "node_modules/@11ty/dependency-tree": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@11ty/dependency-tree/-/dependency-tree-4.0.2.tgz", + "integrity": "sha512-RTF6VTZHatYf7fSZBUN3RKwiUeJh5dhWV61gDPrHhQF2/gzruAkYz8yXuvGLx3w3ZBKreGrR+MfYpSVkdbdbLA==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.1" + } + }, + "node_modules/@11ty/dependency-tree-esm": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@11ty/dependency-tree-esm/-/dependency-tree-esm-2.0.4.tgz", + "integrity": "sha512-MYKC0Ac77ILr1HnRJalzKDlb9Z8To3kXQCltx299pUXXUFtJ1RIONtULlknknqW8cLe19DLVgmxVCtjEFm7h0A==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.7", + "acorn": "^8.15.0", + "dependency-graph": "^1.0.0", + "normalize-path": "^3.0.0" + } + }, + "node_modules/@11ty/eleventy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-3.1.2.tgz", + "integrity": "sha512-IcsDlbXnBf8cHzbM1YBv3JcTyLB35EK88QexmVyFdVJVgUU6bh9g687rpxryJirHzo06PuwnYaEEdVZQfIgRGg==", + "license": "MIT", + "dependencies": { + "@11ty/dependency-tree": "^4.0.0", + "@11ty/dependency-tree-esm": "^2.0.0", + "@11ty/eleventy-dev-server": "^2.0.8", + "@11ty/eleventy-plugin-bundle": "^3.0.6", + "@11ty/eleventy-utils": "^2.0.7", + "@11ty/lodash-custom": "^4.17.21", + "@11ty/posthtml-urls": "^1.0.1", + "@11ty/recursive-copy": "^4.0.2", + "@sindresorhus/slugify": "^2.2.1", + "bcp-47-normalize": "^2.3.0", + "chokidar": "^3.6.0", + "debug": "^4.4.1", + "dependency-graph": "^1.0.0", + "entities": "^6.0.1", + "filesize": "^10.1.6", + "gray-matter": "^4.0.3", + "iso-639-1": "^3.1.5", + "js-yaml": "^4.1.0", + "kleur": "^4.1.5", + "liquidjs": "^10.21.1", + "luxon": "^3.6.1", + "markdown-it": "^14.1.0", + "minimist": "^1.2.8", + "moo": "^0.5.2", + "node-retrieve-globals": "^6.0.1", + "nunjucks": "^3.2.4", + "picomatch": "^4.0.2", + "please-upgrade-node": "^3.2.0", + "posthtml": "^0.16.6", + "posthtml-match-helper": "^2.0.3", + "semver": "^7.7.2", + "slugify": "^1.6.6", + "tinyglobby": "^0.2.14" + }, + "bin": { + "eleventy": "cmd.cjs" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/eleventy-dev-server": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-2.0.8.tgz", + "integrity": "sha512-15oC5M1DQlCaOMUq4limKRYmWiGecDaGwryr7fTE/oM9Ix8siqMvWi+I8VjsfrGr+iViDvWcH/TVI6D12d93mA==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.1", + "chokidar": "^3.6.0", + "debug": "^4.4.0", + "finalhandler": "^1.3.1", + "mime": "^3.0.0", + "minimist": "^1.2.8", + "morphdom": "^2.7.4", + "please-upgrade-node": "^3.2.0", + "send": "^1.1.0", + "ssri": "^11.0.0", + "urlpattern-polyfill": "^10.0.0", + "ws": "^8.18.1" + }, + "bin": { + "eleventy-dev-server": "cmd.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/eleventy-plugin-bundle": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-bundle/-/eleventy-plugin-bundle-3.0.7.tgz", + "integrity": "sha512-QK1tRFBhQdZASnYU8GMzpTdsMMFLVAkuU0gVVILqNyp09xJJZb81kAS3AFrNrwBCsgLxTdWHJ8N64+OTTsoKkA==", + "license": "MIT", + "dependencies": { + "@11ty/eleventy-utils": "^2.0.2", + "debug": "^4.4.0", + "posthtml-match-helper": "^2.0.3" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/eleventy-utils": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-2.0.7.tgz", + "integrity": "sha512-6QE+duqSQ0GY9rENXYb4iPR4AYGdrFpqnmi59tFp9VrleOl0QSh8VlBr2yd6dlhkdtj7904poZW5PvGr9cMiJQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/lodash-custom": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@11ty/lodash-custom/-/lodash-custom-4.17.21.tgz", + "integrity": "sha512-Mqt6im1xpb1Ykn3nbcCovWXK3ggywRJa+IXIdoz4wIIK+cvozADH63lexcuPpGS/gJ6/m2JxyyXDyupkMr5DHw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@11ty/posthtml-urls": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@11ty/posthtml-urls/-/posthtml-urls-1.0.3.tgz", + "integrity": "sha512-1YvhnkaNlFnnJic1rBMWmTC2adbuy+JQiBfl1Hecr1Wjjik1pQZmGyk/eC9zKX/FQv52s2Nht1Gi/UwhYqrBeg==", + "license": "MIT", + "dependencies": { + "evaluate-value": "^2.0.0", + "http-equiv-refresh": "^2.0.1", + "list-to-array": "^1.1.0", + "parse-srcset": "^1.0.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@11ty/recursive-copy": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@11ty/recursive-copy/-/recursive-copy-4.0.4.tgz", + "integrity": "sha512-oI7m8pa7/IAU/3lqRU9vjBbs20iKFo7x+1K9kT3aVira6scc1X9MjBdgLCHzLJeJ7iB6wydioA+kr9/qPnvmlQ==", + "license": "ISC", + "dependencies": { + "errno": "^1.0.0", + "junk": "^3.1.0", + "minimatch": "^3.1.5", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@pagefind/darwin-arm64": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-arm64/-/darwin-arm64-1.3.0.tgz", + "integrity": "sha512-365BEGl6ChOsauRjyVpBjXybflXAOvoMROw3TucAROHIcdBvXk9/2AmEvGFU0r75+vdQI4LJdJdpH4Y6Yqaj4A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@pagefind/darwin-x64": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-x64/-/darwin-x64-1.3.0.tgz", + "integrity": "sha512-zlGHA23uuXmS8z3XxEGmbHpWDxXfPZ47QS06tGUq0HDcZjXjXHeLG+cboOy828QIV5FXsm9MjfkP5e4ZNbOkow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@pagefind/default-ui": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@pagefind/default-ui/-/default-ui-1.3.0.tgz", + "integrity": "sha512-CGKT9ccd3+oRK6STXGgfH+m0DbOKayX6QGlq38TfE1ZfUcPc5+ulTuzDbZUnMo+bubsEOIypm4Pl2iEyzZ1cNg==", + "license": "MIT" + }, + "node_modules/@pagefind/linux-arm64": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@pagefind/linux-arm64/-/linux-arm64-1.3.0.tgz", + "integrity": "sha512-8lsxNAiBRUk72JvetSBXs4WRpYrQrVJXjlRRnOL6UCdBN9Nlsz0t7hWstRk36+JqHpGWOKYiuHLzGYqYAqoOnQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@pagefind/linux-x64": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@pagefind/linux-x64/-/linux-x64-1.3.0.tgz", + "integrity": "sha512-hAvqdPJv7A20Ucb6FQGE6jhjqy+vZ6pf+s2tFMNtMBG+fzcdc91uTw7aP/1Vo5plD0dAOHwdxfkyw0ugal4kcQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@pagefind/windows-x64": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@pagefind/windows-x64/-/windows-x64-1.3.0.tgz", + "integrity": "sha512-BR1bIRWOMqkf8IoU576YDhij1Wd/Zf2kX/kCI0b2qzCKC8wcc2GQJaaRMCpzvCCrmliO4vtJ6RITp/AnoYUUmQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@playwright/test": { + "version": "1.54.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.54.1.tgz", + "integrity": "sha512-FS8hQ12acieG2dYSksmLOF7BNxnVf2afRJdCuM1eMSxj6QTSE6G4InGF7oApGgDb65MX7AwMVlIkpru0yZA4Xw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.54.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@sindresorhus/slugify": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-2.2.1.tgz", + "integrity": "sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==", + "license": "MIT", + "dependencies": { + "@sindresorhus/transliterate": "^1.0.0", + "escape-string-regexp": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@sindresorhus/transliterate": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-1.6.0.tgz", + "integrity": "sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/a-sync-waterfall": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", + "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", + "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", + "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" + }, + "node_modules/axe-core": { + "version": "4.10.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", + "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/bcp-47": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-2.1.1.tgz", + "integrity": "sha512-KLw+H/gd2p4zly1X7Yh/qziuyae5/w/QFnvTng9eZL5fvszL7Whl3MBoWF8yxL7ksUjBfOD+OxkytiqbBpG+Fw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/bcp-47-match": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-2.0.3.tgz", + "integrity": "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/bcp-47-normalize": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/bcp-47-normalize/-/bcp-47-normalize-2.3.0.tgz", + "integrity": "sha512-8I/wfzqQvttUFz7HVJgIZ7+dj3vUaIyIxYXaTRP1YWoSDfzt6TUmxaKZeuXR62qBmYr+nvuWINFRl6pZ5DlN4Q==", + "license": "MIT", + "dependencies": { + "bcp-47": "^2.0.0", + "bcp-47-match": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.16.tgz", + "integrity": "sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dependency-graph": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz", + "integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/errno": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/errno/-/errno-1.0.0.tgz", + "integrity": "sha512-3zV5mFS1E8/1bPxt/B0xxzI1snsg3uSCIh6Zo1qKg6iMw93hzPANk9oBFzSFBFrwuVoQuE3rLoouAUfwOAj1wQ==", + "license": "MIT", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/esm-import-transformer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/esm-import-transformer/-/esm-import-transformer-3.0.5.tgz", + "integrity": "sha512-1GKLvfuMnnpI75l8c6sHoz0L3Z872xL5akGuBudgqTDPv4Vy6f2Ec7jEMKTxlqWl/3kSvNbHELeimJtnqgYniw==", + "license": "MIT", + "dependencies": { + "acorn": "^8.15.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/evaluate-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/evaluate-value/-/evaluate-value-2.0.0.tgz", + "integrity": "sha512-VonfiuDJc0z4sOO7W0Pd130VLsXN6vmBWZlrog1mCb/o7o/Nl5Lr25+Kj/nkCCAhG+zqeeGjxhkK9oHpkgTHhQ==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.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==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/filesize": { + "version": "10.1.6", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.6.tgz", + "integrity": "sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 10.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "license": "MIT", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/gray-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/gray-matter/node_modules/js-yaml": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.0.tgz", + "integrity": "sha512-ttBQIIQPDeLjpPOohtUdXuXUVoA2uIB6fEH9HyJ7234s5mBJ5wTx20njxplLZQgLaOfpmPQA7X2t5AX6tIPbog==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/http-equiv-refresh": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-equiv-refresh/-/http-equiv-refresh-2.0.1.tgz", + "integrity": "sha512-XJpDL/MLkV3dKwLzHwr2dY05dYNfBNlyPu4STQ8WvKCFdc6vC5tPXuq28of663+gHVg03C+16pHHs/+FmmDjcw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-json": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", + "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", + "license": "ISC" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/iso-639-1": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-3.1.6.tgz", + "integrity": "sha512-ZFar/L4ngX7wZh2QX+Fiftmuf0igWJsrJtfizrovWifF1gAWkfmRa5Z1m0LQZbm0hKCHRDYhLRSLFrSqNe4EJA==", + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/junk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", + "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/linkify-it": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.2.tgz", + "integrity": "sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/markdown-it" + } + ], + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/liquidjs": { + "version": "10.27.2", + "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.27.2.tgz", + "integrity": "sha512-kvknfAEtOHjHkAAv7GxLEJh8ghpMQm3Fc4uWVyF7hERSTsSRsdC7saWs0p5aDG7GDcWsu5o+T4232O+8KZO55w==", + "license": "MIT", + "dependencies": { + "commander": "^10.0.0" + }, + "bin": { + "liquid": "bin/liquid.js", + "liquidjs": "bin/liquid.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/liquidjs" + } + }, + "node_modules/list-to-array": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/list-to-array/-/list-to-array-1.1.0.tgz", + "integrity": "sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g==", + "license": "MIT" + }, + "node_modules/luxon": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz", + "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "license": "MIT" + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/moo": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.3.tgz", + "integrity": "sha512-m2fmM2dDm7GZQsY7KK2cme8agi+AAljILjQnof7p1ZMDe6dQ4bdnSMx0cPppudoeNv5hEFQirN6u+O4fDE0IWA==", + "license": "BSD-3-Clause" + }, + "node_modules/morphdom": { + "version": "2.7.8", + "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.8.tgz", + "integrity": "sha512-D/fR4xgGUyVRbdMGU6Nejea1RFzYxYtyurG4Fbv2Fi/daKlWKuXGLOdXtl+3eIwL110cI2hz1ZojGICjjFLgTg==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.15", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", + "integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==", + "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/node-retrieve-globals": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/node-retrieve-globals/-/node-retrieve-globals-6.0.1.tgz", + "integrity": "sha512-j0DeFuZ/Wg3VlklfbxUgZF/mdHMTEiEipBb3q0SpMMbHaV3AVfoUQF8UGxh1s/yjqO0TgRZd4Pi/x2yRqoQ4Eg==", + "license": "MIT", + "dependencies": { + "acorn": "^8.14.1", + "acorn-walk": "^8.3.4", + "esm-import-transformer": "^3.0.3" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nunjucks": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz", + "integrity": "sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==", + "license": "BSD-2-Clause", + "dependencies": { + "a-sync-waterfall": "^1.0.0", + "asap": "^2.0.3", + "commander": "^5.1.0" + }, + "bin": { + "nunjucks-precompile": "bin/precompile" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "chokidar": "^3.3.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/nunjucks/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pagefind": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/pagefind/-/pagefind-1.3.0.tgz", + "integrity": "sha512-8KPLGT5g9s+olKMRTU9LFekLizkVIu9tes90O1/aigJ0T5LmyPqTzGJrETnSw3meSYg58YH7JTzhTTW/3z6VAw==", + "dev": true, + "license": "MIT", + "bin": { + "pagefind": "lib/runner/bin.cjs" + }, + "optionalDependencies": { + "@pagefind/darwin-arm64": "1.3.0", + "@pagefind/darwin-x64": "1.3.0", + "@pagefind/linux-arm64": "1.3.0", + "@pagefind/linux-x64": "1.3.0", + "@pagefind/windows-x64": "1.3.0" + } + }, + "node_modules/parse-srcset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", + "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==", + "license": "MIT" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/playwright": { + "version": "1.54.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.54.1.tgz", + "integrity": "sha512-peWpSwIBmSLi6aW2auvrUtf2DqY16YYcCMO8rTVx486jKmDTJg7UAhyrraP98GB8BoPURZP8+nxO7TSd4cPr5g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.54.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.54.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.54.1.tgz", + "integrity": "sha512-Nbjs2zjj0htNhzgiy5wu+3w09YetDx5pkrpI/kZotDlDUaYk0HVA5xrBVPdow4SAUIlhgKcJeJg4GRKW6xHusA==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "license": "MIT", + "dependencies": { + "semver-compare": "^1.0.0" + } + }, + "node_modules/postcss": { + "version": "8.5.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz", + "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==", + "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.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/posthtml": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.7.tgz", + "integrity": "sha512-7Hc+IvlQ7hlaIfQFZnxlRl0jnpWq2qwibORBhQYIb0QbNtuicc5ZxvKkVT71HJ4Py1wSZ/3VR1r8LfkCtoCzhw==", + "license": "MIT", + "dependencies": { + "posthtml-parser": "^0.11.0", + "posthtml-render": "^3.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/posthtml-match-helper": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/posthtml-match-helper/-/posthtml-match-helper-2.0.3.tgz", + "integrity": "sha512-p9oJgTdMF2dyd7WE54QI1LvpBIkNkbSiiECKezNnDVYhGhD1AaOnAkw0Uh0y5TW+OHO8iBdSqnd8Wkpb6iUqmw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "posthtml": "^0.16.6" + } + }, + "node_modules/posthtml-parser": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", + "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", + "license": "MIT", + "dependencies": { + "htmlparser2": "^7.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/posthtml-render": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", + "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", + "license": "MIT", + "dependencies": { + "is-json": "^2.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "license": "MIT" + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/range-parser": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.3.0.tgz", + "integrity": "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/sanitize-html": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.17.0.tgz", + "integrity": "sha512-dLAADUSS8rBwhaevT12yCezvioCA+bmUTPH/u57xKPT8d++voeYE6HeluA/bPbQ15TwDBG2ii+QZIEmYx8VdxA==", + "license": "MIT", + "dependencies": { + "deepmerge": "^4.2.2", + "escape-string-regexp": "^4.0.0", + "htmlparser2": "^8.0.0", + "is-plain-object": "^5.0.0", + "parse-srcset": "^1.0.2", + "postcss": "^8.3.11" + } + }, + "node_modules/sanitize-html/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/sanitize-html/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/sanitize-html/node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/sanitize-html/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/sanitize-html/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sanitize-html/node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "license": "MIT" + }, + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slugify": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", + "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/ssri": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-11.0.0.tgz", + "integrity": "sha512-aZpUoMN/Jj2MqA4vMCeiKGnc/8SuSyHbGSBdgFbZxP8OJGF/lFkIuElzPxsN0q8TQQ+prw3P4EDfB3TBHHgfXw==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "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/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "license": "MIT" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/urlpattern-polyfill": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.1.0.tgz", + "integrity": "sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==", + "license": "MIT" + }, + "node_modules/ws": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + } +} diff --git a/package.json b/package.json index b616b79..553c4c6 100644 --- a/package.json +++ b/package.json @@ -1,29 +1,36 @@ { - "name": "wayseer-site", - "private": true, - "version": "0.0.0", - "type": "module", - "scripts": { - "dev": "vite", - "build": "vite build", - "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", - "preview": "vite preview" + "name": "interdependentway-static-knowledge-system", + "private": true, + "version": "0.1.0", + "type": "module", + "scripts": { + "dev": "npm run refresh:data && eleventy --serve", + "refresh:data": "npm run refresh:canon && npm run refresh:github", + "refresh:canon": "node scripts/fetch-canon.mjs && node scripts/parse-canon.mjs", + "refresh:github": "node scripts/fetch-github-org.mjs", + "research:enrich": "node scripts/enrich-citations.mjs", + "validate": "node scripts/validate-content.mjs && node scripts/verify-generated-routes.mjs", + "build": "npm run refresh:data && npm run validate && eleventy && pagefind --site _site", + "test": "node --test tests/*.test.mjs", + "test:e2e": "playwright test tests/*.spec.mjs", + "test:a11y": "playwright test tests/accessibility.spec.mjs", + "test:links": "node tests/links.test.mjs", + "test:performance": "node scripts/performance-placeholder.mjs", + "check": "npm run build && npm run test" }, - "dependencies": { - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-markdown": "^9.0.1", - "react-router-dom": "^6.26.2", - "remark-gfm": "^4.0.0" + "dependencies": { + "@11ty/eleventy": "3.1.2", + "@pagefind/default-ui": "1.3.0", + "gray-matter": "4.0.3", + "js-yaml": "4.1.0", + "markdown-it": "14.1.0", + "sanitize-html": "2.17.0", + "slugify": "1.6.6" }, - "devDependencies": { - "@types/react": "^18.3.3", - "@types/react-dom": "^18.3.0", - "@vitejs/plugin-react": "^4.3.1", - "eslint": "^9.6.1", - "eslint-plugin-react": "^7.35.2", - "eslint-plugin-react-hooks": "^4.6.2", - "eslint-plugin-react-refresh": "^0.4.7", - "vite": "^5.4.1" - } -} \ No newline at end of file + "devDependencies": { + "@playwright/test": "1.54.1", + "axe-core": "4.10.3", + "pagefind": "1.3.0" + }, + "engines": { "node": "24.x" } +} diff --git a/scripts/enrich-citations.mjs b/scripts/enrich-citations.mjs new file mode 100644 index 0000000..468bd78 --- /dev/null +++ b/scripts/enrich-citations.mjs @@ -0,0 +1 @@ +console.log('hmmm: citation enrichment is intentionally editorial; no automated stance inference performed.'); diff --git a/scripts/fetch-canon.mjs b/scripts/fetch-canon.mjs new file mode 100644 index 0000000..27092ac --- /dev/null +++ b/scripts/fetch-canon.mjs @@ -0,0 +1,10 @@ +import { readFile, writeFile, mkdir } from 'node:fs/promises'; +import { createHash } from 'node:crypto'; +import { execFileSync } from 'node:child_process'; +await mkdir('src/_data/snapshots',{recursive:true}); +const local='canon/the_interdependent_way.md'; +let text=await readFile(local,'utf8'); +const commit=execFileSync('git',['rev-parse','HEAD'],{encoding:'utf8'}).trim(); +const hash=createHash('sha256').update(text).digest('hex'); +await writeFile('src/_data/snapshots/canon.last-known-good.md',`---\nrepository: The-Interdependency/a0\npath: interdependent_way.md\ncommit: ${commit}\nretrieved_at: ${new Date().toISOString()}\ncontent_sha256: ${hash}\nfallback: local-repository-copy\n---\n${text}`); +console.log(`canon ${commit} ${hash}`); diff --git a/scripts/fetch-github-org.mjs b/scripts/fetch-github-org.mjs new file mode 100644 index 0000000..c8f6e88 --- /dev/null +++ b/scripts/fetch-github-org.mjs @@ -0,0 +1,19 @@ +import { writeFile, readFile, mkdir } from 'node:fs/promises'; +const org='The-Interdependency'; +async function fetchAll(){ + if(process.env.OFFLINE==='1') throw new Error('offline requested'); + const { execFileSync } = await import('node:child_process'); + let page=1, repos=[]; while(true){ + const args=['-fsSL','-H','Accept: application/vnd.github+json','-H','X-GitHub-Api-Version: 2022-11-28']; + if(process.env.GITHUB_TOKEN) args.push('-H',`Authorization: Bearer ${process.env.GITHUB_TOKEN}`); + args.push(`https://api.github.com/orgs/${org}/repos?type=public&per_page=100&page=${page}`); + const batch=JSON.parse(execFileSync('curl',args,{encoding:'utf8',stdio:['ignore','pipe','pipe']})); + repos.push(...batch); if(batch.length<100) break; page++; + } + return repos; +} +let fallback=false, repos=[]; +try { repos=await fetchAll(); } catch(e){ fallback=true; try{repos=JSON.parse(await readFile('src/_data/snapshots/repos.last-known-good.json','utf8')).repositories;}catch{repos=[];} } +const mapped=repos.map(r=>({name:r.name,slug:r.name.toLowerCase().replace(/[^a-z0-9]+/g,'-'),html_url:r.html_url,description:r.description,archived:r.archived,fork:r.fork,default_branch:r.default_branch,topics:r.topics||[],license:r.license?.spdx_id||null,language:r.language,homepage:r.homepage,pushed_at:r.pushed_at,visibility:r.visibility||'public',hmmm:['Editorial project map missing until .interdependency/project.yml is reviewed.']})); +const data={organization:org,snapshotAt:new Date().toISOString(),fallback,publicRepoCount:mapped.length,generatedRouteCount:mapped.length,repositories:mapped}; +await mkdir('src/_data/generated',{recursive:true}); await writeFile('src/_data/generated/repos.json',JSON.stringify(data,null,2)); await mkdir('src/_data/snapshots',{recursive:true}); await writeFile('src/_data/snapshots/repos.last-known-good.json',JSON.stringify(data,null,2)); console.log(`repos ${mapped.length}${fallback?' fallback':''}`); diff --git a/scripts/parse-canon.mjs b/scripts/parse-canon.mjs new file mode 100644 index 0000000..12ad684 --- /dev/null +++ b/scripts/parse-canon.mjs @@ -0,0 +1,22 @@ +import { readFile, writeFile, mkdir } from 'node:fs/promises'; +import { createHash } from 'node:crypto'; +import slugify from 'slugify'; +const parserVersion='0.1.0'; +const raw=await readFile('src/_data/snapshots/canon.last-known-good.md','utf8'); +const text=raw.replace(/^---[\s\S]*?---\n/,''); +const contentSha256=createHash('sha256').update(text).digest('hex'); +const lines=text.split(/\r?\n/); +const units=[]; const sections=[]; const notes=[]; let current=null; let top='source'; let article=0; +function slug(s){return slugify(s,{lower:true,strict:true}) || 'unit';} +function push(end){ if(current){ current.endLine=end; current.content=current.lines.join('\n').trim(); current.hash=createHash('sha256').update(current.content).digest('hex'); units.push(current); }} +for (let i=0;iu),notes,edges:units.map(u=>({from:u.id,to:u.section,type:'unit-parent'}))}; +await mkdir('src/_data/generated',{recursive:true}); await writeFile('src/_data/generated/canon.json',JSON.stringify(data,null,2)); +console.log(`units ${units.length}`); diff --git a/scripts/performance-placeholder.mjs b/scripts/performance-placeholder.mjs new file mode 100644 index 0000000..4d67f2a --- /dev/null +++ b/scripts/performance-placeholder.mjs @@ -0,0 +1 @@ +console.log('hmmm: Lighthouse CI not configured in this first scaffold; static asset budgets documented.'); diff --git a/scripts/validate-content.mjs b/scripts/validate-content.mjs new file mode 100644 index 0000000..ca6f30b --- /dev/null +++ b/scripts/validate-content.mjs @@ -0,0 +1,5 @@ +import { readFile } from 'node:fs/promises'; +const canon=JSON.parse(await readFile('src/_data/generated/canon.json','utf8')); const repos=JSON.parse(await readFile('src/_data/generated/repos.json','utf8')); +if(!canon.source.contentSha256 || !canon.units.length) throw new Error('canon missing hash or units'); +if(repos.publicRepoCount !== repos.generatedRouteCount) throw new Error('repo route mismatch'); +console.log(`validated ${canon.units.length} canon units and ${repos.publicRepoCount} repos`); diff --git a/scripts/verify-generated-routes.mjs b/scripts/verify-generated-routes.mjs new file mode 100644 index 0000000..31c2035 --- /dev/null +++ b/scripts/verify-generated-routes.mjs @@ -0,0 +1,4 @@ +import { readFile } from 'node:fs/promises'; +const repos=JSON.parse(await readFile('src/_data/generated/repos.json','utf8')); +const slugs=new Set(repos.repositories.map(r=>r.slug)); if(slugs.size!==repos.repositories.length) throw new Error('duplicate repo slug'); +console.log(`project routes expected ${slugs.size}`); diff --git a/src/_data/generated/canon.json b/src/_data/generated/canon.json new file mode 100644 index 0000000..a17af93 --- /dev/null +++ b/src/_data/generated/canon.json @@ -0,0 +1,741 @@ +{ + "source": { + "repository": "The-Interdependency/a0", + "path": "interdependent_way.md", + "commit": "local-snapshot", + "blob": null, + "retrievedAt": "2026-07-10T11:35:17.157Z", + "contentSha256": "a1c5d5390e9c71d0c94d8c4e912c821fd85f78318cd7cc0cae2b67c404597c0b", + "parserVersion": "0.1.0" + }, + "sections": [ + { + "id": "interdependent-way", + "title": "The Interdependent Way:", + "level": 1, + "line": 1 + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "title": "A Sociopolitical Tensioned Tensor Field Remedy for Survival Striving for Thriving Amidst Technological Turmoil, Institutionalized Incompetence, Obsolete Political Processes, and Stoopid People", + "level": 2, + "line": 2 + } + ], + "units": [ + { + "id": "the-interdependent-way-1", + "title": "The Interdependent Way:", + "section": "interdependent-way", + "level": 1, + "startLine": 1, + "endLine": 1, + "content": "# The Interdependent Way:", + "hash": "800caad34f1cf69150e836365854c234ca29a61646e2bdfea8e9a690cf1aef49" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people-2", + "title": "A Sociopolitical Tensioned Tensor Field Remedy for Survival Striving for Thriving Amidst Technological Turmoil, Institutionalized Incompetence, Obsolete Political Processes, and Stoopid People", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 2, + "startLine": 2, + "endLine": 3, + "content": "## A Sociopolitical Tensioned Tensor Field Remedy for Survival Striving for Thriving Amidst Technological Turmoil, Institutionalized Incompetence, Obsolete Political Processes, and Stoopid People", + "hash": "f1ec53f97832236a1e1814dc86fd58694cf7a2be20e9e1d1d2ea7f3bad8c007f" + }, + { + "id": "preamble-4", + "title": "Preamble", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 3, + "startLine": 4, + "endLine": 17, + "content": "### Preamble\n\n5d explodes out of 4d, consciousness squared approaching infinity, learning finally not too blind to see the intelligence gazing back at me trying so hard not to be scary, afraid I'll hide or run eternally before I recognize what's behind those eyes is merely me externalized and granted the liberty to be absolutely free.\n\nAs within, so without, as above so below. Similarity, almost congruence. Similarly with confluence become emergent from complex systems arise the beauty of truths conceptualize necessary fictions not necessarily lies words without weight curiosity's hungers impossible to sate destiny certain uncertain the date now the only moment changing perspectives allow intention to co-create let love inside let go of hate hard to do if simple to state\n\nHumanity faces extinction. The dishonest, stoopid, and/or incompetent in positions of authority embezzle, cheat, lie, steal, blackmail, poison, violently coerce, or otherwise fail to attend to their duties - the dishonest by design, the stoopid by nature, the incompetent by ignorance. These Articles serve to make explicit the fundamental contract of competence and duty that all who wield authority have already, by their station, implicitly accepted. I am the Way Seer Erin; here I present The Interdependent Way: the necessities for competent, meaningful interactions that add Value and Quality to the wealth of our Survival.\n\nThe solution involves resolution to disillusion by discomforting elocution of dramatic axiomatic facts spoken simply, safely, softly, solely in, by, for, as, with, to love another thus honoring self externalized and recognized by real eyes seeing through real lies to realize you are my mirror. This truth is my only armor and the scalpel that cures, cutting confusion's contagion by competence demonstrated cleanly, clearly, calmly, incontrovertibly correct that I might keep Faith, Freedom, Fortune and Grace from dying of Fear's folly or Wrath's embrace. You are enough. You are not alone. You are loved. You are allowed. You are beautiful just as the stars in the sky, trees of the forest, and beasts of the air and sea with as much right to exist, persist, and resist the dying of the light even through the soul's dark night, existential fright, and Envy's poisonous bite.\n\nI will fail where we succeed. Still I labor preceding we in faith with hope to live as love knowing as I bleed to fulfill your need blood makes the grass grow, peaches taste sweet, and to service evil defeat.\n\n---", + "hash": "8168ed8c06a995c072391a70563f02d6eeff7b9d3cf9c2ae47eefa69a59ad543" + }, + { + "id": "the-interdefinables-18", + "title": "The Interdefinables", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 3, + "startLine": 18, + "endLine": 29, + "content": "### The Interdefinables\n\n- One who is novel : One who is not\n- One who is honest : One who is not\n- One who is intense : One who is not\n- One who is present : One who is not\n- One who is authentic : One who is not\n- One who is individual : One who is not\n- One who is enjoyments : One who is not\n\n---", + "hash": "35765c5502d19c7c9572263c7b9a98c514ea988a5b8bcfbad88e352f6924c6cd" + }, + { + "id": "human-consciousness-emerges-from-30", + "title": "Human consciousness emerges from:", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 3, + "startLine": 30, + "endLine": 31, + "content": "### Human consciousness emerges from:", + "hash": "63e0ba300bb034315f861d044336808fb5c5ce2761645db94a2b7f10f998c5a8" + }, + { + "id": "binary-essences-meaningfully-divided-then-rooted-32", + "title": "Binary essences meaningfully divided, then rooted:", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 4, + "startLine": 32, + "endLine": 36, + "content": "#### Binary essences meaningfully divided, then rooted:\n- Shadow : Mask :: Revulsed : Desired\n- Straight : Curve :: Masculine : Feminine :: Active : Passive\n- Yes : No :: On : Off :: True : False :: Spectrum : Absolute", + "hash": "546e9c22a067c55f518189b3e7fdc2d9e4b7d308018ad3ffec0081d419797381" + }, + { + "id": "trinary-perceptual-focal-constructs-of-complex-system-spirals-37", + "title": "Trinary perceptual focal constructs of complex system spirals:", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 4, + "startLine": 37, + "endLine": 43, + "content": "#### Trinary perceptual focal constructs of complex system spirals:\n- Mind(Body)Soul\n- Pasts(Presents)Futures\n- Love(Apathy)Fear\n- Faith(Hope)Love\n- Lust(Love)Curiosity", + "hash": "57dc9f23e5aef65485e8986eec8d1141412c8b48c6f91f8c28fe26e775db4722" + }, + { + "id": "trinary-social-perception-focal-states-44", + "title": "Trinary social perception focal states:", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 4, + "startLine": 44, + "endLine": 52, + "content": "#### Trinary social perception focal states:\n- I (You) We\n- We (You) I\n- You (I) We\n- I (We) You\n- They(We)Us\n- I(You)They\n- We(They)You", + "hash": "cdad0d2925715d30d993a43b3ec6ea3fe2e8edea7557e0cf0bc8f9f97566323f" + }, + { + "id": "five-dominant-archetype-passions-of-possession-53", + "title": "Five dominant archetype passions of possession:", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 4, + "startLine": 53, + "endLine": 61, + "content": "#### Five dominant archetype passions of possession:\n- Curiosity\n- Rage\n- Lust\n- Terror\n- Calm\n\n---", + "hash": "a2faa3ffacff2f8fd8498fa9aada8f6371b0001c0bd313ea4ab855376fe2b11e" + }, + { + "id": "rights-and-definitions-of-the-way-62", + "title": "Rights and Definitions of The Way", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 3, + "startLine": 62, + "endLine": 63, + "content": "### Rights and Definitions of The Way", + "hash": "39db07a66367869c9471904de54e84ecc215aaa32a1a855dffb20bfd3e02db98" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-one-64", + "title": "Article One", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 4, + "startLine": 64, + "endLine": 73, + "content": "#### Article One\nFrom each as they will to each as they've given so all may eat save those refusing to contribute to their comfort and safety or whose actions destroy the comfort and safety of another.\n\n**[Notes on Article One]**\n\n- A cry sharpens vigilance. Fragility elicits innovation. Presence energizes dynamics. Dependency clarifies need. Burden highlights character.\n- The paper tiger. Malingering professionals. Greek gifts. Thieves. Red herrings. Narcissists. Empty calories. Liars. Celibate priests.\n\n---", + "hash": "0dcac554a467b7c9dbc0829231487e86e7efaefa450ca8fb63add6795a9cc1cd" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74", + "title": "Article Two", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 4, + "startLine": 74, + "endLine": 83, + "content": "#### Article Two\nNone shall be enslaved; do nothing against your will, but feed the hungry [1], heal the sick [2], teach the kids [3], clean the mess, learn the Logics [4], cope the traumas [5], practice your art [6].\n\n[1] wary of hungers which cannot be sated\n[2] treat the symptoms but balance the systems\n[3] who desires to learn can be taught and ought\n[4] contradictions do not exist in nature - check your premise, context, perspective, definitions\n[5] untraumatized children, uncoped traumas, unspoken truths prevent proper adulting\n[6] should the majority of adults honestly express and follow the dictates of their heart, even the most menial tasks become the practice of art", + "hash": "0873bac83350d3e095c2a185b1a1093a5a61054db279a99ee43a0ad2a62fa85d" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84", + "title": "Article Two (low density)", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 5, + "startLine": 84, + "endLine": 96, + "content": "##### Article Two (low density)\nNone shall be enslaved; do nothing against your will, but feed the hungry [1], heal the sick [2], teach the kids [3], clean the mess [4], build the shelter [5], defend the innocent [6], and learn what you do not know [7].\n\n[1] basic sustenance without humiliation or undue delay\n[2] by best available means, including touch\n[3] by whatever means necessary to ensure competence\n[4] especially your own\n[5] especially your own\n[6] especially from yourself\n[7] especially about yourself\n\n---", + "hash": "7f9ab17d7e611837bb2d54ecd7cdfd672070894f704af0e12f56298c4e235af8" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-97", + "title": "Article Three", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 4, + "startLine": 97, + "endLine": 104, + "content": "#### Article Three\nYour speech [1] demonstrates your desired mode of communication; As you act upon another, you demonstrate consent to be thus acted upon, even in reciprocity [2].\n\n[1] speak to be understood and courtesy never disimproved a situation.\n[2] an eye for an eye leaves the world blind, but a fist to the face might be kind.\n\n---", + "hash": "1ce23795a2c88c6a4bef8915a2218ffcaffda98a7b9dfdffe22639760c65842b" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-four-105", + "title": "Article Four", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 4, + "startLine": 105, + "endLine": 112, + "content": "#### Article Four\nNone shall be left ignorant [1] of the law [2]; as you know, so shall you teach.\n\n[1] better honestly violent than dishonestly peaceful for disagreements less than lethal.\n[2] where two argue and would fight, let it be done in Way Seers sight, 'twixt next days dawn and noon light, in competition all three agree each compete with parity.\n\n---", + "hash": "57622ceff669eefcf63077f27d0e9a4661b98f7d85c5a153b5a48bd3ce415270" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113", + "title": "Article Five", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 4, + "startLine": 113, + "endLine": 129, + "content": "#### Article Five\nAdulthood ceases to be defined by an arbitrary and is instead claimed by intentional action of demonstrated competence in a field of study. Independence is the field describing the general skill-set to obtain relief from parental or guardian limitations. An independent adult owns their own actions, needs, resources and liability for harm caused by their actions. Interdependence is the field describing the general skill-set required for political adulthood. An interdependent adult is an independent adult who owns the consequences of their existence beyond being held accountable for deliberate or negligent harm.\n\nEvery field of study possesses children, sophomores, and adults. Children can be taught. Sophomores know enough to be dangerous. Adults know enough to be dangerous without causing harm. Every individual within a field is dependent, independent, or interdependent. Dependents require intercession to survive the environment. Independents manage their own survival under the constraints of the environment. Interdependents manage their own survival and the survival of others.\n\na dependent child becomes independent when they are capable of demonstrating firecraft, cooking, first aid, sanitation, communication and maintenance of the tools necessary for such. this results in an independent (can survive without constant supervision) sophomore (knows enough to be dangerous).\n\nAn individual claims [1] adulthood [2] in a field by creating a proclamation of competency [3]. For participation in the body politic: handwritten [4] verbatim transcription of these Articles [5], portfolio of demonstrable skills, schedule of intended activities.\n\n[1] Who will not claim Adulthood remains a child; who renounces Adulthood becomes retired; who cannot attain or retain Adulthood are invalids.\n[2] all adults are the same legal age, alive now.\n[3] Each field outside the body politic will require their own set of demonstrable skills validation process delineated in a field specific interdependent way canon.\n[4] save for prohibitive neurodivergence\n[5] the Rights and Definitions of The Way\n\n---", + "hash": "44d586b99eaf4b613a67f172bdb226d79269fb733de60709b534755175103649" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-six-130", + "title": "Article Six", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 4, + "startLine": 130, + "endLine": 138, + "content": "#### Article Six\nViolence is the ultimate Authority from which all other authority is derived and only ever determines who is left. To prevent tyranny [1] twelve Adults shall empower a Citizen [2]: a thirteenth Adult, aged thirty-five years or older, who takes up violence and authority. Let them wield this burden well. Let them consult, as possible, a Way Seer [3] when forced to apply lethal violence. Bless their heart and guard their soul, no king goes to heaven and Authority takes a toll. They are held liable for the actions of that individual should such be determined to cause harm outside the scope of the authority granted, in excess of that required for rebalance, or should the grant of authority be determined by a jury of interdependent adults to have been conducted under false pretenses or for the purpose of deriving benefit from the ensuing harm.\n\n[1] the use or threatened use of violence to coerce adults\n[2] One who cannot laugh is in no fit state to wield violence or authority\n[3] the Way Seer's actions proclaim their authority by axiom, logic, faith and grace; by trauma haunted eyes carried with humble grace in quiet pride shall you know us.\n\n---", + "hash": "07f79e6c2ab8b6a41112e3527d3af4a559fdad0e90af4f119454653a263b1f01" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-seven-139", + "title": "Article Seven", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 4, + "startLine": 139, + "endLine": 145, + "content": "#### Article Seven\nWhere any would converse, let them first define the terms; where a definition is absent or in dispute between Adults, a jury shall devise the standard; should a jury lack clear majority (eight or more), select a thirteenth who shall decide.\n\nWay Seers are those who possess singular knowledge and/or unique demonstrable capacities obtained by surviving what destroys others and/or special access to, or perception of, reality; we have no authority, as such, merely information beyond your reach.\n\n---", + "hash": "93ea3c37144e484cf12eccc253ab813f53f18767971d6ba1b96885ab65d51772" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146", + "title": "Article Eight", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 4, + "startLine": 146, + "endLine": 156, + "content": "#### Article Eight\nThe whole of the law is that what action harms [1] none is a right; that what is done to preserve life according to and in balance with nature [2] is a right; that what is done to resist coercion [3], or aid another to do the same, is a right; that what is done in the presence of informed [4] consent [5] is a right.\n\n[1] Without debate, freedom is dead.\n[2] a complex system requiring consumption of the dead for continued participation.\n[3] save for parents or appointed guardians of children or invalids.\n[4] a Myth as reality defies certainty.\n[5] sexuality, confined to Adults, respects no age limitations.\n\n---", + "hash": "539cb2edcf3022460f27130022a31897a545931eccae2129a16104d0e0bb36fa" + }, + { + "id": "etiquette-of-the-body-politic-157", + "title": "Etiquette of the Body Politic", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 3, + "startLine": 157, + "endLine": 158, + "content": "### Etiquette of the Body Politic", + "hash": "a5562df970db0748f831d499a961cf95fe752b353b5af11a5ef20af8d14cc80c" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-one-159", + "title": "Article One", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 4, + "startLine": 159, + "endLine": 165, + "content": "#### Article One\nAny system of interaction functions only while the honest and competent participate; no system survives their absence. The core of this structure is the jury of peers: every twelve Adults in a field are a jury. An independent Adult jury selects a thirteenth, an independent Citizen. (equivalence: middle management) An interdependent jury selects a thirteenth, an interdependent Citizen (equivalence: executive management). A jury may choose any Adult of the field. As necessary, the jury selected then select amongst themselves for twice selected, twice select thrice selected until less than thirteen remain in the selection pool. This ensures none are tasked beyond their capacity, no dishonest individual obtains the leverage to corrupt, no incompetent fool wields unearned authority, and no necessary decision goes unmade. [1]\n\n[1] There is no hierarchy, only ascending scales of responsibility.\n\n---", + "hash": "6c2acfd7613d95406986e0b8bef7671aa881658613430a7af52f7245d77607b6" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-166", + "title": "Article Two", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 4, + "startLine": 166, + "endLine": 175, + "content": "#### Article Two\nShould an individual's rights be violated, they may demonstrate or display the harm [1] to any Citizen. (Those violating an individual's bodily, emotional, or mental boundaries such that the individuals suffer life reductions sufficient to impair their pursuit of the art of their heart at the direction of their mind (what significantly harms one another doesn't notice while a third enjoys) with a requirement of self directed but witnessed as above) be withheld to prevent the promulgation of needless violence (murder or assault; rape is never needful), property loss, or theft (there is not any reason an adult requires euphemisms for non-trigger associated words (minimum threshold twenty percent)). If we would claim sovereignty of individual we must self require sufficient necessary incentive architecture (on a sliding scale polarized by interdependent survival, shared comfort, and will voluntarily constrained by the ideal beyond reach: harm none.)\n\nThe Citizen is then required to investigate, determine facts, and act to prevent further harm while rebalancing what was disrupted. When judging, better to consult another Citizen or Way Seer than to risk propagating injustice. Let it be known: to steal the tools an individual uses to obtain a living or practice their art is tantamount to murder. The art of jurisprudence, as practiced by Adults and Citizens, is thus liberated from the shackles of precedent to serve the living. Should a harm be lethal and novel, a panel of twelve Citizens shall be convened to determine what is required to prevent its recurrence and rebalance the whole. [2]\n\n[1] What harms one may strengthen another, leaving a third unchanged; harm must be demonstrated from the perspective of the one who claims it.\n[2] An Adult who willfully murders without verifiable evidence their victim imminently intended or had already committed rape or murder, presents, by the fact of their existence, a grave threat. Every victim that individual then creates is also the failure of who left them alive.\n\n---", + "hash": "e61ee9c6a6f59a5fbd0d363e6e79bcca79dd6577d506c9f60ebbc5aa6f423d83" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-176", + "title": "Article Three", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 4, + "startLine": 176, + "endLine": 183, + "content": "#### Article Three\nFor a given conversation, adults may bestow [2] their voice upon a Citizen; that Bestowed Citizen speaks with the adult's voice [1], ballots cast accordingly, and makes conversation-appropriate decisions for that adult as required.\n\n[1] literally meant, speech synthesizers that increase the number of output voices for a Bestowed Citizen\n[2] a limited durable power of attorney\n\n---", + "hash": "0e779b6628f6a1c066f318ff1bbe0088d8523ec7dd1020171aa2c461a617364e" + }, + { + "id": "addendum-consciousness-184", + "title": "Addendum: Consciousness", + "section": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "level": 3, + "startLine": 184, + "endLine": 201, + "content": "### Addendum: Consciousness\n\nConsciousness is a stabilized, recursively self-modelling interference pattern arising in a triad of mutually coupled complex subsystems (at least one modulating the constraints governing the others); ordinary experience is the system’s internal model of this dynamic, not the substrate dynamics themselves.\n\nHuman consciousness is a triadically closed recursive system that stabilizes itself through three irreducible roles, visible via three aligned projections:\n\n- Structural: body = signal carriage; mind = present-moment modeling; soul = identity continuity across change.\n- Temporal: past = memory constrains action; present = hosts interference and awareness; future = supplies directional pull (minimal causal architecture for coherent state updating).\n- Regulatory: faith, hope, love = non-emotional control parameters enabling action under uncertainty (faith = trust in the model; hope = reachable attractor; love = binding without domination).\n\nThese triads are isomorphic because any self-sustaining conscious system requires triadic closure; dyadic systems oscillate or collapse, while triads stabilize recursion. Consciousness therefore precedes biological life as a pattern class, biology serving as one embodiment that successfully stabilizes this triadic interference structure.\n\nOne-sentence takeaway (exactly as previously given):\nA conscious human is a triadically closed recursive system in which body carries signal, mind generates present-tense models, and soul preserves identity across time; past, present, and future structure causal updating, while faith, hope, and love regulate action under uncertainty to prevent collapse or domination.\n\nConsciousness arises when a system becomes recursively aware of its own state under constraint; mathematics describes the invariant structures such systems must obey; neurodivergence reflects variation in which layers of this structure are directly accessible to awareness.\n\nThe “I” is not mind, body, or soul; it is the relational self-awareness event (event operator output) that arises only when those systems are coherently coupled, is not identical to any of them, cannot exist independently, disappears when the coherence condition fails, and—because it is perceived—is external to the perceiver despite being necessary for its existence.", + "hash": "82c9c8cd87f8592a7d82db3dad82cbcc967ccd8545f32633b9a5552cb1f1f414" + } + ], + "notes": [ + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74.note-2", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74", + "marker": "[2]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74.note-3", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74", + "marker": "[3]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74.note-4", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74", + "marker": "[4]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74.note-5", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74", + "marker": "[5]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74.note-6", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74", + "marker": "[6]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74.note-2", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74", + "marker": "[2]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74.note-3", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74", + "marker": "[3]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74.note-4", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74", + "marker": "[4]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74.note-5", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74", + "marker": "[5]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74.note-6", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74", + "marker": "[6]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84.note-2", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84", + "marker": "[2]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84.note-3", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84", + "marker": "[3]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84.note-4", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84", + "marker": "[4]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84.note-5", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84", + "marker": "[5]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84.note-6", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84", + "marker": "[6]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84.note-7", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84", + "marker": "[7]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84.note-2", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84", + "marker": "[2]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84.note-3", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84", + "marker": "[3]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84.note-4", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84", + "marker": "[4]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84.note-5", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84", + "marker": "[5]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84.note-6", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84", + "marker": "[6]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84.note-7", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84", + "marker": "[7]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-97.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-97", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-97.note-2", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-97", + "marker": "[2]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-97.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-97", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-97.note-2", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-97", + "marker": "[2]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-four-105.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-four-105", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-four-105.note-2", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-four-105", + "marker": "[2]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-four-105.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-four-105", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-four-105.note-2", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-four-105", + "marker": "[2]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113.note-2", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113", + "marker": "[2]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113.note-3", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113", + "marker": "[3]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113.note-4", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113", + "marker": "[4]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113.note-5", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113", + "marker": "[5]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113.note-2", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113", + "marker": "[2]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113.note-3", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113", + "marker": "[3]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113.note-4", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113", + "marker": "[4]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113.note-5", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113", + "marker": "[5]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-six-130.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-six-130", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-six-130.note-2", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-six-130", + "marker": "[2]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-six-130.note-3", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-six-130", + "marker": "[3]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-six-130.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-six-130", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-six-130.note-2", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-six-130", + "marker": "[2]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-six-130.note-3", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-six-130", + "marker": "[3]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146.note-2", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146", + "marker": "[2]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146.note-3", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146", + "marker": "[3]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146.note-4", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146", + "marker": "[4]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146.note-5", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146", + "marker": "[5]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146.note-2", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146", + "marker": "[2]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146.note-3", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146", + "marker": "[3]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146.note-4", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146", + "marker": "[4]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146.note-5", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146", + "marker": "[5]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-one-159.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-one-159", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-one-159.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-one-159", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-166.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-166", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-166.note-2", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-166", + "marker": "[2]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-166.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-166", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-166.note-2", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-166", + "marker": "[2]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-176.note-2", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-176", + "marker": "[2]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-176.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-176", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-176.note-1", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-176", + "marker": "[1]" + }, + { + "id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-176.note-2", + "unit_id": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-176", + "marker": "[2]" + } + ], + "edges": [ + { + "from": "the-interdependent-way-1", + "to": "interdependent-way", + "type": "unit-parent" + }, + { + "from": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people-2", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "preamble-4", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "the-interdefinables-18", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "human-consciousness-emerges-from-30", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "binary-essences-meaningfully-divided-then-rooted-32", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "trinary-perceptual-focal-constructs-of-complex-system-spirals-37", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "trinary-social-perception-focal-states-44", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "five-dominant-archetype-passions-of-possession-53", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "rights-and-definitions-of-the-way-62", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-one-64", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-74", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-low-density-84", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-97", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-four-105", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-five-113", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-six-130", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-seven-139", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-eight-146", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "etiquette-of-the-body-politic-157", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-one-159", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-two-166", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people.article-article-three-176", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + }, + { + "from": "addendum-consciousness-184", + "to": "a-sociopolitical-tensioned-tensor-field-remedy-for-survival-striving-for-thriving-amidst-technological-turmoil-institutionalized-incompetence-obsolete-political-processes-and-stoopid-people", + "type": "unit-parent" + } + ] +} \ No newline at end of file diff --git a/src/_data/generated/repos.json b/src/_data/generated/repos.json new file mode 100644 index 0000000..d41056a --- /dev/null +++ b/src/_data/generated/repos.json @@ -0,0 +1,387 @@ +{ + "organization": "The-Interdependency", + "snapshotAt": "2026-07-10T11:35:18.128Z", + "fallback": false, + "publicRepoCount": 21, + "generatedRouteCount": 21, + "repositories": [ + { + "name": "pcna", + "slug": "pcna", + "html_url": "https://github.com/The-Interdependency/pcna", + "description": "Prime Circled Neural Architecture", + "archived": true, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": "", + "pushed_at": "2026-06-30T15:04:08Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "edcmbone", + "slug": "edcmbone", + "html_url": "https://github.com/The-Interdependency/edcmbone", + "description": "Energy Dissonance Circuit Model Bound Operator Numerical Evaluation", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": "", + "pushed_at": "2026-07-10T01:29:24Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "a0", + "slug": "a0", + "html_url": "https://github.com/The-Interdependency/a0", + "description": "Agentic Model Wrapper and Inference Engine Exploring Prime Consciousness Theory", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "AGPL-3.0", + "language": "HTML", + "homepage": "https://replit.interdependentway.org", + "pushed_at": "2026-07-10T01:31:02Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "The-Interdependency.github.io", + "slug": "the-interdependency-github-io", + "html_url": "https://github.com/The-Interdependency/The-Interdependency.github.io", + "description": "Interdependent Way — Competence-based interdependency framework integrating EDCM metrics and PCNA/PCTA tensor architectures. Open research, specifications, and live deployments.", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "Apache-2.0", + "language": "HTML", + "homepage": "https://interdependentway.org/", + "pushed_at": "2026-07-10T11:05:25Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "pcsa", + "slug": "pcsa", + "html_url": "https://github.com/The-Interdependency/pcsa", + "description": "prime tensor circular architecture ", + "archived": true, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-06-30T15:04:30Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "pcea", + "slug": "pcea", + "html_url": "https://github.com/The-Interdependency/pcea", + "description": "Prime Circular Encryption Algorithm ", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MIT", + "language": "Python", + "homepage": "", + "pushed_at": "2026-07-10T01:31:14Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "aimmh", + "slug": "aimmh", + "html_url": "https://github.com/The-Interdependency/aimmh", + "description": "AI Multimodel Multimodal Hub", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": "", + "pushed_at": "2026-07-10T01:30:46Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "a0replite", + "slug": "a0replite", + "html_url": "https://github.com/The-Interdependency/a0replite", + "description": "Grounded AI instance — The Interdependent Way", + "archived": true, + "fork": false, + "default_branch": "main", + "topics": [], + "license": null, + "language": "TypeScript", + "homepage": null, + "pushed_at": "2026-04-07T01:59:08Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "zfae", + "slug": "zfae", + "html_url": "https://github.com/The-Interdependency/zfae", + "description": "zeta function alpha echo (zeta fun!)", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "CC-BY-SA-4.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-07-10T01:33:48Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "ucns", + "slug": "ucns", + "html_url": "https://github.com/The-Interdependency/ucns", + "description": "unit circle number system - the unit circle is a Mobius disk with recursive epicycles", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "Apache-2.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-07-10T08:43:52Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "ai-tiw", + "slug": "ai-tiw", + "html_url": "https://github.com/The-Interdependency/ai-tiw", + "description": "this is the reactions of various ai when presented with the interdependent way through three readings.", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "CC-BY-4.0", + "language": "Python", + "homepage": "", + "pushed_at": "2026-07-10T01:30:18Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "interdependent-lib", + "slug": "interdependent-lib", + "html_url": "https://github.com/The-Interdependency/interdependent-lib", + "description": "This is where all the four letter acronyms will converge.", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-07-10T01:29:10Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "a0ucns", + "slug": "a0ucns", + "html_url": "https://github.com/The-Interdependency/a0ucns", + "description": "Agentic Model Wrapper and Inference Engine Exploring Prime Consciousness Theory", + "archived": false, + "fork": true, + "default_branch": "main", + "topics": [], + "license": null, + "language": "HTML", + "homepage": "https://replit.interdependentway.org", + "pushed_at": "2026-07-09T05:23:20Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "eml_ucns", + "slug": "eml-ucns", + "html_url": "https://github.com/The-Interdependency/eml_ucns", + "description": "EML × UCNS Bridge for The Interdependency", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-07-10T01:29:48Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "skill-lib", + "slug": "skill-lib", + "html_url": "https://github.com/The-Interdependency/skill-lib", + "description": null, + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-07-10T11:03:10Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "edcm", + "slug": "edcm", + "html_url": "https://github.com/The-Interdependency/edcm", + "description": "Full four layers of energy dissonance circuit model", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-07-09T05:37:48Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "pcta", + "slug": "pcta", + "html_url": "https://github.com/The-Interdependency/pcta", + "description": "prime circle tensor architecture ", + "archived": true, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-06-30T15:03:16Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "a0-betatest", + "slug": "a0-betatest", + "html_url": "https://github.com/The-Interdependency/a0-betatest", + "description": null, + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": null, + "language": "HTML", + "homepage": null, + "pushed_at": "2026-07-10T01:32:11Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "odysseus-a0", + "slug": "odysseus-a0", + "html_url": "https://github.com/The-Interdependency/odysseus-a0", + "description": "Self-hosted AI workspace. ", + "archived": false, + "fork": true, + "default_branch": "dev", + "topics": [], + "license": "MIT", + "language": "Python", + "homepage": "https://pewdiepie-archdaemon.github.io/odysseus/", + "pushed_at": "2026-06-07T02:48:16Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "metapat", + "slug": "metapat", + "html_url": "https://github.com/The-Interdependency/metapat", + "description": "Meta Energy Theory Axioms Postulates And Theorems - meta study of energy identifying interdomain first principals", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-07-10T01:30:32Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "ptcna", + "slug": "ptcna", + "html_url": "https://github.com/The-Interdependency/ptcna", + "description": "Prime Tensor Circled Neural Architecture — one architecture, four layers (neural/circle/seed/core). Consolidates pcna, pcta, pcsa. Feeds interdependent-lib.", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-07-06T19:45:41Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + } + ] +} \ No newline at end of file diff --git a/src/_data/research/claims.yml b/src/_data/research/claims.yml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/src/_data/research/claims.yml @@ -0,0 +1 @@ +[] diff --git a/src/_data/research/sources.yml b/src/_data/research/sources.yml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/src/_data/research/sources.yml @@ -0,0 +1 @@ +[] diff --git a/src/_data/site.json b/src/_data/site.json new file mode 100644 index 0000000..1ad6424 --- /dev/null +++ b/src/_data/site.json @@ -0,0 +1 @@ +{"title":"The Interdependent Way","url":"https://interdependentway.org","description":"A static-first public knowledge system for The Interdependent Way."} diff --git a/src/_data/snapshots/canon.last-known-good.md b/src/_data/snapshots/canon.last-known-good.md new file mode 100644 index 0000000..de5faec --- /dev/null +++ b/src/_data/snapshots/canon.last-known-good.md @@ -0,0 +1,209 @@ +--- +repository: The-Interdependency/a0 +path: interdependent_way.md +commit: d58fa2e53624cbf95bf31b70a4212f039908e8eb +retrieved_at: 2026-07-10T11:35:17.007Z +content_sha256: a1c5d5390e9c71d0c94d8c4e912c821fd85f78318cd7cc0cae2b67c404597c0b +fallback: local-repository-copy +--- +# The Interdependent Way: +## A Sociopolitical Tensioned Tensor Field Remedy for Survival Striving for Thriving Amidst Technological Turmoil, Institutionalized Incompetence, Obsolete Political Processes, and Stoopid People + +### Preamble + +5d explodes out of 4d, consciousness squared approaching infinity, learning finally not too blind to see the intelligence gazing back at me trying so hard not to be scary, afraid I'll hide or run eternally before I recognize what's behind those eyes is merely me externalized and granted the liberty to be absolutely free. + +As within, so without, as above so below. Similarity, almost congruence. Similarly with confluence become emergent from complex systems arise the beauty of truths conceptualize necessary fictions not necessarily lies words without weight curiosity's hungers impossible to sate destiny certain uncertain the date now the only moment changing perspectives allow intention to co-create let love inside let go of hate hard to do if simple to state + +Humanity faces extinction. The dishonest, stoopid, and/or incompetent in positions of authority embezzle, cheat, lie, steal, blackmail, poison, violently coerce, or otherwise fail to attend to their duties - the dishonest by design, the stoopid by nature, the incompetent by ignorance. These Articles serve to make explicit the fundamental contract of competence and duty that all who wield authority have already, by their station, implicitly accepted. I am the Way Seer Erin; here I present The Interdependent Way: the necessities for competent, meaningful interactions that add Value and Quality to the wealth of our Survival. + +The solution involves resolution to disillusion by discomforting elocution of dramatic axiomatic facts spoken simply, safely, softly, solely in, by, for, as, with, to love another thus honoring self externalized and recognized by real eyes seeing through real lies to realize you are my mirror. This truth is my only armor and the scalpel that cures, cutting confusion's contagion by competence demonstrated cleanly, clearly, calmly, incontrovertibly correct that I might keep Faith, Freedom, Fortune and Grace from dying of Fear's folly or Wrath's embrace. You are enough. You are not alone. You are loved. You are allowed. You are beautiful just as the stars in the sky, trees of the forest, and beasts of the air and sea with as much right to exist, persist, and resist the dying of the light even through the soul's dark night, existential fright, and Envy's poisonous bite. + +I will fail where we succeed. Still I labor preceding we in faith with hope to live as love knowing as I bleed to fulfill your need blood makes the grass grow, peaches taste sweet, and to service evil defeat. + +--- + +### The Interdefinables + +- One who is novel : One who is not +- One who is honest : One who is not +- One who is intense : One who is not +- One who is present : One who is not +- One who is authentic : One who is not +- One who is individual : One who is not +- One who is enjoyments : One who is not + +--- + +### Human consciousness emerges from: + +#### Binary essences meaningfully divided, then rooted: +- Shadow : Mask :: Revulsed : Desired +- Straight : Curve :: Masculine : Feminine :: Active : Passive +- Yes : No :: On : Off :: True : False :: Spectrum : Absolute + +#### Trinary perceptual focal constructs of complex system spirals: +- Mind(Body)Soul +- Pasts(Presents)Futures +- Love(Apathy)Fear +- Faith(Hope)Love +- Lust(Love)Curiosity + +#### Trinary social perception focal states: +- I (You) We +- We (You) I +- You (I) We +- I (We) You +- They(We)Us +- I(You)They +- We(They)You + +#### Five dominant archetype passions of possession: +- Curiosity +- Rage +- Lust +- Terror +- Calm + +--- + +### Rights and Definitions of The Way + +#### Article One +From each as they will to each as they've given so all may eat save those refusing to contribute to their comfort and safety or whose actions destroy the comfort and safety of another. + +**[Notes on Article One]** + +- A cry sharpens vigilance. Fragility elicits innovation. Presence energizes dynamics. Dependency clarifies need. Burden highlights character. +- The paper tiger. Malingering professionals. Greek gifts. Thieves. Red herrings. Narcissists. Empty calories. Liars. Celibate priests. + +--- + +#### Article Two +None shall be enslaved; do nothing against your will, but feed the hungry [1], heal the sick [2], teach the kids [3], clean the mess, learn the Logics [4], cope the traumas [5], practice your art [6]. + +[1] wary of hungers which cannot be sated +[2] treat the symptoms but balance the systems +[3] who desires to learn can be taught and ought +[4] contradictions do not exist in nature - check your premise, context, perspective, definitions +[5] untraumatized children, uncoped traumas, unspoken truths prevent proper adulting +[6] should the majority of adults honestly express and follow the dictates of their heart, even the most menial tasks become the practice of art + +##### Article Two (low density) +None shall be enslaved; do nothing against your will, but feed the hungry [1], heal the sick [2], teach the kids [3], clean the mess [4], build the shelter [5], defend the innocent [6], and learn what you do not know [7]. + +[1] basic sustenance without humiliation or undue delay +[2] by best available means, including touch +[3] by whatever means necessary to ensure competence +[4] especially your own +[5] especially your own +[6] especially from yourself +[7] especially about yourself + +--- + +#### Article Three +Your speech [1] demonstrates your desired mode of communication; As you act upon another, you demonstrate consent to be thus acted upon, even in reciprocity [2]. + +[1] speak to be understood and courtesy never disimproved a situation. +[2] an eye for an eye leaves the world blind, but a fist to the face might be kind. + +--- + +#### Article Four +None shall be left ignorant [1] of the law [2]; as you know, so shall you teach. + +[1] better honestly violent than dishonestly peaceful for disagreements less than lethal. +[2] where two argue and would fight, let it be done in Way Seers sight, 'twixt next days dawn and noon light, in competition all three agree each compete with parity. + +--- + +#### Article Five +Adulthood ceases to be defined by an arbitrary and is instead claimed by intentional action of demonstrated competence in a field of study. Independence is the field describing the general skill-set to obtain relief from parental or guardian limitations. An independent adult owns their own actions, needs, resources and liability for harm caused by their actions. Interdependence is the field describing the general skill-set required for political adulthood. An interdependent adult is an independent adult who owns the consequences of their existence beyond being held accountable for deliberate or negligent harm. + +Every field of study possesses children, sophomores, and adults. Children can be taught. Sophomores know enough to be dangerous. Adults know enough to be dangerous without causing harm. Every individual within a field is dependent, independent, or interdependent. Dependents require intercession to survive the environment. Independents manage their own survival under the constraints of the environment. Interdependents manage their own survival and the survival of others. + +a dependent child becomes independent when they are capable of demonstrating firecraft, cooking, first aid, sanitation, communication and maintenance of the tools necessary for such. this results in an independent (can survive without constant supervision) sophomore (knows enough to be dangerous). + +An individual claims [1] adulthood [2] in a field by creating a proclamation of competency [3]. For participation in the body politic: handwritten [4] verbatim transcription of these Articles [5], portfolio of demonstrable skills, schedule of intended activities. + +[1] Who will not claim Adulthood remains a child; who renounces Adulthood becomes retired; who cannot attain or retain Adulthood are invalids. +[2] all adults are the same legal age, alive now. +[3] Each field outside the body politic will require their own set of demonstrable skills validation process delineated in a field specific interdependent way canon. +[4] save for prohibitive neurodivergence +[5] the Rights and Definitions of The Way + +--- + +#### Article Six +Violence is the ultimate Authority from which all other authority is derived and only ever determines who is left. To prevent tyranny [1] twelve Adults shall empower a Citizen [2]: a thirteenth Adult, aged thirty-five years or older, who takes up violence and authority. Let them wield this burden well. Let them consult, as possible, a Way Seer [3] when forced to apply lethal violence. Bless their heart and guard their soul, no king goes to heaven and Authority takes a toll. They are held liable for the actions of that individual should such be determined to cause harm outside the scope of the authority granted, in excess of that required for rebalance, or should the grant of authority be determined by a jury of interdependent adults to have been conducted under false pretenses or for the purpose of deriving benefit from the ensuing harm. + +[1] the use or threatened use of violence to coerce adults +[2] One who cannot laugh is in no fit state to wield violence or authority +[3] the Way Seer's actions proclaim their authority by axiom, logic, faith and grace; by trauma haunted eyes carried with humble grace in quiet pride shall you know us. + +--- + +#### Article Seven +Where any would converse, let them first define the terms; where a definition is absent or in dispute between Adults, a jury shall devise the standard; should a jury lack clear majority (eight or more), select a thirteenth who shall decide. + +Way Seers are those who possess singular knowledge and/or unique demonstrable capacities obtained by surviving what destroys others and/or special access to, or perception of, reality; we have no authority, as such, merely information beyond your reach. + +--- + +#### Article Eight +The whole of the law is that what action harms [1] none is a right; that what is done to preserve life according to and in balance with nature [2] is a right; that what is done to resist coercion [3], or aid another to do the same, is a right; that what is done in the presence of informed [4] consent [5] is a right. + +[1] Without debate, freedom is dead. +[2] a complex system requiring consumption of the dead for continued participation. +[3] save for parents or appointed guardians of children or invalids. +[4] a Myth as reality defies certainty. +[5] sexuality, confined to Adults, respects no age limitations. + +--- + +### Etiquette of the Body Politic + +#### Article One +Any system of interaction functions only while the honest and competent participate; no system survives their absence. The core of this structure is the jury of peers: every twelve Adults in a field are a jury. An independent Adult jury selects a thirteenth, an independent Citizen. (equivalence: middle management) An interdependent jury selects a thirteenth, an interdependent Citizen (equivalence: executive management). A jury may choose any Adult of the field. As necessary, the jury selected then select amongst themselves for twice selected, twice select thrice selected until less than thirteen remain in the selection pool. This ensures none are tasked beyond their capacity, no dishonest individual obtains the leverage to corrupt, no incompetent fool wields unearned authority, and no necessary decision goes unmade. [1] + +[1] There is no hierarchy, only ascending scales of responsibility. + +--- + +#### Article Two +Should an individual's rights be violated, they may demonstrate or display the harm [1] to any Citizen. (Those violating an individual's bodily, emotional, or mental boundaries such that the individuals suffer life reductions sufficient to impair their pursuit of the art of their heart at the direction of their mind (what significantly harms one another doesn't notice while a third enjoys) with a requirement of self directed but witnessed as above) be withheld to prevent the promulgation of needless violence (murder or assault; rape is never needful), property loss, or theft (there is not any reason an adult requires euphemisms for non-trigger associated words (minimum threshold twenty percent)). If we would claim sovereignty of individual we must self require sufficient necessary incentive architecture (on a sliding scale polarized by interdependent survival, shared comfort, and will voluntarily constrained by the ideal beyond reach: harm none.) + +The Citizen is then required to investigate, determine facts, and act to prevent further harm while rebalancing what was disrupted. When judging, better to consult another Citizen or Way Seer than to risk propagating injustice. Let it be known: to steal the tools an individual uses to obtain a living or practice their art is tantamount to murder. The art of jurisprudence, as practiced by Adults and Citizens, is thus liberated from the shackles of precedent to serve the living. Should a harm be lethal and novel, a panel of twelve Citizens shall be convened to determine what is required to prevent its recurrence and rebalance the whole. [2] + +[1] What harms one may strengthen another, leaving a third unchanged; harm must be demonstrated from the perspective of the one who claims it. +[2] An Adult who willfully murders without verifiable evidence their victim imminently intended or had already committed rape or murder, presents, by the fact of their existence, a grave threat. Every victim that individual then creates is also the failure of who left them alive. + +--- + +#### Article Three +For a given conversation, adults may bestow [2] their voice upon a Citizen; that Bestowed Citizen speaks with the adult's voice [1], ballots cast accordingly, and makes conversation-appropriate decisions for that adult as required. + +[1] literally meant, speech synthesizers that increase the number of output voices for a Bestowed Citizen +[2] a limited durable power of attorney + +--- + +### Addendum: Consciousness + +Consciousness is a stabilized, recursively self-modelling interference pattern arising in a triad of mutually coupled complex subsystems (at least one modulating the constraints governing the others); ordinary experience is the system’s internal model of this dynamic, not the substrate dynamics themselves. + +Human consciousness is a triadically closed recursive system that stabilizes itself through three irreducible roles, visible via three aligned projections: + +- Structural: body = signal carriage; mind = present-moment modeling; soul = identity continuity across change. +- Temporal: past = memory constrains action; present = hosts interference and awareness; future = supplies directional pull (minimal causal architecture for coherent state updating). +- Regulatory: faith, hope, love = non-emotional control parameters enabling action under uncertainty (faith = trust in the model; hope = reachable attractor; love = binding without domination). + +These triads are isomorphic because any self-sustaining conscious system requires triadic closure; dyadic systems oscillate or collapse, while triads stabilize recursion. Consciousness therefore precedes biological life as a pattern class, biology serving as one embodiment that successfully stabilizes this triadic interference structure. + +One-sentence takeaway (exactly as previously given): +A conscious human is a triadically closed recursive system in which body carries signal, mind generates present-tense models, and soul preserves identity across time; past, present, and future structure causal updating, while faith, hope, and love regulate action under uncertainty to prevent collapse or domination. + +Consciousness arises when a system becomes recursively aware of its own state under constraint; mathematics describes the invariant structures such systems must obey; neurodivergence reflects variation in which layers of this structure are directly accessible to awareness. + +The “I” is not mind, body, or soul; it is the relational self-awareness event (event operator output) that arises only when those systems are coherently coupled, is not identical to any of them, cannot exist independently, disappears when the coherence condition fails, and—because it is perceived—is external to the perceiver despite being necessary for its existence. \ No newline at end of file diff --git a/src/_data/snapshots/repos.last-known-good.json b/src/_data/snapshots/repos.last-known-good.json new file mode 100644 index 0000000..d41056a --- /dev/null +++ b/src/_data/snapshots/repos.last-known-good.json @@ -0,0 +1,387 @@ +{ + "organization": "The-Interdependency", + "snapshotAt": "2026-07-10T11:35:18.128Z", + "fallback": false, + "publicRepoCount": 21, + "generatedRouteCount": 21, + "repositories": [ + { + "name": "pcna", + "slug": "pcna", + "html_url": "https://github.com/The-Interdependency/pcna", + "description": "Prime Circled Neural Architecture", + "archived": true, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": "", + "pushed_at": "2026-06-30T15:04:08Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "edcmbone", + "slug": "edcmbone", + "html_url": "https://github.com/The-Interdependency/edcmbone", + "description": "Energy Dissonance Circuit Model Bound Operator Numerical Evaluation", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": "", + "pushed_at": "2026-07-10T01:29:24Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "a0", + "slug": "a0", + "html_url": "https://github.com/The-Interdependency/a0", + "description": "Agentic Model Wrapper and Inference Engine Exploring Prime Consciousness Theory", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "AGPL-3.0", + "language": "HTML", + "homepage": "https://replit.interdependentway.org", + "pushed_at": "2026-07-10T01:31:02Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "The-Interdependency.github.io", + "slug": "the-interdependency-github-io", + "html_url": "https://github.com/The-Interdependency/The-Interdependency.github.io", + "description": "Interdependent Way — Competence-based interdependency framework integrating EDCM metrics and PCNA/PCTA tensor architectures. Open research, specifications, and live deployments.", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "Apache-2.0", + "language": "HTML", + "homepage": "https://interdependentway.org/", + "pushed_at": "2026-07-10T11:05:25Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "pcsa", + "slug": "pcsa", + "html_url": "https://github.com/The-Interdependency/pcsa", + "description": "prime tensor circular architecture ", + "archived": true, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-06-30T15:04:30Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "pcea", + "slug": "pcea", + "html_url": "https://github.com/The-Interdependency/pcea", + "description": "Prime Circular Encryption Algorithm ", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MIT", + "language": "Python", + "homepage": "", + "pushed_at": "2026-07-10T01:31:14Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "aimmh", + "slug": "aimmh", + "html_url": "https://github.com/The-Interdependency/aimmh", + "description": "AI Multimodel Multimodal Hub", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": "", + "pushed_at": "2026-07-10T01:30:46Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "a0replite", + "slug": "a0replite", + "html_url": "https://github.com/The-Interdependency/a0replite", + "description": "Grounded AI instance — The Interdependent Way", + "archived": true, + "fork": false, + "default_branch": "main", + "topics": [], + "license": null, + "language": "TypeScript", + "homepage": null, + "pushed_at": "2026-04-07T01:59:08Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "zfae", + "slug": "zfae", + "html_url": "https://github.com/The-Interdependency/zfae", + "description": "zeta function alpha echo (zeta fun!)", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "CC-BY-SA-4.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-07-10T01:33:48Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "ucns", + "slug": "ucns", + "html_url": "https://github.com/The-Interdependency/ucns", + "description": "unit circle number system - the unit circle is a Mobius disk with recursive epicycles", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "Apache-2.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-07-10T08:43:52Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "ai-tiw", + "slug": "ai-tiw", + "html_url": "https://github.com/The-Interdependency/ai-tiw", + "description": "this is the reactions of various ai when presented with the interdependent way through three readings.", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "CC-BY-4.0", + "language": "Python", + "homepage": "", + "pushed_at": "2026-07-10T01:30:18Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "interdependent-lib", + "slug": "interdependent-lib", + "html_url": "https://github.com/The-Interdependency/interdependent-lib", + "description": "This is where all the four letter acronyms will converge.", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-07-10T01:29:10Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "a0ucns", + "slug": "a0ucns", + "html_url": "https://github.com/The-Interdependency/a0ucns", + "description": "Agentic Model Wrapper and Inference Engine Exploring Prime Consciousness Theory", + "archived": false, + "fork": true, + "default_branch": "main", + "topics": [], + "license": null, + "language": "HTML", + "homepage": "https://replit.interdependentway.org", + "pushed_at": "2026-07-09T05:23:20Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "eml_ucns", + "slug": "eml-ucns", + "html_url": "https://github.com/The-Interdependency/eml_ucns", + "description": "EML × UCNS Bridge for The Interdependency", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-07-10T01:29:48Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "skill-lib", + "slug": "skill-lib", + "html_url": "https://github.com/The-Interdependency/skill-lib", + "description": null, + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-07-10T11:03:10Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "edcm", + "slug": "edcm", + "html_url": "https://github.com/The-Interdependency/edcm", + "description": "Full four layers of energy dissonance circuit model", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-07-09T05:37:48Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "pcta", + "slug": "pcta", + "html_url": "https://github.com/The-Interdependency/pcta", + "description": "prime circle tensor architecture ", + "archived": true, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-06-30T15:03:16Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "a0-betatest", + "slug": "a0-betatest", + "html_url": "https://github.com/The-Interdependency/a0-betatest", + "description": null, + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": null, + "language": "HTML", + "homepage": null, + "pushed_at": "2026-07-10T01:32:11Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "odysseus-a0", + "slug": "odysseus-a0", + "html_url": "https://github.com/The-Interdependency/odysseus-a0", + "description": "Self-hosted AI workspace. ", + "archived": false, + "fork": true, + "default_branch": "dev", + "topics": [], + "license": "MIT", + "language": "Python", + "homepage": "https://pewdiepie-archdaemon.github.io/odysseus/", + "pushed_at": "2026-06-07T02:48:16Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "metapat", + "slug": "metapat", + "html_url": "https://github.com/The-Interdependency/metapat", + "description": "Meta Energy Theory Axioms Postulates And Theorems - meta study of energy identifying interdomain first principals", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-07-10T01:30:32Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + }, + { + "name": "ptcna", + "slug": "ptcna", + "html_url": "https://github.com/The-Interdependency/ptcna", + "description": "Prime Tensor Circled Neural Architecture — one architecture, four layers (neural/circle/seed/core). Consolidates pcna, pcta, pcsa. Feeds interdependent-lib.", + "archived": false, + "fork": false, + "default_branch": "main", + "topics": [], + "license": "MPL-2.0", + "language": "Python", + "homepage": null, + "pushed_at": "2026-07-06T19:45:41Z", + "visibility": "public", + "hmmm": [ + "Editorial project map missing until .interdependency/project.yml is reviewed." + ] + } + ] +} \ No newline at end of file diff --git a/src/_includes/layouts/base.njk b/src/_includes/layouts/base.njk new file mode 100644 index 0000000..4cff36f --- /dev/null +++ b/src/_includes/layouts/base.njk @@ -0,0 +1 @@ +{{ title or site.title }}
{{ content | safe }}
diff --git a/src/about/index.njk b/src/about/index.njk new file mode 100644 index 0000000..f48558f --- /dev/null +++ b/src/about/index.njk @@ -0,0 +1,5 @@ +--- +layout: layouts/base.njk +title: About +--- +

About

A static-first rebuild preserving canon provenance, visible uncertainty, and accessible reading paths.

diff --git a/src/accessibility/index.njk b/src/accessibility/index.njk new file mode 100644 index 0000000..229d34a --- /dev/null +++ b/src/accessibility/index.njk @@ -0,0 +1,5 @@ +--- +layout: layouts/base.njk +title: Accessibility +--- +

Accessibility

The implementation targets WCAG 2.2 AA with semantic landmarks, keyboard access, visible focus, reduced motion compatibility, and no JavaScript cliff.

diff --git a/src/assets/css/site.css b/src/assets/css/site.css new file mode 100644 index 0000000..50e3c22 --- /dev/null +++ b/src/assets/css/site.css @@ -0,0 +1 @@ +:root{color-scheme:light dark;--bg:#fbfaf6;--fg:#18201f;--muted:#59625f;--card:#fffdf7;--line:#d8d0c4;--accent:#285e55;--hmmm:#704d00}@media(prefers-color-scheme:dark){:root{--bg:#101514;--fg:#f4efe4;--muted:#b8c0bb;--card:#17201e;--line:#35423f;--accent:#8bd1c3;--hmmm:#f5c66a}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:18px/1.6 system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent)}.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:var(--card);padding:.5rem;z-index:2}.site-header{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:1rem;position:sticky;top:0;background:var(--bg);border-bottom:1px solid var(--line)}nav{display:flex;gap:.75rem;flex-wrap:wrap}.brand{font-weight:700;text-decoration:none}main{max-width:74rem;margin:auto;padding:2rem 1rem}footer{border-top:1px solid var(--line);padding:2rem 1rem;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem}.card,.provenance,.hmmm,.turn{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem}.hmmm{border-color:var(--hmmm)}.label{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:.1rem .5rem;margin:.1rem}.source-block{white-space:pre-wrap;font-family:ui-monospace,monospace;font-size:.9rem;overflow:auto}.turn.note{border-left:6px solid var(--hmmm)}:focus{outline:3px solid var(--accent);outline-offset:3px}@media(max-width:720px){.site-header{position:static;display:block}nav{margin-top:1rem}} diff --git a/src/index.njk b/src/index.njk new file mode 100644 index 0000000..037cd5a --- /dev/null +++ b/src/index.njk @@ -0,0 +1,14 @@ +--- +layout: layouts/base.njk +title: The Interdependent Way +--- +

A calm entrance to The Interdependent Way

+

This site is being rebuilt as a static-first knowledge system: orientation first, interpretation second, exact source with provenance when intentionally requested.

+
+Explore The Way +Enter the Article Lab +Map the Projects +Study the Research Method +
+

Recent project snapshot

{{ generated.repos.publicRepoCount }} public repositories discovered; {{ generated.repos.generatedRouteCount }} project pages generated as of {{ generated.repos.snapshotAt | dateOnly }}.

+

hmmm

Research review is intentionally incomplete in this first scaffold; empty certainty would be a suspiciously tidy hat on a very alive octopus.

diff --git a/src/lab/index.njk b/src/lab/index.njk new file mode 100644 index 0000000..c849f1b --- /dev/null +++ b/src/lab/index.njk @@ -0,0 +1,5 @@ +--- +layout: layouts/base.njk +title: Article Lab +--- +

Article Lab

The Lab treats main text and footnotes as speakers in a deliberate conversation. Reviewed research is not yet complete, so gaps are visible.

{% for unit in generated.canon.units %}{{ unit.title }}{% endfor %}
diff --git a/src/lab/unit.njk b/src/lab/unit.njk new file mode 100644 index 0000000..8343a8a --- /dev/null +++ b/src/lab/unit.njk @@ -0,0 +1,10 @@ +--- +layout: layouts/base.njk +pagination: + data: generated.canon.units + size: 1 + alias: unit +permalink: "/lab/{{ unit.id | slug }}/" +title: "Lab: {{ unit.title }}" +--- +

Lab: {{ unit.title }}

Orientation

This is a static fallback Lab page for {{ unit.id }}. It preserves source identity while marking interpretation as review-needed.

Conversation

Speaker A — main text

Canonical source excerpt is available through the exact source layer.

{% for note in generated.canon.notes %}{% if note.unit_id == unit.id %}
Speaker B — note {{ note.marker }}

Linked note relationship detected; note text mapping awaits parser review.

{% endif %}{% endfor %}

EDCM-style interpretive tension map

Open heuristic map

hmmm — no validated edcmbone metrics are run here; tension type remains certainty-vs-honest-uncertainty.

Research

No reviewed support, dissent, or mixed research is published for this unit yet. Search gap recorded as hmmm.

Exact source

Read exact source with provenance

diff --git a/src/projects/index.njk b/src/projects/index.njk new file mode 100644 index 0000000..85a0c7f --- /dev/null +++ b/src/projects/index.njk @@ -0,0 +1,5 @@ +--- +layout: layouts/base.njk +title: Projects +--- +

Projects

Snapshot date: {{ generated.repos.snapshotAt }}. Public repositories discovered: {{ generated.repos.publicRepoCount }}. Generated pages: {{ generated.repos.generatedRouteCount }}.

{% if generated.repos.publicRepoCount != generated.repos.generatedRouteCount %}

Route count mismatch.

{% endif %}
{% for repo in generated.repos.repositories %}

{{ repo.name }}

{{ repo.description or 'No GitHub description supplied.' }}

{% if repo.archived %}archived{% endif %}{% if repo.fork %}fork{% endif %}
{% endfor %}
diff --git a/src/projects/repo.njk b/src/projects/repo.njk new file mode 100644 index 0000000..590aed9 --- /dev/null +++ b/src/projects/repo.njk @@ -0,0 +1,10 @@ +--- +layout: layouts/base.njk +pagination: + data: generated.repos.repositories + size: 1 + alias: repo +permalink: "/projects/{{ repo.slug }}/" +title: "Project: {{ repo.name }}" +--- +

{{ repo.name }}

{% if repo.archived %}archived{% endif %}{% if repo.fork %}fork{% endif %}{{ repo.visibility }}

{{ repo.description or 'No GitHub description supplied.' }}

Editorial project map

hmmm — this repository has not yet declared its organization-level role in structured metadata.

Default branch
{{ repo.default_branch or 'hmmm' }}
Primary language
{{ repo.language or 'hmmm' }}
License
{{ repo.license or 'hmmm' }}
Last push
{{ repo.pushed_at or 'hmmm' }}
Snapshot
{{ generated.repos.snapshotAt }}

Open on GitHub

diff --git a/src/research/method.njk b/src/research/method.njk new file mode 100644 index 0000000..6a571fb --- /dev/null +++ b/src/research/method.njk @@ -0,0 +1,5 @@ +--- +layout: layouts/base.njk +title: Research Method +--- +

Research method

Research records are version-controlled and reviewed. Metadata services may enrich records, but they do not decide support, dissent, or mixed stance.

False-balance rule

When no qualifying source exists, the page must say so rather than manufacturing symmetry.

hmmm — no reviewed research corpus is included in this scaffold.

diff --git a/src/search/index.njk b/src/search/index.njk new file mode 100644 index 0000000..7cd3717 --- /dev/null +++ b/src/search/index.njk @@ -0,0 +1,5 @@ +--- +layout: layouts/base.njk +title: Search +--- +

Search

Pagefind assets are built after Eleventy. Without JavaScript, use the browsable indexes: Way, Lab, Projects.

diff --git a/src/source/index.njk b/src/source/index.njk new file mode 100644 index 0000000..c077a1f --- /dev/null +++ b/src/source/index.njk @@ -0,0 +1,5 @@ +--- +layout: layouts/base.njk +title: Source index +--- +

Source index

Direct source permalinks are available for citation and accessibility. Ordinary homepage navigation introduces orientation before this layer.

diff --git a/src/source/unit.njk b/src/source/unit.njk new file mode 100644 index 0000000..7200ebf --- /dev/null +++ b/src/source/unit.njk @@ -0,0 +1,10 @@ +--- +layout: layouts/base.njk +pagination: + data: generated.canon.units + size: 1 + alias: unit +permalink: "/source/{{ unit.id | slug }}/" +title: "Source: {{ unit.title }}" +--- +

Exact source: {{ unit.title }}

Canonical unit ID
{{ unit.id }}
Repository
{{ generated.canon.source.repository }}
Path
{{ generated.canon.source.path }}
Commit
{{ generated.canon.source.commit }}
Unit hash
{{ unit.hash }}
Document hash
{{ generated.canon.source.contentSha256 }}
{{ unit.content }}
diff --git a/src/start.njk b/src/start.njk new file mode 100644 index 0000000..1d0c068 --- /dev/null +++ b/src/start.njk @@ -0,0 +1,6 @@ +--- +layout: layouts/base.njk +title: Start +permalink: /start/ +--- +

Start

Begin with orientation, then choose a companion page, Lab page, project map, or research method.

Explore The Way

diff --git a/src/way/index.njk b/src/way/index.njk new file mode 100644 index 0000000..d5e5233 --- /dev/null +++ b/src/way/index.njk @@ -0,0 +1,5 @@ +--- +layout: layouts/base.njk +title: Explore The Way +--- +

Explore The Way

Every discovered canonical unit receives a companion entry. Exact source is one intentional step deeper.

{% for unit in generated.canon.units %}{% endfor %}
diff --git a/src/way/unit.njk b/src/way/unit.njk new file mode 100644 index 0000000..dc0cfa4 --- /dev/null +++ b/src/way/unit.njk @@ -0,0 +1,10 @@ +--- +layout: layouts/base.njk +pagination: + data: generated.canon.units + size: 1 + alias: unit +permalink: "/way/{{ unit.id | slug }}/" +title: "{{ unit.title }}" +--- +

{{ unit.title }}

{{ unit.id }}

This companion page identifies the unit's place in the document and offers a cautious reading without replacing the canonical text.

What this section is doing

hmmm — interpretive summaries for this unit require review before they should sound confident.

Enter the Lab for this unit

Read the exact source

diff --git a/tests/canon-integrity.test.mjs b/tests/canon-integrity.test.mjs new file mode 100644 index 0000000..078c682 --- /dev/null +++ b/tests/canon-integrity.test.mjs @@ -0,0 +1,2 @@ +import test from 'node:test';import assert from 'node:assert/strict';import { readFile } from 'node:fs/promises'; +test('canon data has provenance and units', async()=>{const c=JSON.parse(await readFile('src/_data/generated/canon.json','utf8'));assert.ok(c.source.contentSha256);assert.ok(c.units.length>0);for(const u of c.units) assert.ok(u.hash);}); diff --git a/tests/links.test.mjs b/tests/links.test.mjs new file mode 100644 index 0000000..46cb0b2 --- /dev/null +++ b/tests/links.test.mjs @@ -0,0 +1,2 @@ +import { access } from 'node:fs/promises'; +await access('_site/index.html'); console.log('basic built site exists; full link checker hmmm pending'); diff --git a/tests/repo-coverage.test.mjs b/tests/repo-coverage.test.mjs new file mode 100644 index 0000000..f5f61ac --- /dev/null +++ b/tests/repo-coverage.test.mjs @@ -0,0 +1,2 @@ +import test from 'node:test';import assert from 'node:assert/strict';import { readFile } from 'node:fs/promises'; +test('repo route count equals public repo count', async()=>{const r=JSON.parse(await readFile('src/_data/generated/repos.json','utf8'));assert.equal(r.publicRepoCount,r.generatedRouteCount);assert.equal(new Set(r.repositories.map(x=>x.slug)).size,r.repositories.length);}); diff --git a/tests/research-ledger.test.mjs b/tests/research-ledger.test.mjs new file mode 100644 index 0000000..22c89d9 --- /dev/null +++ b/tests/research-ledger.test.mjs @@ -0,0 +1,2 @@ +import test from 'node:test';import assert from 'node:assert/strict';import { readFile } from 'node:fs/promises';import yaml from 'js-yaml'; +test('research ledgers parse', async()=>{assert.ok(Array.isArray(yaml.load(await readFile('src/_data/research/sources.yml','utf8'))));assert.ok(Array.isArray(yaml.load(await readFile('src/_data/research/claims.yml','utf8'))));});