@bongos/core 1.23.21 → 1.24.1

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 (457) hide show
  1. package/.bongos-core.json +983 -428
  2. package/.claude/skills/blocker-review/SKILL.md +9 -1
  3. package/.claude/skills/blocker-solve/SKILL.md +1 -1
  4. package/.claude/skills/builder-claim/SKILL.md +1 -1
  5. package/.claude/skills/builder-reauth/SKILL.md +1 -1
  6. package/.claude/skills/builder-redteam/SKILL.md +1 -1
  7. package/.claude/skills/builder-sequence/SKILL.md +1 -1
  8. package/.claude/skills/builder-setup/SKILL.md +1 -1
  9. package/.claude/skills/builder-ship/SKILL.md +1 -1
  10. package/.claude/skills/collab-review/SKILL.md +5 -2
  11. package/.claude/skills/design/SKILL.md +1 -1
  12. package/.claude/skills/goal-create/SKILL.md +6 -3
  13. package/.claude/skills/grade-recover/SKILL.md +1 -1
  14. package/.claude/skills/merge-mode/SKILL.md +1 -1
  15. package/.claude/skills/owner-review/SKILL.md +1 -1
  16. package/.claude/skills/planning-session/SKILL.md +11 -11
  17. package/.claude/skills/read-session-export/SKILL.md +1 -1
  18. package/.claude/skills/recall/SKILL.md +1 -1
  19. package/.claude/skills/scan-before-install/SKILL.md +1 -1
  20. package/.claude/skills/session-handoff/SKILL.md +1 -1
  21. package/.claude/skills/strand-fix/SKILL.md +13 -0
  22. package/.claude/skills/worktree-clean/SKILL.md +1 -1
  23. package/AGENTS.md +15 -0
  24. package/GEMINI.md +5 -0
  25. package/clients/bongos-client/README.md +1 -1
  26. package/clients/bongos-client/bongos-client.global.js +94 -0
  27. package/clients/bongos-client/index.cjs +94 -0
  28. package/clients/bongos-client/index.d.ts +154 -4
  29. package/clients/bongos-client/index.mjs +94 -0
  30. package/docs/adr/0054-session-token-reward-cost-plus.md +3 -1
  31. package/docs/adr/0055-server-mediated-branch-publish.md +1 -1
  32. package/docs/adr/0385-money-lives-with-a-processor-credits-stay-a-project-meter.md +87 -0
  33. package/docs/adr/0386-the-funding-wall-is-a-per-project-rule-claim-time-hold-by-default.md +37 -0
  34. package/docs/adr/0387-two-ledgers-credits-measure-work-money-stays-with-the-processor.md +39 -0
  35. package/docs/adr/0388-a-module-sale-is-split-by-the-project-the-buyer-pays-the-platform-fee.md +42 -0
  36. package/docs/adr/0392-ai-generation-runs-on-a-processor-held-balance-and-the-builders-own-keys.md +33 -0
  37. package/docs/adr/0393-a-platform-account-is-a-person-and-github-is-one-way-in.md +37 -0
  38. package/docs/adr/0394-market-watch-searches-through-the-messages-api-on-the-projects-key-and-runs-from-its-own-poller.md +102 -0
  39. package/docs/adr/0395-a-task-says-what-it-needs-and-lists-show-only-what-you-can-do.md +36 -0
  40. package/docs/adr/0396-google-sign-in-a-stand-in-login-and-a-browser-approved-cli-sign-in.md +41 -0
  41. package/docs/adr/README.md +10 -1
  42. package/docs/api/openapi.json +8619 -5885
  43. package/docs/api-reference.md +68 -9
  44. package/docs/architecture.md +37 -1
  45. package/docs/canonical-permissions.md +1 -1
  46. package/docs/copy-inventory.md +420 -337
  47. package/docs/copy-registry.json +1321 -500
  48. package/docs/file-map.md +4 -0
  49. package/docs/module-api-changelog.md +7 -0
  50. package/docs/onboarding/diagrams/03-drachmae-karma.mmd +3 -3
  51. package/docs/onboarding/diagrams/README.md +1 -1
  52. package/docs/onboarding/drachmae-and-karma.md +15 -15
  53. package/docs/onboarding/primer.md +2 -2
  54. package/docs/page-inventory.json +55 -6
  55. package/docs/page-readings.json +1185 -1011
  56. package/docs/recipes/google-sign-in.md +60 -0
  57. package/docs/recipes/ops-gotchas.md +1 -1
  58. package/migrations/core_282_builders_lower_login_idx.sql +33 -0
  59. package/migrations/core_283_claimable_ignores_page_markers.sql +53 -0
  60. package/migrations/core_283_payout_approvals.sql +183 -0
  61. package/migrations/core_284_payout_gates.sql +179 -0
  62. package/migrations/core_285_task_needs.sql +74 -0
  63. package/modules/ai-studio/CLAUDE.md +15 -0
  64. package/modules/ai-studio/billing.js +67 -0
  65. package/modules/ai-studio/context.js +29 -0
  66. package/modules/ai-studio/db.js +172 -0
  67. package/modules/ai-studio/gemini.js +75 -0
  68. package/modules/ai-studio/generate.js +119 -0
  69. package/modules/ai-studio/keys.js +73 -0
  70. package/modules/ai-studio/migrations/ai_studio_001_keys.sql +22 -0
  71. package/modules/ai-studio/migrations/ai_studio_002_ledger.sql +48 -0
  72. package/modules/ai-studio/migrations/ai_studio_003_requests.sql +55 -0
  73. package/modules/ai-studio/module.json +26 -0
  74. package/modules/ai-studio/openrouter.js +90 -0
  75. package/modules/ai-studio/payments.js +105 -0
  76. package/modules/ai-studio/pricing.js +92 -0
  77. package/modules/ai-studio/routes/ai-studio.js +252 -0
  78. package/modules/ai-studio/studio.js +121 -0
  79. package/modules/autonomy/fence.js +64 -1
  80. package/modules/builder-settings/builder-needs.js +27 -1
  81. package/modules/copy-desk/routes/copy-desk.js +5 -0
  82. package/modules/economy/achievements.js +22 -10
  83. package/modules/economy/cost-classify.js +9 -0
  84. package/modules/economy/cost-write-guard.js +52 -0
  85. package/modules/economy/cost.js +2 -1
  86. package/modules/economy/credits.js +18 -15
  87. package/modules/economy/goal-reward.js +161 -0
  88. package/modules/economy/reward.js +4 -0
  89. package/modules/economy/routes/cost.js +33 -7
  90. package/modules/government/catalog.js +6 -0
  91. package/modules/government/db.js +108 -0
  92. package/modules/government/docket.js +36 -0
  93. package/modules/government/migrations/government_035_payout_approve.sql +29 -0
  94. package/modules/government/pollers/board-expiry.js +108 -20
  95. package/modules/government/protected-surfaces.json +1 -0
  96. package/modules/government/routes/government.js +50 -18
  97. package/modules/government/routing.js +39 -5
  98. package/modules/government/waiting.js +74 -0
  99. package/modules/grading/grader-subagent.js +30 -11
  100. package/modules/hall-ui/public/ai-studio-lib.js +268 -0
  101. package/modules/hall-ui/public/ai-studio.css +193 -0
  102. package/modules/hall-ui/public/ai-studio.html +98 -0
  103. package/modules/hall-ui/public/ai-studio.js +556 -0
  104. package/modules/hall-ui/public/ai-studio.states.json +94 -0
  105. package/modules/hall-ui/public/blockers-by-person.js +156 -0
  106. package/modules/hall-ui/public/blockers-lib.js +15 -1
  107. package/modules/hall-ui/public/blockers.html +8 -0
  108. package/modules/hall-ui/public/blockers.js +1 -1
  109. package/modules/hall-ui/public/city.html +15 -15
  110. package/modules/hall-ui/public/claim-action.js +3 -0
  111. package/modules/hall-ui/public/collab.html +12 -0
  112. package/modules/hall-ui/public/craft-mode.js +4 -1
  113. package/modules/hall-ui/public/criterion-uat-ui.js +4 -1
  114. package/modules/hall-ui/public/drachmae.html +1 -1
  115. package/modules/hall-ui/public/genesis/r5-life-1-primordial-sea.jpg +0 -0
  116. package/modules/hall-ui/public/genesis/r5-life-2-first-cells-cut.webp +0 -0
  117. package/modules/hall-ui/public/genesis/r5-life-2-first-cells.jpg +0 -0
  118. package/modules/hall-ui/public/genesis/r5-life-3-genome-cut.webp +0 -0
  119. package/modules/hall-ui/public/genesis/r5-life-3-genome.jpg +0 -0
  120. package/modules/hall-ui/public/genesis/r5-life-4-membrane-cut.webp +0 -0
  121. package/modules/hall-ui/public/genesis/r5-life-4-membrane.jpg +0 -0
  122. package/modules/hall-ui/public/genesis/r5-life-5-nervous-system-cut.webp +0 -0
  123. package/modules/hall-ui/public/genesis/r5-life-5-nervous-system.jpg +0 -0
  124. package/modules/hall-ui/public/goal-inbox.js +1 -1
  125. package/modules/hall-ui/public/goals-render.js +4 -0
  126. package/modules/hall-ui/public/goals.html +8 -0
  127. package/modules/hall-ui/public/gov-living.js +6 -2
  128. package/modules/hall-ui/public/hall-ask.css +5 -0
  129. package/modules/hall-ui/public/hall-ask.js +39 -3
  130. package/modules/hall-ui/public/notes-panel.css +20 -0
  131. package/modules/hall-ui/public/notes-panel.js +146 -0
  132. package/modules/hall-ui/public/project-settings.html +1 -1
  133. package/modules/hall-ui/public/project-settings.js +7 -5
  134. package/modules/hall-ui/public/settings-ai-keys.js +124 -0
  135. package/modules/hall-ui/public/settings.html +15 -0
  136. package/modules/hall-ui/public/street-deck.js +12 -3
  137. package/modules/hall-ui/public/studio.css +90 -8
  138. package/modules/hall-ui/public/studio.html +39 -10
  139. package/modules/hall-ui/public/studio.js +148 -18
  140. package/modules/hall-ui/public/task.html +2 -0
  141. package/modules/hall-ui/public/task.js +4 -0
  142. package/modules/hall-ui/public/tweak-editor.js +12 -3
  143. package/modules/hall-ui/public/welcome-boot.css +42 -6
  144. package/modules/hall-ui/public/welcome-boot.js +20 -6
  145. package/modules/hall-ui/public/work.js +20 -0
  146. package/modules/hall-ui/records/ai-studio.md +36 -0
  147. package/modules/hall-ui/records/blockers-people.md +24 -0
  148. package/modules/lifecycle/db-analytics.js +10 -3
  149. package/modules/lifecycle/db-claims.js +32 -4
  150. package/modules/lifecycle/db-goals.js +48 -18
  151. package/modules/lifecycle/db-shared.js +9 -0
  152. package/modules/lifecycle/db-tasks.js +15 -6
  153. package/modules/lifecycle/db-versions.js +21 -8
  154. package/modules/lifecycle/done-when.js +23 -1
  155. package/modules/lifecycle/lifecycle.js +5 -0
  156. package/modules/lifecycle/migrations/lifecycle_017_notes.sql +46 -0
  157. package/modules/lifecycle/module.json +2 -1
  158. package/modules/lifecycle/notes.js +219 -0
  159. package/modules/lifecycle/page-notice.js +124 -0
  160. package/modules/lifecycle/page-tweak-artist.js +18 -1
  161. package/modules/lifecycle/publish-reconciler.js +67 -20
  162. package/modules/lifecycle/routes/claims.js +5 -2
  163. package/modules/lifecycle/routes/goals.js +3 -1
  164. package/modules/lifecycle/routes/notes.js +91 -0
  165. package/modules/lifecycle/routes/project-settings.js +43 -35
  166. package/modules/lifecycle/routes/task-route-helpers.js +21 -0
  167. package/modules/lifecycle/routes/task-write-routes.js +21 -3
  168. package/modules/lifecycle/routes/tasks.js +12 -12
  169. package/modules/lifecycle/ship-assurance.js +4 -1
  170. package/modules/lifecycle/ship-card.js +8 -2
  171. package/modules/lifecycle/task-needs-gate.js +70 -0
  172. package/modules/market-watch/CLAUDE.md +15 -0
  173. package/modules/market-watch/db.js +340 -0
  174. package/modules/market-watch/key.js +58 -0
  175. package/modules/market-watch/migrations/market_watch_001_tables.sql +249 -0
  176. package/modules/market-watch/migrations/market_watch_002_run.sql +46 -0
  177. package/modules/market-watch/module.json +26 -0
  178. package/modules/market-watch/pollers/hub-seed.js +54 -0
  179. package/modules/market-watch/pollers/weekly-run.js +100 -0
  180. package/modules/market-watch/research.js +350 -0
  181. package/modules/market-watch/run.js +245 -0
  182. package/modules/market-watch/seed/market-data.json +38 -0
  183. package/modules/market-watch/seed/partners-data.json +497 -0
  184. package/modules/market-watch/seed.js +252 -0
  185. package/modules/market-watch/store.js +230 -0
  186. package/modules/memory/routes/memory.js +14 -2
  187. package/modules/memory/routes/search.js +8 -2
  188. package/modules/onboarding/howto-moments.js +8 -1
  189. package/modules/platform-identity/account-logins.js +192 -0
  190. package/modules/platform-identity/migrations/platform_identity_034_account_logins.sql +96 -0
  191. package/modules/platform-identity/platform-identity.js +5 -4
  192. package/modules/platform-identity/routes/my-projects.js +6 -0
  193. package/modules/platform-identity/routes/profile.js +18 -0
  194. package/modules/platform-identity/routes/public-profile.js +10 -1
  195. package/modules/platform-identity/routes/sso.js +26 -1
  196. package/modules/platform-identity/tests/platform-identity.mjs +2 -1
  197. package/modules/provisioning/credential-preflight.js +13 -3
  198. package/modules/provisioning/pollers/app-liveness.js +25 -5
  199. package/modules/provisioning/routes/provisioning.js +1 -1
  200. package/modules/provisioning/starter-bundles.js +8 -2
  201. package/modules/public-landing/public/account.html +10 -2
  202. package/modules/public-landing/public/assets/world/r2-bongos-chrome-b.jpg +0 -0
  203. package/modules/public-landing/public/assets/world/r2-bongos-chrome-b.jpg.json +1 -1
  204. package/modules/public-landing/public/assets/world/r2-bongos-chrome-b.webp +0 -0
  205. package/modules/public-landing/public/assets/world/r2-bongos-chrome-b.webp.json +1 -1
  206. package/modules/public-landing/public/assets/world/r2-chrome-blob-one-cut.webp +0 -0
  207. package/modules/public-landing/public/assets/world/r2-chrome-blob-one-cut.webp.json +1 -1
  208. package/modules/public-landing/public/assets/world/r2-chrome-blob-one.jpg +0 -0
  209. package/modules/public-landing/public/assets/world/r2-chrome-blob-one.jpg.json +1 -1
  210. package/modules/public-landing/public/assets/world/r2-chrome-blob-one.webp +0 -0
  211. package/modules/public-landing/public/assets/world/r2-chrome-blob-one.webp.json +1 -1
  212. package/modules/public-landing/public/assets/world/r2-chrome-blobs-set.jpg +0 -0
  213. package/modules/public-landing/public/assets/world/r2-chrome-blobs-set.jpg.json +1 -1
  214. package/modules/public-landing/public/assets/world/r2-chrome-blobs-set.webp +0 -0
  215. package/modules/public-landing/public/assets/world/r2-chrome-blobs-set.webp.json +1 -1
  216. package/modules/public-landing/public/assets/world/r3-frost-bead-cut.webp +0 -0
  217. package/modules/public-landing/public/assets/world/r3-frost-bead-cut.webp.json +1 -1
  218. package/modules/public-landing/public/assets/world/r3-frost-pair-cut.webp +0 -0
  219. package/modules/public-landing/public/assets/world/r3-frost-pair-cut.webp.json +1 -1
  220. package/modules/public-landing/public/assets/world/r3-gold-blob-cut.webp +0 -0
  221. package/modules/public-landing/public/assets/world/r3-gold-blob-cut.webp.json +1 -1
  222. package/modules/public-landing/public/assets/world/r3-gold-pair-cut.webp +0 -0
  223. package/modules/public-landing/public/assets/world/r3-gold-pair-cut.webp.json +1 -1
  224. package/modules/public-landing/public/assets/world/r3-obsidian-blob-cut.webp +0 -0
  225. package/modules/public-landing/public/assets/world/r3-obsidian-blob-cut.webp.json +1 -1
  226. package/modules/public-landing/public/assets/world/r3-obsidian-pair-cut.webp +0 -0
  227. package/modules/public-landing/public/assets/world/r3-obsidian-pair-cut.webp.json +1 -1
  228. package/modules/public-landing/public/assets/world/r3-space-nebula.jpg +0 -0
  229. package/modules/public-landing/public/assets/world/r3-space-nebula.jpg.json +1 -1
  230. package/modules/public-landing/public/assets/world/r4-card-chrome.jpg +0 -0
  231. package/modules/public-landing/public/assets/world/r4-card-chrome.jpg.json +1 -1
  232. package/modules/public-landing/public/assets/world/r4-card-nebula.jpg +0 -0
  233. package/modules/public-landing/public/assets/world/r4-card-nebula.jpg.json +1 -1
  234. package/modules/public-landing/public/assets/world/r5-life-1-primordial-sea.jpg +0 -0
  235. package/modules/public-landing/public/assets/world/r5-life-1-primordial-sea.jpg.json +1 -1
  236. package/modules/public-landing/public/assets/world/r5-life-2-first-cells-cut.webp +0 -0
  237. package/modules/public-landing/public/assets/world/r5-life-2-first-cells-cut.webp.json +1 -1
  238. package/modules/public-landing/public/assets/world/r5-life-2-first-cells.jpg +0 -0
  239. package/modules/public-landing/public/assets/world/r5-life-2-first-cells.jpg.json +1 -1
  240. package/modules/public-landing/public/assets/world/r5-life-3-genome-cut.webp +0 -0
  241. package/modules/public-landing/public/assets/world/r5-life-3-genome-cut.webp.json +1 -1
  242. package/modules/public-landing/public/assets/world/r5-life-3-genome.jpg +0 -0
  243. package/modules/public-landing/public/assets/world/r5-life-3-genome.jpg.json +1 -1
  244. package/modules/public-landing/public/assets/world/r5-life-4-membrane-cut.webp +0 -0
  245. package/modules/public-landing/public/assets/world/r5-life-4-membrane-cut.webp.json +1 -1
  246. package/modules/public-landing/public/assets/world/r5-life-4-membrane.jpg +0 -0
  247. package/modules/public-landing/public/assets/world/r5-life-4-membrane.jpg.json +1 -1
  248. package/modules/public-landing/public/assets/world/r5-life-5-nervous-system-cut.webp +0 -0
  249. package/modules/public-landing/public/assets/world/r5-life-5-nervous-system-cut.webp.json +1 -1
  250. package/modules/public-landing/public/assets/world/r5-life-5-nervous-system.jpg +0 -0
  251. package/modules/public-landing/public/assets/world/r5-life-5-nervous-system.jpg.json +1 -1
  252. package/modules/public-landing/public/community.html +1 -1
  253. package/modules/public-landing/public/connections.html +2 -2
  254. package/modules/public-landing/public/guild.html +1 -1
  255. package/modules/public-landing/public/invitations.html +2 -2
  256. package/modules/public-landing/public/projects.html +5 -5
  257. package/modules/raise/views/nda.html +2 -0
  258. package/modules/specialities/db.js +32 -1
  259. package/modules/specialities/routes/specialities.js +10 -6
  260. package/modules/status-ui/public/index.html +1 -1
  261. package/package-lock.json +2 -2
  262. package/package.json +1 -1
  263. package/release-notes.json +286 -0
  264. package/scripts/bongos/autobongos-tweak-lane.js +46 -1
  265. package/scripts/bongos/backfill-subagent-rewards.js +2 -2
  266. package/scripts/bongos/claim.js +22 -1
  267. package/scripts/bongos/db-backup-nightly.sh +29 -0
  268. package/scripts/bongos/deploy-divergence.js +7 -0
  269. package/scripts/bongos/doc-cli-guard.js +6 -0
  270. package/scripts/bongos/fitness.js +3 -2
  271. package/scripts/bongos/gen-diagrams.js +3 -3
  272. package/scripts/bongos/lib.sh +4 -5
  273. package/scripts/bongos/migration-namespace.js +13 -1
  274. package/scripts/bongos/plain-cards.js +4 -0
  275. package/scripts/bongos/provision-github-setup.js +3 -1
  276. package/scripts/bongos/provision-units.js +6 -1
  277. package/scripts/bongos/publish-manifest.js +4 -0
  278. package/scripts/bongos/release.js +2 -0
  279. package/scripts/bongos/run-unit-tests.js +268 -82
  280. package/scripts/bongos/seed-tasks.example.json +56 -0
  281. package/scripts/bongos/seed-tasks.js +222 -0
  282. package/scripts/bongos/seed-verify-criteria.js +1 -2
  283. package/scripts/bongos/ship-finish.js +2 -0
  284. package/scripts/bongos/ship-resume.js +2 -0
  285. package/scripts/bongos/strand-lease.js +250 -0
  286. package/scripts/bongos/strand-watch.js +129 -12
  287. package/scripts/bongos/version-literal-guard.js +2 -2
  288. package/scripts/discord/post.js +4 -3
  289. package/scripts/gds/seed-tasks.js +7 -0
  290. package/scripts/gds/{build-bongos.js → strand-lease.js} +3 -3
  291. package/scripts/hall-preview/server.js +21 -0
  292. package/src/bongos/auth-config.js +29 -1
  293. package/src/bongos/auth-discord.js +3 -3
  294. package/src/bongos/auth-github.js +3 -6
  295. package/src/bongos/auth-google.js +217 -0
  296. package/src/bongos/device-approval.js +140 -0
  297. package/src/bongos/llm-pricing.js +17 -1
  298. package/src/bongos/metrics.js +48 -2
  299. package/src/bongos/middleware/rate-limit.js +30 -11
  300. package/src/bongos/module-scope-map.js +16 -1
  301. package/src/bongos/optimizer.js +15 -1
  302. package/src/bongos/payout-approvals.js +342 -0
  303. package/src/bongos/payout-gates.js +364 -0
  304. package/src/bongos/prelaunch-gate.js +7 -9
  305. package/src/bongos/prelaunch-switch.js +20 -0
  306. package/src/bongos/route-rank-check.js +3 -0
  307. package/src/bongos/routes/auth-google.js +246 -0
  308. package/src/bongos/routes/auth.js +38 -1
  309. package/src/bongos/routes/backup.js +33 -9
  310. package/src/bongos/routes/builders.js +57 -30
  311. package/src/bongos/routes/github.js +9 -0
  312. package/src/bongos/routes/me.js +18 -0
  313. package/src/bongos/routes/my-payouts.js +133 -0
  314. package/src/bongos/routes/payout-approvals.js +312 -0
  315. package/src/bongos/routes/payout-gates.js +179 -0
  316. package/src/bongos/routes.js +15 -1
  317. package/src/bongos/secret-box.js +18 -3
  318. package/src/bongos/serve-internal.js +47 -19
  319. package/src/bongos/sign-in-pages.js +138 -0
  320. package/src/bongos/task-needs.js +146 -0
  321. package/src/bongos-downloads.js +18 -1
  322. package/src/instance-config.js +28 -0
  323. package/src/module-api.js +14 -1
  324. package/src/platform-server.js +27 -1
  325. package/tests/account_logins.mjs +326 -0
  326. package/tests/account_logins_db.mjs +161 -0
  327. package/tests/ai_studio_billing.mjs +253 -0
  328. package/tests/ai_studio_generate.mjs +282 -0
  329. package/tests/ai_studio_keys.mjs +159 -0
  330. package/tests/ai_studio_requests.mjs +319 -0
  331. package/tests/auth_backchannel_logout_route.mjs +201 -0
  332. package/tests/auto_satisfy_criteria.mjs +10 -1
  333. package/tests/autobongos_tweak_lane.mjs +144 -0
  334. package/tests/autobongos_tweak_pin_identity.mjs +137 -0
  335. package/tests/backfill_subagent_rewards.mjs +17 -1
  336. package/tests/backup_trigger_lock.mjs +119 -0
  337. package/tests/batched_writes_parity.mjs +340 -0
  338. package/tests/blockers_people.mjs +198 -0
  339. package/tests/bounded_rate_maps.mjs +184 -0
  340. package/tests/claimable_blocker_status.mjs +1 -1
  341. package/tests/claims_batch_routes.mjs +421 -0
  342. package/tests/conductor_main_e2e.mjs +4 -0
  343. package/tests/config_read_cache.mjs +171 -0
  344. package/tests/copy_desk_page_editor.mjs +12 -0
  345. package/tests/cost_write_guard.mjs +200 -0
  346. package/tests/craft_achievements.mjs +33 -10
  347. package/tests/criterion_goal_attach.mjs +1 -1
  348. package/tests/db_backup_nightly.mjs +73 -1
  349. package/tests/deploy_divergence_line.mjs +7 -0
  350. package/tests/effective_visibility_predicate.mjs +12 -0
  351. package/tests/fitness.mjs +19 -0
  352. package/tests/fixtures/per-row-loops-legacy.cjs +245 -0
  353. package/tests/fixtures/seed-tasks/bongos-v1-idea-routing.json +256 -0
  354. package/tests/fixtures/seed-tasks/bv1-profiles.json +592 -0
  355. package/tests/fixtures/seed-tasks/bv2-ideator-surface.json +373 -0
  356. package/tests/fixtures/seed-tasks/fake-api.mjs +80 -0
  357. package/tests/github_one_trip.mjs +34 -0
  358. package/tests/github_repo_visibility.mjs +20 -0
  359. package/tests/goal_achievement.mjs +30 -1
  360. package/tests/goal_achievement_reward.mjs +205 -0
  361. package/tests/goal_archive_disposition.mjs +5 -5
  362. package/tests/goal_sort_staleness.mjs +2 -1
  363. package/tests/goal_tier.mjs +11 -1
  364. package/tests/google_fonts_nonblocking.mjs +84 -0
  365. package/tests/google_sign_in.mjs +401 -0
  366. package/tests/government_board_expiry.mjs +94 -0
  367. package/tests/government_protected_surfaces.mjs +1 -1
  368. package/tests/government_routes.mjs +146 -23
  369. package/tests/grader.mjs +31 -0
  370. package/tests/hall_ai_studio.mjs +347 -0
  371. package/tests/hall_city.mjs +8 -0
  372. package/tests/hall_page_gate_map.mjs +3 -0
  373. package/tests/hall_studio_home.mjs +61 -2
  374. package/tests/home_attention_cards.mjs +1 -1
  375. package/tests/hook_shell_tools.mjs +8 -0
  376. package/tests/hooks_drain.mjs +1 -1
  377. package/tests/host_topology_skips.mjs +2 -0
  378. package/tests/howto_moments.mjs +17 -0
  379. package/tests/human_signal.mjs +141 -0
  380. package/tests/install_script_reader.mjs +51 -0
  381. package/tests/integration_fixture_ids.mjs +82 -0
  382. package/tests/invite_expiry_db.mjs +13 -1
  383. package/tests/lib_sh_resolution.mjs +0 -4
  384. package/tests/market_watch_data.mjs +244 -0
  385. package/tests/market_watch_data_db.mjs +308 -0
  386. package/tests/market_watch_module.mjs +114 -0
  387. package/tests/market_watch_run.mjs +503 -0
  388. package/tests/metrics.mjs +124 -0
  389. package/tests/migration_namespace.mjs +14 -0
  390. package/tests/module_api.mjs +2 -0
  391. package/tests/module_loader.mjs +1 -1
  392. package/tests/module_skills_hook.mjs +69 -0
  393. package/tests/notes.mjs +182 -0
  394. package/tests/own_scope_guard.mjs +5 -0
  395. package/tests/page_tweak_marker_sql.mjs +76 -0
  396. package/tests/page_tweak_no_block.mjs +135 -0
  397. package/tests/page_tweak_notice.mjs +103 -0
  398. package/tests/payout_approvals.mjs +253 -0
  399. package/tests/payout_approvals_db.mjs +106 -0
  400. package/tests/payout_gates.mjs +322 -0
  401. package/tests/payout_gates_db.mjs +113 -0
  402. package/tests/planning_session_skill.mjs +13 -3
  403. package/tests/project_settings_page.mjs +29 -5
  404. package/tests/project_settings_spend_cap_route.mjs +235 -0
  405. package/tests/promotion_sweep.mjs +29 -1
  406. package/tests/provision.mjs +3 -2
  407. package/tests/provisioning_app_status.mjs +18 -0
  408. package/tests/provisioning_credential_preflight.mjs +53 -0
  409. package/tests/provisioning_env_manifest_edit_delete.mjs +223 -0
  410. package/tests/public_landing_projects.mjs +37 -0
  411. package/tests/publish_reconciler_overlap.mjs +60 -0
  412. package/tests/rank_change_broadcast_port.mjs +151 -0
  413. package/tests/seed_tasks.mjs +176 -0
  414. package/tests/seed_verify_criteria.mjs +2 -6
  415. package/tests/session_start_freshness.mjs +66 -1
  416. package/tests/shell_hooks.mjs +209 -0
  417. package/tests/ship_assurance.mjs +28 -0
  418. package/tests/ship_card.mjs +20 -5
  419. package/tests/site_classified_once.mjs +142 -0
  420. package/tests/speciality_db_shape.mjs +23 -0
  421. package/tests/speciality_session_skills.mjs +48 -2
  422. package/tests/strand_lease.mjs +249 -0
  423. package/tests/strand_watch.mjs +58 -0
  424. package/tests/task_criteria_routes.mjs +275 -0
  425. package/tests/task_criteria_unlink_db.mjs +123 -0
  426. package/tests/task_needs.mjs +233 -0
  427. package/tests/task_needs_db.mjs +110 -0
  428. package/tests/unit_runner_serial.mjs +266 -43
  429. package/tests/version_close_route.mjs +1 -1
  430. package/tests/version_literals.mjs +5 -7
  431. package/tests/welcome_boot.mjs +16 -5
  432. package/tests/welcome_boot_browser.mjs +36 -4
  433. package/docs/recipes/bongos-cli-release.md +0 -66
  434. package/scripts/bongos/backfill-disciplines.js +0 -144
  435. package/scripts/bongos/backfill-session-earnings.js +0 -123
  436. package/scripts/bongos/backfill-session-types.js +0 -87
  437. package/scripts/bongos/build-bongos.js +0 -94
  438. package/scripts/bongos/cleanup-orphans.js +0 -74
  439. package/scripts/bongos/seed-bongos-v1-idea-routing-tasks.js +0 -152
  440. package/scripts/bongos/seed-bv1-profiles-tasks.js +0 -135
  441. package/scripts/bongos/seed-bv2-ideator-surface-tasks.js +0 -390
  442. package/scripts/bongos/smoke-batch-claim.sh +0 -238
  443. package/scripts/bongos/smoke-batch-release.sh +0 -316
  444. package/scripts/bongos/smoke-claim-consistency.sh +0 -222
  445. package/scripts/bongos/smoke-dependencies.sh +0 -143
  446. package/scripts/gds/backfill-disciplines.js +0 -7
  447. package/scripts/gds/backfill-session-earnings.js +0 -7
  448. package/scripts/gds/backfill-session-types.js +0 -7
  449. package/scripts/gds/cleanup-orphans.js +0 -7
  450. package/scripts/gds/seed-bongos-v1-idea-routing-tasks.js +0 -6
  451. package/scripts/gds/seed-bv1-profiles-tasks.js +0 -6
  452. package/scripts/gds/seed-bv2-ideator-surface-tasks.js +0 -6
  453. package/scripts/gds/smoke-batch-claim.sh +0 -8
  454. package/scripts/gds/smoke-batch-release.sh +0 -8
  455. package/scripts/gds/smoke-claim-consistency.sh +0 -8
  456. package/scripts/gds/smoke-dependencies.sh +0 -8
  457. package/tests/smoke_dependencies_witness.mjs +0 -46
@@ -0,0 +1,497 @@
1
+ [
2
+ {
3
+ "rank": 1,
4
+ "name": "NLnet Foundation (NGI Zero / Open Internet Stack)",
5
+ "url": "https://nlnet.nl",
6
+ "category": "open-source funding",
7
+ "quote": null,
8
+ "quote_note": "No verbatim quote captured; mission paraphrased: grants for an open, trustworthy internet",
9
+ "quote_url": "https://nlnet.nl/propose",
10
+ "scores": {
11
+ "open_source": 10,
12
+ "worker_ownership": 4,
13
+ "transparency": 9,
14
+ "human_oversight_ai": 5,
15
+ "cooperative_economics": 6
16
+ },
17
+ "overall": 8.6,
18
+ "partnership": "Apply for a EUR 5-50k grant for the self-hostable AGPL core (governance module + public ledger). New calls reported to open 3 Sep 2026, deadline 3 Nov 2026 noon CEST - dates conflict across sources, verify.",
19
+ "unverified": [
20
+ "Sep 3 - Nov 3 2026 call window (sources disagree)",
21
+ "Open Internet Stack EUR 41.3M successor budget (single FOSDEM-talk source)"
22
+ ]
23
+ },
24
+ {
25
+ "rank": 2,
26
+ "name": "Colony",
27
+ "url": "https://colony.io",
28
+ "category": "DAO tooling",
29
+ "quote": "governance power is determined by Reputation",
30
+ "quote_url": "https://docs.colony.io/learn/governance/reputation",
31
+ "scores": {
32
+ "open_source": 8,
33
+ "worker_ownership": 8,
34
+ "transparency": 9,
35
+ "human_oversight_ai": 3,
36
+ "cooperative_economics": 9
37
+ },
38
+ "overall": 8.4,
39
+ "partnership": "Integration pilot: map Bongos shipped-work credits to Colony-style non-transferable, decaying, domain-scoped reputation; co-author a post on 'reputation for work done by humans directing AI'. Learn from their decay + per-domain model for project governments.",
40
+ "unverified": [
41
+ "Exact page hosting the quote (docs vs blog)",
42
+ "Current 2026 activity level of Colony team"
43
+ ]
44
+ },
45
+ {
46
+ "rank": 3,
47
+ "name": "Codeberg e.V. / Forgejo",
48
+ "url": "https://codeberg.org",
49
+ "category": "self-host community / forge",
50
+ "quote": "can be trusted to be exclusively Free Software",
51
+ "quote_url": "https://forgejo.org/",
52
+ "scores": {
53
+ "open_source": 10,
54
+ "worker_ownership": 6,
55
+ "transparency": 9,
56
+ "human_oversight_ai": 4,
57
+ "cooperative_economics": 7
58
+ },
59
+ "overall": 8.2,
60
+ "partnership": "Ship a Forgejo adapter so self-hosted Bongos instances can claim/land tasks against Forgejo instead of GitHub; donate/become a Codeberg e.V. supporting member; co-marketing to the de-GitHub crowd.",
61
+ "unverified": [
62
+ "Codeberg e.V. openness to AI-agent tooling (their community is AI-skeptical; check policies)"
63
+ ]
64
+ },
65
+ {
66
+ "rank": 4,
67
+ "name": "Open Collective (OFiCo) + Open Source Collective",
68
+ "url": "https://opencollective.com",
69
+ "category": "transparent funding / fiscal hosting",
70
+ "quote": null,
71
+ "quote_note": "Paraphrase: financial documents, metrics and plans shared publicly; code open source",
72
+ "quote_url": "https://docs.opencollective.com/help/about/investors",
73
+ "scores": {
74
+ "open_source": 9,
75
+ "worker_ownership": 6,
76
+ "transparency": 10,
77
+ "human_oversight_ai": 3,
78
+ "cooperative_economics": 8
79
+ },
80
+ "overall": 8,
81
+ "partnership": "Fiscal-host integration: let a Bongos project government hold a Collective and auto-mirror credit payouts as public expenses; list Bongos on OC; Metagov Gateway already connects to Open Collective.",
82
+ "unverified": [
83
+ "Platform now owned by non-profit Open Finance Consortium (OFiCo) - from OC docs mirror"
84
+ ]
85
+ },
86
+ {
87
+ "rank": 5,
88
+ "name": "Igalia",
89
+ "url": "https://www.igalia.com",
90
+ "category": "worker co-op (software)",
91
+ "quote": "completely flat, cooperatively owned, and cooperatively managed",
92
+ "quote_url": "https://www.geo.coop/articles/scaling-co-op-beyond-100-members",
93
+ "scores": {
94
+ "open_source": 10,
95
+ "worker_ownership": 10,
96
+ "transparency": 6,
97
+ "human_oversight_ai": 4,
98
+ "cooperative_economics": 10
99
+ },
100
+ "overall": 7.9,
101
+ "partnership": "Case-study / advisory pilot: Igalia's ~140-member assembly as a reference design for Bongos project governments; invite an Igalian to review the 'government votes laws' model; co-present at FOSDEM.",
102
+ "unverified": [
103
+ "~140 members (talk figure)",
104
+ "Igalia stance on AI-written code"
105
+ ]
106
+ },
107
+ {
108
+ "rank": 6,
109
+ "name": "Collective Intelligence Project (CIP)",
110
+ "url": "https://cip.org",
111
+ "category": "AI governance",
112
+ "quote": "involving the public in defining what 'good' is",
113
+ "quote_url": "https://cip.org/blog/alignment",
114
+ "scores": {
115
+ "open_source": 6,
116
+ "worker_ownership": 5,
117
+ "transparency": 8,
118
+ "human_oversight_ai": 10,
119
+ "cooperative_economics": 6
120
+ },
121
+ "overall": 7.8,
122
+ "partnership": "Research pilot: run an 'alignment assembly' (Polis-style) inside a Bongos project government to set the laws its AI agents obey; publish results jointly. Strong story: democratic constitution for coding agents.",
123
+ "unverified": [
124
+ "1,200+ participants / 68 countries (single wiki source)"
125
+ ]
126
+ },
127
+ {
128
+ "rank": 7,
129
+ "name": "Metagov",
130
+ "url": "https://metagov.org",
131
+ "category": "AI/online governance research + tooling",
132
+ "quote": "An open database of projects and tools in online governance",
133
+ "quote_url": "https://medium.com/metagov/introducing-govbase-97884b0ddaef",
134
+ "scores": {
135
+ "open_source": 9,
136
+ "worker_ownership": 6,
137
+ "transparency": 8,
138
+ "human_oversight_ai": 7,
139
+ "cooperative_economics": 7
140
+ },
141
+ "overall": 7.7,
142
+ "partnership": "List Bongos governments in Govbase; present at the Metagovernance Seminar; integrate PolicyKit-style policy authoring or the Gateway (Discord, GitHub, Open Collective, Loomio) so laws can be voted where communities already talk.",
143
+ "unverified": [
144
+ "Gateway appears unmaintained (no releases)"
145
+ ]
146
+ },
147
+ {
148
+ "rank": 8,
149
+ "name": "Outlandish + CoTech network",
150
+ "url": "https://outlandish.com",
151
+ "category": "worker co-op network (UK)",
152
+ "quote": "Make the tech industry fairer",
153
+ "quote_url": "https://ilh-web.adlibhosting.com/Details/fullCatalogue/200001776",
154
+ "scores": {
155
+ "open_source": 7,
156
+ "worker_ownership": 10,
157
+ "transparency": 7,
158
+ "human_oversight_ai": 4,
159
+ "cooperative_economics": 10
160
+ },
161
+ "overall": 7.5,
162
+ "partnership": "Pilot: offer free self-hosted Bongos to 2-3 CoTech co-ops as their internal work ledger + credit split; present at the CoTech gathering; joint 'platform as a service' to the network.",
163
+ "unverified": [
164
+ "Member count 26-32 (sources vary)"
165
+ ]
166
+ },
167
+ {
168
+ "rank": 9,
169
+ "name": "Platform Cooperativism Consortium (The New School)",
170
+ "url": "https://platform.coop",
171
+ "category": "platform co-op research/advocacy",
172
+ "quote": null,
173
+ "quote_note": "Paraphrase: supports the cooperative platform economy via research, education, funding coordination",
174
+ "quote_url": "https://platform.coop/people/trebor-scholz/",
175
+ "scores": {
176
+ "open_source": 6,
177
+ "worker_ownership": 10,
178
+ "transparency": 7,
179
+ "human_oversight_ai": 6,
180
+ "cooperative_economics": 10
181
+ },
182
+ "overall": 7.4,
183
+ "partnership": "Apply to ICDE Fellowship / case study for the Fall 2026 'AI Without Bosses' course; list in the resource library; co-host a session on worker-governed AI agents.",
184
+ "unverified": [
185
+ "'AI Without Bosses' course listing (faculty page, single source)"
186
+ ]
187
+ },
188
+ {
189
+ "rank": 10,
190
+ "name": "OpenHands (All Hands AI)",
191
+ "url": "https://openhands.dev",
192
+ "category": "open AI dev agent",
193
+ "quote": "the world's best AI software development agents, for everyone, in the open",
194
+ "quote_url": "https://openhands.dev/blog/introducing-all-hands-ai",
195
+ "scores": {
196
+ "open_source": 8,
197
+ "worker_ownership": 2,
198
+ "transparency": 7,
199
+ "human_oversight_ai": 6,
200
+ "cooperative_economics": 2
201
+ },
202
+ "overall": 7,
203
+ "partnership": "Integration: make OpenHands a first-class Bongos builder agent (claims task, ships through the grade/gate pipeline); co-marketing 'OpenHands does the work, Bongos governs and pays'.",
204
+ "unverified": [
205
+ "$18.8M Series A (Madrona) figure",
206
+ "Enterprise edition is source-available, not OSS"
207
+ ]
208
+ },
209
+ {
210
+ "rank": 11,
211
+ "name": "FLOSS/fund (Zerodha)",
212
+ "url": "https://floss.fund",
213
+ "category": "open-source funding",
214
+ "quote": null,
215
+ "quote_note": "Paraphrase: no applications; projects publish a funding.json manifest",
216
+ "quote_url": "https://zerodha.com/open-source/2025-report/",
217
+ "scores": {
218
+ "open_source": 10,
219
+ "worker_ownership": 3,
220
+ "transparency": 9,
221
+ "human_oversight_ai": 3,
222
+ "cooperative_economics": 5
223
+ },
224
+ "overall": 6.9,
225
+ "partnership": "Publish funding.json for Cloud Bongos core now (near-zero cost, $10k-100k grants); have Bongos auto-generate funding.json per hosted project from the ledger.",
226
+ "unverified": [
227
+ "$1M again in 2026 (announced intent)"
228
+ ]
229
+ },
230
+ {
231
+ "rank": 12,
232
+ "name": "Zed Industries",
233
+ "url": "https://zed.dev",
234
+ "category": "open AI dev tool",
235
+ "quote": "high-performance collaboration with humans and AI",
236
+ "quote_url": "https://zed.dev",
237
+ "scores": {
238
+ "open_source": 8,
239
+ "worker_ownership": 2,
240
+ "transparency": 6,
241
+ "human_oversight_ai": 7,
242
+ "cooperative_economics": 2
243
+ },
244
+ "overall": 6.6,
245
+ "partnership": "Build a Bongos agent for Zed via the open Agent Client Protocol (claim/ship from the editor's agent panel); AGPL server components match Bongos licensing.",
246
+ "unverified": [
247
+ "1.0 date and ACP details (secondary sources)"
248
+ ]
249
+ },
250
+ {
251
+ "rank": 13,
252
+ "name": "Sovereign Tech Agency",
253
+ "url": "https://www.sovereign.tech",
254
+ "category": "open-source funding (public)",
255
+ "quote": null,
256
+ "quote_note": "Paraphrase: publicly funded investment in open digital infrastructure",
257
+ "quote_url": "https://interoperable-europe.ec.europa.eu/collection/open-source-observatory-osor/document/funding-open-source-case-study-sovereign-tech-fund",
258
+ "scores": {
259
+ "open_source": 10,
260
+ "worker_ownership": 3,
261
+ "transparency": 8,
262
+ "human_oversight_ai": 3,
263
+ "cooperative_economics": 5
264
+ },
265
+ "overall": 6.5,
266
+ "partnership": "Long shot: STF funds critical infrastructure, not apps. Better fit later via Fellowship if a Bongos maintainer stewards a dependency; track calls.",
267
+ "unverified": [
268
+ "EUR 24.6M / 60+ projects total may be stale"
269
+ ]
270
+ },
271
+ {
272
+ "rank": 14,
273
+ "name": "Drips",
274
+ "url": "https://www.drips.network",
275
+ "category": "dependency funding (onchain)",
276
+ "quote": null,
277
+ "quote_note": "Paraphrase: funding streams split automatically to nested dependencies",
278
+ "quote_url": "https://www.drips.network/solutions/dependency-funding",
279
+ "scores": {
280
+ "open_source": 9,
281
+ "worker_ownership": 5,
282
+ "transparency": 9,
283
+ "human_oversight_ai": 2,
284
+ "cooperative_economics": 7
285
+ },
286
+ "overall": 6.4,
287
+ "partnership": "Optional payout rail: a project government can route a share of its credits pool to upstream dependencies via a Drip List; claim Bongos' own project page on Drips.",
288
+ "unverified": [
289
+ "Crypto rails may clash with cheapest-viable/no-token posture"
290
+ ]
291
+ },
292
+ {
293
+ "rank": 15,
294
+ "name": "Coolify (coollabs)",
295
+ "url": "https://coolify.io",
296
+ "category": "self-host community",
297
+ "quote": "paid option without paywall",
298
+ "quote_url": "https://github.com/coollabsio",
299
+ "scores": {
300
+ "open_source": 9,
301
+ "worker_ownership": 3,
302
+ "transparency": 7,
303
+ "human_oversight_ai": 2,
304
+ "cooperative_economics": 4
305
+ },
306
+ "overall": 6.3,
307
+ "partnership": "One-click Coolify template for self-hosting a Bongos instance; reuse Coolify's 'cloud = same codebase, no paywall' pricing story; co-promotion to self-hosters.",
308
+ "unverified": [
309
+ "Exact quote location (founder quote via docs)"
310
+ ]
311
+ },
312
+ {
313
+ "rank": 16,
314
+ "name": "YunoHost",
315
+ "url": "https://yunohost.org",
316
+ "category": "self-host community (associative)",
317
+ "quote": null,
318
+ "quote_note": "Paraphrase: sponsored by associations (Gitoyen, Framasoft) rather than companies",
319
+ "quote_url": "https://yunohost.org/en/sponsors_partners",
320
+ "scores": {
321
+ "open_source": 10,
322
+ "worker_ownership": 5,
323
+ "transparency": 7,
324
+ "human_oversight_ai": 2,
325
+ "cooperative_economics": 6
326
+ },
327
+ "overall": 6.2,
328
+ "partnership": "Package Bongos as a YunoHost app; route intro to Framasoft (CHATONS) for francophone associative reach.",
329
+ "unverified": []
330
+ },
331
+ {
332
+ "rank": 17,
333
+ "name": "Polar",
334
+ "url": "https://polar.sh",
335
+ "category": "OSS monetization",
336
+ "quote": "open-source monetization platform for future one-developer unicorns",
337
+ "quote_url": "https://polar.sh/company",
338
+ "scores": {
339
+ "open_source": 9,
340
+ "worker_ownership": 3,
341
+ "transparency": 7,
342
+ "human_oversight_ai": 2,
343
+ "cooperative_economics": 3
344
+ },
345
+ "overall": 5.9,
346
+ "partnership": "Use Polar (Apache-2.0, self-hostable) as a card-payment rail for buying project credits; issue-bounty bridge so Polar bounties become Bongos tasks.",
347
+ "unverified": [
348
+ "Dependency-sharing feature status"
349
+ ]
350
+ },
351
+ {
352
+ "rank": 18,
353
+ "name": "Aider",
354
+ "url": "https://aider.chat",
355
+ "category": "open AI dev tool",
356
+ "quote": null,
357
+ "quote_note": "Paraphrase: open-source terminal AI pair programming in your git repo",
358
+ "quote_url": "https://aider.chat",
359
+ "scores": {
360
+ "open_source": 10,
361
+ "worker_ownership": 3,
362
+ "transparency": 7,
363
+ "human_oversight_ai": 8,
364
+ "cooperative_economics": 2
365
+ },
366
+ "overall": 5.9,
367
+ "partnership": "Adapter so builders can use Aider (cheap, any model incl. local) as their Bongos agent - supports cheapest-viable posture.",
368
+ "unverified": [
369
+ "Maintenance cadence in 2026"
370
+ ]
371
+ },
372
+ {
373
+ "rank": 19,
374
+ "name": "KO_OP / Motion Twin (game worker co-ops)",
375
+ "url": "https://en.wikipedia.org/wiki/KO_OP",
376
+ "category": "indie game co-op",
377
+ "quote": "equal pay and equal say",
378
+ "quote_url": "https://en.wikipedia.org/wiki/KO_OP",
379
+ "scores": {
380
+ "open_source": 3,
381
+ "worker_ownership": 10,
382
+ "transparency": 6,
383
+ "human_oversight_ai": 4,
384
+ "cooperative_economics": 10
385
+ },
386
+ "overall": 5.8,
387
+ "partnership": "Pilot a small game project on Bongos with a co-op studio (KO_OP laid off 13 in Sep 2026 citing funding drought - a cheap AI-assisted co-op pipeline is a real pitch). Motion Twin calls itself an 'anarcho-syndical workers cooperative'.",
388
+ "unverified": [
389
+ "Studio openness to AI-generated work (game workers often hostile)"
390
+ ]
391
+ },
392
+ {
393
+ "rank": 20,
394
+ "name": "Continue",
395
+ "url": "https://continue.dev",
396
+ "category": "open AI dev tool",
397
+ "quote": null,
398
+ "quote_note": "Paraphrase: Apache-2.0 IDE assistant; source-controlled AI checks on every PR",
399
+ "quote_url": "https://continue.dev",
400
+ "scores": {
401
+ "open_source": 9,
402
+ "worker_ownership": 2,
403
+ "transparency": 7,
404
+ "human_oversight_ai": 8,
405
+ "cooperative_economics": 2
406
+ },
407
+ "overall": 5.7,
408
+ "partnership": "Export a project government's 'laws' as Continue AI-check rules enforced on PRs - a direct bridge between governance and code review.",
409
+ "unverified": [
410
+ "Conflicting reports on whether Continue is still active"
411
+ ]
412
+ },
413
+ {
414
+ "rank": 21,
415
+ "name": "thanks.dev",
416
+ "url": "https://thanks.dev",
417
+ "category": "dependency funding",
418
+ "quote": null,
419
+ "quote_note": "Paraphrase: spreads donations across the dependency tree three levels deep",
420
+ "quote_url": "https://www.theregister.com/2023/04/07/thanksdev_open_source_funding/",
421
+ "scores": {
422
+ "open_source": 7,
423
+ "worker_ownership": 3,
424
+ "transparency": 7,
425
+ "human_oversight_ai": 2,
426
+ "cooperative_economics": 5
427
+ },
428
+ "overall": 5,
429
+ "partnership": "Register Cloud Bongos so dependents' donations flow in; low effort.",
430
+ "unverified": [
431
+ "5% commission figure"
432
+ ]
433
+ },
434
+ {
435
+ "rank": 22,
436
+ "name": "Start.coop",
437
+ "url": "https://start.coop",
438
+ "category": "co-op accelerator",
439
+ "quote": null,
440
+ "quote_note": "Self-described first co-op accelerator in the world (unverified wording)",
441
+ "quote_url": "https://resources.platform.coop/resources/start-coop",
442
+ "scores": {
443
+ "open_source": 3,
444
+ "worker_ownership": 9,
445
+ "transparency": 6,
446
+ "human_oversight_ai": 2,
447
+ "cooperative_economics": 9
448
+ },
449
+ "overall": 5,
450
+ "partnership": "Offer Bongos as shared member-management/work-ledger tooling for cohort co-ops; explore Exit-to-Community framing for Cloud Bongos itself.",
451
+ "unverified": [
452
+ "2026 status / cohort schedule unknown"
453
+ ]
454
+ },
455
+ {
456
+ "rank": 23,
457
+ "name": "Gitcoin",
458
+ "url": "https://gitcoin.co",
459
+ "category": "public goods funding (onchain)",
460
+ "quote": null,
461
+ "quote_note": "Paraphrase: make more public goods measurable and provable",
462
+ "quote_url": "https://gitcoin.co/research/reforming-eth-public-goods-funding-2026",
463
+ "scores": {
464
+ "open_source": 8,
465
+ "worker_ownership": 5,
466
+ "transparency": 8,
467
+ "human_oversight_ai": 2,
468
+ "cooperative_economics": 6
469
+ },
470
+ "overall": 4.8,
471
+ "partnership": "Low priority: Gitcoin is shrinking (Grants Stack wound down May 2025; 2026 DAO budget vote reportedly failed). Bongos ledger as 'provable public goods' evidence is the only angle.",
472
+ "unverified": [
473
+ "2026 budget vote outcome"
474
+ ]
475
+ },
476
+ {
477
+ "rank": 24,
478
+ "name": "Aragon / Snapshot",
479
+ "url": "https://aragon.org",
480
+ "category": "DAO tooling",
481
+ "quote": null,
482
+ "quote_note": "Paraphrase: modular plugin framework for onchain governance",
483
+ "quote_url": "https://wiki.p2pfoundation.net/Aragon_DAO_Framework",
484
+ "scores": {
485
+ "open_source": 8,
486
+ "worker_ownership": 4,
487
+ "transparency": 9,
488
+ "human_oversight_ai": 2,
489
+ "cooperative_economics": 4
490
+ },
491
+ "overall": 4.6,
492
+ "partnership": "Optional anchor: publish project-government vote results to Snapshot (gasless) for external verifiability. Token-weighted voting conflicts with work-earned credits; Colony is the better model.",
493
+ "unverified": [
494
+ "Snapshot weighting by Colony reputation (2021 Decrypt report)"
495
+ ]
496
+ }
497
+ ]