@bongos/core 1.21.175 → 1.21.176
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.bongos-core.json +3551 -1516
- package/.claude/skills/ask-for-help/SKILL.md +4 -4
- package/.claude/skills/backlog-review/SKILL.md +1 -1
- package/.claude/skills/blocker-review/SKILL.md +2 -2
- package/.claude/skills/blocker-solve/SKILL.md +4 -4
- package/.claude/skills/bongos-feedback/SKILL.md +1 -1
- package/.claude/skills/bug-triage/SKILL.md +8 -8
- package/.claude/skills/builder-backup/SKILL.md +3 -3
- package/.claude/skills/builder-claim/SKILL.md +5 -5
- package/.claude/skills/builder-cost/SKILL.md +5 -5
- package/.claude/skills/builder-end/SKILL.md +6 -6
- package/.claude/skills/builder-exit/SKILL.md +2 -2
- package/.claude/skills/builder-key/SKILL.md +6 -6
- package/.claude/skills/builder-reauth/SKILL.md +4 -4
- package/.claude/skills/builder-redteam/SKILL.md +3 -3
- package/.claude/skills/builder-release/SKILL.md +3 -3
- package/.claude/skills/builder-sequence/SKILL.md +8 -8
- package/.claude/skills/builder-setup/SKILL.md +4 -4
- package/.claude/skills/builder-ship/SKILL.md +7 -7
- package/.claude/skills/builder-stage/SKILL.md +8 -8
- package/.claude/skills/builder-start/SKILL.md +4 -4
- package/.claude/skills/collab-review/SKILL.md +5 -5
- package/.claude/skills/design/SKILL.md +6 -4
- package/.claude/skills/design-sync/SKILL.md +3 -3
- package/.claude/skills/figma-design-sync/SKILL.md +4 -4
- package/.claude/skills/fix-task/SKILL.md +8 -8
- package/.claude/skills/goal-close/SKILL.md +9 -9
- package/.claude/skills/goal-create/SKILL.md +18 -18
- package/.claude/skills/grade-recover/SKILL.md +8 -8
- package/.claude/skills/grade-sweep/SKILL.md +15 -15
- package/.claude/skills/idea-triage/SKILL.md +15 -15
- package/.claude/skills/merge-mode/SKILL.md +14 -14
- package/.claude/skills/new-project/SKILL.md +5 -5
- package/.claude/skills/owner-review/SKILL.md +1 -1
- package/.claude/skills/planning-session/SKILL.md +14 -14
- package/.claude/skills/priority-session/SKILL.md +6 -6
- package/.claude/skills/read-session-export/SKILL.md +3 -3
- package/.claude/skills/recall/SKILL.md +7 -7
- package/.claude/skills/scan-before-install/SKILL.md +3 -3
- package/.claude/skills/session-handoff/SKILL.md +1 -1
- package/.claude/skills/ship-check/SKILL.md +3 -3
- package/.claude/skills/status/SKILL.md +3 -3
- package/.claude/skills/strand-fix/SKILL.md +6 -6
- package/.claude/skills/worktree-clean/SKILL.md +4 -4
- package/.gitattributes +12 -32
- package/GOVERNMENT.md +1 -1
- package/README.md +8 -8
- package/bin/bongos.js +23 -23
- package/clients/bongos-client/README.md +2 -2
- package/clients/bongos-client/bongos-client.global.js +22 -4
- package/clients/bongos-client/index.cjs +22 -4
- package/clients/bongos-client/index.d.ts +33 -4
- package/clients/bongos-client/index.mjs +21 -3
- package/config/branding.neutral.json +1 -1
- package/config/design-tokens.schema.json +1 -1
- package/config/modules.neutral.json +1 -3
- package/docs/adr/0029-status-page-outage-resilience.md +6 -6
- package/docs/adr/0227-a-task-network-map-is-refused-the-goal-graph-is-the-map.md +1 -1
- package/docs/adr/0294-cli-sessions-do-not-expire.md +1 -1
- package/docs/adr/0383-sessions-end-after-ten-idle-days.md +35 -0
- package/docs/adr/0384-the-raise-page-is-a-hub-module-builders-edit-in-place.md +31 -0
- package/docs/adr/README.md +2 -0
- package/docs/api/openapi.json +606 -44
- package/docs/api-reference.md +25 -12
- package/docs/architecture.md +8 -7
- package/docs/canonical-permissions.md +3 -3
- package/docs/copy-inventory.md +1370 -1411
- package/docs/copy-registry.json +2136 -2536
- package/docs/design/demonolith-plan.md +6 -6
- package/docs/design/modular-architecture/00-research-report.md +1 -1
- package/docs/design/project-startup-direction.md +2 -2
- package/docs/design/projects-hub-direction-v2.md +1 -1
- package/docs/design/reviews/hall-v2/README.md +2 -2
- package/docs/design/vanilla-hall-ui-redesign-scope.md +1 -1
- package/docs/file-map.md +89 -88
- package/docs/handoff-template.md +4 -4
- package/docs/module-api-changelog.md +5 -3
- package/docs/modules-contract.md +8 -7
- package/docs/onboarding/diagrams/01-task-lifecycle.mmd +1 -1
- package/docs/onboarding/diagrams/02-rank-ladder.mmd +1 -1
- package/docs/onboarding/diagrams/03-drachmae-karma.mmd +1 -1
- package/docs/onboarding/diagrams/04-architecture.mmd +1 -1
- package/docs/onboarding/diagrams/05-versioning.mmd +1 -1
- package/docs/onboarding/diagrams/README.md +2 -2
- package/docs/onboarding/diagrams/assertions.json +2 -2
- package/docs/onboarding/slash-commands.md +2 -2
- package/docs/packs/artist.md +4 -4
- package/docs/packs/engineer.md +11 -10
- package/docs/packs/ideator.md +7 -7
- package/docs/page-inventory.json +20 -1
- package/docs/page-readings.json +4387 -4603
- package/docs/recipes/README.md +1 -1
- package/docs/recipes/audit-replay.md +4 -4
- package/docs/recipes/autobongos-windows-host.md +6 -6
- package/docs/recipes/bongos-cli-release.md +2 -2
- package/docs/recipes/claude-design-loop.md +7 -7
- package/docs/recipes/core-release-pipeline.md +19 -19
- package/docs/recipes/failed-ship-recovery-proof.md +2 -2
- package/docs/recipes/figma-design-loop.md +6 -6
- package/docs/recipes/gds-db-backup.md +9 -9
- package/docs/recipes/instance-deploy.md +3 -3
- package/docs/recipes/instance-first-run.md +1 -1
- package/docs/recipes/multi-builder-merge.md +2 -2
- package/docs/recipes/ops-gotchas.md +10 -9
- package/docs/recipes/packaging-the-core.md +6 -6
- package/docs/recipes/parallel-goal-waves.md +4 -4
- package/docs/recipes/private-npm-distribution.md +9 -9
- package/docs/recipes/redteam-patrol.md +5 -5
- package/docs/recipes/render-pilot.md +2 -2
- package/docs/recipes/reranking-a-goals-board.md +2 -2
- package/docs/recipes/search-index-ingestion.md +5 -5
- package/docs/recipes/self-host.md +1 -1
- package/docs/recipes/ship-and-regrade.md +4 -4
- package/docs/recipes/staging-environment.md +1 -1
- package/docs/recipes/standalone-live-docs.md +1 -1
- package/docs/recipes/ui-look-before-you-ship.md +2 -2
- package/docs/recipes/upgrading-the-core.md +11 -11
- package/docs/recipes/windows-builders.md +18 -18
- package/docs/research/llm-model-agnostic-and-cheaper-grader.md +6 -6
- package/docs/research/task-network-map-readability.md +3 -3
- package/migrations/core_278_builder_tester_tag.sql +18 -0
- package/migrations/core_279_bongos_shipper_new_scripts_path.sql +13 -0
- package/modules/agents/lib/answer-hold.js +1 -1
- package/modules/agents/lib/gate.js +1 -1
- package/modules/agents/lib/validate.js +1 -1
- package/modules/autonomy/gauge.js +1 -1
- package/modules/autonomy/governor-docket.js +2 -2
- package/modules/autonomy/pollers/routine-timers.js +3 -3
- package/modules/autonomy/routes/autonomy.js +3 -3
- package/modules/builder-settings/interaction-prefs.js +1 -1
- package/modules/builder-settings/render-prefs.js +1 -1
- package/modules/builder-settings/routes/settings.js +1 -1
- package/modules/builder-settings/skill-prefs.js +2 -2
- package/modules/builder-settings/wandering-prefs.js +2 -2
- package/modules/copy-desk/module.json +2 -2
- package/modules/copy-desk/page-data.js +5 -5
- package/modules/copy-desk/page-decisions.js +13 -1
- package/modules/copy-desk/proposals.js +4 -4
- package/modules/copy-desk/registry.js +2 -2
- package/modules/copy-desk/routes/copy-desk-release.js +119 -0
- package/modules/copy-desk/routes/copy-desk.js +3 -12
- package/modules/copy-desk/skills/tweak/SKILL.md +12 -12
- package/modules/copy-desk/tests/copy_flags.mjs +1 -1
- package/modules/copy-desk/tests/copy_no_cms.mjs +7 -3
- package/modules/copy-desk/tests/copy_proposals.mjs +2 -2
- package/modules/copy-desk/tests/copy_queue.mjs +1 -1
- package/modules/design-styles/skills/README.md +4 -4
- package/modules/design-styles/skills/imagegen-frontend-mobile/SKILL.md +1 -1
- package/modules/design-styles/skills/imagegen-frontend-web/SKILL.md +1 -1
- package/modules/discord/bug-attachments.js +1 -1
- package/modules/discord/ship-broadcast.js +1 -1
- package/modules/economy/achievements.js +49 -7
- package/modules/economy/cost-classify.js +6 -6
- package/modules/economy/cost-report.js +1 -1
- package/modules/economy/cost.js +1 -1
- package/modules/economy/credits.js +2 -1
- package/modules/economy/idea-size.js +2 -2
- package/modules/economy/reward.js +2 -0
- package/modules/economy/routes/cost.js +1 -1
- package/modules/economy/streak.js +43 -4
- package/modules/government/asks.js +1 -1
- package/modules/government/board.js +19 -2
- package/modules/government/catalog.js +3 -0
- package/modules/government/migrations/government_033_idea_vote.sql +46 -0
- package/modules/government/protected-surfaces.json +48 -47
- package/modules/government/recommendations.js +6 -2
- package/modules/government/routes/government.js +1 -1
- package/modules/grading/generated-provenance.js +13 -5
- package/modules/grading/grade-engine.js +1 -1
- package/modules/grading/grader-rubric.json +1 -1
- package/modules/grading/grader-score.js +1 -1
- package/modules/grading/grader-workers/index.js +1 -1
- package/modules/grading/grader.js +1 -1
- package/modules/grading/routes/grade.js +1 -1
- package/modules/hall-ui/public/atlas.html +5 -7
- package/modules/hall-ui/public/atlas.js +1 -1
- package/modules/hall-ui/public/atlas.states.json +1 -1
- package/modules/hall-ui/public/blockers.css +9 -0
- package/modules/hall-ui/public/blockers.html +4 -4
- package/modules/hall-ui/public/blockers.js +29 -30
- package/modules/hall-ui/public/board-room.css +5 -17
- package/modules/hall-ui/public/board-room.html +5 -6
- package/modules/hall-ui/public/board-room.js +41 -23
- package/modules/hall-ui/public/board-room.states.json +1 -1
- package/modules/hall-ui/public/brand-apply.js +1 -1
- package/modules/hall-ui/public/brand-holes.js +1 -1
- package/modules/hall-ui/public/builders.js +40 -86
- package/modules/hall-ui/public/city-decide.js +18 -4
- package/modules/hall-ui/public/city.html +1 -1
- package/modules/hall-ui/public/collab.html +1 -1
- package/modules/hall-ui/public/commands.html +6 -9
- package/modules/hall-ui/public/copy-desk.html +1 -1
- package/modules/hall-ui/public/copy-desk.js +2 -2
- package/modules/hall-ui/public/craft-mode.js +4 -0
- package/modules/hall-ui/public/deploy.html +6 -2
- package/modules/hall-ui/public/deploy.js +21 -13
- package/modules/hall-ui/public/diagrams.css +1 -1
- package/modules/hall-ui/public/diagrams.html +5 -8
- package/modules/hall-ui/public/diagrams.states.json +1 -1
- package/modules/hall-ui/public/drachmae.html +3 -7
- package/modules/hall-ui/public/fleet.html +3 -2
- package/modules/hall-ui/public/fleet.js +0 -4
- package/modules/hall-ui/public/gate.html +7 -7
- package/modules/hall-ui/public/gate.js +58 -77
- package/modules/hall-ui/public/goal-map.html +1 -1
- package/modules/hall-ui/public/goals-page.js +5 -5
- package/modules/hall-ui/public/goals-render.js +10 -11
- package/modules/hall-ui/public/goals.css +10 -0
- package/modules/hall-ui/public/goals.html +14 -7
- package/modules/hall-ui/public/government.html +3 -5
- package/modules/hall-ui/public/government.js +1 -5
- package/modules/hall-ui/public/hall-render.js +117 -57
- package/modules/hall-ui/public/hall-widgets.js +11 -11
- package/modules/hall-ui/public/idea.html +1 -1
- package/modules/hall-ui/public/ideas.html +3 -1
- package/modules/hall-ui/public/ideas.js +1 -0
- package/modules/hall-ui/public/index.html +12 -6
- package/modules/hall-ui/public/index.states.json +1 -1
- package/modules/hall-ui/public/mine-lens.js +1 -1
- package/modules/hall-ui/public/modules.html +7 -10
- package/modules/hall-ui/public/modules.js +0 -2
- package/modules/hall-ui/public/my-agents.html +1 -1
- package/modules/hall-ui/public/palette.js +5 -5
- package/modules/hall-ui/public/primer.html +4 -9
- package/modules/hall-ui/public/profile-connections.js +10 -2
- package/modules/hall-ui/public/profile-roles.js +3 -10
- package/modules/hall-ui/public/profile.html +12 -10
- package/modules/hall-ui/public/profile.js +13 -17
- package/modules/hall-ui/public/project-settings.html +3 -4
- package/modules/hall-ui/public/project-settings.js +0 -3
- package/modules/hall-ui/public/ranks.html +5 -11
- package/modules/hall-ui/public/ranks.js +6 -8
- package/modules/hall-ui/public/roadmap.css +0 -2
- package/modules/hall-ui/public/roadmap.html +1 -1
- package/modules/hall-ui/public/roadmap.js +16 -51
- package/modules/hall-ui/public/roster.html +1 -1
- package/modules/hall-ui/public/sessions.html +6 -8
- package/modules/hall-ui/public/sessions.js +7 -7
- package/modules/hall-ui/public/settings.html +1 -1
- package/modules/hall-ui/public/shell-trail.js +1 -1
- package/modules/hall-ui/public/shell.js +17 -17
- package/modules/hall-ui/public/street-deck.css +2 -1
- package/modules/hall-ui/public/street-deck.js +10 -2
- package/modules/hall-ui/public/street-desk.js +16 -5
- package/modules/hall-ui/public/street.html +1 -1
- package/modules/hall-ui/public/studio-lib.js +4 -0
- package/modules/hall-ui/public/studio.css +2 -0
- package/modules/hall-ui/public/studio.html +1 -1
- package/modules/hall-ui/public/studio.js +27 -1
- package/modules/hall-ui/public/style.css +43 -26
- package/modules/hall-ui/public/task-detail.js +10 -7
- package/modules/hall-ui/public/task.css +2 -0
- package/modules/hall-ui/public/task.html +3 -1
- package/modules/hall-ui/public/task.js +23 -7
- package/modules/hall-ui/public/thinking.html +1 -1
- package/modules/hall-ui/public/tweak-editor.html +1 -1
- package/modules/hall-ui/public/vote-control.js +208 -0
- package/modules/hall-ui/public/watch.html +3 -5
- package/modules/hall-ui/public/watch.js +5 -4
- package/modules/hall-ui/public/welcome-boot.css +130 -0
- package/modules/hall-ui/public/welcome-boot.js +334 -0
- package/modules/hall-ui/public/welcome-day.webp +0 -0
- package/modules/hall-ui/public/welcome-night.webp +0 -0
- package/modules/hall-ui/public/work-summary.js +1 -1
- package/modules/hall-ui/public/work.css +1 -0
- package/modules/hall-ui/public/work.html +3 -1
- package/modules/hall-ui/public/work.js +2 -1
- package/modules/hall-ui/records/accomplishments.md +16 -0
- package/modules/hall-ui/records/hall-ask-card.md +9 -0
- package/modules/hall-ui/records/karma-vote-control.md +13 -0
- package/modules/hall-ui/records/oversight-family.md +1 -1
- package/modules/hall-ui/records/profile-connections.md +2 -0
- package/modules/hall-ui/records/profile-roles.md +1 -1
- package/modules/hall-ui/records/reading-rooms.md +1 -1
- package/modules/hall-ui/records/welcome-tower.md +50 -0
- package/modules/ideas/migrations/ideas_011_idea_votes.sql +31 -0
- package/modules/ideas/projection.js +1 -1
- package/modules/ideas/routes/blockers.js +3 -3
- package/modules/ideas/routes/inbox.js +29 -1
- package/modules/ideas/routes/ratify-goal.js +1 -1
- package/modules/ideas/routing.js +1 -1
- package/modules/ideas/templates.js +1 -1
- package/modules/ideas/trail-descent.js +1 -1
- package/modules/ideas/trail-size.js +1 -1
- package/modules/ideas/votes.js +93 -0
- package/modules/lifecycle/abandon-leftovers.js +1 -1
- package/modules/lifecycle/cascade.js +1 -1
- package/modules/lifecycle/conflict-resolve.js +13 -21
- package/modules/lifecycle/criterion-ref.js +1 -1
- package/modules/lifecycle/db-analytics.js +57 -4
- package/modules/lifecycle/db-deps-criteria.js +1 -1
- package/modules/lifecycle/db-ship.js +2 -2
- package/modules/lifecycle/db-tasks.js +2 -2
- package/modules/lifecycle/db-versions.js +1 -1
- package/modules/lifecycle/db.js +2 -0
- package/modules/lifecycle/dead-deps.js +3 -3
- package/modules/lifecycle/dependency-advisory.js +3 -3
- package/modules/lifecycle/goal-category.js +1 -1
- package/modules/lifecycle/goal-forest.js +1 -1
- package/modules/lifecycle/goal-task-relevance-advisory.js +1 -1
- package/modules/lifecycle/kickoff-checklist.js +1 -1
- package/modules/lifecycle/kickoff-seed.js +1 -1
- package/modules/lifecycle/lifecycle.js +2 -0
- package/modules/lifecycle/merge-reach.js +29 -15
- package/modules/lifecycle/missing-dep-classify.js +3 -3
- package/modules/lifecycle/module.json +2 -1
- package/modules/lifecycle/page-tweak-approve.js +85 -1
- package/modules/lifecycle/page-tweak-hold.js +1 -1
- package/modules/lifecycle/publish-reconciler.js +1 -2
- package/modules/lifecycle/rot.js +1 -1
- package/modules/lifecycle/routes/artist-gate.js +1 -1
- package/modules/lifecycle/routes/gate-approvals.js +22 -1
- package/modules/lifecycle/routes/goals.js +1 -1
- package/modules/lifecycle/routes/task-route-helpers.js +1 -1
- package/modules/lifecycle/routes/task-votes.js +54 -0
- package/modules/lifecycle/routes/task-write-routes.js +1 -1
- package/modules/lifecycle/routes/tasks.js +2 -2
- package/modules/lifecycle/routes/versions.js +2 -2
- package/modules/lifecycle/ship-card.js +4 -4
- package/modules/lifecycle/ship-preflight.js +1 -1
- package/modules/lifecycle/task-classifier.js +1 -1
- package/modules/lifecycle/task-status.js +1 -1
- package/modules/lifecycle/task-visual-db.js +1 -1
- package/modules/memory/learnings.js +1 -1
- package/modules/memory/pollers/search-index.js +2 -2
- package/modules/memory/routes/learnings.js +1 -1
- package/modules/memory/routes/memory.js +1 -1
- package/modules/memory/search.js +2 -2
- package/modules/npm-release/release.js +1 -1
- package/modules/onboarding/howto-moments.js +1 -1
- package/modules/onboarding/newcomer-restock.js +3 -3
- package/modules/onboarding/onboarding.js +1 -1
- package/modules/pixel-art/skills/otb-tile-generate/SKILL.md +1 -1
- package/modules/platform-identity/origin-containment.js +1 -1
- package/modules/platform-identity/publish-gate.js +1 -1
- package/modules/platform-identity/tests/platform-identity.mjs +1 -1
- package/modules/provisioning/capacity.js +1 -1
- package/modules/provisioning/core-upgrade.js +15 -9
- package/modules/provisioning/credential-preflight.js +3 -3
- package/modules/provisioning/disconnect.js +1 -1
- package/modules/provisioning/dns-resolves.js +1 -1
- package/modules/provisioning/module.json +1 -1
- package/modules/provisioning/onboard-plan.js +1 -1
- package/modules/provisioning/paid-shape-gate.js +2 -2
- package/modules/provisioning/planet-physics.js +11 -2
- package/modules/provisioning/pollers/liveness-sweep.js +1 -1
- package/modules/provisioning/pollers/runner-drift-notify.js +5 -5
- package/modules/provisioning/provisioning.js +2 -2
- package/modules/provisioning/render-lookup.js +1 -1
- package/modules/provisioning/render-standup.js +3 -3
- package/modules/provisioning/repo-private.js +1 -1
- package/modules/provisioning/routes/callback-page.js +1 -1
- package/modules/provisioning/routes/core-upgrade.js +23 -3
- package/modules/provisioning/routes/provisioning.js +2 -2
- package/modules/provisioning/routes/render-standup.js +1 -1
- package/modules/provisioning/routes/repo-private.js +1 -1
- package/modules/provisioning/soft-limits.js +1 -1
- package/modules/provisioning/starter-bundles.js +4 -2
- package/modules/provisioning/tests/provisioning.mjs +1 -1
- package/modules/public-landing/public/account.html +4 -6
- package/modules/public-landing/public/assets/cosmos.css +13 -6
- package/modules/public-landing/public/connections.html +4 -6
- package/modules/public-landing/public/contact.html +4 -6
- package/modules/public-landing/public/guild.html +4 -6
- package/modules/public-landing/public/index.html +11 -9
- package/modules/public-landing/public/invitations.html +4 -6
- package/modules/public-landing/public/privacy.html +4 -6
- package/modules/public-landing/public/projects.html +168 -46
- package/modules/public-landing/public/terms.html +4 -6
- package/modules/raise/content/copy.json +40 -0
- package/modules/raise/content/nda.html +39 -0
- package/modules/raise/content/settings.json +49 -0
- package/modules/raise/db.js +95 -0
- package/modules/raise/migrations/raise_001_tables.sql +71 -0
- package/modules/raise/module.json +28 -0
- package/modules/raise/page.js +194 -0
- package/modules/raise/public/edit.js +152 -0
- package/modules/raise/public/favicon.svg +1 -0
- package/modules/raise/public/logo-ink.svg +1 -0
- package/modules/raise/public/logo-night.svg +1 -0
- package/modules/raise/public/mode.js +8 -0
- package/modules/raise/public/raise.css +234 -0
- package/modules/raise/public/raise.js +91 -0
- package/modules/raise/raise.js +174 -0
- package/modules/raise/routes/raise.js +152 -0
- package/modules/raise/views/gate.html +39 -0
- package/modules/raise/views/nda.html +21 -0
- package/modules/raise/views/page.html +133 -0
- package/modules/raise/web.js +72 -0
- package/modules/render-deploy/deploys.js +1 -1
- package/modules/render-deploy/render.js +2 -2
- package/modules/security/secret-scrub.js +3 -3
- package/modules/security/security.js +1 -1
- package/modules/security/tests/artifact_scan.mjs +1 -1
- package/modules/security/tests/mirror.mjs +1 -1
- package/modules/security/tests/scan_store.mjs +1 -1
- package/modules/sessions/db.js +2 -2
- package/modules/sessions/pulse.js +2 -2
- package/modules/sessions/routes/sessions.js +1 -1
- package/modules/specialities/specialities.js +1 -1
- package/modules/status-ui/public/README.md +3 -4
- package/modules/status-ui/public/index.html +5 -31
- package/modules/status-ui/public/status.js +6 -174
- package/modules/status-ui/public/style.css +4 -133
- package/modules/ui-design/docs/design-contract.md +3 -3
- package/modules/ui-design/kit/README.md +1 -1
- package/modules/ui-design/kit/serve.js +13 -4
- package/modules/ui-design/scripts/design-sync.js +1 -1
- package/modules/ui-design/scripts/figma-design-sync.js +1 -1
- package/modules/ui-design/scripts/validate-design.js +1 -1
- package/package-lock.json +27 -11
- package/package.json +2 -3
- package/release-notes.json +172 -0
- package/scripts/bongos/CLAUDE.md +15 -0
- package/scripts/bongos/abandon.js +137 -0
- package/scripts/bongos/accessibility-replay.js +195 -0
- package/scripts/bongos/address-park-sweep.sh +91 -0
- package/scripts/bongos/adopt-detect.js +123 -0
- package/scripts/bongos/adopt-import.js +111 -0
- package/scripts/bongos/adopt-preflight.js +187 -0
- package/scripts/bongos/adr-namespace.js +273 -0
- package/scripts/bongos/agent-invoke.js +689 -0
- package/scripts/bongos/agents-sync.js +502 -0
- package/scripts/bongos/api-alias-caller-scan.js +256 -0
- package/scripts/bongos/api-artifacts.js +91 -0
- package/scripts/bongos/api.js +86 -0
- package/scripts/bongos/api.ps1 +26 -0
- package/scripts/bongos/architect-audit.js +294 -0
- package/scripts/bongos/artifact-audit.js +326 -0
- package/scripts/bongos/artifact-format.js +203 -0
- package/scripts/bongos/artifact-staleness.js +267 -0
- package/scripts/bongos/ask.js +231 -0
- package/scripts/bongos/audit-authorship.sh +329 -0
- package/scripts/bongos/audit-deps.js +189 -0
- package/scripts/bongos/audit-gate.js +121 -0
- package/scripts/bongos/audit-rank-roles.js +172 -0
- package/scripts/bongos/audit-replay.sh +205 -0
- package/scripts/bongos/autobongos-digest.js +123 -0
- package/scripts/bongos/autobongos-grade-cap.js +187 -0
- package/scripts/bongos/autobongos-loop.js +210 -0
- package/scripts/bongos/autobongos-run.js +1361 -0
- package/scripts/bongos/autobongos-service.cmd +50 -0
- package/scripts/bongos/autobongos-service.ps1 +270 -0
- package/scripts/bongos/autobongos-tweak-lane.js +262 -0
- package/scripts/bongos/autobongos-verify.js +618 -0
- package/scripts/bongos/autonomy-gate.js +135 -0
- package/scripts/bongos/autonomy-gauge-statusline.js +124 -0
- package/scripts/bongos/autonomy-gauge.js +84 -0
- package/scripts/bongos/backfill-cost.js +176 -0
- package/scripts/bongos/backfill-disciplines.js +144 -0
- package/scripts/bongos/backfill-session-earnings.js +123 -0
- package/scripts/bongos/backfill-session-types.js +87 -0
- package/scripts/bongos/backfill-sessions.js +411 -0
- package/scripts/bongos/backfill-subagent-rewards.js +485 -0
- package/scripts/bongos/backfill-task-rewards.js +413 -0
- package/scripts/bongos/backlog-review.js +399 -0
- package/scripts/bongos/backup-dropin-sweep.sh +95 -0
- package/scripts/bongos/backup.js +116 -0
- package/scripts/bongos/baseline-staleness.js +217 -0
- package/scripts/bongos/bfg-principal-token.js +65 -0
- package/scripts/bongos/bug-attachment-audit.js +149 -0
- package/scripts/bongos/bug-attachment-recover.js +198 -0
- package/scripts/bongos/bug-triage.js +292 -0
- package/scripts/bongos/build-bongos.js +94 -0
- package/scripts/bongos/bump-version.js +221 -0
- package/scripts/bongos/capture.js +481 -0
- package/scripts/bongos/category-advisory-guard.js +206 -0
- package/scripts/bongos/ci-grade.js +82 -0
- package/scripts/bongos/claim-recall.js +112 -0
- package/scripts/bongos/claim.js +789 -0
- package/scripts/bongos/classify-discipline.js +153 -0
- package/scripts/bongos/claude-materialize.js +1200 -0
- package/scripts/bongos/claude-md-template.js +142 -0
- package/scripts/bongos/cleanup-orphans.js +74 -0
- package/scripts/bongos/cli-lib.js +1226 -0
- package/scripts/bongos/client-baseurl-guard.js +116 -0
- package/scripts/bongos/codemod-rename-scripts-gds.js +381 -0
- package/scripts/bongos/codemod-rename-src-gds.js +145 -0
- package/scripts/bongos/conductor-dispatch.js +535 -0
- package/scripts/bongos/context-pack.js +326 -0
- package/scripts/bongos/control-manifest.js +199 -0
- package/scripts/bongos/copy-apply.js +758 -0
- package/scripts/bongos/copy-inventory.js +571 -0
- package/scripts/bongos/core-origin-follow.js +185 -0
- package/scripts/bongos/core-pin-sync.js +260 -0
- package/scripts/bongos/coreB-carve-proof.sh +725 -0
- package/scripts/bongos/cost-report.js +63 -0
- package/scripts/bongos/cost.js +47 -0
- package/scripts/bongos/credential-presence.js +296 -0
- package/scripts/bongos/cutover-codemod.js +240 -0
- package/scripts/bongos/db-backup-nightly.sh +232 -0
- package/scripts/bongos/db-backup-offsite.sh +267 -0
- package/scripts/bongos/demote.js +45 -0
- package/scripts/bongos/deploy-divergence.js +454 -0
- package/scripts/bongos/deploy-main-audit-gate.sh +97 -0
- package/scripts/bongos/design-sync.js +12 -0
- package/scripts/bongos/dev-box-guard.js +166 -0
- package/scripts/bongos/dev-lib.js +722 -0
- package/scripts/bongos/dev.js +645 -0
- package/scripts/bongos/device-flow-help.js +72 -0
- package/scripts/bongos/diagnose-achievements.js +118 -0
- package/scripts/bongos/diagram-facts.js +355 -0
- package/scripts/bongos/discord-channels.js +77 -0
- package/scripts/bongos/do-api.js +109 -0
- package/scripts/bongos/doc-cli-guard.js +274 -0
- package/scripts/bongos/doc-comment-coverage.js +139 -0
- package/scripts/bongos/doc-control-claims.js +170 -0
- package/scripts/bongos/docs-entropy.js +453 -0
- package/scripts/bongos/doctor.js +493 -0
- package/scripts/bongos/enroll-control-plane.js +101 -0
- package/scripts/bongos/exec-path-guard.js +564 -0
- package/scripts/bongos/feedback-send.js +249 -0
- package/scripts/bongos/fetch-art-key.js +106 -0
- package/scripts/bongos/fetch-sound-prefs.js +126 -0
- package/scripts/bongos/figma-design-sync.js +11 -0
- package/scripts/bongos/find-untested.js +371 -0
- package/scripts/bongos/fitness-checks-error-envelope.js +134 -0
- package/scripts/bongos/fitness-checks-identity.js +343 -0
- package/scripts/bongos/fitness-checks-packaging.js +132 -0
- package/scripts/bongos/fitness-checks-route-pins.js +76 -0
- package/scripts/bongos/fitness-checks-vocabulary.js +392 -0
- package/scripts/bongos/fitness-checks-write-validation.js +157 -0
- package/scripts/bongos/fitness-lib.js +127 -0
- package/scripts/bongos/fitness-migration-contraction.js +50 -0
- package/scripts/bongos/fitness-ratchets.js +594 -0
- package/scripts/bongos/fitness.js +1498 -0
- package/scripts/bongos/forwarder.js +80 -0
- package/scripts/bongos/gate-review.js +330 -0
- package/scripts/bongos/gating.js +348 -0
- package/scripts/{gds → bongos}/gds-db-backup.service +6 -6
- package/scripts/{gds → bongos}/gds-db-backup.timer +4 -4
- package/scripts/{gds → bongos}/gds-db-offsite.service +4 -4
- package/scripts/{gds → bongos}/gds-db-offsite.timer +4 -4
- package/scripts/bongos/gds-literal-scan.js +196 -0
- package/scripts/bongos/gen-api-client.js +576 -0
- package/scripts/bongos/gen-api-docs.js +1111 -0
- package/scripts/bongos/gen-atlas.js +366 -0
- package/scripts/bongos/gen-diagrams.js +608 -0
- package/scripts/bongos/gen-file-map.js +337 -0
- package/scripts/bongos/gen-freshness.js +32 -0
- package/scripts/bongos/gen-interaction-posture.js +122 -0
- package/scripts/bongos/gen-repo-map.js +540 -0
- package/scripts/bongos/gen-role-responsibilities.js +134 -0
- package/scripts/bongos/gen-session-index.js +243 -0
- package/scripts/bongos/gen-sounds.js +176 -0
- package/scripts/bongos/git-merge-regen.js +254 -0
- package/scripts/bongos/go-live.js +1071 -0
- package/scripts/bongos/goal-names.js +102 -0
- package/scripts/bongos/goal.js +272 -0
- package/scripts/bongos/government-walk.js +1477 -0
- package/scripts/bongos/grade-correlation-audit.js +310 -0
- package/scripts/bongos/grade-replay.js +237 -0
- package/scripts/bongos/grade-smoke.js +205 -0
- package/scripts/bongos/home-isolation-guard.js +126 -0
- package/scripts/bongos/hooks/pre-push.js +211 -0
- package/scripts/bongos/howto.js +145 -0
- package/scripts/bongos/http-api-client.js +81 -0
- package/scripts/bongos/identity-strip.js +75 -0
- package/scripts/bongos/init.js +1159 -0
- package/scripts/bongos/install-git-hooks.js +200 -0
- package/scripts/bongos/instance-apex.js +38 -0
- package/scripts/bongos/intent-retry.js +52 -0
- package/scripts/bongos/key-card.js +222 -0
- package/scripts/bongos/key-status.js +126 -0
- package/scripts/bongos/land-watch.js +201 -0
- package/scripts/bongos/leak-scan-allowlist.js +293 -0
- package/scripts/bongos/learning-capture.js +145 -0
- package/scripts/bongos/lib.sh +74 -0
- package/scripts/bongos/linkify-refs.js +655 -0
- package/scripts/bongos/lint-infra-exec.js +70 -0
- package/scripts/bongos/lint-migrations.js +102 -0
- package/scripts/bongos/lint-workflow-exec.js +63 -0
- package/scripts/bongos/local-preview-lib.js +128 -0
- package/scripts/bongos/local-preview.js +82 -0
- package/scripts/bongos/login.js +360 -0
- package/scripts/bongos/main-audit.js +625 -0
- package/scripts/bongos/me.js +97 -0
- package/scripts/bongos/memory-map.js +176 -0
- package/scripts/bongos/merge-lock.js +71 -0
- package/scripts/bongos/migration-namespace.js +313 -0
- package/scripts/bongos/mirror-lineage-check.js +343 -0
- package/scripts/bongos/mirror-redact.js +350 -0
- package/scripts/bongos/module-artifact.js +289 -0
- package/scripts/bongos/module-assess-docs.js +238 -0
- package/scripts/bongos/module-assess-installs.js +228 -0
- package/scripts/bongos/module-assess-score.js +111 -0
- package/scripts/bongos/module-assess-security.js +252 -0
- package/scripts/bongos/module-assess-tests.js +278 -0
- package/scripts/bongos/module-assess-version.js +92 -0
- package/scripts/bongos/module-error-report.js +148 -0
- package/scripts/{gds → bongos}/module-test-runner/README.md +3 -3
- package/scripts/{gds → bongos}/module-test-runner/module-tests.yml +2 -2
- package/scripts/bongos/module-test-runner.js +414 -0
- package/scripts/bongos/module.js +1376 -0
- package/scripts/bongos/move-escalation.js +141 -0
- package/scripts/{gds → bongos}/newcomer-floor.config.json +1 -1
- package/scripts/bongos/newcomer-floor.js +421 -0
- package/scripts/{gds → bongos}/newcomer-floor.templates.json +13 -13
- package/scripts/bongos/newcomer-floor.test.js +235 -0
- package/scripts/bongos/next-number.js +163 -0
- package/scripts/bongos/oauth-secret.js +202 -0
- package/scripts/bongos/onboard.js +267 -0
- package/scripts/bongos/onboarding-analyze.js +226 -0
- package/scripts/bongos/onboarding-config.js +179 -0
- package/scripts/bongos/onboarding-ship.js +92 -0
- package/scripts/bongos/pack-env-prefix.js +73 -0
- package/scripts/bongos/package-core.js +1200 -0
- package/scripts/bongos/page-inventory.js +348 -0
- package/scripts/bongos/page-reader.js +722 -0
- package/scripts/bongos/paste-token.js +212 -0
- package/scripts/bongos/plain-cards.js +351 -0
- package/scripts/bongos/portability-smoke-art.sh +85 -0
- package/scripts/bongos/portability-smoke-memory.sh +176 -0
- package/scripts/bongos/preflight.js +214 -0
- package/scripts/bongos/probe-cache.js +246 -0
- package/scripts/bongos/prove-strict-versioning.js +284 -0
- package/scripts/bongos/provision-auto-upgrade.js +162 -0
- package/scripts/bongos/provision-byo-host.js +68 -0
- package/scripts/bongos/provision-capacity.js +79 -0
- package/scripts/bongos/provision-caps.js +63 -0
- package/scripts/bongos/provision-config.js +233 -0
- package/scripts/bongos/provision-core-upgrade.js +1166 -0
- package/scripts/bongos/provision-disconnect.js +88 -0
- package/scripts/bongos/provision-github-setup.js +168 -0
- package/scripts/bongos/provision-net.js +357 -0
- package/scripts/bongos/provision-pin-key.js +176 -0
- package/scripts/bongos/provision-pin-replay.js +126 -0
- package/scripts/bongos/provision-process.js +170 -0
- package/scripts/bongos/provision-render.js +201 -0
- package/scripts/bongos/provision-repo-auth.js +164 -0
- package/scripts/bongos/provision-repo-private.js +98 -0
- package/scripts/bongos/provision-repo.js +1337 -0
- package/scripts/bongos/provision-teardown.js +106 -0
- package/scripts/bongos/provision-units.js +469 -0
- package/scripts/bongos/provision.js +1479 -0
- package/scripts/bongos/publish-credential-check.js +66 -0
- package/scripts/bongos/publish-integration-gate.js +142 -0
- package/scripts/bongos/publish-manifest.js +440 -0
- package/scripts/bongos/publish-watch.js +268 -0
- package/scripts/bongos/pulse.js +336 -0
- package/scripts/bongos/push-main.js +56 -0
- package/scripts/bongos/push-path-brief.js +100 -0
- package/scripts/bongos/read-session-export.js +359 -0
- package/scripts/bongos/reauth.js +155 -0
- package/scripts/bongos/recall.js +183 -0
- package/scripts/bongos/redteam-patrol.js +437 -0
- package/scripts/bongos/regen-instance-docs.js +47 -0
- package/scripts/bongos/release-core.js +80 -0
- package/scripts/bongos/release-notes.js +271 -0
- package/scripts/bongos/release.js +139 -0
- package/scripts/bongos/rename-goals.js +109 -0
- package/scripts/bongos/rename-history-check.js +369 -0
- package/scripts/bongos/rename-ledger-prose.js +482 -0
- package/scripts/bongos/render-api.js +197 -0
- package/scripts/bongos/render-check.js +206 -0
- package/scripts/bongos/render-ideas.js +226 -0
- package/scripts/bongos/render-payload.js +85 -0
- package/scripts/bongos/repo-metrics.js +363 -0
- package/scripts/bongos/review-sheet.js +108 -0
- package/scripts/bongos/role-pack-guard.js +142 -0
- package/scripts/bongos/route-shadow-guard.js +175 -0
- package/scripts/bongos/routine-schedule.js +283 -0
- package/scripts/bongos/run-routine.js +257 -0
- package/scripts/bongos/run-unit-tests.js +654 -0
- package/scripts/bongos/runner-drift.js +151 -0
- package/scripts/bongos/sandbox-stage.js +459 -0
- package/scripts/bongos/scope-map-guard.js +300 -0
- package/scripts/bongos/scope-roster-guard.js +118 -0
- package/scripts/bongos/seam-wiring-guard.js +275 -0
- package/scripts/bongos/search-ingest-db.js +288 -0
- package/scripts/bongos/search-ingest-md.js +269 -0
- package/scripts/bongos/seed-adopt-tasks.js +75 -0
- package/scripts/bongos/seed-api-contract-goal-tasks.js +141 -0
- package/scripts/bongos/seed-board-room-tasks.js +196 -0
- package/scripts/bongos/seed-bongos-app-tasks.js +294 -0
- package/scripts/bongos/seed-bongos-coreB-tranche1-tasks.js +81 -0
- package/scripts/bongos/seed-bongos-coreB-tranche2-tasks.js +100 -0
- package/scripts/bongos/seed-bongos-goal-hierarchy-tasks.js +307 -0
- package/scripts/bongos/seed-bongos-module-system-tasks.js +346 -0
- package/scripts/bongos/seed-bongos-tasks.js +214 -0
- package/scripts/bongos/seed-bongos-v1-idea-routing-tasks.js +152 -0
- package/scripts/bongos/seed-bongos-v1-seo-tasks.js +104 -0
- package/scripts/bongos/seed-bv1-community-tasks.js +131 -0
- package/scripts/bongos/seed-bv1-privacy-invites-tasks.js +133 -0
- package/scripts/bongos/seed-bv1-profile-page-tasks.js +161 -0
- package/scripts/bongos/seed-bv1-profiles-tasks.js +135 -0
- package/scripts/bongos/seed-bv1-r01-delta-tasks.js +154 -0
- package/scripts/bongos/seed-bv2-ideator-surface-tasks.js +390 -0
- package/scripts/bongos/seed-bv2-tweak-mode-tasks.js +277 -0
- package/scripts/bongos/seed-gds-v4-tasks.js +624 -0
- package/scripts/bongos/seed-governance-tasks.js +340 -0
- package/scripts/bongos/seed-medusa-tasks.js +440 -0
- package/scripts/bongos/seed-module-upstreaming.js +219 -0
- package/scripts/bongos/seed-productization-tasks.js +235 -0
- package/scripts/bongos/seed-project-admin-console-tasks.js +88 -0
- package/scripts/bongos/seed-provisioning-tasks.js +83 -0
- package/scripts/bongos/seed-staging.sh +117 -0
- package/scripts/bongos/seed-strict-versioning-tasks.js +275 -0
- package/scripts/bongos/seed-v2-world-tasks.js +283 -0
- package/scripts/bongos/seed-verify-criteria.js +124 -0
- package/scripts/bongos/sequence.js +597 -0
- package/scripts/bongos/session-cost.js +430 -0
- package/scripts/bongos/session-digest-build.js +293 -0
- package/scripts/bongos/session-digest.js +200 -0
- package/scripts/bongos/session-eval.js +631 -0
- package/scripts/bongos/session-transcript-build.js +155 -0
- package/scripts/bongos/session-transcript-upload.js +29 -0
- package/scripts/bongos/session.js +404 -0
- package/scripts/bongos/setup.js +646 -0
- package/scripts/bongos/ship-check.js +89 -0
- package/scripts/bongos/ship-deploy-target.js +393 -0
- package/scripts/bongos/ship-escalation.js +167 -0
- package/scripts/bongos/ship-finish.js +420 -0
- package/scripts/bongos/ship-flow.js +1217 -0
- package/scripts/bongos/ship-git.js +100 -0
- package/scripts/bongos/ship-grade-steps.js +547 -0
- package/scripts/bongos/ship-grade.js +426 -0
- package/scripts/bongos/ship-honesty.js +314 -0
- package/scripts/bongos/ship-io.js +139 -0
- package/scripts/bongos/ship-land.js +1130 -0
- package/scripts/bongos/ship-memory-sync.js +249 -0
- package/scripts/bongos/ship-merge-gate.js +225 -0
- package/scripts/bongos/ship-merge.js +466 -0
- package/scripts/bongos/ship-mode-ask.js +138 -0
- package/scripts/bongos/ship-mode-manual.js +54 -0
- package/scripts/bongos/ship-preflight-steps.js +399 -0
- package/scripts/bongos/ship-regen.js +292 -0
- package/scripts/bongos/ship-resume.js +201 -0
- package/scripts/bongos/ship-session-upload.js +313 -0
- package/scripts/bongos/ship-state.js +110 -0
- package/scripts/bongos/ship-surprise.js +84 -0
- package/scripts/bongos/ship-visual.js +75 -0
- package/scripts/bongos/ship.js +382 -0
- package/scripts/bongos/shipping-mode.js +71 -0
- package/scripts/bongos/skill-lint.js +250 -0
- package/scripts/bongos/skill-preflight.js +361 -0
- package/scripts/bongos/smoke-batch-claim.sh +238 -0
- package/scripts/bongos/smoke-batch-release.sh +316 -0
- package/scripts/bongos/smoke-claim-consistency.sh +222 -0
- package/scripts/bongos/smoke-dependencies.sh +143 -0
- package/scripts/bongos/smoke-gds.js +256 -0
- package/scripts/bongos/smoke-write.sh +275 -0
- package/scripts/bongos/source-text-test-scan.js +106 -0
- package/scripts/bongos/spark.js +294 -0
- package/scripts/bongos/stale-worktrees.js +212 -0
- package/scripts/bongos/start-goals.js +102 -0
- package/scripts/bongos/start.js +1090 -0
- package/scripts/bongos/status.js +545 -0
- package/scripts/bongos/strand-watch.js +315 -0
- package/scripts/bongos/stranded-rows.js +200 -0
- package/scripts/bongos/stray-unit-sweep.sh +71 -0
- package/scripts/bongos/surface.js +101 -0
- package/scripts/bongos/task.js +273 -0
- package/scripts/bongos/test-path-guard.js +99 -0
- package/scripts/bongos/triage.js +742 -0
- package/scripts/bongos/turn-end-sound.js +74 -0
- package/scripts/bongos/tweak-halt.js +70 -0
- package/scripts/bongos/tweak-renders.js +200 -0
- package/scripts/bongos/uat.js +120 -0
- package/scripts/bongos/ui-kit-transform.js +43 -0
- package/scripts/bongos/update-channel.js +512 -0
- package/scripts/bongos/update-sweep.js +829 -0
- package/scripts/bongos/upgrade-artist-gate.js +46 -0
- package/scripts/bongos/upgrade-commit-identity.js +32 -0
- package/scripts/bongos/upgrade-migrate.js +224 -0
- package/scripts/bongos/upgrade-operator.js +73 -0
- package/scripts/bongos/upgrade-outcome.js +174 -0
- package/scripts/bongos/upgrade.js +1499 -0
- package/scripts/bongos/validate-design.js +12 -0
- package/scripts/bongos/version-close.js +621 -0
- package/scripts/bongos/version-literal-guard.js +140 -0
- package/scripts/bongos/version-select.js +79 -0
- package/scripts/bongos/visual-review-nudge.js +39 -0
- package/scripts/bongos/wedge-remedy.js +174 -0
- package/scripts/bongos/worktree-claim-guard.js +130 -0
- package/scripts/bongos/worktree.js +449 -0
- package/scripts/discord/post.js +1 -1
- package/scripts/gds/README.md +9 -0
- package/scripts/gds/abandon.js +6 -136
- package/scripts/gds/accessibility-replay.js +5 -194
- package/scripts/gds/address-park-sweep.sh +7 -90
- package/scripts/gds/adopt-detect.js +5 -121
- package/scripts/gds/adopt-import.js +5 -109
- package/scripts/gds/adopt-preflight.js +5 -185
- package/scripts/gds/adr-namespace.js +5 -271
- package/scripts/gds/agent-invoke.js +5 -687
- package/scripts/gds/agents-sync.js +5 -500
- package/scripts/gds/api-alias-caller-scan.js +5 -255
- package/scripts/gds/api-artifacts.js +6 -0
- package/scripts/gds/api.js +6 -85
- package/scripts/gds/api.ps1 +8 -26
- package/scripts/gds/architect-audit.js +6 -293
- package/scripts/gds/artifact-audit.js +5 -324
- package/scripts/gds/artifact-format.js +6 -203
- package/scripts/gds/artifact-staleness.js +5 -265
- package/scripts/gds/ask.js +5 -229
- package/scripts/gds/audit-authorship.sh +7 -328
- package/scripts/gds/audit-deps.js +6 -188
- package/scripts/gds/audit-gate.js +5 -119
- package/scripts/gds/audit-rank-roles.js +6 -171
- package/scripts/gds/audit-replay.sh +7 -204
- package/scripts/gds/autobongos-digest.js +5 -121
- package/scripts/gds/autobongos-grade-cap.js +5 -186
- package/scripts/gds/autobongos-loop.js +5 -208
- package/scripts/gds/autobongos-run.js +5 -1359
- package/scripts/gds/autobongos-service.cmd +8 -49
- package/scripts/gds/autobongos-service.ps1 +8 -270
- package/scripts/gds/autobongos-tweak-lane.js +5 -261
- package/scripts/gds/autobongos-verify.js +5 -616
- package/scripts/gds/autonomy-gate.js +5 -133
- package/scripts/gds/autonomy-gauge-statusline.js +5 -122
- package/scripts/gds/autonomy-gauge.js +5 -82
- package/scripts/gds/backfill-cost.js +6 -175
- package/scripts/gds/backfill-disciplines.js +5 -142
- package/scripts/gds/backfill-session-earnings.js +5 -121
- package/scripts/gds/backfill-session-types.js +5 -85
- package/scripts/gds/backfill-sessions.js +5 -409
- package/scripts/gds/backfill-subagent-rewards.js +5 -483
- package/scripts/gds/backfill-task-rewards.js +5 -411
- package/scripts/gds/backlog-review.js +6 -398
- package/scripts/gds/backup-dropin-sweep.sh +7 -94
- package/scripts/gds/backup.js +6 -115
- package/scripts/gds/baseline-staleness.js +5 -215
- package/scripts/gds/bfg-principal-token.js +6 -64
- package/scripts/gds/bug-attachment-audit.js +5 -147
- package/scripts/gds/bug-attachment-recover.js +5 -196
- package/scripts/gds/bug-triage.js +6 -291
- package/scripts/gds/build-bongos.js +5 -92
- package/scripts/gds/bump-version.js +5 -219
- package/scripts/gds/capture.js +6 -480
- package/scripts/gds/category-advisory-guard.js +5 -205
- package/scripts/gds/ci-grade.js +6 -81
- package/scripts/gds/claim-recall.js +6 -111
- package/scripts/gds/claim.js +6 -788
- package/scripts/gds/classify-discipline.js +6 -152
- package/scripts/gds/claude-materialize.js +5 -1198
- package/scripts/gds/claude-md-template.js +5 -140
- package/scripts/gds/cleanup-orphans.js +6 -73
- package/scripts/gds/cli-lib.js +6 -1204
- package/scripts/gds/client-baseurl-guard.js +5 -114
- package/scripts/gds/codemod-rename-src-gds.js +6 -144
- package/scripts/gds/conductor-dispatch.js +6 -534
- package/scripts/gds/context-pack.js +6 -325
- package/scripts/gds/control-manifest.js +5 -197
- package/scripts/gds/copy-apply.js +5 -756
- package/scripts/gds/copy-inventory.js +5 -569
- package/scripts/gds/core-origin-follow.js +5 -184
- package/scripts/gds/core-pin-sync.js +5 -258
- package/scripts/gds/coreB-carve-proof.sh +7 -724
- package/scripts/gds/cost-report.js +6 -62
- package/scripts/gds/cost.js +6 -46
- package/scripts/gds/credential-presence.js +5 -294
- package/scripts/gds/cutover-codemod.js +5 -239
- package/scripts/gds/db-backup-nightly.sh +7 -231
- package/scripts/gds/db-backup-offsite.sh +7 -266
- package/scripts/gds/demote.js +6 -44
- package/scripts/gds/deploy-divergence.js +6 -445
- package/scripts/gds/deploy-main-audit-gate.sh +7 -96
- package/scripts/gds/design-sync.js +5 -10
- package/scripts/gds/dev-box-guard.js +5 -164
- package/scripts/gds/dev-lib.js +5 -721
- package/scripts/gds/dev.js +5 -643
- package/scripts/gds/device-flow-help.js +5 -70
- package/scripts/gds/diagnose-achievements.js +5 -116
- package/scripts/gds/diagram-facts.js +6 -355
- package/scripts/gds/discord-channels.js +5 -75
- package/scripts/gds/do-api.js +6 -109
- package/scripts/gds/doc-cli-guard.js +5 -266
- package/scripts/gds/doc-comment-coverage.js +5 -137
- package/scripts/gds/doc-control-claims.js +5 -166
- package/scripts/gds/docs-entropy.js +5 -443
- package/scripts/gds/doctor.js +6 -492
- package/scripts/gds/enroll-control-plane.js +5 -99
- package/scripts/gds/exec-path-guard.js +5 -562
- package/scripts/gds/feedback-send.js +5 -247
- package/scripts/gds/fetch-art-key.js +5 -104
- package/scripts/gds/fetch-sound-prefs.js +5 -124
- package/scripts/gds/figma-design-sync.js +5 -9
- package/scripts/gds/find-untested.js +5 -369
- package/scripts/gds/fitness-checks-error-envelope.js +5 -133
- package/scripts/gds/fitness-checks-identity.js +5 -342
- package/scripts/gds/fitness-checks-packaging.js +5 -131
- package/scripts/gds/fitness-checks-route-pins.js +5 -75
- package/scripts/gds/fitness-checks-vocabulary.js +5 -391
- package/scripts/gds/fitness-checks-write-validation.js +5 -156
- package/scripts/gds/fitness-lib.js +5 -126
- package/scripts/gds/fitness-migration-contraction.js +5 -49
- package/scripts/gds/fitness-ratchets.js +5 -563
- package/scripts/gds/fitness.js +5 -1493
- package/scripts/gds/gate-review.js +5 -328
- package/scripts/gds/gating.js +5 -346
- package/scripts/gds/gds-literal-scan.js +5 -194
- package/scripts/gds/gen-api-client.js +5 -555
- package/scripts/gds/gen-api-docs.js +5 -1100
- package/scripts/gds/gen-atlas.js +5 -364
- package/scripts/gds/gen-diagrams.js +6 -607
- package/scripts/gds/gen-file-map.js +5 -335
- package/scripts/gds/gen-freshness.js +5 -31
- package/scripts/gds/gen-interaction-posture.js +5 -120
- package/scripts/gds/gen-repo-map.js +5 -538
- package/scripts/gds/gen-role-responsibilities.js +5 -133
- package/scripts/gds/gen-session-index.js +5 -241
- package/scripts/gds/gen-sounds.js +5 -174
- package/scripts/gds/git-merge-regen.js +6 -291
- package/scripts/gds/go-live.js +5 -1069
- package/scripts/gds/goal-names.js +5 -100
- package/scripts/gds/goal.js +6 -271
- package/scripts/gds/government-walk.js +5 -1475
- package/scripts/gds/grade-correlation-audit.js +5 -308
- package/scripts/gds/grade-replay.js +5 -235
- package/scripts/gds/grade-smoke.js +6 -204
- package/scripts/gds/home-isolation-guard.js +5 -125
- package/scripts/gds/hooks/pre-push.js +5 -209
- package/scripts/gds/howto.js +5 -143
- package/scripts/gds/http-api-client.js +6 -81
- package/scripts/gds/identity-strip.js +5 -74
- package/scripts/gds/init.js +5 -1157
- package/scripts/gds/install-git-hooks.js +5 -198
- package/scripts/gds/instance-apex.js +5 -37
- package/scripts/gds/intent-retry.js +5 -51
- package/scripts/gds/key-card.js +6 -221
- package/scripts/gds/key-status.js +5 -124
- package/scripts/gds/land-watch.js +5 -199
- package/scripts/gds/leak-scan-allowlist.js +5 -291
- package/scripts/gds/learning-capture.js +6 -144
- package/scripts/gds/lib.sh +7 -73
- package/scripts/gds/linkify-refs.js +6 -654
- package/scripts/gds/lint-infra-exec.js +5 -68
- package/scripts/gds/lint-migrations.js +5 -100
- package/scripts/gds/lint-workflow-exec.js +5 -61
- package/scripts/gds/local-preview-lib.js +6 -128
- package/scripts/gds/local-preview.js +6 -81
- package/scripts/gds/login.js +5 -358
- package/scripts/gds/main-audit.js +5 -623
- package/scripts/gds/me.js +6 -96
- package/scripts/gds/memory-map.js +5 -174
- package/scripts/gds/merge-lock.js +6 -70
- package/scripts/gds/migration-namespace.js +5 -311
- package/scripts/gds/mirror-lineage-check.js +5 -341
- package/scripts/gds/mirror-redact.js +5 -348
- package/scripts/gds/module-artifact.js +6 -289
- package/scripts/gds/module-assess-docs.js +6 -237
- package/scripts/gds/module-assess-installs.js +6 -227
- package/scripts/gds/module-assess-score.js +6 -110
- package/scripts/gds/module-assess-security.js +6 -251
- package/scripts/gds/module-assess-tests.js +6 -277
- package/scripts/gds/module-assess-version.js +6 -91
- package/scripts/gds/module-error-report.js +5 -146
- package/scripts/gds/module-test-runner.js +6 -413
- package/scripts/gds/module.js +5 -1374
- package/scripts/gds/move-escalation.js +5 -140
- package/scripts/gds/newcomer-floor.js +6 -420
- package/scripts/gds/newcomer-floor.test.js +6 -234
- package/scripts/gds/next-number.js +6 -162
- package/scripts/gds/oauth-secret.js +5 -200
- package/scripts/gds/onboard.js +5 -265
- package/scripts/gds/onboarding-analyze.js +6 -225
- package/scripts/gds/onboarding-config.js +6 -179
- package/scripts/gds/onboarding-ship.js +6 -91
- package/scripts/gds/pack-env-prefix.js +5 -72
- package/scripts/gds/package-core.js +5 -1102
- package/scripts/gds/page-inventory.js +5 -346
- package/scripts/gds/page-reader.js +5 -720
- package/scripts/gds/paste-token.js +6 -211
- package/scripts/gds/plain-cards.js +5 -350
- package/scripts/gds/portability-smoke-art.sh +7 -84
- package/scripts/gds/portability-smoke-memory.sh +7 -175
- package/scripts/gds/preflight.js +5 -212
- package/scripts/gds/probe-cache.js +5 -244
- package/scripts/gds/prove-strict-versioning.js +6 -283
- package/scripts/gds/provision-auto-upgrade.js +5 -161
- package/scripts/gds/provision-byo-host.js +5 -67
- package/scripts/gds/provision-capacity.js +5 -78
- package/scripts/gds/provision-caps.js +5 -62
- package/scripts/gds/provision-config.js +5 -232
- package/scripts/gds/provision-core-upgrade.js +5 -1165
- package/scripts/gds/provision-disconnect.js +5 -87
- package/scripts/gds/provision-github-setup.js +5 -167
- package/scripts/gds/provision-net.js +5 -356
- package/scripts/gds/provision-pin-key.js +5 -175
- package/scripts/gds/provision-pin-replay.js +5 -125
- package/scripts/gds/provision-process.js +5 -169
- package/scripts/gds/provision-render.js +5 -200
- package/scripts/gds/provision-repo-auth.js +5 -163
- package/scripts/gds/provision-repo-private.js +5 -97
- package/scripts/gds/provision-repo.js +5 -1336
- package/scripts/gds/provision-teardown.js +5 -105
- package/scripts/gds/provision-units.js +5 -468
- package/scripts/gds/provision.js +5 -1477
- package/scripts/gds/publish-credential-check.js +6 -65
- package/scripts/gds/publish-integration-gate.js +5 -140
- package/scripts/gds/publish-manifest.js +5 -437
- package/scripts/gds/publish-watch.js +5 -266
- package/scripts/gds/pulse.js +6 -335
- package/scripts/gds/push-main.js +5 -54
- package/scripts/gds/push-path-brief.js +5 -98
- package/scripts/gds/read-session-export.js +5 -357
- package/scripts/gds/reauth.js +6 -154
- package/scripts/gds/recall.js +6 -182
- package/scripts/gds/redteam-patrol.js +5 -435
- package/scripts/gds/regen-instance-docs.js +5 -45
- package/scripts/gds/release-core.js +5 -78
- package/scripts/gds/release-notes.js +5 -270
- package/scripts/gds/release.js +6 -138
- package/scripts/gds/rename-goals.js +5 -107
- package/scripts/gds/rename-history-check.js +5 -367
- package/scripts/gds/rename-ledger-prose.js +5 -480
- package/scripts/gds/render-api.js +5 -196
- package/scripts/gds/render-check.js +5 -204
- package/scripts/gds/render-ideas.js +6 -225
- package/scripts/gds/render-payload.js +5 -84
- package/scripts/gds/repo-metrics.js +6 -362
- package/scripts/gds/review-sheet.js +5 -106
- package/scripts/gds/role-pack-guard.js +5 -141
- package/scripts/gds/route-shadow-guard.js +5 -173
- package/scripts/gds/routine-schedule.js +5 -281
- package/scripts/gds/run-routine.js +5 -255
- package/scripts/gds/run-unit-tests.js +6 -659
- package/scripts/gds/runner-drift.js +5 -149
- package/scripts/gds/sandbox-stage.js +6 -458
- package/scripts/gds/scope-map-guard.js +5 -299
- package/scripts/gds/scope-roster-guard.js +5 -117
- package/scripts/gds/seam-wiring-guard.js +5 -274
- package/scripts/gds/search-ingest-db.js +6 -287
- package/scripts/gds/search-ingest-md.js +6 -268
- package/scripts/gds/seed-adopt-tasks.js +6 -74
- package/scripts/gds/seed-api-contract-goal-tasks.js +6 -140
- package/scripts/gds/seed-board-room-tasks.js +6 -196
- package/scripts/gds/seed-bongos-app-tasks.js +6 -293
- package/scripts/gds/seed-bongos-coreB-tranche1-tasks.js +6 -80
- package/scripts/gds/seed-bongos-coreB-tranche2-tasks.js +6 -99
- package/scripts/gds/seed-bongos-goal-hierarchy-tasks.js +6 -306
- package/scripts/gds/seed-bongos-module-system-tasks.js +6 -345
- package/scripts/gds/seed-bongos-tasks.js +6 -213
- package/scripts/gds/seed-bongos-v1-idea-routing-tasks.js +6 -152
- package/scripts/gds/seed-bongos-v1-seo-tasks.js +6 -104
- package/scripts/gds/seed-bv1-community-tasks.js +6 -131
- package/scripts/gds/seed-bv1-privacy-invites-tasks.js +6 -133
- package/scripts/gds/seed-bv1-profile-page-tasks.js +6 -161
- package/scripts/gds/seed-bv1-profiles-tasks.js +6 -135
- package/scripts/gds/seed-bv1-r01-delta-tasks.js +6 -154
- package/scripts/gds/seed-bv2-ideator-surface-tasks.js +6 -390
- package/scripts/gds/seed-bv2-tweak-mode-tasks.js +6 -277
- package/scripts/gds/seed-gds-v4-tasks.js +6 -623
- package/scripts/gds/seed-governance-tasks.js +6 -339
- package/scripts/gds/seed-medusa-tasks.js +6 -439
- package/scripts/gds/seed-module-upstreaming.js +5 -217
- package/scripts/gds/seed-productization-tasks.js +6 -234
- package/scripts/gds/seed-project-admin-console-tasks.js +6 -88
- package/scripts/gds/seed-provisioning-tasks.js +6 -82
- package/scripts/gds/seed-staging.sh +7 -116
- package/scripts/gds/seed-strict-versioning-tasks.js +6 -274
- package/scripts/gds/seed-v2-world-tasks.js +6 -282
- package/scripts/gds/seed-verify-criteria.js +6 -124
- package/scripts/gds/sequence.js +6 -596
- package/scripts/gds/session-cost.js +6 -429
- package/scripts/gds/session-digest-build.js +6 -293
- package/scripts/gds/session-digest.js +6 -199
- package/scripts/gds/session-eval.js +6 -630
- package/scripts/gds/session-transcript-build.js +6 -155
- package/scripts/gds/session-transcript-upload.js +6 -29
- package/scripts/gds/session.js +6 -403
- package/scripts/gds/setup.js +6 -645
- package/scripts/gds/ship-check.js +5 -85
- package/scripts/gds/ship-deploy-target.js +5 -392
- package/scripts/gds/ship-escalation.js +5 -166
- package/scripts/gds/ship-finish.js +5 -419
- package/scripts/gds/ship-flow.js +5 -1216
- package/scripts/gds/ship-git.js +5 -99
- package/scripts/gds/ship-grade-steps.js +5 -546
- package/scripts/gds/ship-grade.js +5 -425
- package/scripts/gds/ship-honesty.js +5 -312
- package/scripts/gds/ship-io.js +5 -138
- package/scripts/gds/ship-land.js +5 -1129
- package/scripts/gds/ship-memory-sync.js +5 -248
- package/scripts/gds/ship-merge-gate.js +5 -224
- package/scripts/gds/ship-merge.js +5 -465
- package/scripts/gds/ship-mode-ask.js +5 -137
- package/scripts/gds/ship-mode-manual.js +5 -53
- package/scripts/gds/ship-preflight-steps.js +5 -398
- package/scripts/gds/ship-regen.js +5 -313
- package/scripts/gds/ship-resume.js +5 -200
- package/scripts/gds/ship-session-upload.js +5 -312
- package/scripts/gds/ship-state.js +5 -109
- package/scripts/gds/ship-surprise.js +5 -83
- package/scripts/gds/ship-visual.js +5 -74
- package/scripts/gds/ship.js +5 -380
- package/scripts/gds/shipping-mode.js +5 -69
- package/scripts/gds/skill-lint.js +5 -248
- package/scripts/gds/skill-preflight.js +5 -359
- package/scripts/gds/smoke-batch-claim.sh +7 -237
- package/scripts/gds/smoke-batch-release.sh +7 -315
- package/scripts/gds/smoke-claim-consistency.sh +7 -221
- package/scripts/gds/smoke-dependencies.sh +7 -142
- package/scripts/gds/smoke-gds.js +6 -255
- package/scripts/gds/smoke-write.sh +7 -274
- package/scripts/gds/source-text-test-scan.js +7 -0
- package/scripts/gds/spark.js +6 -293
- package/scripts/gds/stale-worktrees.js +5 -210
- package/scripts/gds/start-goals.js +5 -101
- package/scripts/gds/start.js +6 -1089
- package/scripts/gds/status.js +6 -544
- package/scripts/gds/strand-watch.js +5 -313
- package/scripts/gds/stranded-rows.js +5 -198
- package/scripts/gds/stray-unit-sweep.sh +7 -70
- package/scripts/gds/surface.js +5 -100
- package/scripts/gds/task.js +6 -272
- package/scripts/gds/test-path-guard.js +5 -97
- package/scripts/gds/triage.js +6 -741
- package/scripts/gds/turn-end-sound.js +5 -72
- package/scripts/gds/tweak-halt.js +5 -68
- package/scripts/gds/tweak-renders.js +5 -198
- package/scripts/gds/uat.js +6 -119
- package/scripts/gds/ui-kit-transform.js +5 -41
- package/scripts/gds/update-channel.js +5 -510
- package/scripts/gds/update-sweep.js +5 -827
- package/scripts/gds/upgrade-artist-gate.js +5 -45
- package/scripts/gds/upgrade-commit-identity.js +5 -31
- package/scripts/gds/upgrade-migrate.js +5 -223
- package/scripts/gds/upgrade-operator.js +6 -73
- package/scripts/gds/upgrade-outcome.js +5 -173
- package/scripts/gds/upgrade.js +5 -1497
- package/scripts/gds/validate-design.js +5 -10
- package/scripts/gds/version-close.js +6 -620
- package/scripts/gds/version-literal-guard.js +5 -138
- package/scripts/gds/version-select.js +5 -77
- package/scripts/gds/visual-review-nudge.js +5 -38
- package/scripts/gds/wedge-remedy.js +5 -173
- package/scripts/gds/worktree-claim-guard.js +5 -129
- package/scripts/gds/worktree.js +6 -448
- package/scripts/hall-preview/refresh-fixtures.js +1 -1
- package/scripts/hall-preview/server.js +2 -2
- package/scripts/migrate.sh +3 -3
- package/scripts/public-mirror-export.js +3 -3
- package/scripts/setup-builder.js +7 -7
- package/src/bongos/api-errors.js +1 -0
- package/src/bongos/api-prefix.js +1 -1
- package/src/bongos/auth-github.js +19 -3
- package/src/bongos/auth-idp.js +7 -0
- package/src/bongos/claim-attribution.js +2 -2
- package/src/bongos/core-moves.js +1 -1
- package/src/bongos/core-update.js +3 -3
- package/src/bongos/craft-mode.js +2 -2
- package/src/bongos/db-kernel.js +15 -3
- package/src/bongos/db.js +30 -4
- package/src/bongos/github-repos.js +1 -1
- package/src/bongos/llm-cache.js +1 -1
- package/src/bongos/llm-pricing.js +1 -1
- package/src/bongos/metrics.js +1 -1
- package/src/bongos/middleware/rate-limit.js +2 -2
- package/src/bongos/module-listing.js +93 -1
- package/src/bongos/module-scope-map.js +90 -85
- package/src/bongos/module-store.js +1 -1
- package/src/bongos/module-submissions.js +1 -1
- package/src/bongos/optimizer.js +1 -1
- package/src/bongos/package-registry.js +1 -1
- package/src/bongos/path-match.js +1 -1
- package/src/bongos/permission-path-check.js +3 -3
- package/src/bongos/platform-visibility-gate.js +3 -5
- package/src/bongos/prelaunch-gate.js +7 -6
- package/src/bongos/route-rank-check.js +2 -2
- package/src/bongos/routes/auth.js +15 -2
- package/src/bongos/routes/backup.js +1 -1
- package/src/bongos/routes/builders.js +29 -1
- package/src/bongos/routes/me.js +49 -18
- package/src/bongos/routes/modules.js +29 -9
- package/src/bongos/routes/public.js +3 -72
- package/src/bongos/schema-lag.js +1 -1
- package/src/bongos/sensitive-surfaces.js +1 -1
- package/src/bongos/serve-internal.js +65 -16
- package/src/bongos/software-update.js +2 -2
- package/src/bongos/upgrade-hold.js +3 -3
- package/src/hall-look.js +6 -5
- package/src/module-api.js +3 -3
- package/src/module-loader/catalog.js +1 -1
- package/src/module-loader/error-tally.js +3 -3
- package/src/module-loader/manifest-schema.js +3 -3
- package/src/platform-server.js +10 -0
- package/src/role-responsibilities.js +1 -1
- package/src/stale-timer.js +2 -2
- package/tests/accessibility_replay.mjs +1 -1
- package/tests/activity_rollup_order_db.mjs +1 -1
- package/tests/activity_snapshots_db.mjs +1 -1
- package/tests/adopt_detect.mjs +1 -1
- package/tests/adopt_import.mjs +1 -1
- package/tests/adopt_preflight.mjs +1 -1
- package/tests/adr_0089_scope.mjs +10 -7
- package/tests/adr_0162_citation.mjs +1 -1
- package/tests/adr_0162_gate_citation.mjs +1 -1
- package/tests/agent_invoke.mjs +1 -1
- package/tests/agent_invoke_live.mjs +3 -3
- package/tests/agents_cron_trigger.mjs +2 -2
- package/tests/agents_roster.mjs +1 -1
- package/tests/agents_sync.mjs +4 -4
- package/tests/allow_rule_guard.mjs +20 -20
- package/tests/api_alias_caller_ratchet.mjs +9 -10
- package/tests/api_alias_exceptions.mjs +7 -6
- package/tests/api_artifacts.mjs +214 -0
- package/tests/api_cli_flags.mjs +3 -3
- package/tests/api_client.mjs +56 -54
- package/tests/api_docs.mjs +30 -9
- package/tests/api_error_envelope_buildcheck.mjs +1 -1
- package/tests/api_msys_path_repair.mjs +2 -2
- package/tests/architect.mjs +1 -1
- package/tests/art_stage.mjs +2 -2
- package/tests/artifact_audit.mjs +2 -2
- package/tests/artifact_staleness.mjs +9 -9
- package/tests/atlas.mjs +1 -1
- package/tests/audit_deps.mjs +1 -1
- package/tests/audit_gate.mjs +1 -1
- package/tests/auth_flow_slice1.mjs +3 -3
- package/tests/auth_inactive_builder.mjs +43 -5
- package/tests/auth_session_expiry_db.mjs +16 -4
- package/tests/auth_session_ttl.mjs +23 -0
- package/tests/authorship_audit.mjs +2 -2
- package/tests/autobongos_cadence.mjs +1 -1
- package/tests/autobongos_fence.mjs +1 -1
- package/tests/autobongos_grade_cap.mjs +2 -2
- package/tests/autobongos_heartbeat_head.mjs +1 -1
- package/tests/autobongos_host_access.mjs +3 -3
- package/tests/autobongos_loop.mjs +17 -17
- package/tests/autobongos_service_ps1.mjs +3 -3
- package/tests/autobongos_tweak_lane.mjs +2 -2
- package/tests/autobongos_verify.mjs +2 -2
- package/tests/autonomous_fit_protected_paths.mjs +3 -3
- package/tests/autonomy_config_idle.mjs +1 -1
- package/tests/autonomy_digest.mjs +1 -1
- package/tests/autonomy_gate.mjs +1 -1
- package/tests/autonomy_gauge.mjs +2 -2
- package/tests/autonomy_runner_identity.mjs +1 -1
- package/tests/backfill_sessions.mjs +8 -8
- package/tests/backfill_subagent_rewards.mjs +1 -1
- package/tests/backfill_task_rewards.mjs +2 -2
- package/tests/backlog_review.mjs +3 -3
- package/tests/baseline_staleness.mjs +2 -2
- package/tests/bfg.mjs +11 -5
- package/tests/bfg_write.mjs +20 -11
- package/tests/blockers_hall.mjs +14 -4
- package/tests/blockers_page_ui.mjs +56 -12
- package/tests/bongos_dispatch.mjs +5 -5
- package/tests/bongos_login.mjs +2 -2
- package/tests/bug_attachment_audit.mjs +1 -1
- package/tests/bug_attachment_recover.mjs +2 -2
- package/tests/bug_triage.mjs +3 -3
- package/tests/build_info.mjs +1 -1
- package/tests/builder_tester_tag.mjs +184 -0
- package/tests/bump_version.mjs +3 -3
- package/tests/canonical_profile_url.mjs +1 -1
- package/tests/capture_error_format.mjs +1 -1
- package/tests/capture_goal_routing.mjs +2 -2
- package/tests/category_advisory_guard.mjs +3 -3
- package/tests/claim_error_surface.mjs +2 -2
- package/tests/claim_from_task_and_home.mjs +1 -1
- package/tests/claim_gate_open_blocker.mjs +7 -4
- package/tests/claim_gate_rebase.mjs +12 -8
- package/tests/claim_recall.mjs +4 -4
- package/tests/claim_resolve_worktree_lock.mjs +1 -1
- package/tests/claude_materialize.mjs +58 -58
- package/tests/clawback_confirmed_backlog.mjs +8 -5
- package/tests/cli_allowlist_permissions.mjs +11 -11
- package/tests/cli_dispatcher.mjs +2 -2
- package/tests/cli_err_code.mjs +6 -6
- package/tests/cli_exit_no_abort.mjs +7 -7
- package/tests/cli_lib_formatters.mjs +2 -2
- package/tests/cli_sessions.mjs +5 -5
- package/tests/cli_surface.mjs +15 -15
- package/tests/cli_token_reissue.mjs +2 -2
- package/tests/client_baseurl_guard.mjs +1 -1
- package/tests/client_bundle_route.mjs +35 -4
- package/tests/cloud_bongos_pack.mjs +1 -1
- package/tests/community_leaderboard_db.mjs +1 -1
- package/tests/conductor.mjs +18 -18
- package/tests/conflict_resolve.mjs +14 -16
- package/tests/consumer_layout_boot.mjs +12 -12
- package/tests/context_pack.mjs +6 -6
- package/tests/control_manifest.mjs +4 -4
- package/tests/copy_desk_page_reads.mjs +1 -1
- package/tests/copy_desk_page_release.mjs +192 -0
- package/tests/copy_inventory.mjs +2 -2
- package/tests/core_auto_upgrade.mjs +1 -1
- package/tests/core_move_notice.mjs +2 -2
- package/tests/core_origin_follow.mjs +7 -7
- package/tests/core_pin_sync.mjs +3 -3
- package/tests/core_upgrade_door.mjs +2 -2
- package/tests/core_upgrade_owner_door.mjs +34 -1
- package/tests/core_upgrade_runner.mjs +19 -19
- package/tests/credential_presence.mjs +2 -2
- package/tests/credit_grant.mjs +3 -3
- package/tests/credit_log_single_writer.mjs +5 -5
- package/tests/criterion_ref_status.mjs +2 -2
- package/tests/cross_discipline_priority_direction.mjs +3 -3
- package/tests/cutover_codemod.mjs +2 -4
- package/tests/db_backup_nightly.mjs +1 -1
- package/tests/db_backup_offsite.mjs +1 -1
- package/tests/db_ownership_handover.mjs +2 -2
- package/tests/dead_deps.mjs +3 -3
- package/tests/dependency_advisory.mjs +1 -1
- package/tests/deploy_audit_gate.mjs +4 -4
- package/tests/deploy_divergence_line.mjs +36 -16
- package/tests/deploy_page_projects.mjs +35 -4
- package/tests/dev_lib.mjs +2 -2
- package/tests/dev_windows.mjs +2 -2
- package/tests/diagram_facts_offset.mjs +1 -1
- package/tests/diagram_repo_slug.mjs +1 -1
- package/tests/diff_derived_signals.mjs +2 -2
- package/tests/dns_preflight.mjs +2 -2
- package/tests/do_api.mjs +3 -3
- package/tests/doc_cli_guard.mjs +28 -28
- package/tests/doc_comment_coverage.mjs +1 -1
- package/tests/doc_control_claims.mjs +11 -11
- package/tests/docs_entropy.mjs +2 -2
- package/tests/docs_openapi_route.mjs +8 -6
- package/tests/doctor_hooks.mjs +1 -1
- package/tests/edit_hints.mjs +3 -2
- package/tests/effective_visibility_predicate.mjs +3 -3
- package/tests/env_knobs_neutral_prefix.mjs +13 -13
- package/tests/exec_path_guard.mjs +4 -4
- package/tests/executed_closure.mjs +18 -12
- package/tests/file_map.mjs +1 -1
- package/tests/find_untested.mjs +13 -13
- package/tests/first_admin_bootstrap.mjs +1 -1
- package/tests/fitness.mjs +16 -16
- package/tests/fitness_gds_ratchet.mjs +2 -2
- package/tests/fitness_installed_core.mjs +3 -3
- package/tests/fitness_no_raw_nul.mjs +1 -1
- package/tests/fitness_ratchets.mjs +3 -3
- package/tests/fitness_scope_roster.mjs +2 -2
- package/tests/fitness_two_root.mjs +8 -8
- package/tests/fixtures/accessibility-replay.json +5 -5
- package/tests/fixtures/grade-replay/recorded-panel-grades.json +1 -1
- package/tests/fixtures/ideator-prefold/README.md +1 -1
- package/tests/fixtures/page-ledger.mjs +22 -0
- package/tests/fixtures/session-506-digest.json +5 -5
- package/tests/gate_approvals.mjs +50 -0
- package/tests/gate_review.mjs +8 -8
- package/tests/gating_review_retired.mjs +2 -2
- package/tests/gen_freshness.mjs +3 -3
- package/tests/git_guard.mjs +3 -3
- package/tests/git_merge_regen.mjs +41 -65
- package/tests/github_one_trip.mjs +4 -4
- package/tests/github_pick_up.mjs +2 -2
- package/tests/github_push_merge_driver.mjs +1 -1
- package/tests/go_live.mjs +3 -2
- package/tests/goal_category.mjs +1 -1
- package/tests/goal_cli.mjs +2 -2
- package/tests/goal_create_spec_entry.mjs +1 -1
- package/tests/goal_invite_consent.mjs +3 -1
- package/tests/goal_move.mjs +1 -1
- package/tests/goal_names.mjs +2 -2
- package/tests/goal_working_area.mjs +1 -1
- package/tests/government_agent_asks.mjs +7 -7
- package/tests/government_board_room_copy.mjs +6 -1
- package/tests/government_board_view.mjs +39 -0
- package/tests/government_board_vote_ui.mjs +39 -1
- package/tests/government_config.mjs +2 -2
- package/tests/government_live_proof_shape.mjs +1 -1
- package/tests/government_protected_surfaces.mjs +54 -53
- package/tests/government_require_permission.mjs +9 -1
- package/tests/government_vanilla_boot.mjs +1 -1
- package/tests/government_vocabulary.mjs +2 -2
- package/tests/government_walk.mjs +2 -2
- package/tests/grade_body_limit.mjs +6 -4
- package/tests/grade_correlation_audit.mjs +3 -3
- package/tests/grade_diff_hash.mjs +1 -1
- package/tests/grade_engine_replay.mjs +2 -2
- package/tests/grade_server_authoritative.mjs +1 -1
- package/tests/grade_unavailable_display.mjs +1 -1
- package/tests/grader.mjs +8 -24
- package/tests/grader_generated_provenance.mjs +14 -14
- package/tests/grader_no_artifact.mjs +1 -1
- package/tests/grader_prompt_fencing.mjs +1 -1
- package/tests/grader_quality_window_overflow.mjs +1 -1
- package/tests/grader_reader_lens.mjs +3 -3
- package/tests/grader_regrade_delta.mjs +1 -1
- package/tests/grader_unbacked_score.mjs +2 -2
- package/tests/hall_acclaim_vote_control.mjs +113 -0
- package/tests/hall_asset_cache.mjs +127 -0
- package/tests/hall_audit.mjs +63 -0
- package/tests/hall_board_world.mjs +20 -0
- package/tests/hall_city_card_words.mjs +61 -0
- package/tests/hall_client_request_shape.mjs +5 -1
- package/tests/hall_home_ships_bounded.mjs +160 -0
- package/tests/hall_landing_boot.mjs +15 -2
- package/tests/hall_nav.mjs +33 -0
- package/tests/hall_onboarding_bongos_setup.mjs +1 -1
- package/tests/hall_oversight_world.mjs +44 -4
- package/tests/hall_palette.mjs +12 -9
- package/tests/hall_preview_security.mjs +1 -1
- package/tests/hall_profile_world.mjs +17 -0
- package/tests/hall_reading_world.mjs +16 -1
- package/tests/hall_roster_world.mjs +2 -1
- package/tests/hall_studio_world.mjs +4 -1
- package/tests/hall_work_history_id.mjs +39 -0
- package/tests/held_tweak_reporting.mjs +4 -4
- package/tests/helpers.mjs +3 -3
- package/tests/home_bounded_reads.mjs +1 -1
- package/tests/home_isolation_guard.mjs +1 -1
- package/tests/hook_core_resolve.mjs +7 -7
- package/tests/hook_user_agents.mjs +1 -1
- package/tests/hooks_drain.mjs +2 -2
- package/tests/host_topology_skips.mjs +1 -1
- package/tests/howto_guide.mjs +1 -1
- package/tests/howto_moments.mjs +3 -3
- package/tests/hub_account_page.mjs +1 -1
- package/tests/idea_capture_grades.mjs +2 -2
- package/tests/idea_develop_spark.mjs +1 -1
- package/tests/idea_filed_via.mjs +2 -2
- package/tests/idea_ideate_full.mjs +1 -1
- package/tests/idea_spark_mark.mjs +1 -1
- package/tests/idea_spark_queue.mjs +1 -1
- package/tests/idea_triage.mjs +1 -1
- package/tests/idea_triage_grade.mjs +3 -3
- package/tests/idea_vote_permission.mjs +113 -0
- package/tests/idea_votes_fold_db.mjs +123 -0
- package/tests/infra_exec_paths.mjs +12 -12
- package/tests/init.mjs +2 -2
- package/tests/instance_db_migrated_on_code_move.mjs +5 -5
- package/tests/instance_feedback.mjs +9 -9
- package/tests/instance_mismatch_guard.mjs +2 -2
- package/tests/integration_parked_ratchet.mjs +24 -2
- package/tests/intent_retry.mjs +1 -1
- package/tests/interaction_posture.mjs +3 -3
- package/tests/invite_expiry_db.mjs +1 -1
- package/tests/joinability_invite_only.mjs +1 -1
- package/tests/karma_vote_lists.mjs +270 -0
- package/tests/key-card.mjs +2 -2
- package/tests/key-status.mjs +2 -2
- package/tests/knip_ratchet_ambient.mjs +2 -2
- package/tests/known_failing_ratchet.mjs +1 -1
- package/tests/land_watch.mjs +2 -2
- package/tests/landing_legal_pages.mjs +1 -1
- package/tests/landing_page.mjs +2 -2
- package/tests/leaderboard_roles.mjs +4 -1
- package/tests/leak_scan_allowlist.mjs +8 -8
- package/tests/leak_scan_fail_closed.mjs +1 -1
- package/tests/lib_sh_resolution.mjs +9 -9
- package/tests/lifecycle-card.mjs +7 -7
- package/tests/linkify_check.mjs +2 -2
- package/tests/linkify_refs.mjs +1 -1
- package/tests/llm-cache-route.mjs +1 -1
- package/tests/local_preview.mjs +2 -2
- package/tests/main_audit.mjs +3 -3
- package/tests/main_audit_attestation.mjs +1 -1
- package/tests/main_audit_db_roster.mjs +2 -2
- package/tests/main_worktree_busy_reason.mjs +3 -3
- package/tests/markdown_line_endings.mjs +2 -2
- package/tests/me_streak_leaderboard_queries.mjs +193 -0
- package/tests/membership_kind_lockstep.mjs +1 -1
- package/tests/memory_isolation.mjs +16 -8
- package/tests/memory_map.mjs +2 -2
- package/tests/memory_pull.mjs +33 -25
- package/tests/merge_driver_register.mjs +3 -3
- package/tests/migration_allocation.mjs +2 -2
- package/tests/migration_namespace.mjs +1 -1
- package/tests/migrations_forward_safe.mjs +1 -1
- package/tests/mingle.mjs +1 -1
- package/tests/mirror_lineage_fulltree.mjs +3 -3
- package/tests/mirror_lineage_proof.mjs +2 -2
- package/tests/mirror_redact.mjs +4 -4
- package/tests/missing_dep_classify.mjs +3 -3
- package/tests/module-scope-map.mjs +22 -22
- package/tests/module_api_lazy.mjs +1 -1
- package/tests/module_assess_docs.mjs +2 -2
- package/tests/module_assess_installs.mjs +3 -3
- package/tests/module_assess_price_parity.mjs +5 -5
- package/tests/module_assess_score.mjs +5 -5
- package/tests/module_assess_security.mjs +4 -4
- package/tests/module_assess_tests.mjs +3 -3
- package/tests/module_assessments_migration.mjs +1 -1
- package/tests/module_catalog.mjs +2 -2
- package/tests/module_cli.mjs +3 -3
- package/tests/module_entitlements.mjs +1 -1
- package/tests/module_error_counts.mjs +1 -1
- package/tests/module_install.mjs +4 -4
- package/tests/module_loader.mjs +3 -1
- package/tests/module_owned_tests.mjs +1 -1
- package/tests/module_release_channels.mjs +1 -1
- package/tests/module_store_howto.mjs +3 -3
- package/tests/module_store_listing.mjs +139 -2
- package/tests/module_store_publish.mjs +4 -4
- package/tests/module_store_publish_route.mjs +1 -1
- package/tests/module_store_reassess.mjs +1 -1
- package/tests/module_store_registry_migration.mjs +1 -1
- package/tests/module_test_runner.mjs +3 -3
- package/tests/module_update.mjs +4 -4
- package/tests/module_upgrade_updates.mjs +1 -1
- package/tests/move_escalation.mjs +2 -2
- package/tests/nav_permission_atoms.mjs +3 -2
- package/tests/needs_rebase.mjs +7 -3
- package/tests/newcomer_floor.mjs +1 -1
- package/tests/newcomer_generator.mjs +48 -0
- package/tests/next_number.mjs +1 -1
- package/tests/no_artifact_escalation.mjs +3 -3
- package/tests/npm_release_where.mjs +1 -1
- package/tests/oauth_secret.mjs +2 -2
- package/tests/onboard.mjs +6 -6
- package/tests/onboarding_gate.mjs +2 -2
- package/tests/opt_in_skill_modules.mjs +3 -3
- package/tests/own_scope_guard.mjs +1 -1
- package/tests/own_session_revoke.mjs +4 -1
- package/tests/package_core.mjs +10 -11
- package/tests/page_inventory.mjs +5 -5
- package/tests/page_reader.mjs +7 -7
- package/tests/page_tweak_hold.mjs +6 -6
- package/tests/parallel-load.mjs +1 -1
- package/tests/paste_token_api_base.mjs +1 -1
- package/tests/paste_token_session_store.mjs +2 -2
- package/tests/pending_invite_purge_db.mjs +1 -1
- package/tests/permission_path.mjs +1 -1
- package/tests/pin_replay.mjs +1 -1
- package/tests/pin_write_key.mjs +7 -7
- package/tests/plain_cards.mjs +15 -15
- package/tests/pr_assign.mjs +1 -1
- package/tests/pre_push_hook.mjs +3 -3
- package/tests/preflight_checks.mjs +2 -2
- package/tests/prelaunch_gate.mjs +1 -1
- package/tests/privacy_matrix.mjs +1 -1
- package/tests/probe_cache.mjs +6 -6
- package/tests/profile_connections_ui.mjs +4 -3
- package/tests/profile_fields.mjs +11 -1
- package/tests/profile_privacy_owner_view.mjs +1 -1
- package/tests/profile_role_headline.mjs +10 -9
- package/tests/project_admin_console_model.mjs +1 -1
- package/tests/projects_hub.mjs +1 -1
- package/tests/projects_hub_cloud_hop.mjs +1 -1
- package/tests/promote_goal_id.mjs +6 -6
- package/tests/promotion_sweep.mjs +1 -1
- package/tests/provision.mjs +24 -24
- package/tests/provision_account_identity.mjs +2 -2
- package/tests/provision_byo_host.mjs +1 -1
- package/tests/provision_caddy_wiring.mjs +2 -2
- package/tests/provision_disconnect.mjs +2 -2
- package/tests/provision_dns_first.mjs +1 -1
- package/tests/provision_render.mjs +9 -9
- package/tests/provision_repo_private.mjs +3 -3
- package/tests/provision_resource_caps.mjs +5 -5
- package/tests/provision_restart.mjs +3 -3
- package/tests/provision_settings_apply.mjs +7 -7
- package/tests/provision_teardown_address.mjs +2 -2
- package/tests/provisioning_capacity.mjs +5 -5
- package/tests/provisioning_credential_preflight.mjs +1 -1
- package/tests/provisioning_disconnect.mjs +1 -1
- package/tests/provisioning_error_note_scope.mjs +4 -4
- package/tests/provisioning_paid_shape_gate.mjs +2 -2
- package/tests/provisioning_planet_physics.mjs +16 -0
- package/tests/provisioning_runner_drift_notice.mjs +2 -2
- package/tests/provisioning_settings_env.mjs +1 -1
- package/tests/pruned_lockfile_integrity.mjs +1 -1
- package/tests/public_mirror_export.mjs +1 -1
- package/tests/publish_integration_gate.mjs +2 -2
- package/tests/publish_manifest.mjs +6 -6
- package/tests/publish_watch.mjs +1 -1
- package/tests/push_path_brief.mjs +2 -2
- package/tests/raise.mjs +248 -0
- package/tests/rank_roles_audit.mjs +1 -1
- package/tests/rank_tier_single_source.mjs +2 -2
- package/tests/rate_limit_public.mjs +1 -1
- package/tests/read_default_meter.mjs +2 -2
- package/tests/read_session_export.mjs +1 -1
- package/tests/rebase_gate_set_aside.mjs +1 -1
- package/tests/recall_cli.mjs +1 -1
- package/tests/recall_corpus_health.mjs +3 -2
- package/tests/recall_hints.mjs +1 -1
- package/tests/recruiter_sliver_boundary.mjs +1 -1
- package/tests/redteam_patrol.mjs +2 -2
- package/tests/regrade_actual_minutes.mjs +2 -2
- package/tests/regrade_eligibility.mjs +2 -2
- package/tests/release_core.mjs +2 -2
- package/tests/release_notes.mjs +4 -4
- package/tests/rename_history_restraint.mjs +3 -3
- package/tests/rename_ledger_prose.mjs +6 -6
- package/tests/render_api.mjs +1 -1
- package/tests/render_check.mjs +4 -4
- package/tests/render_deploy.mjs +1 -1
- package/tests/repo_info_binding.mjs +1 -1
- package/tests/repo_map.mjs +5 -5
- package/tests/reward_mode_cost_plus_only.mjs +7 -3
- package/tests/reward_mode_surfacing.mjs +1 -1
- package/tests/role_responsibilities.mjs +1 -1
- package/tests/route_permission_check.mjs +1 -1
- package/tests/route_shadow_guard.mjs +1 -1
- package/tests/route_validation.mjs +1 -1
- package/tests/routine_capture_kind.mjs +6 -6
- package/tests/routine_schedule.mjs +9 -9
- package/tests/run_routine.mjs +5 -5
- package/tests/run_routine_two_root.mjs +5 -5
- package/tests/runner_drift.mjs +17 -17
- package/tests/sandbox_stage.mjs +5 -5
- package/tests/scope_map_guard.mjs +7 -7
- package/tests/scouting_owner_access_and_reach.mjs +1 -1
- package/tests/scripts_gds_forwarders.mjs +224 -0
- package/tests/scrubber_corpus.mjs +2 -2
- package/tests/seam_wiring_guard.mjs +1 -1
- package/tests/search_ingest.mjs +2 -2
- package/tests/search_ingest_db.mjs +1 -1
- package/tests/search_ingest_nul.mjs +6 -6
- package/tests/seed_verify_criteria.mjs +3 -3
- package/tests/sequence.mjs +3 -3
- package/tests/served_paths_shipped.mjs +3 -3
- package/tests/session_506_regression.mjs +1 -1
- package/tests/session_accessibility.mjs +1 -1
- package/tests/session_caps.mjs +1 -1
- package/tests/session_cost.mjs +1 -1
- package/tests/session_digest.mjs +2 -2
- package/tests/session_eval.mjs +6 -6
- package/tests/session_index.mjs +1 -1
- package/tests/session_records.mjs +4 -4
- package/tests/session_rename_fallback.mjs +2 -2
- package/tests/session_reward_on_land.mjs +7 -149
- package/tests/session_reward_on_land_db.mjs +191 -0
- package/tests/session_reward_reconcile.mjs +6 -88
- package/tests/session_reward_reconcile_db.mjs +132 -0
- package/tests/session_transcript.mjs +1 -1
- package/tests/sessions_kit_pager.mjs +2 -1
- package/tests/setup_device_flow_fallback.mjs +2 -2
- package/tests/setup_smoke.mjs +12 -5
- package/tests/setup_status_facts.mjs +54 -12
- package/tests/ship_autolinkify.mjs +2 -2
- package/tests/ship_automerge_injection.mjs +1 -1
- package/tests/ship_base_flag.mjs +1 -1
- package/tests/ship_broadcast_routing.mjs +1 -1
- package/tests/ship_broadcast_server.mjs +2 -2
- package/tests/ship_builder_model.mjs +1 -1
- package/tests/ship_cannot_lie.mjs +9 -9
- package/tests/ship_card.mjs +2 -2
- package/tests/ship_ci_deploy.mjs +7 -7
- package/tests/ship_error_shape.mjs +1 -1
- package/tests/ship_land_ci_not_started.mjs +3 -3
- package/tests/ship_land_conflict.mjs +3 -3
- package/tests/ship_land_proof.mjs +3 -3
- package/tests/ship_land_red_pr.mjs +5 -5
- package/tests/ship_merge_gate.mjs +14 -14
- package/tests/ship_mode.mjs +1 -1
- package/tests/ship_mode_first_ship.mjs +4 -4
- package/tests/ship_mode_hands_off.mjs +8 -8
- package/tests/ship_post_land_verify.mjs +1 -1
- package/tests/ship_preflight.mjs +19 -19
- package/tests/ship_premerge.mjs +1 -1
- package/tests/ship_publish_error.mjs +2 -2
- package/tests/ship_push_diagnosis.mjs +1 -1
- package/tests/ship_regen_copy_inventory.mjs +3 -3
- package/tests/ship_resume.mjs +4 -4
- package/tests/ship_smoke_gate.mjs +1 -1
- package/tests/ship_upload_skip.mjs +1 -1
- package/tests/ship_upstream_deletion.mjs +1 -1
- package/tests/ship_vendored_instance.mjs +8 -8
- package/tests/ship_visual_regrade.mjs +3 -3
- package/tests/ship_zero_commit.mjs +1 -1
- package/tests/skill_docs_unavailable_regrade.mjs +3 -3
- package/tests/skill_friction_kind.mjs +1 -1
- package/tests/skill_grade_recover.mjs +1 -1
- package/tests/skill_grader_health.mjs +1 -1
- package/tests/skill_lint.mjs +1 -1
- package/tests/skill_menu_ruling.mjs +1 -1
- package/tests/skill_preflight.mjs +7 -7
- package/tests/skip_is_not_pass.mjs +22 -1
- package/tests/smoke_dependencies_witness.mjs +2 -2
- package/tests/smoke_preflight.mjs +1 -1
- package/tests/smoke_target.mjs +2 -2
- package/tests/smoke_write_contract.mjs +2 -2
- package/tests/sound_player.mjs +8 -8
- package/tests/source_text_test_ratchet.mjs +97 -0
- package/tests/speciality_corpus_scope.mjs +1 -1
- package/tests/speciality_session_skills.mjs +1 -1
- package/tests/sso_checkin_legacy_field_gone.mjs +4 -2
- package/tests/stale_timer.mjs +3 -3
- package/tests/stale_worktrees.mjs +1 -1
- package/tests/start_env_guard.mjs +1 -1
- package/tests/start_goal_first.mjs +3 -3
- package/tests/start_inbox_count.mjs +1 -1
- package/tests/start_rebase_warning.mjs +1 -1
- package/tests/status_default_version.mjs +3 -3
- package/tests/status_mirror_sync.mjs +1 -1
- package/tests/status_page_no_dead_uptime.mjs +80 -0
- package/tests/stop_refcheck.mjs +1 -1
- package/tests/strand_watch.mjs +1 -1
- package/tests/stranded_rows.mjs +1 -1
- package/tests/stuck_detector.mjs +14 -14
- package/tests/sweep_app_account.mjs +3 -3
- package/tests/task_cli.mjs +2 -2
- package/tests/task_detail_ui.mjs +11 -1
- package/tests/task_discipline_required.mjs +2 -2
- package/tests/task_list_paging.mjs +1 -1
- package/tests/task_visual_slots.mjs +2 -2
- package/tests/terms_acceptance.mjs +1 -1
- package/tests/terms_grandfather_db.mjs +1 -1
- package/tests/test_path_guard.mjs +1 -1
- package/tests/triage_development.mjs +1 -1
- package/tests/tweak_batch_apply.mjs +2 -2
- package/tests/tweak_land_heal.mjs +3 -3
- package/tests/tweak_unattended.mjs +3 -3
- package/tests/ui_design_skills.mjs +2 -2
- package/tests/unit_report_status.mjs +2 -2
- package/tests/unit_runner_serial.mjs +2 -2
- package/tests/unit_runner_teardown_abort.mjs +1 -1
- package/tests/update_channel.mjs +2 -2
- package/tests/update_channel_db.mjs +4 -4
- package/tests/update_subscription_engine.mjs +26 -26
- package/tests/update_sweep_home.mjs +14 -14
- package/tests/upgrade.mjs +11 -11
- package/tests/upgrade_artist_gate.mjs +4 -4
- package/tests/upgrade_commit_identity.mjs +2 -2
- package/tests/upgrade_migrate.mjs +7 -7
- package/tests/upgrade_operator.mjs +2 -2
- package/tests/upgrade_outcome.mjs +2 -2
- package/tests/upgrade_persist_pin.mjs +5 -5
- package/tests/upkeep_home.mjs +1 -1
- package/tests/version_close.mjs +2 -2
- package/tests/version_close_cli.mjs +2 -2
- package/tests/version_close_route.mjs +1 -1
- package/tests/version_literals.mjs +23 -23
- package/tests/visual_review.mjs +5 -5
- package/tests/wedge_remedy.mjs +5 -5
- package/tests/welcome_boot.mjs +116 -0
- package/tests/welcome_boot_browser.mjs +271 -0
- package/tests/wizard_born_first_board.mjs +3 -3
- package/tests/wizard_demo.mjs +1 -1
- package/tests/wizard_one_page.mjs +4 -3
- package/tests/wizard_physics.mjs +3 -1
- package/tests/wizard_physics_more.mjs +42 -3
- package/tests/work_title_wrap.mjs +1 -1
- package/tests/workflow_exec_paths.mjs +6 -6
- package/tests/worktree_claim_guard.mjs +1 -1
- package/tests/worktree_helper.mjs +2 -2
- package/tests/write_validation_gaps.mjs +3 -3
- package/scripts/gds/api.sh +0 -6
- package/scripts/gds/audit-exports.js +0 -128
- package/scripts/gds/resolve-skill-model.js +0 -57
- package/scripts/gds/security-baseline-check.sh +0 -180
- package/scripts/gds/spike-task-map.js +0 -899
- package/scripts/status-probe.mjs +0 -213
- package/src/bongos/uptime-poller.js +0 -93
- package/tests/government_fold_bench.mjs +0 -50
- package/tests/spike_task_map.mjs +0 -422
- package/tests/status-probe.mjs +0 -89
- /package/{scripts/gds → modules/raise}/CLAUDE.md +0 -0
- /package/scripts/{gds → bongos}/cloudbongos-token-isolation.conf +0 -0
- /package/scripts/{gds → bongos}/discipline-modes.json +0 -0
- /package/scripts/{gds → bongos}/retired-core-skills.json +0 -0
package/tests/cli_sessions.mjs
CHANGED
|
@@ -26,7 +26,7 @@ import { spawnSync } from 'node:child_process';
|
|
|
26
26
|
const REPO_ROOT = path.join(path.dirname(fileURLToPath(import.meta.url)), '..');
|
|
27
27
|
const require = createRequire(import.meta.url);
|
|
28
28
|
const ic = require(path.join(REPO_ROOT, 'src', 'instance-config.js'));
|
|
29
|
-
const lib = require(path.join(REPO_ROOT, 'scripts', '
|
|
29
|
+
const lib = require(path.join(REPO_ROOT, 'scripts', 'bongos', 'cli-lib.js'));
|
|
30
30
|
|
|
31
31
|
// SESSION_PATH is frozen at module load from os.homedir(), so anything touching the real save path
|
|
32
32
|
// runs in a child with its own home directory.
|
|
@@ -97,7 +97,7 @@ function inSandbox(body) {
|
|
|
97
97
|
+ ' — this platform does not take the home override, and writing here would clobber the real session store.');
|
|
98
98
|
process.exit(2);
|
|
99
99
|
}
|
|
100
|
-
const lib=require(R+'/scripts/
|
|
100
|
+
const lib=require(R+'/scripts/bongos/cli-lib.js');
|
|
101
101
|
const ic=require(R+'/src/instance-config.js');
|
|
102
102
|
const fs=require('node:fs'), path=require('node:path');
|
|
103
103
|
(async()=>{ ${body} })().catch((e)=>{ console.error('ERR '+e.message); process.exit(1); });`;
|
|
@@ -136,7 +136,7 @@ test('the store anchor is FIXED, not brand-derived — that is the whole fix', (
|
|
|
136
136
|
// A brand-derived anchor is what split in-repo from standalone in the first place. If someone
|
|
137
137
|
// "helpfully" routes this through configHome() again, the two diverge and the bug is back.
|
|
138
138
|
assert.equal(lib.sessionStoreDir(), path.join(os.homedir(), '.config', ic.FALLBACK_DIR, 'instances'));
|
|
139
|
-
const src = fs.readFileSync(path.join(REPO_ROOT, 'scripts', '
|
|
139
|
+
const src = fs.readFileSync(path.join(REPO_ROOT, 'scripts', 'bongos', 'cli-lib.js'), 'utf8');
|
|
140
140
|
const body = src.slice(src.indexOf('function sessionStoreDir()'));
|
|
141
141
|
const fn = body.slice(0, body.indexOf('\n}') + 2);
|
|
142
142
|
assert.ok(!/configHome|configDirName|safeBrand/.test(fn), `sessionStoreDir must not read the brand:\n${fn}`);
|
|
@@ -255,7 +255,7 @@ test('a corrupt store entry is skipped, never fatal', () => {
|
|
|
255
255
|
// ── 3. Switching back ───────────────────────────────────────────────────────────────────────
|
|
256
256
|
|
|
257
257
|
test('login VERIFIES a stored token before trusting it, and can be forced past', () => {
|
|
258
|
-
const src = fs.readFileSync(path.join(REPO_ROOT, 'scripts', '
|
|
258
|
+
const src = fs.readFileSync(path.join(REPO_ROOT, 'scripts', 'bongos', 'login.js'), 'utf8');
|
|
259
259
|
// A stored token may be expired or revoked. Reinstating one unchecked would leave the builder
|
|
260
260
|
// "signed in" to a session every later command then fails on.
|
|
261
261
|
assert.match(src, /loadStoredSession\(base\)/);
|
|
@@ -265,7 +265,7 @@ test('login VERIFIES a stored token before trusting it, and can be forced past',
|
|
|
265
265
|
});
|
|
266
266
|
|
|
267
267
|
test('login names the other instances and how to move between them', () => {
|
|
268
|
-
const src = fs.readFileSync(path.join(REPO_ROOT, 'scripts', '
|
|
268
|
+
const src = fs.readFileSync(path.join(REPO_ROOT, 'scripts', 'bongos', 'login.js'), 'utf8');
|
|
269
269
|
assert.match(src, /function logOtherInstances/);
|
|
270
270
|
assert.match(src, /Also signed in to/);
|
|
271
271
|
// Terminal reader: no slash command may appear in that guidance (task 1003730's rule).
|
package/tests/cli_surface.mjs
CHANGED
|
@@ -17,7 +17,7 @@ import { createRequire } from 'node:module';
|
|
|
17
17
|
|
|
18
18
|
const REPO_ROOT = path.join(path.dirname(fileURLToPath(import.meta.url)), '..');
|
|
19
19
|
const require = createRequire(import.meta.url);
|
|
20
|
-
const surface = require(path.join(REPO_ROOT, 'scripts', '
|
|
20
|
+
const surface = require(path.join(REPO_ROOT, 'scripts', 'bongos', 'surface.js'));
|
|
21
21
|
|
|
22
22
|
const AGENT_ENV = {};
|
|
23
23
|
const TERM_ENV = { BONGOS_SURFACE: 'terminal' };
|
|
@@ -40,7 +40,7 @@ test('terminal is opt-in, case- and space-insensitive', () => {
|
|
|
40
40
|
test('the surface is never inferred from isTTY', () => {
|
|
41
41
|
// A Claude Code session's stdout is not a TTY either, so TTY-sniffing would classify every
|
|
42
42
|
// agent run as a terminal and break the card contract. The module must not consult it.
|
|
43
|
-
const src = require('node:fs').readFileSync(path.join(REPO_ROOT, 'scripts', '
|
|
43
|
+
const src = require('node:fs').readFileSync(path.join(REPO_ROOT, 'scripts', 'bongos', 'surface.js'), 'utf8');
|
|
44
44
|
const code = src.split('\n').filter((l) => !l.trim().startsWith('//')).join('\n');
|
|
45
45
|
assert.ok(!/isTTY/.test(code), 'surface.js must not branch on isTTY');
|
|
46
46
|
});
|
|
@@ -93,7 +93,7 @@ test('no trailing whitespace on a terminal row', () => {
|
|
|
93
93
|
// ── 3. The call sites ───────────────────────────────────────────────────────────────────────
|
|
94
94
|
|
|
95
95
|
test('start.js routes every reader-facing idiom through the surface', () => {
|
|
96
|
-
const src = require('node:fs').readFileSync(path.join(REPO_ROOT, 'scripts', '
|
|
96
|
+
const src = require('node:fs').readFileSync(path.join(REPO_ROOT, 'scripts', 'bongos', 'start.js'), 'utf8');
|
|
97
97
|
const code = src.split('\n').filter((l) => !l.trim().startsWith('//')).join('\n');
|
|
98
98
|
|
|
99
99
|
// Two exemptions, both agent-only BY CONSTRUCTION:
|
|
@@ -114,7 +114,7 @@ test('start.js routes every reader-facing idiom through the surface', () => {
|
|
|
114
114
|
});
|
|
115
115
|
|
|
116
116
|
test('the card directive is suppressed for a terminal reader', () => {
|
|
117
|
-
const src = require('node:fs').readFileSync(path.join(REPO_ROOT, 'scripts', '
|
|
117
|
+
const src = require('node:fs').readFileSync(path.join(REPO_ROOT, 'scripts', 'bongos', 'start.js'), 'utf8');
|
|
118
118
|
assert.match(
|
|
119
119
|
src,
|
|
120
120
|
/function emitCardDirective\(form\) \{[\s\S]{0,400}?surface\.isTerminal\(\)\) return;/,
|
|
@@ -141,7 +141,7 @@ test('the skills still invoke the scripts directly, which is what keeps agents o
|
|
|
141
141
|
// surface and the card contract would break with no test failing anywhere else.
|
|
142
142
|
const fs = require('node:fs');
|
|
143
143
|
const skill = fs.readFileSync(path.join(REPO_ROOT, '.claude', 'skills', 'builder-start', 'SKILL.md'), 'utf8');
|
|
144
|
-
assert.match(skill, /node scripts\/gds\/start\.js/, 'builder-start must call the script directly');
|
|
144
|
+
assert.match(skill, /node scripts\/(?:gds|bongos)\/start\.js/, 'builder-start must call the script directly');
|
|
145
145
|
});
|
|
146
146
|
|
|
147
147
|
// ── 4. The rest of the shipped CLI, not just start.js (task 1003730) ────────────────────────
|
|
@@ -156,12 +156,12 @@ import fs from 'node:fs';
|
|
|
156
156
|
// Every script a TERMINAL reader can actually invoke, read out of bin/bongos.js's verb
|
|
157
157
|
// table so a newly-added verb is covered the day it lands.
|
|
158
158
|
//
|
|
159
|
-
// This used to read the FILES manifest of scripts/
|
|
159
|
+
// This used to read the FILES manifest of scripts/bongos/build-cli-package.js. That package
|
|
160
160
|
// (@cloudbongos/cli) was retired with the manifest (task 1004144), but the rule it fed
|
|
161
161
|
// did not go with it: a script that prints a `/builder-*` slash command to someone in a
|
|
162
162
|
// terminal is telling them to run something they do not have.
|
|
163
163
|
//
|
|
164
|
-
// The verb table is the right heir, not `readdirSync` of scripts/
|
|
164
|
+
// The verb table is the right heir, not `readdirSync` of scripts/bongos/. What made the old
|
|
165
165
|
// set meaningful was never "these files were published" — it was "a terminal user can
|
|
166
166
|
// reach these", and the dispatcher's VERBS is exactly that set today. Scanning the whole
|
|
167
167
|
// directory instead looks stricter and is actually a different test: it immediately
|
|
@@ -170,7 +170,7 @@ import fs from 'node:fs';
|
|
|
170
170
|
// findings imported into a packaging task rather than a stronger guard.
|
|
171
171
|
function shippedScripts() {
|
|
172
172
|
const src = fs.readFileSync(path.join(REPO_ROOT, 'bin', 'bongos.js'), 'utf8');
|
|
173
|
-
const out = [...new Set([...src.matchAll(/script:\s*'([A-Za-z0-9._-]+\.js)'/g)].map((m) => `scripts/
|
|
173
|
+
const out = [...new Set([...src.matchAll(/script:\s*'([A-Za-z0-9._-]+\.js)'/g)].map((m) => `scripts/bongos/${m[1]}`))].sort();
|
|
174
174
|
// A scan that matches nothing passes every assertion below for free.
|
|
175
175
|
assert.ok(out.length > 10, `only ${out.length} verb script(s) found in bin/bongos.js — the scan is reading the wrong shape`);
|
|
176
176
|
return out;
|
|
@@ -180,7 +180,7 @@ function shippedScripts() {
|
|
|
180
180
|
// everything it wrote. HOME is pointed at nothing so no real session can satisfy requireSession.
|
|
181
181
|
function runGuidance(fn, env) {
|
|
182
182
|
const code =
|
|
183
|
-
`const l=require(${JSON.stringify(path.join(REPO_ROOT, 'scripts', '
|
|
183
|
+
`const l=require(${JSON.stringify(path.join(REPO_ROOT, 'scripts', 'bongos', 'cli-lib.js'))});` +
|
|
184
184
|
`Promise.resolve(l[${JSON.stringify(fn)}]()).catch(()=>{});`;
|
|
185
185
|
// HOME ALONE IS NOT ISOLATION ON WINDOWS (task 1003941). cli-lib resolves the
|
|
186
186
|
// session through os.homedir(), which on win32 reads USERPROFILE and ignores
|
|
@@ -225,7 +225,7 @@ test('no guidance path speaks slash commands to a terminal reader', () => {
|
|
|
225
225
|
const out = guidanceOutput(fn, { BONGOS_SURFACE: 'terminal' });
|
|
226
226
|
const leaks = [...out.matchAll(/\/builder-[a-z-]+/g)].map((m) => m[0]);
|
|
227
227
|
assert.deepEqual(leaks, [], `${fn} leaked to a terminal reader: ${leaks.join(', ')}\n${out}`);
|
|
228
|
-
assert.ok(!/node scripts\/gds\//.test(out), `${fn} told a terminal reader to run a repo script:\n${out}`);
|
|
228
|
+
assert.ok(!/node scripts\/(?:gds|bongos)\//.test(out), `${fn} told a terminal reader to run a repo script:\n${out}`);
|
|
229
229
|
}
|
|
230
230
|
});
|
|
231
231
|
|
|
@@ -241,10 +241,10 @@ test('every shipped script that names a slash command routes it through the surf
|
|
|
241
241
|
// branches, require that any shipped file printing one also consults the switch — and pin the
|
|
242
242
|
// set, so a NEW unguarded file fails here instead of on a newcomer's laptop.
|
|
243
243
|
const ALLOWED = new Set([
|
|
244
|
-
'scripts/
|
|
245
|
-
'scripts/
|
|
246
|
-
'scripts/
|
|
247
|
-
'scripts/
|
|
244
|
+
'scripts/bongos/cli-lib.js', // agent side of the three branches, proven above
|
|
245
|
+
'scripts/bongos/setup.js', // re-run + newcomer-path lines, asserted below
|
|
246
|
+
'scripts/bongos/surface.js', // the switch itself
|
|
247
|
+
'scripts/bongos/start.js', // section 3's documented agent-only exemptions
|
|
248
248
|
]);
|
|
249
249
|
const offenders = [];
|
|
250
250
|
for (const rel of shippedScripts()) {
|
|
@@ -260,7 +260,7 @@ test('every shipped script that names a slash command routes it through the surf
|
|
|
260
260
|
});
|
|
261
261
|
|
|
262
262
|
test('setup.js routes its newcomer path and re-run lines through the surface', () => {
|
|
263
|
-
const src = fs.readFileSync(path.join(REPO_ROOT, 'scripts', '
|
|
263
|
+
const src = fs.readFileSync(path.join(REPO_ROOT, 'scripts', 'bongos', 'setup.js'), 'utf8');
|
|
264
264
|
// The completion footer is the worst possible place for a wrong command: it is the first thing
|
|
265
265
|
// a brand-new builder reads after registering.
|
|
266
266
|
assert.match(src, /Survey work:\s*\$\{surfaceAction\('start'\)\}/, 'the newcomer path must use surfaceAction');
|
|
@@ -39,7 +39,7 @@ function t(name, fn) {
|
|
|
39
39
|
console.log('paste-token.js merge invariants:');
|
|
40
40
|
|
|
41
41
|
function mergeSession(existing, freshMe, freshToken, apiBase) {
|
|
42
|
-
// MUST match the implementation in scripts/
|
|
42
|
+
// MUST match the implementation in scripts/bongos/paste-token.js (function main,
|
|
43
43
|
// step 3). If the script changes, this test will diverge — that's the point.
|
|
44
44
|
return {
|
|
45
45
|
...existing,
|
|
@@ -164,7 +164,7 @@ t('returns a paste_command field the portal can show verbatim', () => {
|
|
|
164
164
|
|
|
165
165
|
// The regression this pins (task 1003961): paste_command is composed on the SERVER
|
|
166
166
|
// and run on an INSTANCE, where the core is an installed dependency and there is no
|
|
167
|
-
// `scripts/
|
|
167
|
+
// `scripts/bongos/` directory. Emitting a repo-relative script path handed every
|
|
168
168
|
// instance builder a command naming a file they did not have. A verb has no such
|
|
169
169
|
// coupling — `bongos` is on PATH wherever the core is installed.
|
|
170
170
|
t('paste_command names a CLI VERB, never a filesystem path', () => {
|
|
@@ -16,7 +16,7 @@ import { strict as assert } from 'node:assert';
|
|
|
16
16
|
import { createRequire } from 'node:module';
|
|
17
17
|
|
|
18
18
|
const require = createRequire(import.meta.url);
|
|
19
|
-
const { checkClientBaseUrl, scanPages } = require('../scripts/
|
|
19
|
+
const { checkClientBaseUrl, scanPages } = require('../scripts/bongos/client-baseurl-guard.js');
|
|
20
20
|
|
|
21
21
|
let passed = 0;
|
|
22
22
|
let failed = 0;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
//
|
|
3
3
|
// The generated typed client is served to classic <script> web pages at
|
|
4
4
|
// /lib/bongos-client.js (task 1996 / R09). This guards that serve-internal
|
|
5
|
-
// actually serves the
|
|
5
|
+
// actually serves the browser-global build there — with the right
|
|
6
6
|
// MIME + the BongosClient global — so the hall/status pages can consume the same
|
|
7
7
|
// client the CLI uses. serve-internal is DB-free (the pg pool connects lazily),
|
|
8
8
|
// so we mount it on a throwaway express app and hit the route over loopback.
|
|
@@ -13,6 +13,7 @@ import { test } from 'node:test';
|
|
|
13
13
|
import assert from 'node:assert/strict';
|
|
14
14
|
import { createRequire } from 'node:module';
|
|
15
15
|
import fs from 'node:fs';
|
|
16
|
+
import os from 'node:os';
|
|
16
17
|
import path from 'node:path';
|
|
17
18
|
import { fileURLToPath } from 'node:url';
|
|
18
19
|
|
|
@@ -34,14 +35,44 @@ async function withServer(fn) {
|
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
|
|
38
|
+
// task 1004866: the client is gitignored, so a fresh checkout has no file on disk. The
|
|
39
|
+
// route serves the packaged file when there is one, else a client generated from the
|
|
40
|
+
// live routes — so the expected bytes are whichever of those this checkout resolves to.
|
|
41
|
+
const BUNDLE = path.join(ROOT, 'clients/bongos-client/bongos-client.global.js');
|
|
42
|
+
|
|
43
|
+
test('/lib/bongos-client.js serves the browser-global build (file, else generated)', async () => {
|
|
44
|
+
const { generateClientBundleJs } = require('../src/bongos/serve-internal.js');
|
|
38
45
|
await withServer(async (base) => {
|
|
39
46
|
const res = await fetch(base + '/lib/bongos-client.js');
|
|
40
47
|
assert.equal(res.status, 200);
|
|
41
48
|
assert.match(res.headers.get('content-type') || '', /javascript/);
|
|
42
49
|
const body = await res.text();
|
|
43
|
-
const
|
|
44
|
-
assert.equal(body,
|
|
50
|
+
const expected = fs.existsSync(BUNDLE) ? fs.readFileSync(BUNDLE, 'utf8') : generateClientBundleJs();
|
|
51
|
+
assert.equal(body, expected, 'served bytes must equal the resolved bundle (single source of truth)');
|
|
45
52
|
assert.match(body, /global\.BongosClient =/, 'bundle exposes window.BongosClient');
|
|
46
53
|
});
|
|
47
54
|
});
|
|
55
|
+
|
|
56
|
+
test('the generate tier is the same client the generators write (fresh checkout)', () => {
|
|
57
|
+
const { generateClientBundleJs } = require('../src/bongos/serve-internal.js');
|
|
58
|
+
const { buildApiArtifacts } = require('../scripts/bongos/api-artifacts.js');
|
|
59
|
+
assert.equal(generateClientBundleJs(), buildApiArtifacts()['clients/bongos-client/bongos-client.global.js']);
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
test('resolveClientBundleJs: absent file → generated; present → the file; all fail → empty', () => {
|
|
63
|
+
const { resolveClientBundleJs } = require('../src/bongos/serve-internal.js');
|
|
64
|
+
const tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'client-bundle-'));
|
|
65
|
+
try {
|
|
66
|
+
const missing = path.join(tmp, 'nope.js');
|
|
67
|
+
assert.equal(resolveClientBundleJs({ candidates: [missing], generate: () => 'GEN' }), 'GEN',
|
|
68
|
+
'a fresh checkout (no file) must fall through to in-process generation');
|
|
69
|
+
const present = path.join(tmp, 'bundle.js');
|
|
70
|
+
fs.writeFileSync(present, 'FILE');
|
|
71
|
+
assert.equal(resolveClientBundleJs({ candidates: [present], generate: () => 'GEN' }), 'FILE',
|
|
72
|
+
'a packaged file wins over generation');
|
|
73
|
+
assert.equal(resolveClientBundleJs({ candidates: [missing], generate: () => { throw new Error('x'); } }), '',
|
|
74
|
+
'a failing generator yields empty (→ 404), never a throw at boot');
|
|
75
|
+
} finally {
|
|
76
|
+
fs.rmSync(tmp, { recursive: true, force: true });
|
|
77
|
+
}
|
|
78
|
+
});
|
|
@@ -43,7 +43,7 @@ test('R74: the vanilla pack carries the Cloud Bongos LOOK (chrome palette, Manro
|
|
|
43
43
|
assert.match(c.theme.fonts.display, /Manrope/);
|
|
44
44
|
assert.match(c.theme.fonts.body, /Manrope/);
|
|
45
45
|
assert.ok(c.theme.fonts.links.some((l) => /JetBrains\+Mono/.test(l) && /Manrope/.test(l)), 'loads Manrope + JetBrains Mono');
|
|
46
|
-
assert.match(c.theme.favicon, /circle/, '
|
|
46
|
+
assert.match(c.theme.favicon, /circle/, 'the moon-in-the-gap favicon (circles), not the Greek Α');
|
|
47
47
|
assert.doesNotMatch(c.theme.favicon, /font-family='serif'>Α/);
|
|
48
48
|
// the backdrop is the TOKEN, not a hex: the served body follows the mode,
|
|
49
49
|
// because the sheets' dark blocks are (0,2,0) and outrank the injected :root.
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
// under test.
|
|
13
13
|
//
|
|
14
14
|
// Real-DB integration test: self-skips without a reachable Postgres; in the
|
|
15
|
-
// INTEGRATION set (scripts/
|
|
15
|
+
// INTEGRATION set (scripts/bongos/run-unit-tests.js) so the DB-free lane never runs it.
|
|
16
16
|
//
|
|
17
17
|
// Run: DATABASE_URL=... node tests/community_leaderboard_db.mjs
|
|
18
18
|
|
package/tests/conductor.mjs
CHANGED
|
@@ -208,34 +208,34 @@ test('outside-touches does NOT fire when the claim has empty touches[] (fresh ta
|
|
|
208
208
|
// named. Under the pool this fired with ONE file; it must name both.
|
|
209
209
|
test('outside-touches ignores a CONCURRENT claim\'s touches[] — the under-report', () => {
|
|
210
210
|
const a = conductor.evaluateTriggers({
|
|
211
|
-
changedFiles: ['modules/hall-ui/public/studio.js', 'scripts/
|
|
211
|
+
changedFiles: ['modules/hall-ui/public/studio.js', 'scripts/bongos/ship.js', 'docs/adr/0280-x.md'],
|
|
212
212
|
prompt: 'edits',
|
|
213
213
|
activeClaims: [
|
|
214
214
|
{ task_id: 1, title: 'mine', touches: ['modules/hall-ui/public/studio.js'], worktree_name: 'task-1' },
|
|
215
|
-
{ task_id: 2, title: 'theirs', touches: ['scripts/
|
|
215
|
+
{ task_id: 2, title: 'theirs', touches: ['scripts/bongos/', 'src/bongos/', 'modules/', 'clients/'], worktree_name: 'task-2' },
|
|
216
216
|
],
|
|
217
217
|
worktree: 'task-1',
|
|
218
218
|
});
|
|
219
219
|
const outside = a.find((x) => x.id === 'outside-touches');
|
|
220
220
|
assert.ok(outside, 'expected outside-touches advisory');
|
|
221
221
|
// studio.js is covered by MY claim; the other two are not covered by anything
|
|
222
|
-
// of mine. Under the pool, `modules/` and `scripts/
|
|
222
|
+
// of mine. Under the pool, `modules/` and `scripts/bongos/` swallowed them and
|
|
223
223
|
// the line read "1 changed file(s)".
|
|
224
224
|
assert.match(outside.text, /^2 changed file\(s\)/, 'both uncovered files must be counted, not one');
|
|
225
225
|
});
|
|
226
226
|
|
|
227
227
|
test('outside-touches counts only what MY claim fails to cover', () => {
|
|
228
228
|
const a = conductor.evaluateTriggers({
|
|
229
|
-
changedFiles: ['modules/hall-ui/public/studio.js', 'scripts/
|
|
229
|
+
changedFiles: ['modules/hall-ui/public/studio.js', 'scripts/bongos/ship.js', 'docs/adr/0280-x.md'],
|
|
230
230
|
prompt: 'edits',
|
|
231
231
|
activeClaims: [
|
|
232
232
|
{ task_id: 1, title: 'mine', touches: ['modules/hall-ui/public/studio.js'], worktree_name: 'task-1' },
|
|
233
|
-
{ task_id: 2, title: 'theirs', touches: ['scripts/
|
|
233
|
+
{ task_id: 2, title: 'theirs', touches: ['scripts/bongos/', 'modules/'], worktree_name: 'task-2' },
|
|
234
234
|
],
|
|
235
235
|
worktree: 'task-1',
|
|
236
236
|
});
|
|
237
237
|
const outside = a.find((x) => x.id === 'outside-touches');
|
|
238
|
-
assert.match(outside.text, /scripts\/gds\/ship\.js/, "the other claim's directory must not cover my diff");
|
|
238
|
+
assert.match(outside.text, /scripts\/(?:gds|bongos)\/ship\.js/, "the other claim's directory must not cover my diff");
|
|
239
239
|
assert.match(outside.text, /docs\/adr\/0280-x\.md/);
|
|
240
240
|
assert.doesNotMatch(outside.text, /studio\.js/, 'my own declared file is still covered');
|
|
241
241
|
});
|
|
@@ -245,10 +245,10 @@ test('outside-touches counts only what MY claim fails to cover', () => {
|
|
|
245
245
|
// number derived from another claim's touches[] is the defect, not a degraded
|
|
246
246
|
// version of it. Trigger 1 still covers having no claim at all.
|
|
247
247
|
test('outside-touches is SILENT when no claim is bound to this worktree', () => {
|
|
248
|
-
const claims = [{ task_id: 2, title: 'theirs', touches: ['scripts/
|
|
248
|
+
const claims = [{ task_id: 2, title: 'theirs', touches: ['scripts/bongos/'], worktree_name: 'task-2' }];
|
|
249
249
|
for (const worktree of ['cloud-bongos', null, undefined, '']) {
|
|
250
250
|
const a = conductor.evaluateTriggers({
|
|
251
|
-
changedFiles: ['server.js', 'scripts/
|
|
251
|
+
changedFiles: ['server.js', 'scripts/bongos/ship.js'], prompt: 'edits', activeClaims: claims, worktree,
|
|
252
252
|
});
|
|
253
253
|
assert.ok(!ids(a).includes('outside-touches'), `unbound tree (${String(worktree)}) must not borrow another claim's touches[]`);
|
|
254
254
|
}
|
|
@@ -436,7 +436,7 @@ test('render: showDispatch=false emits the milder already-reviewed form', () =>
|
|
|
436
436
|
});
|
|
437
437
|
|
|
438
438
|
// pickSpecialists lives in the dispatcher CLI (pure, exported).
|
|
439
|
-
const dispatch = require('../scripts/
|
|
439
|
+
const dispatch = require('../scripts/bongos/conductor-dispatch.js');
|
|
440
440
|
|
|
441
441
|
test('pickSpecialists: hacker when a security surface is in the diff', () => {
|
|
442
442
|
assert.deepEqual(dispatch.pickSpecialists(['src/bongos/routes/tasks.js']), ['hacker']);
|
|
@@ -453,9 +453,9 @@ test('pickSpecialists: nothing auto-picked when no security surface changed', ()
|
|
|
453
453
|
test('bestMatchingClaim: picks the claim whose touches[] best overlap the diff', () => {
|
|
454
454
|
const claims = [
|
|
455
455
|
{ task_id: 415, touches: ['migrations/'] }, // 0 overlap
|
|
456
|
-
{ task_id: 439, touches: ['scripts/
|
|
456
|
+
{ task_id: 439, touches: ['scripts/bongos/conductor-dispatch.js', '.claude/hooks/conductor.js'] }, // 2
|
|
457
457
|
];
|
|
458
|
-
const changed = ['scripts/
|
|
458
|
+
const changed = ['scripts/bongos/conductor-dispatch.js', '.claude/hooks/conductor.js'];
|
|
459
459
|
assert.equal(dispatch.bestMatchingClaim(claims, changed).task_id, 439);
|
|
460
460
|
});
|
|
461
461
|
|
|
@@ -493,7 +493,7 @@ const CLAIM_1003704 = {
|
|
|
493
493
|
task_id: '1003704',
|
|
494
494
|
title: 'C3b: rename gds-session.json and the gds_session cookie',
|
|
495
495
|
worktree_name: 'task-1003704',
|
|
496
|
-
touches: ['scripts/
|
|
496
|
+
touches: ['scripts/bongos/', 'src/bongos/', 'modules/', 'clients/'],
|
|
497
497
|
};
|
|
498
498
|
const CLAIM_1003829 = {
|
|
499
499
|
task_id: '1003829',
|
|
@@ -542,10 +542,10 @@ test('attribution: specificity beats breadth, so the honest touches[] no longer
|
|
|
542
542
|
|
|
543
543
|
test('attribution: volume still counts — a genuinely broad claim keeps its diff', () => {
|
|
544
544
|
// Specificity must not invert the heuristic: a rename touching fifty files
|
|
545
|
-
// under scripts/
|
|
546
|
-
const broad = { task_id: 'broad', touches: ['scripts/
|
|
547
|
-
const narrow = { task_id: 'narrow', touches: ['scripts/
|
|
548
|
-
const files = Array.from({ length: 50 }, (_, i) => `scripts/
|
|
545
|
+
// under scripts/bongos/ should not lose to a claim sharing one exact file.
|
|
546
|
+
const broad = { task_id: 'broad', touches: ['scripts/bongos/'] };
|
|
547
|
+
const narrow = { task_id: 'narrow', touches: ['scripts/bongos/one.js'] };
|
|
548
|
+
const files = Array.from({ length: 50 }, (_, i) => `scripts/bongos/f${i}.js`).concat('scripts/bongos/one.js');
|
|
549
549
|
assert.equal(dispatch.attributeClaim([narrow, broad], files, null).claim.task_id, 'broad');
|
|
550
550
|
});
|
|
551
551
|
|
|
@@ -687,7 +687,7 @@ test('selectAutonomousDispatch: GO + feed → picks rows[0] and shapes the claim
|
|
|
687
687
|
);
|
|
688
688
|
assert.equal(r.ok, true);
|
|
689
689
|
assert.equal(r.task.id, 458, 'takes the top (already-ordered, protected-filtered) row');
|
|
690
|
-
assert.equal(r.command, 'node scripts/
|
|
690
|
+
assert.equal(r.command, 'node scripts/bongos/claim.js 458');
|
|
691
691
|
assert.match(r.directive, /#458/);
|
|
692
692
|
assert.match(r.directive, /\/builder-ship/);
|
|
693
693
|
});
|
|
@@ -720,7 +720,7 @@ test('autoDispatch: GO → fetches the autonomous feed and emits a directive', a
|
|
|
720
720
|
assert.deepEqual(feedOpts, { fit: 'autonomous' }, 'asks for the protected-filtered autonomous feed');
|
|
721
721
|
assert.equal(out.ok, true);
|
|
722
722
|
assert.equal(out.task.id, 458);
|
|
723
|
-
assert.equal(out.command, 'node scripts/
|
|
723
|
+
assert.equal(out.command, 'node scripts/bongos/claim.js 458');
|
|
724
724
|
});
|
|
725
725
|
|
|
726
726
|
test('autoDispatch: a thrown precheck degrades to NO-GO (fail-safe, no dispatch)', async () => {
|
|
@@ -139,7 +139,7 @@ test('the otb-regen driver is pinned to the server checkout, not the clone', asy
|
|
|
139
139
|
await cr.resolveBranchConflicts({ branch: 'claude/wt-1' }, deps);
|
|
140
140
|
const script = deps._regOpts[0] && deps._regOpts[0].driverScript;
|
|
141
141
|
assert.ok(script, 'registration must pass a driverScript');
|
|
142
|
-
assert.equal(path.resolve(script), path.resolve('/srv/repo', 'scripts', '
|
|
142
|
+
assert.equal(path.resolve(script), path.resolve('/srv/repo', 'scripts', 'bongos', 'git-merge-regen.js'));
|
|
143
143
|
assert.ok(!path.resolve(script).startsWith(path.resolve('/tmp/otb-resolve-test')), 'never inside the clone');
|
|
144
144
|
});
|
|
145
145
|
|
|
@@ -558,25 +558,26 @@ test('1003546 a failing post-merge commit is reported, not pushed', async () =>
|
|
|
558
558
|
// to the first and not the second, so the copy registry was "covered" by the driver
|
|
559
559
|
// and regenerated by nobody. Pin them as one set, via each artifact's PRODUCER.
|
|
560
560
|
test('1003546 every REGENERABLE artifact has a producer, and every producer is in GENERATOR_SCRIPTS', async () => {
|
|
561
|
-
const regen = require('../scripts/
|
|
562
|
-
const G = require('../scripts/
|
|
563
|
-
const CI = require('../scripts/
|
|
561
|
+
const regen = require('../scripts/bongos/git-merge-regen.js');
|
|
562
|
+
const G = require('../scripts/bongos/gen-repo-map.js');
|
|
563
|
+
const CI = require('../scripts/bongos/copy-inventory.js');
|
|
564
564
|
|
|
565
565
|
// Derived from each generator's own exports where it publishes them, so this map
|
|
566
566
|
// cannot silently drift from the generator it names.
|
|
567
567
|
const PRODUCED_BY = new Map([
|
|
568
|
-
['docs/repo-map.md', 'scripts/
|
|
569
|
-
['docs/file-map.md', 'scripts/
|
|
570
|
-
['docs/session-log-index.md', 'scripts/
|
|
568
|
+
['docs/repo-map.md', 'scripts/bongos/gen-repo-map.js'],
|
|
569
|
+
['docs/file-map.md', 'scripts/bongos/gen-file-map.js'],
|
|
570
|
+
['docs/session-log-index.md', 'scripts/bongos/gen-session-index.js'],
|
|
571
571
|
// task 1001431 — the ROOT CLAUDE.md joined REGENERABLE for its §13 snippet block.
|
|
572
572
|
// gen-session-index.js writes BOTH the (gitignored) whole index and that tracked
|
|
573
573
|
// snippet, and it is already in GENERATOR_SCRIPTS, so the server's post-merge
|
|
574
574
|
// regeneration covers the new entry with no change to the generator list.
|
|
575
|
-
['CLAUDE.md', 'scripts/
|
|
576
|
-
[CI.REGISTRY_REL, 'scripts/
|
|
577
|
-
[CI.REPORT_REL, 'scripts/
|
|
578
|
-
...G.NESTED_DIRS.map((d) => [`${d}/CLAUDE.md`, 'scripts/
|
|
579
|
-
// task 1003537 — the generated API
|
|
575
|
+
['CLAUDE.md', 'scripts/bongos/gen-session-index.js'],
|
|
576
|
+
[CI.REGISTRY_REL, 'scripts/bongos/copy-inventory.js'],
|
|
577
|
+
[CI.REPORT_REL, 'scripts/bongos/copy-inventory.js'],
|
|
578
|
+
...G.NESTED_DIRS.map((d) => [`${d}/CLAUDE.md`, 'scripts/bongos/gen-repo-map.js']),
|
|
579
|
+
// task 1003537 — the generated API pointer stub is in REGENERABLE (the spec, reference
|
|
580
|
+
// and client left it under task 1004866: gitignored, nothing to heal). Mapped by
|
|
580
581
|
// PATH PREFIX rather than by calling the generators: this suite deliberately sets
|
|
581
582
|
// *_INSTANCE_ROOT (see the env-hardening case above), which repoints their docs root
|
|
582
583
|
// at a fake server checkout, so a build() here reads a file that does not exist.
|
|
@@ -585,10 +586,7 @@ test('1003546 every REGENERABLE artifact has a producer, and every producer is i
|
|
|
585
586
|
// under either prefix is picked up here automatically.
|
|
586
587
|
...[...regen.REGENERABLE]
|
|
587
588
|
.filter((p) => p.startsWith('docs/api/') || p === 'docs/api-reference.md' || p === 'docs/routes-permissions.md')
|
|
588
|
-
.map((p) => [p, 'scripts/
|
|
589
|
-
...[...regen.REGENERABLE]
|
|
590
|
-
.filter((p) => p.startsWith('clients/bongos-client/'))
|
|
591
|
-
.map((p) => [p, 'scripts/gds/gen-api-client.js']),
|
|
589
|
+
.map((p) => [p, 'scripts/bongos/gen-api-docs.js']),
|
|
592
590
|
]);
|
|
593
591
|
|
|
594
592
|
// task 1004775 — docs/page-readings.json is merged per page FROM THE THREE MERGE
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
// ever exercised that shape. This harness closes the blind spot end to end.
|
|
21
21
|
//
|
|
22
22
|
// WHAT IT PROVES (the two-root checks all go RED against the pre-2133 loader):
|
|
23
|
-
// 1. package — scripts/
|
|
23
|
+
// 1. package — scripts/bongos/package-core.js builds an installable .tgz.
|
|
24
24
|
// 2. install — `npm install <tgz>` lands it at node_modules/@bongos/core.
|
|
25
25
|
// 3. roots — resolveCoreRoot() is UNDER node_modules/@bongos/core while
|
|
26
26
|
// resolveInstanceRoot() is the consumer tree: two DIFFERENT dirs, so
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
// cannot find consumer-probe → this IS the task-2133 done-when.
|
|
34
34
|
// 6. fitness — the packaged fitness.js discoveredModuleKeys() spans both roots.
|
|
35
35
|
// 7. gen-file-map — reads the INSTANCE root (lists the consumer's .claude/skills).
|
|
36
|
-
// 8. gen-repo-map — maps CORE code (scripts/
|
|
36
|
+
// 8. gen-repo-map — maps CORE code (scripts/bongos/fitness.js) from node_modules.
|
|
37
37
|
// 9. npm ci — the lockfile SHIPPED inside the package (package-core prunes it to the
|
|
38
38
|
// core's own dependency closure) installs with `npm ci` on its own: in step
|
|
39
39
|
// with the package.json it ships beside, and every integrity hash verifies.
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
// — the gap the task-1004030 foreign-key break hid in.
|
|
55
55
|
//
|
|
56
56
|
// WHERE IT RUNS. This is an INTEGRATION harness (a package build, two installs, live boots
|
|
57
|
-
// and a Postgres), so it sits in the INTEGRATION set of scripts/
|
|
57
|
+
// and a Postgres), so it sits in the INTEGRATION set of scripts/bongos/run-unit-tests.js — the
|
|
58
58
|
// per-PR unit gate never pays for it — and the `integration` job of
|
|
59
59
|
// .github/workflows/integration.yml runs it on every push to main via
|
|
60
60
|
// `run-unit-tests.js --integration`. That job's Postgres service supplies checks 10-12, but
|
|
@@ -105,7 +105,7 @@ const NPM_BIN = process.platform === 'win32' ? 'npm.cmd' : 'npm';
|
|
|
105
105
|
const CORE_VERSION_RANGE = '^1.0.0'; // consumer-probe's coreVersion — satisfied by any 1.x core.
|
|
106
106
|
// The consumer's package.json is scaffolded by the SAME function `bongos init` uses for a
|
|
107
107
|
// greenfield instance, so its `migrate` script is the real one rather than a copy that could drift.
|
|
108
|
-
const { buildInstancePackageJson } = createRequire(import.meta.url)(join(REPO_ROOT, 'scripts', '
|
|
108
|
+
const { buildInstancePackageJson } = createRequire(import.meta.url)(join(REPO_ROOT, 'scripts', 'bongos', 'init.js'));
|
|
109
109
|
|
|
110
110
|
let passed = 0;
|
|
111
111
|
let failed = 0;
|
|
@@ -307,10 +307,10 @@ async function main() {
|
|
|
307
307
|
// job packages exactly the code under review). Reuse a prebuilt one via CORE_TGZ.
|
|
308
308
|
// No database settings reach the packager (header: THE CHILD PROCESSES ...).
|
|
309
309
|
let tgz = process.env.CORE_TGZ || '';
|
|
310
|
-
check('package: scripts/
|
|
310
|
+
check('package: scripts/bongos/package-core.js builds an installable .tgz', () => {
|
|
311
311
|
if (tgz) { assert.ok(existsSync(tgz), `CORE_TGZ does not exist: ${tgz}`); return; }
|
|
312
312
|
const outDir = join(workRoot, 'dist');
|
|
313
|
-
const r = spawnSync(process.execPath, [join(REPO_ROOT, 'scripts/
|
|
313
|
+
const r = spawnSync(process.execPath, [join(REPO_ROOT, 'scripts/bongos/package-core.js'), '--out-dir', outDir],
|
|
314
314
|
{ cwd: REPO_ROOT, env: withoutDbEnv(), encoding: 'utf8', maxBuffer: 256 * 1024 * 1024 });
|
|
315
315
|
assert.equal(r.status, 0, `package-core exited ${r.status}\n${r.stderr}`);
|
|
316
316
|
const pinLine = r.stdout.trim().split('\n').filter(Boolean).pop();
|
|
@@ -448,7 +448,7 @@ async function main() {
|
|
|
448
448
|
// --- 6. fitness spans both roots -----------------------------------------
|
|
449
449
|
check('fitness: discoveredModuleKeys() unions the core + instance module roots', () => {
|
|
450
450
|
const r = runNodeJSON(`
|
|
451
|
-
const f = require(${A('scripts/
|
|
451
|
+
const f = require(${A('scripts/bongos/fitness.js')});
|
|
452
452
|
process.stdout.write(JSON.stringify({ keys: f.discoveredModuleKeys() }));
|
|
453
453
|
`, consumer);
|
|
454
454
|
assert.ok(r.keys.includes('consumer-probe'),
|
|
@@ -462,7 +462,7 @@ async function main() {
|
|
|
462
462
|
// --- 7. gen-file-map reads the INSTANCE root ------------------------------
|
|
463
463
|
check('gen-file-map: buildModel() lists the INSTANCE root .claude/skills (consumer-probe-skill)', () => {
|
|
464
464
|
const model = runNodeJSON(`
|
|
465
|
-
const g = require(${A('scripts/
|
|
465
|
+
const g = require(${A('scripts/bongos/gen-file-map.js')});
|
|
466
466
|
process.stdout.write(JSON.stringify(g.buildModel()));
|
|
467
467
|
`, consumer);
|
|
468
468
|
const skills = model.find((s) => s.id === 'skills');
|
|
@@ -473,14 +473,14 @@ async function main() {
|
|
|
473
473
|
});
|
|
474
474
|
|
|
475
475
|
// --- 8. gen-repo-map reads the CORE root ----------------------------------
|
|
476
|
-
check('gen-repo-map: buildModel() maps CORE code (scripts/
|
|
476
|
+
check('gen-repo-map: buildModel() maps CORE code (scripts/bongos/fitness.js) from node_modules', () => {
|
|
477
477
|
const model = runNodeJSON(`
|
|
478
|
-
const g = require(${A('scripts/
|
|
478
|
+
const g = require(${A('scripts/bongos/gen-repo-map.js')});
|
|
479
479
|
const m = g.buildModel();
|
|
480
|
-
process.stdout.write(JSON.stringify({ files: m.files.length, hasFitness: m.byFile.some((f) => f.rel === 'scripts/
|
|
480
|
+
process.stdout.write(JSON.stringify({ files: m.files.length, hasFitness: m.byFile.some((f) => f.rel === 'scripts/bongos/fitness.js') }));
|
|
481
481
|
`, consumer);
|
|
482
482
|
assert.ok(model.files > 50, `core scan found too few files (${model.files}) — core root not resolved to the package?`);
|
|
483
|
-
assert.equal(model.hasFitness, true, 'gen-repo-map did not map the core file scripts/
|
|
483
|
+
assert.equal(model.hasFitness, true, 'gen-repo-map did not map the core file scripts/bongos/fitness.js');
|
|
484
484
|
});
|
|
485
485
|
|
|
486
486
|
// --- 9. npm ci from the SHIPPED, pruned lockfile --------------------------
|
package/tests/context_pack.mjs
CHANGED
|
@@ -25,7 +25,7 @@ const {
|
|
|
25
25
|
formatOs,
|
|
26
26
|
formatContextPack,
|
|
27
27
|
formatContextPackCompact,
|
|
28
|
-
} = require('../scripts/
|
|
28
|
+
} = require('../scripts/bongos/context-pack.js');
|
|
29
29
|
// The live validators — the pack MUST mirror these, or it would teach builders
|
|
30
30
|
// the wrong enum (the whole point of "generated from the live validators").
|
|
31
31
|
const { VALID_KINDS, VALID_DISCIPLINES, TASK_FIELD_BOUNDS } =
|
|
@@ -360,10 +360,10 @@ const url = require('node:url');
|
|
|
360
360
|
function checkoutWithoutLifecycle() {
|
|
361
361
|
const here = path.dirname(url.fileURLToPath(import.meta.url));
|
|
362
362
|
const root = fs.mkdtempSync(path.join(os.tmpdir(), 'ctxpack-nolifecycle-'));
|
|
363
|
-
fs.mkdirSync(path.join(root, 'scripts', '
|
|
363
|
+
fs.mkdirSync(path.join(root, 'scripts', 'bongos'), { recursive: true });
|
|
364
364
|
fs.mkdirSync(path.join(root, 'src', 'bongos'), { recursive: true });
|
|
365
|
-
fs.copyFileSync(path.join(here, '..', 'scripts', '
|
|
366
|
-
path.join(root, 'scripts', '
|
|
365
|
+
fs.copyFileSync(path.join(here, '..', 'scripts', 'bongos', 'context-pack.js'),
|
|
366
|
+
path.join(root, 'scripts', 'bongos', 'context-pack.js'));
|
|
367
367
|
// The ONLY other import. Deliberately copied rather than stubbed: if
|
|
368
368
|
// context-pack grows a second hard dependency, this test fails and that new
|
|
369
369
|
// coupling has to be looked at — which is the point.
|
|
@@ -371,7 +371,7 @@ function checkoutWithoutLifecycle() {
|
|
|
371
371
|
path.join(root, 'src', 'bongos', 'api-prefix.js'));
|
|
372
372
|
// No modules/ — that IS the condition.
|
|
373
373
|
assert.ok(!fs.existsSync(path.join(root, 'modules')), 'the fixture must not carry modules/');
|
|
374
|
-
return { root, mod: require(path.join(root, 'scripts', '
|
|
374
|
+
return { root, mod: require(path.join(root, 'scripts', 'bongos', 'context-pack.js')) };
|
|
375
375
|
}
|
|
376
376
|
|
|
377
377
|
t('a checkout with no modules/lifecycle can still LOAD the pack (the deadlock)', () => {
|
|
@@ -414,7 +414,7 @@ t('with the module present the enums are still the LIVE ones, not a local copy',
|
|
|
414
414
|
const live = require('../modules/lifecycle/task-classifier');
|
|
415
415
|
assert.deepEqual(api.task_kinds, [...live.VALID_KINDS].filter((k) => k !== 'unclassified'));
|
|
416
416
|
assert.deepEqual(api.disciplines, [...live.VALID_DISCIPLINES].filter((d) => d !== 'unclassified'));
|
|
417
|
-
const src = fs.readFileSync(new URL('../scripts/
|
|
417
|
+
const src = fs.readFileSync(new URL('../scripts/bongos/context-pack.js', import.meta.url), 'utf8');
|
|
418
418
|
assert.doesNotMatch(src, /'(bug|feature|chore|cleanup|verify)'\s*,\s*'/,
|
|
419
419
|
'a literal kind list in this file is the drift the generated design exists to prevent');
|
|
420
420
|
});
|
|
@@ -11,7 +11,7 @@ import { fileURLToPath } from 'node:url';
|
|
|
11
11
|
|
|
12
12
|
const require = createRequire(import.meta.url);
|
|
13
13
|
const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
|
14
|
-
const cm = require(path.join(ROOT, 'scripts', '
|
|
14
|
+
const cm = require(path.join(ROOT, 'scripts', 'bongos', 'control-manifest.js'));
|
|
15
15
|
|
|
16
16
|
test('the live tree passes: every goal-1000076 control is present and wired', () => {
|
|
17
17
|
const r = cm.checkControlsExist();
|
|
@@ -42,10 +42,10 @@ test('a present-but-UNWIRED control is caught (the settings.json un-hook case)',
|
|
|
42
42
|
|
|
43
43
|
test('a missing companion file (baseline/config) is caught even when the main file exists', () => {
|
|
44
44
|
const controls = [{
|
|
45
|
-
label: 'audit gate', file: 'scripts/
|
|
45
|
+
label: 'audit gate', file: 'scripts/bongos/audit-gate.js',
|
|
46
46
|
alsoExists: ['config/audit-baseline.json'],
|
|
47
47
|
}];
|
|
48
|
-
const v = cm.evaluate(controls, { exists: (f) => f === 'scripts/
|
|
48
|
+
const v = cm.evaluate(controls, { exists: (f) => f === 'scripts/bongos/audit-gate.js', read: () => '' });
|
|
49
49
|
assert.equal(v.length, 1);
|
|
50
50
|
assert.match(v[0], /companion file missing/);
|
|
51
51
|
});
|
|
@@ -105,7 +105,7 @@ test('a guard UNWIRED from fitness.js is caught — the one-line deletion', () =
|
|
|
105
105
|
|
|
106
106
|
test("G04 is wired via ship-flow, not fitness — it is a module, not a check", () => {
|
|
107
107
|
const row = cm.CONTROLS.find((c) => c.label.includes('(G04)'));
|
|
108
|
-
assert.equal(row.wiredIn.file, 'scripts/
|
|
108
|
+
assert.equal(row.wiredIn.file, 'scripts/bongos/ship-flow.js');
|
|
109
109
|
const out = cm.evaluate([row], { exists: () => true, read: () => 'nothing requires it' });
|
|
110
110
|
assert.equal(out.length, 1, 'an unrequired ship-honesty is caught');
|
|
111
111
|
});
|
|
@@ -179,7 +179,7 @@ try {
|
|
|
179
179
|
const { status, body } = await get(p);
|
|
180
180
|
assert.equal(status, 503, p);
|
|
181
181
|
assert.equal(body.error.code, 'page_inventory_missing', p);
|
|
182
|
-
assert.equal(body.error.details.run, 'node scripts/
|
|
182
|
+
assert.equal(body.error.details.run, 'node scripts/bongos/page-inventory.js', p);
|
|
183
183
|
}
|
|
184
184
|
const tally = await get('/copy-desk/tally', F.ALICE.id);
|
|
185
185
|
assert.equal(tally.status, 200);
|