@bongos/core 1.21.182 → 1.22.2
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 +273 -248
- package/docs/copy-inventory.md +165 -165
- package/docs/copy-registry.json +184 -184
- package/docs/module-api-changelog.md +12 -0
- package/docs/page-inventory.json +35 -26
- package/docs/page-readings.json +389 -388
- package/modules/agents/lib/answer-hold.js +1 -1
- package/modules/agents/lib/fire-budget.js +1 -1
- package/modules/autonomy/cadence.js +3 -3
- package/modules/autonomy/config-idle.js +1 -1
- package/modules/autonomy/fence.js +1 -1
- package/modules/autonomy/gauge.js +2 -2
- package/modules/autonomy/governor-docket.js +0 -1
- package/modules/autonomy/server-schedule.js +1 -1
- package/modules/builder-settings/builder-needs.js +1 -3
- package/modules/builder-settings/event-sound-prefs.js +0 -1
- package/modules/builder-settings/law-locks.js +0 -1
- package/modules/builder-settings/model-alloc-prefs.js +0 -5
- package/modules/builder-settings/profile-nudge-prefs.js +0 -1
- package/modules/builder-settings/render-prefs.js +0 -1
- package/modules/builder-settings/skill-prefs.js +0 -2
- package/modules/builder-settings/sound-prefs.js +0 -3
- package/modules/builder-settings/wandering-prefs.js +0 -2
- package/modules/copy-desk/artist-stats.js +1 -1
- package/modules/copy-desk/flags.js +1 -1
- package/modules/copy-desk/guarded-lines.js +1 -1
- package/modules/copy-desk/page-status.js +0 -5
- package/modules/copy-desk/proposals.js +0 -2
- package/modules/copy-desk/registry.js +1 -1
- package/modules/copy-desk/stuck-tweaks.js +1 -1
- package/modules/economy/credits-by-craft.js +0 -2
- package/modules/economy/streak.js +0 -3
- package/modules/government/asks-db.js +1 -1
- package/modules/government/asks.js +0 -1
- package/modules/government/decision-board.js +0 -1
- package/modules/government/docket.js +0 -6
- package/modules/government/leads.js +0 -1
- package/modules/government/positions.js +1 -1
- package/modules/government/recommendations.js +0 -3
- package/modules/government/routing.js +1 -1
- package/modules/government/treasury-db.js +1 -1
- package/modules/government/treasury.js +2 -2
- package/modules/grading/grade-engine.js +0 -1
- package/modules/hall-ui/public/approval-queue.js +3 -3
- package/modules/hall-ui/public/atlas.html +2 -1
- package/modules/hall-ui/public/atlas.js +1 -1
- package/modules/hall-ui/public/blockers.html +3 -4
- package/modules/hall-ui/public/board-room.html +2 -2
- package/modules/hall-ui/public/brand-holes.js +3 -3
- package/modules/hall-ui/public/city.html +2 -1
- package/modules/hall-ui/public/collab.html +2 -2
- package/modules/hall-ui/public/commands.html +2 -2
- package/modules/hall-ui/public/commands.js +1 -2
- package/modules/hall-ui/public/copy-desk.html +2 -2
- package/modules/hall-ui/public/core-move-notice.js +1 -5
- package/modules/hall-ui/public/craft-mode.js +1 -5
- package/modules/hall-ui/public/criterion-uat-ui.js +3 -3
- package/modules/hall-ui/public/deploy.html +2 -2
- package/modules/hall-ui/public/diagrams.html +2 -1
- package/modules/hall-ui/public/dom-utils.js +15 -6
- package/modules/hall-ui/public/drachmae.html +2 -1
- package/modules/hall-ui/public/fleet-costs.js +3 -2
- package/modules/hall-ui/public/fleet.html +2 -2
- package/modules/hall-ui/public/founding-mark.js +1 -6
- package/modules/hall-ui/public/gate.html +2 -2
- package/modules/hall-ui/public/goal-map.html +2 -1
- package/modules/hall-ui/public/goals.html +2 -2
- package/modules/hall-ui/public/government.html +2 -2
- package/modules/hall-ui/public/hall-ask.js +3 -3
- package/modules/hall-ui/public/hall-kit.js +3 -5
- package/modules/hall-ui/public/hall-visual.js +3 -5
- package/modules/hall-ui/public/idea.html +2 -2
- package/modules/hall-ui/public/ideas.html +2 -2
- package/modules/hall-ui/public/index.html +2 -2
- package/modules/hall-ui/public/lightbulb.js +1 -5
- package/modules/hall-ui/public/md-reader.js +1 -8
- package/modules/hall-ui/public/modules.html +2 -2
- package/modules/hall-ui/public/my-agents.html +2 -2
- package/modules/hall-ui/public/my-agents.js +3 -1
- package/modules/hall-ui/public/page-notes.js +1 -5
- package/modules/hall-ui/public/paintbrush.js +1 -5
- package/modules/hall-ui/public/palette.js +1 -5
- package/modules/hall-ui/public/primer.html +2 -1
- package/modules/hall-ui/public/primer.js +1 -1
- package/modules/hall-ui/public/profile-crafts.js +3 -5
- package/modules/hall-ui/public/profile.html +2 -3
- package/modules/hall-ui/public/project-settings.html +2 -2
- package/modules/hall-ui/public/ranks.html +2 -3
- package/modules/hall-ui/public/roadmap.html +2 -2
- package/modules/hall-ui/public/roster.html +3 -4
- package/modules/hall-ui/public/sessions.html +2 -3
- package/modules/hall-ui/public/settings.html +2 -3
- package/modules/hall-ui/public/shell.js +1 -5
- package/modules/hall-ui/public/sky-data.js +1 -1
- package/modules/hall-ui/public/street.html +2 -1
- package/modules/hall-ui/public/studio.html +2 -2
- package/modules/hall-ui/public/task-detail.js +1 -6
- package/modules/hall-ui/public/task-lib.js +3 -8
- package/modules/hall-ui/public/task.html +2 -3
- package/modules/hall-ui/public/thinking.html +2 -1
- package/modules/hall-ui/public/tweak-editor.html +2 -2
- package/modules/hall-ui/public/vote-control.js +1 -1
- package/modules/hall-ui/public/watch.html +2 -3
- package/modules/hall-ui/public/welcome-boot.js +3 -5
- package/modules/hall-ui/public/work.html +2 -3
- package/modules/ideas/completeness.js +1 -1
- package/modules/ideas/descent.js +0 -1
- package/modules/ideas/governor-docket.js +0 -2
- package/modules/ideas/idea-state.js +0 -1
- package/modules/ideas/ideator-stats.js +1 -1
- package/modules/ideas/votes.js +1 -1
- package/modules/lifecycle/autopickup-files.js +0 -3
- package/modules/lifecycle/conflict-resolve.js +0 -1
- package/modules/lifecycle/criterion-uat-db.js +0 -4
- package/modules/lifecycle/dead-deps.js +2 -2
- package/modules/lifecycle/est-advisory.js +1 -1
- package/modules/lifecycle/goal-category.js +0 -3
- package/modules/lifecycle/goal-spec-task.js +1 -1
- package/modules/lifecycle/governor-docket.js +0 -1
- package/modules/lifecycle/kickoff-seed.js +1 -1
- package/modules/lifecycle/mingle.js +3 -3
- package/modules/lifecycle/page-tweak-claim.js +1 -1
- package/modules/lifecycle/rebase-gate.js +1 -1
- package/modules/lifecycle/removal-derivation.js +0 -1
- package/modules/lifecycle/routes/abandon-handler.js +1 -1
- package/modules/lifecycle/routes/version-route-authz.js +0 -1
- package/modules/lifecycle/ship-card.js +2 -5
- package/modules/lifecycle/ship-preflight.js +0 -1
- package/modules/lifecycle/sky.js +1 -1
- package/modules/lifecycle/task-classifier.js +0 -1
- package/modules/lifecycle/task-visuals.js +0 -2
- package/modules/lifecycle/version-close.js +0 -1
- package/modules/memory/memory.js +0 -1
- package/modules/memory/search-chunker.js +1 -1
- package/modules/memory/search.js +0 -3
- package/modules/npm-release/preview/divert.js +1 -1
- package/modules/npm-release/preview/proxy.js +2 -3
- package/modules/npm-release/preview/runtime.js +1 -1
- package/modules/npm-release/public/task-widget.js +1 -1
- package/modules/onboarding/founding-builders.js +1 -1
- package/modules/onboarding/founding-mode.js +1 -1
- package/modules/onboarding/howto-guide.js +1 -1
- package/modules/onboarding/howto-state.js +1 -1
- package/modules/onboarding/onboarding-state.js +0 -4
- package/modules/onboarding/onboarding.js +0 -6
- package/modules/page-notes/notes.js +0 -1
- package/modules/platform-identity/community-leaderboard.js +0 -1
- package/modules/platform-identity/hub-keys.js +0 -2
- package/modules/platform-identity/instance-feedback.js +0 -1
- package/modules/platform-identity/read-rate-limit.js +1 -1
- package/modules/platform-identity/routes/sso.js +1 -3
- package/modules/platform-identity/visibility-pull.js +0 -9
- package/modules/provisioning/app-status.js +1 -1
- package/modules/provisioning/catalog-bridge.js +0 -1
- package/modules/provisioning/core-upgrade.js +1 -1
- package/modules/provisioning/credential-preflight.js +1 -1
- package/modules/provisioning/demo.js +2 -2
- package/modules/provisioning/look.js +1 -1
- package/modules/provisioning/routes/callback-page.js +3 -7
- package/modules/public-landing/public/projects.html +3 -5
- package/modules/raise/raise.js +2 -2
- package/modules/render-deploy/deploys.js +1 -1
- package/modules/security/artifact-scan/aggregate.js +0 -4
- package/modules/security/artifact-scan/detectors/capabilities.js +1 -1
- package/modules/security/artifact-scan/detectors/config-obfuscation.js +1 -1
- package/modules/security/artifact-scan/detectors/credentials.js +1 -1
- package/modules/security/artifact-scan/detectors/dependencies.js +1 -1
- package/modules/security/artifact-scan/detectors/injection.js +1 -1
- package/modules/security/artifact-scan/detectors/network.js +1 -1
- package/modules/security/artifact-scan/detectors/npm-lifecycle.js +1 -1
- package/modules/security/artifact-scan/detectors/permissions.js +1 -1
- package/modules/security/artifact-scan/detectors/shared.js +0 -3
- package/modules/security/artifact-scan/floor.js +0 -3
- package/modules/security/artifact-scan/mirror.js +1 -1
- package/modules/security/artifact-scan/quarantine.js +0 -1
- package/modules/security/artifact-scan/rebuild-spec.js +0 -2
- package/modules/security/artifact-scan/report.js +1 -1
- package/modules/security/artifact-scan/sanitize.js +0 -2
- package/modules/security/secret-scrub.js +0 -4
- package/modules/security/security.js +0 -2
- package/modules/sessions/accessibility.js +0 -2
- package/modules/sessions/bfg.js +0 -4
- package/modules/sessions/upload-health.js +0 -3
- package/modules/specialities/db.js +1 -1
- package/modules/specialities/specialities.js +1 -1
- package/modules/ui-design/kit/lib.js +2 -2
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +26 -12
- package/scripts/bongos/escape-helper-guard.js +147 -0
- package/scripts/bongos/fitness.js +3 -2
- package/scripts/bongos/key-card.js +1 -4
- package/scripts/bongos/review-sheet.js +1 -3
- package/scripts/bongos/start.js +1 -1
- package/scripts/bongos/status.js +1 -1
- package/scripts/gds/escape-helper-guard.js +6 -0
- package/scripts/status-mirror-sync.js +2 -3
- package/src/bongos/module-scope-map.js +1 -0
- package/src/bongos/platform-visibility-gate.js +2 -3
- package/src/bongos/prelaunch-gate.js +2 -3
- package/src/bongos/routes/auth.js +1 -5
- package/src/bongos/serve-internal.js +2 -6
- package/src/html-escape.js +26 -0
- package/src/module-api.js +9 -1
- package/tests/blockers_kit_pager.mjs +2 -2
- package/tests/blockers_page_ui.mjs +2 -2
- package/tests/core_move_notice.mjs +3 -1
- package/tests/core_update_banner.mjs +2 -0
- package/tests/core_upgrade_owner_door.mjs +2 -0
- package/tests/craft_mode.mjs +2 -0
- package/tests/craft_mode_nav.mjs +3 -0
- package/tests/craft_review_mode.mjs +3 -2
- package/tests/criterion_ref_status.mjs +7 -2
- package/tests/curve_kind_overlay.mjs +2 -1
- package/tests/founding_mode.mjs +10 -2
- package/tests/github_install_nudge.mjs +4 -1
- package/tests/goal_map_page.mjs +2 -2
- package/tests/hall_approval_queue.mjs +2 -2
- package/tests/hall_city.mjs +1 -1
- package/tests/hall_fullscreen.mjs +2 -0
- package/tests/hall_gov_real_site.mjs +2 -0
- package/tests/hall_kit_charts.mjs +2 -1
- package/tests/hall_my_agents.mjs +3 -2
- package/tests/hall_nav.mjs +2 -0
- package/tests/hall_palette.mjs +2 -2
- package/tests/hall_reading_world.mjs +3 -1
- package/tests/hall_reference_world.mjs +2 -1
- package/tests/hall_signout.mjs +2 -0
- package/tests/hall_street.mjs +1 -1
- package/tests/hall_studio_world.mjs +3 -1
- package/tests/hall_tweak_editor.mjs +2 -1
- package/tests/helpers.mjs +17 -2
- package/tests/html_escape.mjs +149 -0
- package/tests/lightbulb.mjs +2 -0
- package/tests/module_api.mjs +1 -0
- package/tests/module_store_howto.mjs +2 -1
- package/tests/modules_external_export_contract.mjs +48 -0
- package/tests/nav_permission_atoms.mjs +1 -1
- package/tests/npm_release_where.mjs +2 -1
- package/tests/page_notes_panel.mjs +4 -3
- package/tests/paintbrush.mjs +2 -1
- package/tests/profile_connections_ui.mjs +2 -1
- package/tests/profile_role_headline.mjs +2 -2
- package/tests/profile_role_tabs.mjs +2 -2
- package/tests/projects_hub_repo_private.mjs +4 -0
- package/tests/terms_acceptance.mjs +1 -0
- package/tests/welcome_boot_browser.mjs +1 -1
|
@@ -75,12 +75,7 @@
|
|
|
75
75
|
// dom-utils.js already publishes escapeHtml on window.OTB (this file uses
|
|
76
76
|
// OTB.toast the same way) — a local copy would be its 9th byte-identical twin.
|
|
77
77
|
// The fallback keeps the file's self-contained contract if OTB hasn't loaded.
|
|
78
|
-
function esc(s) {
|
|
79
|
-
if (window.OTB && window.OTB.escapeHtml) return window.OTB.escapeHtml(s);
|
|
80
|
-
return String(s == null ? '' : s).replace(/[&<>"']/g, function (c) {
|
|
81
|
-
return { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[c];
|
|
82
|
-
});
|
|
83
|
-
}
|
|
78
|
+
function esc(s) { return window.OTB.escapeHtml(s); }
|
|
84
79
|
|
|
85
80
|
async function fetchRef(kind, id) {
|
|
86
81
|
if (kind === 'blocker') {
|
|
@@ -23,14 +23,9 @@
|
|
|
23
23
|
(() => {
|
|
24
24
|
'use strict';
|
|
25
25
|
|
|
26
|
-
//
|
|
27
|
-
//
|
|
28
|
-
|
|
29
|
-
function esc(s) {
|
|
30
|
-
return String(s ?? '').replace(/[&<>"']/g, (c) => ({
|
|
31
|
-
'&': '&', '<': '<', '>': '>', '"': '"', "'": ''',
|
|
32
|
-
}[c]));
|
|
33
|
-
}
|
|
26
|
+
// The shared escaper: window.OTB in the page; under Node (this file is also require()d as a
|
|
27
|
+
// CommonJS lib — see its module.exports and its tests) dom-utils.js's own export (task 1004876).
|
|
28
|
+
function esc(s) { return (typeof window !== 'undefined' ? window.OTB : require('./dom-utils.js')).escapeHtml(s); }
|
|
34
29
|
|
|
35
30
|
// Sort key for a "P3"-style priority string. Unparseable/absent sorts last.
|
|
36
31
|
function priorityRank(p) {
|
|
@@ -55,13 +55,12 @@
|
|
|
55
55
|
|
|
56
56
|
<!-- The app shell (sidebar + top bar + footer). Dependency-free; runs at parse
|
|
57
57
|
time so the chrome exists before the deferred page scripts execute. -->
|
|
58
|
+
<script src="/builders/dom-utils.js?v=2026-10-25-escape"></script>
|
|
58
59
|
<script src="/builders/shell-trail.js?v=2026-10-08-city-tab"></script>
|
|
59
60
|
<script src="/builders/craft-mode.js?v=2026-10-09-living3"></script>
|
|
60
|
-
<script src="/builders/shell.js?v=2026-10-25-
|
|
61
|
+
<script src="/builders/shell.js?v=2026-10-25-escape"></script>
|
|
61
62
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
62
63
|
<script src="/builders/palette.js" defer></script>
|
|
63
|
-
<!-- shared frontend toolkit (window.OTB) — loaded FIRST so task.js can pull from it. -->
|
|
64
|
-
<script src="/builders/dom-utils.js?v=2026-06-14-domutils" defer></script>
|
|
65
64
|
<!-- task-detail.js still owns the #/idea/N and #/blocker/N deep-link overlay
|
|
66
65
|
(and the #/task/N → /task/N redirect, task 751); load it here too so those
|
|
67
66
|
links still resolve from this page. -->
|
|
@@ -138,9 +138,10 @@
|
|
|
138
138
|
</div>
|
|
139
139
|
</div>
|
|
140
140
|
|
|
141
|
+
<script src="/builders/dom-utils.js?v=2026-10-25-escape"></script>
|
|
141
142
|
<script src="/builders/shell-trail.js?v=2026-10-08-city-tab"></script>
|
|
142
143
|
<script src="/builders/craft-mode.js?v=2026-10-09-living3"></script>
|
|
143
|
-
<script src="/builders/shell.js?v=2026-10-25-
|
|
144
|
+
<script src="/builders/shell.js?v=2026-10-25-escape"></script>
|
|
144
145
|
<script src="/builders/palette.js" defer></script>
|
|
145
146
|
|
|
146
147
|
<script src="/builders/idea-objects.js?v=2026-09-27-split"></script>
|
|
@@ -142,11 +142,11 @@
|
|
|
142
142
|
|
|
143
143
|
<div id="toast" class="toast" role="status" aria-live="polite" data-visible="0"></div>
|
|
144
144
|
|
|
145
|
+
<script src="/builders/dom-utils.js?v=2026-10-25-escape"></script>
|
|
145
146
|
<script src="/builders/shell-trail.js?v=2026-10-08-city-tab"></script>
|
|
146
147
|
<script src="/builders/craft-mode.js?v=2026-10-09-living3"></script>
|
|
147
|
-
<script src="/builders/shell.js?v=2026-10-25-
|
|
148
|
+
<script src="/builders/shell.js?v=2026-10-25-escape"></script>
|
|
148
149
|
<script src="/builders/palette.js" defer></script>
|
|
149
|
-
<script src="/builders/dom-utils.js?v=2026-06-23-contrib"></script>
|
|
150
150
|
<script src="/builders/brand-holes.js?v=2026-09-29-aqfix"></script>
|
|
151
151
|
<script src="/builders/tweak-editor-lib.js?v=2026-09-29-tw27"></script>
|
|
152
152
|
<script src="/builders/tweak-editor.js?v=2026-09-29-tw27-aqfix"></script>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
insufficient_rank: 'Voting opens at Metic rank.',
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
-
const esc = (s) =>
|
|
33
|
+
const esc = (s) => window.OTB.escapeHtml(s);
|
|
34
34
|
const netText = (n) => { const v = Number(n) || 0; return v > 0 ? `+${v}` : `${v}`; };
|
|
35
35
|
const validId = (id) => { const n = Number(id); return Number.isInteger(n) && n > 0 ? n : null; };
|
|
36
36
|
|
|
@@ -163,13 +163,12 @@
|
|
|
163
163
|
|
|
164
164
|
<!-- The app shell (sidebar + top bar). Dependency-free; loaded FIRST so the
|
|
165
165
|
chrome exists before the page script runs. -->
|
|
166
|
+
<script src="/builders/dom-utils.js?v=2026-10-25-escape"></script>
|
|
166
167
|
<script src="/builders/shell-trail.js?v=2026-10-08-city-tab"></script>
|
|
167
168
|
<script src="/builders/craft-mode.js?v=2026-10-09-living3"></script>
|
|
168
|
-
<script src="/builders/shell.js?v=2026-10-25-
|
|
169
|
+
<script src="/builders/shell.js?v=2026-10-25-escape"></script>
|
|
169
170
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
170
171
|
<script src="/builders/palette.js" defer></script>
|
|
171
|
-
<!-- shared frontend toolkit (window.OTB) — loaded before watch.js, which pulls from it. -->
|
|
172
|
-
<script src="/builders/dom-utils.js?v=2026-06-14-domutils"></script>
|
|
173
172
|
<!-- shared component kit (window.OTBKit) — tabs, ledger, pager (task 2166). -->
|
|
174
173
|
<script src="/builders/hall-kit.js"></script>
|
|
175
174
|
<script src="/builders/task-detail.js?v=2026-07-03-taskdetail"></script>
|
|
@@ -139,11 +139,9 @@
|
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
// ---------- the overlay ----------
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
});
|
|
146
|
-
}
|
|
142
|
+
// The shared escaper: window.OTB in the page; under Node (this file is also require()d as a
|
|
143
|
+
// CommonJS lib — see its module.exports and its tests) dom-utils.js's own export (task 1004876).
|
|
144
|
+
function esc(s) { return (typeof window !== 'undefined' ? window.OTB : require('./dom-utils.js')).escapeHtml(s); }
|
|
147
145
|
function craft() { return window.OTBCraftMode || null; }
|
|
148
146
|
function reducedMotion() {
|
|
149
147
|
return !!(window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches);
|
|
@@ -171,13 +171,12 @@
|
|
|
171
171
|
|
|
172
172
|
<!-- The app shell (sidebar + top bar + footer). Dependency-free; runs at parse
|
|
173
173
|
time so the chrome exists before the deferred page scripts execute. -->
|
|
174
|
+
<script src="/builders/dom-utils.js?v=2026-10-25-escape"></script>
|
|
174
175
|
<script src="/builders/shell-trail.js?v=2026-10-08-city-tab"></script>
|
|
175
176
|
<script src="/builders/craft-mode.js?v=2026-10-09-living3"></script>
|
|
176
|
-
<script src="/builders/shell.js?v=2026-10-25-
|
|
177
|
+
<script src="/builders/shell.js?v=2026-10-25-escape"></script>
|
|
177
178
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
178
179
|
<script src="/builders/palette.js" defer></script>
|
|
179
|
-
<!-- shared frontend toolkit (window.OTB) — loaded FIRST so work.js can pull from it. -->
|
|
180
|
-
<script src="/builders/dom-utils.js?v=2026-06-14-domutils" defer></script>
|
|
181
180
|
<!-- task 1004727: the ONE karma vote control every task/idea list renders -->
|
|
182
181
|
<script src="/builders/vote-control.js"></script>
|
|
183
182
|
<!-- shared component kit (window.OTBKit) — tabs, pager, filter bar (task 2166). -->
|
|
@@ -112,4 +112,4 @@ function weakestSectionPayload(fieldValues, { templateKey = DEFAULT_TEMPLATE_KEY
|
|
|
112
112
|
};
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
-
module.exports = { completenessScore, scoreFieldValues,
|
|
115
|
+
module.exports = { completenessScore, scoreFieldValues, weakestField, weakestSectionPayload };
|
package/modules/ideas/descent.js
CHANGED
|
@@ -146,4 +146,4 @@ async function readIdeatorStats(builderId, deps = {}) {
|
|
|
146
146
|
return summarizeIdeatorTrail(ideas, { ideatorCredits, ratifiedIds, truncated: sky && sky.truncated, total: sky && sky.total });
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
-
module.exports = { readIdeatorStats, summarizeIdeatorTrail
|
|
149
|
+
module.exports = { readIdeatorStats, summarizeIdeatorTrail };
|
package/modules/ideas/votes.js
CHANGED
|
@@ -271,10 +271,6 @@ async function setBackendOnly({ criterionId, builderId, backendOnly, authorize }
|
|
|
271
271
|
|
|
272
272
|
module.exports = {
|
|
273
273
|
DEPLOY_PORT,
|
|
274
|
-
linkedTasks,
|
|
275
|
-
summarizeLinked,
|
|
276
|
-
currentSignoff,
|
|
277
|
-
isBackendOnly,
|
|
278
274
|
readLive,
|
|
279
275
|
signOff,
|
|
280
276
|
recordOverride,
|
|
@@ -340,6 +340,6 @@ function findProseGatedTasks(tasks, statusById) {
|
|
|
340
340
|
module.exports = {
|
|
341
341
|
DEAD_DEP_STATUSES, LIVE_STATUSES,
|
|
342
342
|
absorbedInto, depRefusalRow, splitDeadDeps, deadDepHint, findStrandedTasks,
|
|
343
|
-
proseGatedIds, findProseGatedTasks, idCandidates,
|
|
344
|
-
|
|
343
|
+
proseGatedIds, findProseGatedTasks, idCandidates,
|
|
344
|
+
IMPORT_ID_OFFSETS,
|
|
345
345
|
};
|
|
@@ -186,4 +186,4 @@ async function buildEstAdvisory({ db, task } = {}) {
|
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
|
|
189
|
-
module.exports = { adviseEstimate, pickRatio, buildEstAdvisory, calibrationSummary, resetCalibrationCache, CALIBRATION_TTL_MS, MIN_MATERIAL_DELTA, SCALE_OK_RATIO
|
|
189
|
+
module.exports = { adviseEstimate, pickRatio, buildEstAdvisory, calibrationSummary, resetCalibrationCache, CALIBRATION_TTL_MS, MIN_MATERIAL_DELTA, SCALE_OK_RATIO };
|
|
@@ -379,16 +379,13 @@ function goalCategoryHandler({ db, authorizeGoalManagement, validateOrRespond, p
|
|
|
379
379
|
}
|
|
380
380
|
|
|
381
381
|
module.exports = {
|
|
382
|
-
CATEGORY_COLS,
|
|
383
382
|
slugify,
|
|
384
383
|
isValidSlug,
|
|
385
384
|
listCategories,
|
|
386
385
|
countGoalsByCategory,
|
|
387
386
|
getCategory,
|
|
388
387
|
adviseCategory,
|
|
389
|
-
createCategory,
|
|
390
388
|
updateCategory,
|
|
391
|
-
setGoalCategory,
|
|
392
389
|
decorateGoalCategory,
|
|
393
390
|
categoryIndex,
|
|
394
391
|
categoriesListHandler,
|
|
@@ -126,4 +126,4 @@ async function createGoalWithSpec({ db, withTx, goalFields, withSpecTask = false
|
|
|
126
126
|
return { goal, specTask };
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
-
module.exports = { SPEC_SOURCE, specSourceRef, specTaskFields,
|
|
129
|
+
module.exports = { SPEC_SOURCE, specSourceRef, specTaskFields, gateOnSpecTask, ensureSpecTask, createGoalWithSpec };
|
|
@@ -130,4 +130,4 @@ async function genesisStageTasks(deps = {}) {
|
|
|
130
130
|
return out;
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
module.exports = { seedKickoffIfEmpty, specFromBranding, FIRST_VERSION_SQL, seedGenesisStages, genesisStageTasks
|
|
133
|
+
module.exports = { seedKickoffIfEmpty, specFromBranding, FIRST_VERSION_SQL, seedGenesisStages, genesisStageTasks };
|
|
@@ -345,9 +345,9 @@ async function decidePair(pairId, builderId, decision, deps = {}) {
|
|
|
345
345
|
}
|
|
346
346
|
|
|
347
347
|
module.exports = {
|
|
348
|
-
|
|
348
|
+
MAX_ROWS, MATCHING, matchingModel,
|
|
349
349
|
parseEnabled, projectEnabled, setProjectEnabled,
|
|
350
|
-
|
|
351
|
-
eligibleBuilders, isCrossCraft, planPairs,
|
|
350
|
+
setOptIn, mingleStateFor,
|
|
351
|
+
eligibleBuilders, isCrossCraft, planPairs, openPairKeys,
|
|
352
352
|
runMingleRound, openPairsFor, countOpenPairsFor, decidePair,
|
|
353
353
|
};
|
|
@@ -587,10 +587,7 @@ function renderMonospaceCard(model) {
|
|
|
587
587
|
}
|
|
588
588
|
|
|
589
589
|
// ---- HTML renderer (the in-feed branded card) ------------------------------
|
|
590
|
-
function esc(s) {
|
|
591
|
-
return String(s == null ? '' : s).replace(/[&<>"']/g, (c) =>
|
|
592
|
-
({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[c]));
|
|
593
|
-
}
|
|
590
|
+
function esc(s) { return require('../../src/module-api').escapeHtml(s); } // the one server escaper (task 1004876)
|
|
594
591
|
function factHtml(f) {
|
|
595
592
|
let inner = esc(f.value);
|
|
596
593
|
if (f.mono) inner = `<span class="cc-mono">${inner}</span>`;
|
|
@@ -867,7 +864,7 @@ module.exports = {
|
|
|
867
864
|
// untrusted-title rule is pinned by a test rather than trusted by eye.
|
|
868
865
|
sanitizeOneLine, MAX_CONFIRM_LINE,
|
|
869
866
|
// exported for unit tests:
|
|
870
|
-
fmtTokens, fmtUsd, fmtInt, fmtMins,
|
|
867
|
+
fmtTokens, fmtUsd, fmtInt, fmtMins, esc, wrap,
|
|
871
868
|
// task 1003150 — the session-boundary nudge, pure so every branch is pinned.
|
|
872
869
|
handoffAdvice, HEAVY_SESSION_CACHED_TOKENS,
|
|
873
870
|
PIPELINE, FORMS, trailSteps,
|
package/modules/lifecycle/sky.js
CHANGED
|
@@ -301,4 +301,4 @@ function skyHandler({ read = sky, log = console, cache = skyCache() } = {}) {
|
|
|
301
301
|
};
|
|
302
302
|
}
|
|
303
303
|
|
|
304
|
-
module.exports = { sky, skyRows, shapeSky, foldCriteria, normalizeBorn, skyCache, skyHandler
|
|
304
|
+
module.exports = { sky, skyRows, shapeSky, foldCriteria, normalizeBorn, skyCache, skyHandler };
|
package/modules/memory/memory.js
CHANGED
|
@@ -275,4 +275,4 @@ function chunkMarkdown({ path, content, maxTokens = DEFAULT_MAX_TOKENS, targetTo
|
|
|
275
275
|
return { path: path || null, title, frontmatter: frontmatter || null, chunks };
|
|
276
276
|
}
|
|
277
277
|
|
|
278
|
-
module.exports = { chunkMarkdown, parseFrontMatter, estTokens,
|
|
278
|
+
module.exports = { chunkMarkdown, parseFrontMatter, estTokens, stripPrivate, sanitizeForText };
|
package/modules/memory/search.js
CHANGED
|
@@ -102,4 +102,4 @@ function createDivert({ supervisor, forward, requireBuilder, requirePermission }
|
|
|
102
102
|
};
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
module.exports = { createDivert, cookieVersion, clearCookie, setCookie, AUTH_PATH
|
|
105
|
+
module.exports = { createDivert, cookieVersion, clearCookie, setCookie, AUTH_PATH };
|
|
@@ -29,9 +29,8 @@ function withoutPreviewCookie(cookieHeader) {
|
|
|
29
29
|
.join('; ');
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
32
|
+
// The one server escaper, through the doorway (task 1004876); this copy used to skip '.
|
|
33
|
+
const { escapeHtml } = require('../../../src/module-api');
|
|
35
34
|
|
|
36
35
|
/** The banner markup: which version this is, which one the hall runs, and the way out. */
|
|
37
36
|
function bannerHtml({ viewing, running, exitHref }) {
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
'use strict';
|
|
17
17
|
|
|
18
18
|
const API = '/api/bongos';
|
|
19
|
-
const esc = (s) =>
|
|
19
|
+
const esc = (s) => window.OTB.escapeHtml(s); // the hall's shared escaper (dom-utils.js, task 1004876)
|
|
20
20
|
const client = window.BongosClient && window.BongosClient.createClient({ baseUrl: '', credentials: 'same-origin', throwOnError: false });
|
|
21
21
|
const DONE = ['completed', 'confirmed', 'shipped'];
|
|
22
22
|
|
|
@@ -204,6 +204,6 @@ async function setFoundingMode({ active, stage } = {}, builderId = null, deps =
|
|
|
204
204
|
|
|
205
205
|
module.exports = {
|
|
206
206
|
STAGES, WAKES, WAKES_WHEN_ALIVE, KEYS, stageAtKey,
|
|
207
|
-
|
|
207
|
+
dayOf, shapeFoundingMode, waitingOnFromGovernment,
|
|
208
208
|
foundingModeFor, setFoundingMode,
|
|
209
209
|
};
|
|
@@ -262,4 +262,4 @@ if (require.main === module) {
|
|
|
262
262
|
}
|
|
263
263
|
}
|
|
264
264
|
|
|
265
|
-
module.exports = { MOMENTS, STEPS, MOMENT_IDS, stepById, stepsForMoment, nextUnread,
|
|
265
|
+
module.exports = { MOMENTS, STEPS, MOMENT_IDS, stepById, stepsForMoment, nextUnread, formatGuide };
|
|
@@ -105,4 +105,4 @@ async function reset(builderId, { steps, all = false } = {}, deps = {}) {
|
|
|
105
105
|
return { ok: true, state: await readState(builderId, deps) };
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
module.exports = {
|
|
108
|
+
module.exports = { shapeState, readState, markRead, reset };
|
|
@@ -489,20 +489,14 @@ function buildIdeaPayload({ sessionMeta = {}, analysis, signals = {} }) {
|
|
|
489
489
|
|
|
490
490
|
module.exports = {
|
|
491
491
|
ONBOARDING_FRICTION_TAG,
|
|
492
|
-
ONBOARDING_FRICTION_KIND,
|
|
493
492
|
// parsing
|
|
494
493
|
parseTranscript,
|
|
495
|
-
stripMachineNoise,
|
|
496
494
|
// signals
|
|
497
495
|
detectFrictionSignals,
|
|
498
|
-
LONG_RESPONSE_CHARS,
|
|
499
|
-
SIMILARITY_THRESHOLD,
|
|
500
496
|
// subagent
|
|
501
497
|
buildAnalysisPrompt,
|
|
502
|
-
compactTranscript,
|
|
503
498
|
extractJson,
|
|
504
499
|
validateAnalysis,
|
|
505
|
-
VALID_MOMENT_KINDS,
|
|
506
500
|
// payload
|
|
507
501
|
buildIdeaPayload,
|
|
508
502
|
};
|
|
@@ -118,9 +118,7 @@ function reportAsOf(req) {
|
|
|
118
118
|
// The /sso/authorize failures are pre-redirect (bad client / bad redirect_uri), so
|
|
119
119
|
// we must render our OWN page rather than bounce to an unvalidated URI.
|
|
120
120
|
function errorPage(detail) {
|
|
121
|
-
const esc =
|
|
122
|
-
{ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[c]
|
|
123
|
-
));
|
|
121
|
+
const esc = api.escapeHtml; // the one server escaper (task 1004876)
|
|
124
122
|
return `<!doctype html><html lang="en"><head><meta charset="utf-8">`
|
|
125
123
|
+ `<meta name="viewport" content="width=device-width, initial-scale=1">`
|
|
126
124
|
+ `<title>Sign-in handoff failed</title></head><body>`
|
|
@@ -59,14 +59,6 @@ const { pool: defaultPool } = require('../../src/module-api');
|
|
|
59
59
|
const { ORB_BY_STATE } = require('./projects-feed');
|
|
60
60
|
const projectStats = require('./project-stats');
|
|
61
61
|
|
|
62
|
-
// The manifest route every Cloud Bongos instance already serves, unauthenticated and
|
|
63
|
-
// CORS-open (ADR 0114's discovery surface; `src/bongos/routes/instance.js`). Nothing is
|
|
64
|
-
// added to it by this task — ADR 0252 §2.3: the field already ships in every core, so
|
|
65
|
-
// there is no wire change on anyone else's upgrade schedule. The API router is
|
|
66
|
-
// dual-mounted at `/api/bongos` (canonical) and at the permanent legacy alias ADR 0252
|
|
67
|
-
// happened to write, so either prefix reaches it; the fetch uses the canonical one.
|
|
68
|
-
const MANIFEST_ROUTE = '/api/bongos/instance';
|
|
69
|
-
|
|
70
62
|
// Rows the PULL may write: the ones the ADR 0246 control-plane bridge has never claimed.
|
|
71
63
|
// `IS DISTINCT FROM` rather than `<> `, deliberately — a NULL source is the unclaimed
|
|
72
64
|
// state and plain inequality would drop exactly those rows on a NULL comparison.
|
|
@@ -190,7 +182,6 @@ async function sweepVisibilityOnce({ pool = defaultPool, limit = 200, fetchVisib
|
|
|
190
182
|
}
|
|
191
183
|
|
|
192
184
|
module.exports = {
|
|
193
|
-
MANIFEST_ROUTE,
|
|
194
185
|
PULLABLE_SQL,
|
|
195
186
|
visibilityFromManifest,
|
|
196
187
|
pullDecision,
|
|
@@ -93,4 +93,4 @@ function retryAnswers(h) {
|
|
|
93
93
|
return r;
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
module.exports = { appStatus, appUrl, serviceLinks, oneSentence, retryAnswers, STAGES, QUIET_AFTER_MS, RENDER_URL_RE
|
|
96
|
+
module.exports = { appStatus, appUrl, serviceLinks, oneSentence, retryAnswers, STAGES, QUIET_AFTER_MS, RENDER_URL_RE };
|