@bongos/core 1.18.0 → 1.18.3

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.
Files changed (113) hide show
  1. package/.bongos-core.json +132 -322
  2. package/README.md +1 -1
  3. package/config/branding.neutral.json +5 -1
  4. package/docs/adr/0142-project-context-is-prose-only.md +41 -0
  5. package/docs/adr/0143-onboarding-repo-picker-oauth-scope.md +35 -0
  6. package/docs/adr/README.md +5 -2
  7. package/docs/api/openapi.json +1789 -450
  8. package/docs/api-reference.md +52 -5
  9. package/docs/file-map.md +7 -7
  10. package/docs/recipes/packaging-the-core.md +13 -0
  11. package/docs/recipes/upgrading-the-core.md +5 -2
  12. package/migrations/039_newcomer_friendly_column.sql +5 -0
  13. package/migrations/102_remove_box_first_provision_approval.sql +4 -0
  14. package/migrations/core_192_github_oauth_tokens.sql +33 -0
  15. package/modules/hall-ui/public/my-projects.html +78 -0
  16. package/modules/hall-ui/public/my-projects.js +142 -0
  17. package/modules/hall-ui/public/scouting.html +45 -0
  18. package/modules/hall-ui/public/scouting.js +73 -0
  19. package/modules/status-ui/public/explore.html +54 -0
  20. package/modules/status-ui/public/explore.js +67 -0
  21. package/package-lock.json +2 -2
  22. package/package.json +1 -1
  23. package/public-landing/create.html +211 -14
  24. package/scripts/gds/cli-lib.js +11 -5
  25. package/scripts/gds/lint-migrations.js +102 -0
  26. package/scripts/gds/login.js +42 -10
  27. package/scripts/gds/mirror-redact.js +5 -0
  28. package/scripts/gds/package-core.js +263 -4
  29. package/scripts/gds/provision.js +145 -7
  30. package/scripts/gds/publish-manifest.js +15 -0
  31. package/scripts/gds/run-unit-tests.js +38 -14
  32. package/scripts/gds/setup.js +41 -0
  33. package/scripts/gds/ship.js +115 -31
  34. package/scripts/gds/upgrade.js +147 -5
  35. package/scripts/migrate.sh +10 -0
  36. package/src/bongos/auth.js +362 -5
  37. package/src/bongos/db.js +66 -0
  38. package/src/bongos/github-repos.js +93 -0
  39. package/src/bongos/routes/auth.js +93 -11
  40. package/src/bongos/routes/github.js +90 -0
  41. package/src/bongos/routes/instance.js +15 -3
  42. package/src/bongos/routes.js +2 -0
  43. package/src/branding.js +17 -2
  44. package/src/instance-config.js +16 -0
  45. package/src/module-api.js +29 -1
  46. package/tests/branding.mjs +29 -23
  47. package/tests/github_repos_helpers.mjs +91 -0
  48. package/tests/github_token_store.mjs +121 -0
  49. package/tests/idp_device_exchange.mjs +105 -0
  50. package/tests/idp_federation.mjs +100 -0
  51. package/tests/migrations_forward_safe.mjs +86 -0
  52. package/tests/module_api.mjs +1 -1
  53. package/tests/package_core.mjs +246 -1
  54. package/tests/provision.mjs +157 -0
  55. package/tests/pruned_lockfile_integrity.mjs +79 -0
  56. package/tests/ship_ci_deploy.mjs +60 -0
  57. package/tests/upgrade.mjs +254 -5
  58. package/.gitignore +0 -91
  59. package/docs/adr/0139-platform-history-migration-to-cloudbongos.md +0 -94
  60. package/docs/adr/0140-cloudbongos-standalone-reprovision.md +0 -43
  61. package/scripts/hall-preview/fixtures/access-requests.json +0 -20
  62. package/scripts/hall-preview/fixtures/achievements.json +0 -76
  63. package/scripts/hall-preview/fixtures/analytics__builder.json +0 -251
  64. package/scripts/hall-preview/fixtures/audit-log.json +0 -68
  65. package/scripts/hall-preview/fixtures/blockers__detail.json +0 -12
  66. package/scripts/hall-preview/fixtures/box__me.json +0 -5
  67. package/scripts/hall-preview/fixtures/boxes__cost-ledger.json +0 -69
  68. package/scripts/hall-preview/fixtures/builders__active-claims.json +0 -1
  69. package/scripts/hall-preview/fixtures/builders__directory.json +0 -81
  70. package/scripts/hall-preview/fixtures/builders__roster.json +0 -48
  71. package/scripts/hall-preview/fixtures/goals.json +0 -502
  72. package/scripts/hall-preview/fixtures/goals__25.json +0 -96
  73. package/scripts/hall-preview/fixtures/goals__26.json +0 -67
  74. package/scripts/hall-preview/fixtures/goals__3.json +0 -103
  75. package/scripts/hall-preview/fixtures/goals__35.json +0 -49
  76. package/scripts/hall-preview/fixtures/goals__conflicts.json +0 -154
  77. package/scripts/hall-preview/fixtures/goals__detail.json +0 -96
  78. package/scripts/hall-preview/fixtures/goals__inbox.json +0 -5
  79. package/scripts/hall-preview/fixtures/goals__requests.json +0 -3
  80. package/scripts/hall-preview/fixtures/grades__by-builder.json +0 -32
  81. package/scripts/hall-preview/fixtures/inbox.json +0 -330
  82. package/scripts/hall-preview/fixtures/inbox__detail.json +0 -15
  83. package/scripts/hall-preview/fixtures/instance.json +0 -124
  84. package/scripts/hall-preview/fixtures/leaderboard.json +0 -184
  85. package/scripts/hall-preview/fixtures/me.json +0 -476
  86. package/scripts/hall-preview/fixtures/me__art-key__own.json +0 -6
  87. package/scripts/hall-preview/fixtures/me__event-sound-prefs.json +0 -209
  88. package/scripts/hall-preview/fixtures/me__recent-ships.json +0 -304
  89. package/scripts/hall-preview/fixtures/me__render.json +0 -5
  90. package/scripts/hall-preview/fixtures/me__skill-prefs.json +0 -143
  91. package/scripts/hall-preview/fixtures/me__sound-prefs.json +0 -67
  92. package/scripts/hall-preview/fixtures/me__wandering.json +0 -43
  93. package/scripts/hall-preview/fixtures/override-requests.json +0 -15
  94. package/scripts/hall-preview/fixtures/provisioning__fleet.json +0 -1
  95. package/scripts/hall-preview/fixtures/provisioning__fleet__cost-ledger.json +0 -1
  96. package/scripts/hall-preview/fixtures/provisioning__instances.json +0 -1
  97. package/scripts/hall-preview/fixtures/public__analytics__ecosystem.json +0 -516
  98. package/scripts/hall-preview/fixtures/public__bounty-table.json +0 -37
  99. package/scripts/hall-preview/fixtures/public__cost-summary.json +0 -742
  100. package/scripts/hall-preview/fixtures/public__estimation-drift.json +0 -41
  101. package/scripts/hall-preview/fixtures/public__grades.json +0 -50
  102. package/scripts/hall-preview/fixtures/public__progress.json +0 -124
  103. package/scripts/hall-preview/fixtures/public__recent-shipped.json +0 -426
  104. package/scripts/hall-preview/fixtures/public__repo-health.json +0 -160
  105. package/scripts/hall-preview/fixtures/public__repo-info.json +0 -5
  106. package/scripts/hall-preview/fixtures/security__docs.json +0 -10
  107. package/scripts/hall-preview/fixtures/security__reports.json +0 -31
  108. package/scripts/hall-preview/fixtures/sessions__search.json +0 -9
  109. package/scripts/hall-preview/fixtures/tasks.json +0 -2420
  110. package/scripts/hall-preview/fixtures/tasks__claimable.json +0 -2555
  111. package/scripts/hall-preview/fixtures/tasks__detail.json +0 -111
  112. package/scripts/hall-preview/fixtures/tasks__peer-votes__feed.json +0 -330
  113. package/scripts/hall-preview/fixtures/versions.json +0 -89
@@ -1,251 +0,0 @@
1
- {
2
- "builder_id": 95,
3
- "window_days": 90,
4
- "ship_rate": [
5
- {
6
- "day": "2026-06-22",
7
- "n": 2
8
- },
9
- {
10
- "day": "2026-06-23",
11
- "n": 3
12
- },
13
- {
14
- "day": "2026-06-25",
15
- "n": 7
16
- },
17
- {
18
- "day": "2026-06-26",
19
- "n": 8
20
- },
21
- {
22
- "day": "2026-06-27",
23
- "n": 12
24
- },
25
- {
26
- "day": "2026-06-28",
27
- "n": 17
28
- },
29
- {
30
- "day": "2026-06-29",
31
- "n": 9
32
- },
33
- {
34
- "day": "2026-06-30",
35
- "n": 5
36
- },
37
- {
38
- "day": "2026-07-02",
39
- "n": 7
40
- },
41
- {
42
- "day": "2026-07-03",
43
- "n": 17
44
- },
45
- {
46
- "day": "2026-07-04",
47
- "n": 6
48
- },
49
- {
50
- "day": "2026-07-05",
51
- "n": 11
52
- },
53
- {
54
- "day": "2026-07-10",
55
- "n": 6
56
- }
57
- ],
58
- "cost_trend": [
59
- {
60
- "day": "2026-06-22",
61
- "total_usd": 33.45,
62
- "n_tasks": 0,
63
- "per_work": 16.73
64
- },
65
- {
66
- "day": "2026-06-23",
67
- "total_usd": 131.56,
68
- "n_tasks": 0,
69
- "per_work": 33
70
- },
71
- {
72
- "day": "2026-06-24",
73
- "total_usd": 0,
74
- "n_tasks": 0,
75
- "per_work": 33
76
- },
77
- {
78
- "day": "2026-06-25",
79
- "total_usd": 194.21,
80
- "n_tasks": 0,
81
- "per_work": 29.94
82
- },
83
- {
84
- "day": "2026-06-26",
85
- "total_usd": 74.35,
86
- "n_tasks": 0,
87
- "per_work": 21.68
88
- },
89
- {
90
- "day": "2026-06-27",
91
- "total_usd": 16.08,
92
- "n_tasks": 0,
93
- "per_work": 14.05
94
- },
95
- {
96
- "day": "2026-06-28",
97
- "total_usd": 24.24,
98
- "n_tasks": 0,
99
- "per_work": 9.67
100
- },
101
- {
102
- "day": "2026-06-29",
103
- "total_usd": 57.04,
104
- "n_tasks": 0,
105
- "per_work": 9.15
106
- },
107
- {
108
- "day": "2026-07-02",
109
- "total_usd": 198.6,
110
- "n_tasks": 0,
111
- "per_work": 10.42
112
- },
113
- {
114
- "day": "2026-07-03",
115
- "total_usd": 297.04,
116
- "n_tasks": 0,
117
- "per_work": 11.8
118
- },
119
- {
120
- "day": "2026-07-04",
121
- "total_usd": 0.74,
122
- "n_tasks": 0,
123
- "per_work": 11.05
124
- },
125
- {
126
- "day": "2026-07-05",
127
- "total_usd": 154.61,
128
- "n_tasks": 0,
129
- "per_work": 11.36
130
- },
131
- {
132
- "day": "2026-07-06",
133
- "total_usd": 0.6,
134
- "n_tasks": 0,
135
- "per_work": 11.37
136
- },
137
- {
138
- "day": "2026-07-10",
139
- "total_usd": 59.44,
140
- "n_tasks": 0,
141
- "per_work": 11.29
142
- }
143
- ],
144
- "duration_trend": [
145
- {
146
- "day": "2026-06-22",
147
- "avg_actual": 28,
148
- "avg_est": 40
149
- },
150
- {
151
- "day": "2026-06-23",
152
- "avg_actual": 125,
153
- "avg_est": 147
154
- },
155
- {
156
- "day": "2026-06-25",
157
- "avg_actual": 242,
158
- "avg_est": 283
159
- },
160
- {
161
- "day": "2026-06-26",
162
- "avg_actual": 16,
163
- "avg_est": 184
164
- },
165
- {
166
- "day": "2026-06-27",
167
- "avg_actual": 12,
168
- "avg_est": 154
169
- },
170
- {
171
- "day": "2026-06-28",
172
- "avg_actual": 85,
173
- "avg_est": 140
174
- },
175
- {
176
- "day": "2026-06-29",
177
- "avg_actual": 19,
178
- "avg_est": 221
179
- },
180
- {
181
- "day": "2026-06-30",
182
- "avg_actual": 12,
183
- "avg_est": 150
184
- },
185
- {
186
- "day": "2026-07-03",
187
- "avg_actual": 15,
188
- "avg_est": 60
189
- },
190
- {
191
- "day": "2026-07-04",
192
- "avg_actual": 17,
193
- "avg_est": 270
194
- },
195
- {
196
- "day": "2026-07-05",
197
- "avg_actual": 8,
198
- "avg_est": 65
199
- },
200
- {
201
- "day": "2026-07-10",
202
- "avg_actual": 8,
203
- "avg_est": 108
204
- }
205
- ],
206
- "grade_trend": [],
207
- "top_kinds": [
208
- {
209
- "kind": "feature",
210
- "n": 62
211
- },
212
- {
213
- "kind": "refactor",
214
- "n": 12
215
- },
216
- {
217
- "kind": "bug",
218
- "n": 11
219
- },
220
- {
221
- "kind": "infra",
222
- "n": 7
223
- },
224
- {
225
- "kind": "decision",
226
- "n": 6
227
- },
228
- {
229
- "kind": "cleanup",
230
- "n": 5
231
- },
232
- {
233
- "kind": "learning-capture",
234
- "n": 4
235
- },
236
- {
237
- "kind": "spike",
238
- "n": 3
239
- }
240
- ],
241
- "headline": {
242
- "total_shipped": 110,
243
- "total_cost_usd": 1241.96,
244
- "cost_per_task": 11.29,
245
- "avg_duration_min": 39,
246
- "confirmation_rate": 0.85,
247
- "resolved_claims": 136,
248
- "grade_pass_rate": null,
249
- "graded_n": 0
250
- }
251
- }
@@ -1,68 +0,0 @@
1
- {
2
- "rows": [
3
- {
4
- "recorded_at": "2026-07-10T18:00:00.000Z",
5
- "builder_id": "90",
6
- "surface": "cli",
7
- "method": "POST",
8
- "route": "/api/bongos/claims",
9
- "response_status": 200
10
- },
11
- {
12
- "recorded_at": "2026-07-10T18:01:00.000Z",
13
- "builder_id": "91",
14
- "surface": "web",
15
- "method": "PATCH",
16
- "route": "/api/bongos/tasks/:id",
17
- "response_status": 200
18
- },
19
- {
20
- "recorded_at": "2026-07-10T18:02:00.000Z",
21
- "builder_id": "92",
22
- "surface": "cli",
23
- "method": "POST",
24
- "route": "/api/bongos/goals/:id/join",
25
- "response_status": 200
26
- },
27
- {
28
- "recorded_at": "2026-07-10T18:03:00.000Z",
29
- "builder_id": "90",
30
- "surface": "web",
31
- "method": "DELETE",
32
- "route": "/api/bongos/me/sound-prefs",
33
- "response_status": 200
34
- },
35
- {
36
- "recorded_at": "2026-07-10T18:04:00.000Z",
37
- "builder_id": "91",
38
- "surface": "cli",
39
- "method": "POST",
40
- "route": "/api/bongos/claims",
41
- "response_status": 200
42
- },
43
- {
44
- "recorded_at": "2026-07-10T18:05:00.000Z",
45
- "builder_id": "92",
46
- "surface": "web",
47
- "method": "PATCH",
48
- "route": "/api/bongos/tasks/:id",
49
- "response_status": 403
50
- },
51
- {
52
- "recorded_at": "2026-07-10T18:06:00.000Z",
53
- "builder_id": "90",
54
- "surface": "cli",
55
- "method": "POST",
56
- "route": "/api/bongos/goals/:id/join",
57
- "response_status": 200
58
- },
59
- {
60
- "recorded_at": "2026-07-10T18:07:00.000Z",
61
- "builder_id": "91",
62
- "surface": "web",
63
- "method": "DELETE",
64
- "route": "/api/bongos/me/sound-prefs",
65
- "response_status": 200
66
- }
67
- ]
68
- }
@@ -1,12 +0,0 @@
1
- {
2
- "blocker": {
3
- "id": "1",
4
- "title": "Preview-harness blocker record — serves any #/blocker/N deep-link",
5
- "body_md": "Synthetic record for the shared deep-link overlay (task-detail.js). One fixture serves every id via the blockers/\\d+ fallback.",
6
- "status": "open",
7
- "created_at": "2026-07-01T12:00:00.000Z",
8
- "source": "manual",
9
- "source_ref": null,
10
- "blocking_task_ids": []
11
- }
12
- }
@@ -1,5 +0,0 @@
1
- {
2
- "box": { "state": "none" },
3
- "open_intent": null,
4
- "cost": null
5
- }
@@ -1,69 +0,0 @@
1
- {
2
- "totals_by_builder": [
3
- {
4
- "builder_id": "90",
5
- "builder_login": "preview-alpha",
6
- "total_usd": 12.4
7
- },
8
- {
9
- "builder_id": "91",
10
- "builder_login": "preview-beta",
11
- "total_usd": 7.15
12
- },
13
- {
14
- "builder_id": "92",
15
- "builder_login": "preview-gamma",
16
- "total_usd": 2.5
17
- }
18
- ],
19
- "ledger": [
20
- {
21
- "recorded_at": "2026-07-10T17:50:00.000Z",
22
- "builder_id": "90",
23
- "builder_login": "preview-alpha",
24
- "source": "box-compute",
25
- "amount_usd": 0.42,
26
- "description": "Synthetic ledger row for the preview harness"
27
- },
28
- {
29
- "recorded_at": "2026-07-10T17:43:00.000Z",
30
- "builder_id": "91",
31
- "builder_login": "preview-beta",
32
- "source": "box-storage",
33
- "amount_usd": 0.08,
34
- "description": "Synthetic ledger row for the preview harness"
35
- },
36
- {
37
- "recorded_at": "2026-07-10T17:36:00.000Z",
38
- "builder_id": "92",
39
- "builder_login": "preview-gamma",
40
- "source": "box-spinup",
41
- "amount_usd": 1.2,
42
- "description": "Synthetic ledger row for the preview harness"
43
- },
44
- {
45
- "recorded_at": "2026-07-10T17:29:00.000Z",
46
- "builder_id": "90",
47
- "builder_login": "preview-alpha",
48
- "source": "box-compute",
49
- "amount_usd": 0.42,
50
- "description": "Synthetic ledger row for the preview harness"
51
- },
52
- {
53
- "recorded_at": "2026-07-10T17:22:00.000Z",
54
- "builder_id": "91",
55
- "builder_login": "preview-beta",
56
- "source": "box-storage",
57
- "amount_usd": 0.08,
58
- "description": "Synthetic ledger row for the preview harness"
59
- },
60
- {
61
- "recorded_at": "2026-07-10T17:15:00.000Z",
62
- "builder_id": "92",
63
- "builder_login": "preview-gamma",
64
- "source": "box-spinup",
65
- "amount_usd": 1.2,
66
- "description": "Synthetic ledger row for the preview harness"
67
- }
68
- ]
69
- }
@@ -1 +0,0 @@
1
- { "claims": [] }
@@ -1,81 +0,0 @@
1
- {
2
- "builders": [
3
- {
4
- "id": "25",
5
- "github_login": "IAMMASTERQUA",
6
- "display_name": "IAMMASTERQUA",
7
- "avatar_url": "https://avatars.githubusercontent.com/u/290184380?v=4",
8
- "rank": "metic"
9
- },
10
- {
11
- "id": "95",
12
- "github_login": "jaxri",
13
- "display_name": "Jackson Rini",
14
- "avatar_url": "https://avatars.githubusercontent.com/u/64553469?v=4",
15
- "rank": "metic"
16
- },
17
- {
18
- "id": "3",
19
- "github_login": "LarsCode",
20
- "display_name": "LarsCode",
21
- "avatar_url": "https://avatars.githubusercontent.com/u/35337514?v=4",
22
- "rank": "xenos"
23
- },
24
- {
25
- "id": "51",
26
- "github_login": "MrTenkpro",
27
- "display_name": "MrTenkpro",
28
- "avatar_url": "https://avatars.githubusercontent.com/u/291558470?v=4",
29
- "rank": "xenos"
30
- },
31
- {
32
- "id": "50",
33
- "github_login": "Svensson-CMD",
34
- "display_name": "Svensson-CMD",
35
- "avatar_url": "https://avatars.githubusercontent.com/u/290959655?v=4",
36
- "rank": "xenos"
37
- },
38
- {
39
- "id": "71",
40
- "github_login": "erikwils",
41
- "display_name": "erikwils",
42
- "avatar_url": "https://avatars.githubusercontent.com/u/51457175?v=4",
43
- "rank": "xenos"
44
- },
45
- {
46
- "id": "70",
47
- "github_login": "kingaonline",
48
- "display_name": "kingaonline",
49
- "avatar_url": "https://avatars.githubusercontent.com/u/293641659?v=4",
50
- "rank": "thetes"
51
- },
52
- {
53
- "id": "57",
54
- "github_login": "largekristensen-svg",
55
- "display_name": "largekristensen-svg",
56
- "avatar_url": "https://avatars.githubusercontent.com/u/292408002?v=4",
57
- "rank": "xenos"
58
- },
59
- {
60
- "id": "1",
61
- "github_login": "lars589",
62
- "display_name": "lars589",
63
- "avatar_url": "https://avatars.githubusercontent.com/u/283020391?v=4",
64
- "rank": "archon"
65
- },
66
- {
67
- "id": "94",
68
- "github_login": "scootermack",
69
- "display_name": "scootermack",
70
- "avatar_url": "https://avatars.githubusercontent.com/u/295990394?v=4",
71
- "rank": "metic"
72
- },
73
- {
74
- "id": "27",
75
- "github_login": "willHermesLines",
76
- "display_name": "willHermesLines",
77
- "avatar_url": "https://avatars.githubusercontent.com/u/267458743?v=4",
78
- "rank": "xenos"
79
- }
80
- ]
81
- }
@@ -1,48 +0,0 @@
1
- {
2
- "builders": [
3
- {
4
- "id": "90",
5
- "display_name": "Preview Alpha",
6
- "github_login": "preview-alpha",
7
- "rank": "archon",
8
- "total_credits": 9200,
9
- "karma": 4,
10
- "active_claim_count": 1,
11
- "stale_claim": false,
12
- "status": "active"
13
- },
14
- {
15
- "id": "91",
16
- "display_name": "Preview Beta",
17
- "github_login": "preview-beta",
18
- "rank": "metic",
19
- "total_credits": 5100,
20
- "karma": 2,
21
- "active_claim_count": 2,
22
- "stale_claim": true,
23
- "status": "active"
24
- },
25
- {
26
- "id": "92",
27
- "display_name": "Preview Gamma",
28
- "github_login": "preview-gamma",
29
- "rank": "thetes",
30
- "total_credits": 830,
31
- "karma": 1,
32
- "active_claim_count": 0,
33
- "stale_claim": false,
34
- "status": "active"
35
- },
36
- {
37
- "id": "93",
38
- "display_name": "Preview Delta",
39
- "github_login": "preview-delta",
40
- "rank": "xenos",
41
- "total_credits": 40,
42
- "karma": 0,
43
- "active_claim_count": 0,
44
- "stale_claim": false,
45
- "status": "inactive"
46
- }
47
- ]
48
- }