@bongos/core 1.19.811 → 1.19.812

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 (39) hide show
  1. package/.bongos-core.json +95 -35
  2. package/clients/bongos-client/README.md +1 -1
  3. package/clients/bongos-client/bongos-client.global.js +24 -0
  4. package/clients/bongos-client/index.cjs +24 -0
  5. package/clients/bongos-client/index.d.ts +39 -0
  6. package/clients/bongos-client/index.mjs +24 -0
  7. package/docs/adr/0296-a-role-speciality-is-data-over-three-existing-surfaces.md +71 -0
  8. package/docs/adr/README.md +1 -0
  9. package/docs/api/openapi.json +867 -73
  10. package/docs/api-reference.md +19 -3
  11. package/docs/copy-inventory.md +48 -20
  12. package/docs/copy-registry.json +275 -23
  13. package/docs/module-api-changelog.md +2 -0
  14. package/modules/dev-box/app/src/vendor/bongos-client.cjs +24 -0
  15. package/modules/hall-ui/public/settings-specialities.js +241 -0
  16. package/modules/hall-ui/public/settings.css +56 -0
  17. package/modules/hall-ui/public/settings.html +65 -0
  18. package/modules/lifecycle/db-claim-reads.js +5 -1
  19. package/modules/memory/learnings.js +21 -2
  20. package/modules/provisioning/starter-bundles.js +1 -0
  21. package/modules/specialities/CLAUDE.md +15 -0
  22. package/modules/specialities/db.js +234 -0
  23. package/modules/specialities/migrations/specialities_001_specialities.sql +143 -0
  24. package/modules/specialities/module.json +12 -0
  25. package/modules/specialities/routes/specialities.js +379 -0
  26. package/modules/specialities/specialities.js +198 -0
  27. package/modules/ui-design/kit/serve.js +1 -1
  28. package/package-lock.json +2 -2
  29. package/package.json +1 -1
  30. package/scripts/gds/publish-manifest.js +1 -0
  31. package/scripts/gds/search-ingest-db.js +37 -0
  32. package/src/bongos/routes/me.js +17 -0
  33. package/src/module-api.js +1 -1
  34. package/tests/module_loader.mjs +1 -1
  35. package/tests/own_scope_guard.mjs +10 -0
  36. package/tests/specialities.mjs +214 -0
  37. package/tests/speciality_corpus_scope.mjs +97 -0
  38. package/tests/speciality_db_shape.mjs +124 -0
  39. package/tests/speciality_injection.mjs +107 -0
package/.bongos-core.json CHANGED
@@ -2,22 +2,22 @@
2
2
  "artifact": "bongos-core",
3
3
  "manifest_schema": 1,
4
4
  "generator": "scripts/gds/package-core.js",
5
- "core_version": "1.19.811",
6
- "core_contract": "1.19.811",
7
- "source_commit": "8dc3b188ab249c84103920e82ce8021dc55487ed",
5
+ "core_version": "1.19.812",
6
+ "core_contract": "1.19.812",
7
+ "source_commit": "b0747d044e08c53ffda8cc93bceafef59787e27a",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-09-17T06:20:04.579Z",
9
+ "built_at": "2026-09-17T06:53:39.832Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
- "docs_redacted": 487,
13
- "agent_docs_stubbed": 25,
14
- "functional_verbatim": 2198,
12
+ "docs_redacted": 488,
13
+ "agent_docs_stubbed": 26,
14
+ "functional_verbatim": 2208,
15
15
  "rules": 3,
16
16
  "gate_literals": 3,
17
17
  "gate": "passed"
18
18
  },
19
- "file_count": 2710,
20
- "tree_sha256": "7f3e8838baaa79070aa7705d761e9613297767dc1391cbf4f2ba0492339cd9b1",
19
+ "file_count": 2722,
20
+ "tree_sha256": "7ce723b60b68f0cb665f81b47e71bdcec72bd1ddc5fe8c4e22c9ad0a07b79440",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/ask-for-help/SKILL.md",
@@ -347,12 +347,12 @@
347
347
  {
348
348
  "path": "clients/bongos-client/README.md",
349
349
  "mode": "0000644",
350
- "sha256": "87d05e0e0b1da445aa58cf6967595586cab256075eadc6795ee1d34532e9588e"
350
+ "sha256": "1921cca49d6df56968c7def2350d5b3bc2497d8ca1a7b616fccebf40c1cb16b1"
351
351
  },
352
352
  {
353
353
  "path": "clients/bongos-client/bongos-client.global.js",
354
354
  "mode": "0000644",
355
- "sha256": "8acd0b7d5c497e2855412f7d21b25a857aea745bfbf1c88ff6050cd0341f2864"
355
+ "sha256": "979dfc61bb05eba94d1b8caa6c5719c8b0eb083aa3a0f08b948cf4664f3f4450"
356
356
  },
357
357
  {
358
358
  "path": "clients/bongos-client/examples/hello-world.mjs",
@@ -362,17 +362,17 @@
362
362
  {
363
363
  "path": "clients/bongos-client/index.cjs",
364
364
  "mode": "0000644",
365
- "sha256": "623d2b3e2b353920ae0610f25f1c0886576b9e4e19cf4cc2482a93a26c3b43d7"
365
+ "sha256": "fe53f128f95908a58ebe749496d0dde631c4be5295c776cafd26a0d7b37e3102"
366
366
  },
367
367
  {
368
368
  "path": "clients/bongos-client/index.d.ts",
369
369
  "mode": "0000644",
370
- "sha256": "424ccc5a9436b2b587823784d226f03ed5cf6f4a1ac86834b37f0929dc1d5424"
370
+ "sha256": "5b6c3210bb423ef975ea9ad8e45bd0b24f93b368b4160f22f153f1b23da5c4ae"
371
371
  },
372
372
  {
373
373
  "path": "clients/bongos-client/index.mjs",
374
374
  "mode": "0000644",
375
- "sha256": "badc15dceb4de09146c8184ad1bf08b5db68e0b74538571c4a4dfb3cc1e61372"
375
+ "sha256": "38011ff56e228ded3d526bcb50b2c0c2b8b8ab7a742dffb16f377983c37ea676"
376
376
  },
377
377
  {
378
378
  "path": "clients/bongos-client/package.json",
@@ -1964,20 +1964,25 @@
1964
1964
  "mode": "0000644",
1965
1965
  "sha256": "971bd9c2feaa6f3fc910c8a413b1f1a2ebc416cb5c50885dac25f4114cb976c3"
1966
1966
  },
1967
+ {
1968
+ "path": "docs/adr/0296-a-role-speciality-is-data-over-three-existing-surfaces.md",
1969
+ "mode": "0000644",
1970
+ "sha256": "440116d384964c06055b1c7c07c30a962b164f519c9bbf3ce910570d186f1308"
1971
+ },
1967
1972
  {
1968
1973
  "path": "docs/adr/README.md",
1969
1974
  "mode": "0000644",
1970
- "sha256": "91240573bd704d34ed8100da3795b082430736acc1e03e8cf6469fcd12e2b220"
1975
+ "sha256": "b59f2fe025d6f96790faabe77a417fe08a42eaa29f38e176aa90ca9950d3a4a8"
1971
1976
  },
1972
1977
  {
1973
1978
  "path": "docs/api-reference.md",
1974
1979
  "mode": "0000644",
1975
- "sha256": "6c1fd2e8721d58538ab719b11209632f791f81a2f6f22272fc25c22b603fc00a"
1980
+ "sha256": "e7dfc7ab1f840c9a5e2ab84690f35d17c7ddcc12bca9aa974a55a39105a73df1"
1976
1981
  },
1977
1982
  {
1978
1983
  "path": "docs/api/openapi.json",
1979
1984
  "mode": "0000644",
1980
- "sha256": "1c1f944501da72054cfdf707eb7120b3be6dbcc4693090fa9ca94b9d840091ce"
1985
+ "sha256": "ccd869f8386340558cce007a74ba818d6808ac4037be0005fd81cf665b769f65"
1981
1986
  },
1982
1987
  {
1983
1988
  "path": "docs/architecture.md",
@@ -2002,12 +2007,12 @@
2002
2007
  {
2003
2008
  "path": "docs/copy-inventory.md",
2004
2009
  "mode": "0000644",
2005
- "sha256": "0a11f852e5ea4aff94010a6e4440e8a6fd25ac51e84afc2dbc91b98344d4d8f1"
2010
+ "sha256": "d7d32a0abf958fc99e21516e1708f37015376c456e0ffc125ab22a53d9a07994"
2006
2011
  },
2007
2012
  {
2008
2013
  "path": "docs/copy-registry.json",
2009
2014
  "mode": "0000644",
2010
- "sha256": "c75a8558b1974d0a71e110720e6eb1d7a758a80c943c58b949545d9be443aa9a"
2015
+ "sha256": "5a7576210021053f21acc7d7cc6fe90d71b603bbb2fcc118a09ef64e40bbc750"
2011
2016
  },
2012
2017
  {
2013
2018
  "path": "docs/design/apex-pass-2-direction.md",
@@ -2532,7 +2537,7 @@
2532
2537
  {
2533
2538
  "path": "docs/module-api-changelog.md",
2534
2539
  "mode": "0000644",
2535
- "sha256": "bb4fbb214534d6224c13b6c6aa283ca18d762fc46482842169505bb7c58d6308"
2540
+ "sha256": "3478aad2e6df54281dea8fcab1695cb6f943da2d3b9f5fe2ca9a6ec902061d5b"
2536
2541
  },
2537
2542
  {
2538
2543
  "path": "docs/modules-contract.md",
@@ -4067,7 +4072,7 @@
4067
4072
  {
4068
4073
  "path": "modules/dev-box/app/src/vendor/bongos-client.cjs",
4069
4074
  "mode": "0000644",
4070
- "sha256": "623d2b3e2b353920ae0610f25f1c0886576b9e4e19cf4cc2482a93a26c3b43d7"
4075
+ "sha256": "fe53f128f95908a58ebe749496d0dde631c4be5295c776cafd26a0d7b37e3102"
4071
4076
  },
4072
4077
  {
4073
4078
  "path": "modules/dev-box/app/test/unit.mjs",
@@ -5239,15 +5244,20 @@
5239
5244
  "mode": "0000644",
5240
5245
  "sha256": "c0c207769631f027ca35d219105e2189e2d259e7b45bfeaa1245fd749d7e91e5"
5241
5246
  },
5247
+ {
5248
+ "path": "modules/hall-ui/public/settings-specialities.js",
5249
+ "mode": "0000644",
5250
+ "sha256": "194358e6da084b0ed61af334ec5caa50cff64ae2d74b55291d48a2ed98c519d2"
5251
+ },
5242
5252
  {
5243
5253
  "path": "modules/hall-ui/public/settings.css",
5244
5254
  "mode": "0000644",
5245
- "sha256": "42533ca518ffc1754828720c443b5041e5ddf9edf8bf9f1fbee8eaa211a93f94"
5255
+ "sha256": "f65ec43c671249db17bf856832e0495a465fc478433b2c4709518bf29b5dfd11"
5246
5256
  },
5247
5257
  {
5248
5258
  "path": "modules/hall-ui/public/settings.html",
5249
5259
  "mode": "0000644",
5250
- "sha256": "9145b4502430c814b0b3d83cf8324639d94f0c1deaa9ef823823e0b0316007f9"
5260
+ "sha256": "88ce1d42d1a40fccb87da1c353a2649e01c7f6ef6241d34a53b7260cb46cec31"
5251
5261
  },
5252
5262
  {
5253
5263
  "path": "modules/hall-ui/public/settings.js",
@@ -5512,7 +5522,7 @@
5512
5522
  {
5513
5523
  "path": "modules/lifecycle/db-claim-reads.js",
5514
5524
  "mode": "0000644",
5515
- "sha256": "9c8f0af3a00c0b9844196cc94b89bf3dd6fd04bf2f5a8d135fe4e43267ac0d7a"
5525
+ "sha256": "f3e757a8753eba180c3c54a5edd3199db7853162b66ffd5bf37b85240890aa1f"
5516
5526
  },
5517
5527
  {
5518
5528
  "path": "modules/lifecycle/db-claims.js",
@@ -5902,7 +5912,7 @@
5902
5912
  {
5903
5913
  "path": "modules/memory/learnings.js",
5904
5914
  "mode": "0000644",
5905
- "sha256": "f44caaaecc2e8c4bd33f78aa391d8b740d7ded78aea8e959849e74af34884331"
5915
+ "sha256": "0d3f847e750287934ba7a0ebbb8b98d5c99d84eee80596f6423ebef8da16571b"
5906
5916
  },
5907
5917
  {
5908
5918
  "path": "modules/memory/memory.js",
@@ -6457,7 +6467,7 @@
6457
6467
  {
6458
6468
  "path": "modules/provisioning/starter-bundles.js",
6459
6469
  "mode": "0000644",
6460
- "sha256": "85f4b8e39801614457ed31f36220a0d2491c3d7dd8cd85ea04771d4ce77a79c2"
6470
+ "sha256": "cb2ca3bdf6cd99ee66d5242709fed3c167840a90cff9efe83ddb193c00c9719e"
6461
6471
  },
6462
6472
  {
6463
6473
  "path": "modules/provisioning/tests/liveness.mjs",
@@ -7254,6 +7264,36 @@
7254
7264
  "mode": "0000644",
7255
7265
  "sha256": "74ed39596ba26347340e23ad7f8626bf81b77a7b5fb3f84b5512cf21b67d81e6"
7256
7266
  },
7267
+ {
7268
+ "path": "modules/specialities/CLAUDE.md",
7269
+ "mode": "0000644",
7270
+ "sha256": "7cb9dac9cb87b679e1ae50e4112b3a7928a38ebb9902c8947a74d17bec4d9009"
7271
+ },
7272
+ {
7273
+ "path": "modules/specialities/db.js",
7274
+ "mode": "0000644",
7275
+ "sha256": "9fbd7dea94f5e4dae305f453961ad896c97113109d196dd42d077cfd6dd3b44a"
7276
+ },
7277
+ {
7278
+ "path": "modules/specialities/migrations/specialities_001_specialities.sql",
7279
+ "mode": "0000644",
7280
+ "sha256": "055210da2726c1d17457900a9b44566c58f371b3206365c5352474114be57251"
7281
+ },
7282
+ {
7283
+ "path": "modules/specialities/module.json",
7284
+ "mode": "0000644",
7285
+ "sha256": "3de062703a1694919038b94b9ae0821bd4cd7f2971c75039c161bc5389ec11e9"
7286
+ },
7287
+ {
7288
+ "path": "modules/specialities/routes/specialities.js",
7289
+ "mode": "0000644",
7290
+ "sha256": "0454b2f40cd8c08ee49af494dd46ec94045a3a19a1c788341fe94048b6b67d0b"
7291
+ },
7292
+ {
7293
+ "path": "modules/specialities/specialities.js",
7294
+ "mode": "0000644",
7295
+ "sha256": "af69cd2808d9abc16a8d611348a632132f37876f4688e76ab244eab81afecb23"
7296
+ },
7257
7297
  {
7258
7298
  "path": "modules/status-ui/CLAUDE.md",
7259
7299
  "mode": "0000644",
@@ -7417,7 +7457,7 @@
7417
7457
  {
7418
7458
  "path": "modules/ui-design/kit/serve.js",
7419
7459
  "mode": "0000644",
7420
- "sha256": "b041a60e0babb4b9d409f6542f748471c86235b8015922bdc501a5c0b8a2625f"
7460
+ "sha256": "8c2018cd6f8cfa90e3b73255d8da824162ca72f3963c4b685d81834e3db78029"
7421
7461
  },
7422
7462
  {
7423
7463
  "path": "modules/ui-design/kit/tells.js",
@@ -7727,12 +7767,12 @@
7727
7767
  {
7728
7768
  "path": "package-lock.json",
7729
7769
  "mode": "0000644",
7730
- "sha256": "d922e9276bdb8d89f5998de6f4b29dbc98d897e5a7acfc11d0ceeb2b11e89178"
7770
+ "sha256": "2a7a58719ee7045ba87756d837dd6c059a099e04b4e86ee4a5c8cc9e2c42b50e"
7731
7771
  },
7732
7772
  {
7733
7773
  "path": "package.json",
7734
7774
  "mode": "0000644",
7735
- "sha256": "98f193e8dfee8bab41773622a373d2c19efafa8fb7bdeaf6e2c43f2032651d24"
7775
+ "sha256": "46f70444019c4bb61f50098fb4e9d1f2b05cc66142c6f59ea36a17c8e722e636"
7736
7776
  },
7737
7777
  {
7738
7778
  "path": "public-docs/index.html",
@@ -8652,7 +8692,7 @@
8652
8692
  {
8653
8693
  "path": "scripts/gds/publish-manifest.js",
8654
8694
  "mode": "0000644",
8655
- "sha256": "8c6ca4655d1eb54b7e604e659fe8eebdf4f7a0b0231a31dab944883fc5c582e8"
8695
+ "sha256": "3663bea0a86f5f0a32d4bd48d98a78405fcc7a2840b4db081cade8601e9efa5b"
8656
8696
  },
8657
8697
  {
8658
8698
  "path": "scripts/gds/publish-watch.js",
@@ -8772,7 +8812,7 @@
8772
8812
  {
8773
8813
  "path": "scripts/gds/search-ingest-db.js",
8774
8814
  "mode": "0000644",
8775
- "sha256": "0723d48df92d78696b86adf0591584800f77da590afc80bcc5e3f99dcf614979"
8815
+ "sha256": "4ab33cc219300436217a58d8317082dc75e07039a69b2cb5e1d7bd0d67064304"
8776
8816
  },
8777
8817
  {
8778
8818
  "path": "scripts/gds/search-ingest-md.js",
@@ -9552,7 +9592,7 @@
9552
9592
  {
9553
9593
  "path": "src/bongos/routes/me.js",
9554
9594
  "mode": "0000644",
9555
- "sha256": "f3c1ab6e01c71ad834692a67444ad472da9f0a7dd5595d414cbe0f2c356ffea3"
9595
+ "sha256": "4be2b550184af2541f20c5b1a40cce4b61beb2eb676d4de7d2c05b0d9a92dfd4"
9556
9596
  },
9557
9597
  {
9558
9598
  "path": "src/bongos/routes/modules.js",
@@ -9622,7 +9662,7 @@
9622
9662
  {
9623
9663
  "path": "src/module-api.js",
9624
9664
  "mode": "0000644",
9625
- "sha256": "7cbce9c1f2bed1a8fe7a8cff1cfee09c702ee66fa719829ff347087bf86fb7bc"
9665
+ "sha256": "7532469124e010639f2fcf10257a9ffad594d90f3a15a67647c9a9c052ded87e"
9626
9666
  },
9627
9667
  {
9628
9668
  "path": "src/module-loader/catalog.js",
@@ -11982,7 +12022,7 @@
11982
12022
  {
11983
12023
  "path": "tests/module_loader.mjs",
11984
12024
  "mode": "0000644",
11985
- "sha256": "1199e4b106bb7d4da988cf15cc8030d272eeb87cb9733d4943d200760a7ac90a"
12025
+ "sha256": "c76510c090ff1162ed88bc753c2ae90842e48f234e050036e6c558a7d8681c2e"
11986
12026
  },
11987
12027
  {
11988
12028
  "path": "tests/module_manifest.mjs",
@@ -12117,7 +12157,7 @@
12117
12157
  {
12118
12158
  "path": "tests/own_scope_guard.mjs",
12119
12159
  "mode": "0000644",
12120
- "sha256": "4ddff5b21edcbc682ff54ffc13c8ed643db4b8860ed55a7196822f0b40e9611e"
12160
+ "sha256": "4eb0b6dc31b0945b47979253bc39a4bcaa0fbe6ac538ceb2565ce9cd4563b221"
12121
12161
  },
12122
12162
  {
12123
12163
  "path": "tests/own_session_revoke.mjs",
@@ -13139,6 +13179,26 @@
13139
13179
  "mode": "0000644",
13140
13180
  "sha256": "70228aa4be345cc09664b3b725e30c3a1e0eacf4c39573db1304fb219d3245e7"
13141
13181
  },
13182
+ {
13183
+ "path": "tests/specialities.mjs",
13184
+ "mode": "0000644",
13185
+ "sha256": "3f1273eb01960e52019d489418b40db83cb161caa5da4f55e4c3dc5b5c13a33b"
13186
+ },
13187
+ {
13188
+ "path": "tests/speciality_corpus_scope.mjs",
13189
+ "mode": "0000644",
13190
+ "sha256": "9d45e293c0829b99d1ec0e48803b860e854ab3107254ec83a772b63c539b7923"
13191
+ },
13192
+ {
13193
+ "path": "tests/speciality_db_shape.mjs",
13194
+ "mode": "0000644",
13195
+ "sha256": "3a301a62b2408ce0cf426b86ad3de600929daa4eb916719fb51e7007727c94f1"
13196
+ },
13197
+ {
13198
+ "path": "tests/speciality_injection.mjs",
13199
+ "mode": "0000644",
13200
+ "sha256": "9de6fbffd858190096bc22d556ccae101a6206adeee05bb146bd2a0a1a59d15c"
13201
+ },
13142
13202
  {
13143
13203
  "path": "tests/spike_task_map.mjs",
13144
13204
  "mode": "0000644",
@@ -5,7 +5,7 @@ A **generated**, zero-dependency typed client for the Bongos API — produced fr
5
5
  by hand; it regenerates when the spec changes, so it can never drift from the routes.
6
6
 
7
7
  - API version: **v1** (served at `/api/bongos/v1`)
8
- - 379 operations across 58 resource groups
8
+ - 390 operations across 59 resource groups
9
9
 
10
10
  ## Use it from your project
11
11
 
@@ -597,6 +597,8 @@ function createClient(opts = {}) {
597
597
  getMeSoundPrefs: (args) => request("GET", "/me/sound-prefs", { hasBody: false }, args),
598
598
  // PATCH /me/sound-prefs — rank: any-builder — PATCH /me/sound-prefs
599
599
  patchMeSoundPrefs: (args) => request("PATCH", "/me/sound-prefs", { hasBody: true }, args),
600
+ // GET /me/specialities — rank: any-builder — GET /me/specialities
601
+ getMeSpecialities: (args) => request("GET", "/me/specialities", { hasBody: false }, args),
600
602
  // GET /me/wandering — rank: any-builder — GET /me/wandering
601
603
  getMeWandering: (args) => request("GET", "/me/wandering", { hasBody: false }, args),
602
604
  // PATCH /me/wandering — rank: any-builder — PATCH /me/wandering
@@ -683,6 +685,8 @@ function createClient(opts = {}) {
683
685
  patchProjectsIdFeatured: (args) => request("PATCH", "/projects/{id}/featured", { hasBody: true }, args),
684
686
  // PATCH /projects/{id}/status — rank: metic+archon — PATCH /projects/:id/status
685
687
  patchProjectsIdStatus: (args) => request("PATCH", "/projects/{id}/status", { hasBody: true }, args),
688
+ // POST /projects/{projectId}/specialities — rank: any-builder — POST /projects/:projectId/specialities
689
+ postProjectsProjectIdSpecialities: (args) => request("POST", "/projects/{projectId}/specialities", { hasBody: true }, args),
686
690
  // GET /projects/featured — rank: public — GET /projects/featured
687
691
  getProjectsFeatured: (args) => request("GET", "/projects/featured", { hasBody: false }, args),
688
692
  // POST /projects/invite — rank: metic+archon — POST /projects/invite
@@ -834,6 +838,26 @@ function createClient(opts = {}) {
834
838
  // GET /sessions/upload-health — rank: metic+archon — GET /sessions/upload-health
835
839
  getSessionsUploadHealth: (args) => request("GET", "/sessions/upload-health", { hasBody: false }, args),
836
840
  },
841
+ "specialities": {
842
+ // GET /specialities — rank: any-builder — GET /specialities
843
+ getSpecialities: (args) => request("GET", "/specialities", { hasBody: false }, args),
844
+ // POST /specialities — rank: any-builder — POST /specialities
845
+ postSpecialities: (args) => request("POST", "/specialities", { hasBody: true }, args),
846
+ // GET /specialities/{id} — rank: any-builder — GET /specialities/:id
847
+ getSpecialitiesId: (args) => request("GET", "/specialities/{id}", { hasBody: false }, args),
848
+ // PATCH /specialities/{id} — rank: any-builder — PATCH /specialities/:id
849
+ patchSpecialitiesId: (args) => request("PATCH", "/specialities/{id}", { hasBody: true }, args),
850
+ // POST /specialities/{id}/abandon — rank: any-builder — POST /specialities/:id/abandon
851
+ postSpecialitiesIdAbandon: (args) => request("POST", "/specialities/{id}/abandon", { hasBody: true }, args),
852
+ // POST /specialities/{id}/adopt — rank: any-builder — POST /specialities/:id/adopt
853
+ postSpecialitiesIdAdopt: (args) => request("POST", "/specialities/{id}/adopt", { hasBody: true }, args),
854
+ // GET /specialities/{id}/documents — rank: any-builder — GET /specialities/:id/documents
855
+ getSpecialitiesIdDocuments: (args) => request("GET", "/specialities/{id}/documents", { hasBody: false }, args),
856
+ // POST /specialities/{id}/documents — rank: any-builder — POST /specialities/:id/documents
857
+ postSpecialitiesIdDocuments: (args) => request("POST", "/specialities/{id}/documents", { hasBody: true }, args),
858
+ // DELETE /specialities/{id}/documents/{docId} — rank: any-builder — DELETE /specialities/:id/documents/:docId
859
+ deleteSpecialitiesIdDocumentsDocId: (args) => request("DELETE", "/specialities/{id}/documents/{docId}", { hasBody: false }, args),
860
+ },
837
861
  "sso": {
838
862
  // POST /sso/activity/rollup — rank: public — POST /sso/activity/rollup
839
863
  postSsoActivityRollup: (args) => request("POST", "/sso/activity/rollup", { hasBody: true }, args),
@@ -596,6 +596,8 @@ function createClient(opts = {}) {
596
596
  getMeSoundPrefs: (args) => request("GET", "/me/sound-prefs", { hasBody: false }, args),
597
597
  // PATCH /me/sound-prefs — rank: any-builder — PATCH /me/sound-prefs
598
598
  patchMeSoundPrefs: (args) => request("PATCH", "/me/sound-prefs", { hasBody: true }, args),
599
+ // GET /me/specialities — rank: any-builder — GET /me/specialities
600
+ getMeSpecialities: (args) => request("GET", "/me/specialities", { hasBody: false }, args),
599
601
  // GET /me/wandering — rank: any-builder — GET /me/wandering
600
602
  getMeWandering: (args) => request("GET", "/me/wandering", { hasBody: false }, args),
601
603
  // PATCH /me/wandering — rank: any-builder — PATCH /me/wandering
@@ -682,6 +684,8 @@ function createClient(opts = {}) {
682
684
  patchProjectsIdFeatured: (args) => request("PATCH", "/projects/{id}/featured", { hasBody: true }, args),
683
685
  // PATCH /projects/{id}/status — rank: metic+archon — PATCH /projects/:id/status
684
686
  patchProjectsIdStatus: (args) => request("PATCH", "/projects/{id}/status", { hasBody: true }, args),
687
+ // POST /projects/{projectId}/specialities — rank: any-builder — POST /projects/:projectId/specialities
688
+ postProjectsProjectIdSpecialities: (args) => request("POST", "/projects/{projectId}/specialities", { hasBody: true }, args),
685
689
  // GET /projects/featured — rank: public — GET /projects/featured
686
690
  getProjectsFeatured: (args) => request("GET", "/projects/featured", { hasBody: false }, args),
687
691
  // POST /projects/invite — rank: metic+archon — POST /projects/invite
@@ -833,6 +837,26 @@ function createClient(opts = {}) {
833
837
  // GET /sessions/upload-health — rank: metic+archon — GET /sessions/upload-health
834
838
  getSessionsUploadHealth: (args) => request("GET", "/sessions/upload-health", { hasBody: false }, args),
835
839
  },
840
+ "specialities": {
841
+ // GET /specialities — rank: any-builder — GET /specialities
842
+ getSpecialities: (args) => request("GET", "/specialities", { hasBody: false }, args),
843
+ // POST /specialities — rank: any-builder — POST /specialities
844
+ postSpecialities: (args) => request("POST", "/specialities", { hasBody: true }, args),
845
+ // GET /specialities/{id} — rank: any-builder — GET /specialities/:id
846
+ getSpecialitiesId: (args) => request("GET", "/specialities/{id}", { hasBody: false }, args),
847
+ // PATCH /specialities/{id} — rank: any-builder — PATCH /specialities/:id
848
+ patchSpecialitiesId: (args) => request("PATCH", "/specialities/{id}", { hasBody: true }, args),
849
+ // POST /specialities/{id}/abandon — rank: any-builder — POST /specialities/:id/abandon
850
+ postSpecialitiesIdAbandon: (args) => request("POST", "/specialities/{id}/abandon", { hasBody: true }, args),
851
+ // POST /specialities/{id}/adopt — rank: any-builder — POST /specialities/:id/adopt
852
+ postSpecialitiesIdAdopt: (args) => request("POST", "/specialities/{id}/adopt", { hasBody: true }, args),
853
+ // GET /specialities/{id}/documents — rank: any-builder — GET /specialities/:id/documents
854
+ getSpecialitiesIdDocuments: (args) => request("GET", "/specialities/{id}/documents", { hasBody: false }, args),
855
+ // POST /specialities/{id}/documents — rank: any-builder — POST /specialities/:id/documents
856
+ postSpecialitiesIdDocuments: (args) => request("POST", "/specialities/{id}/documents", { hasBody: true }, args),
857
+ // DELETE /specialities/{id}/documents/{docId} — rank: any-builder — DELETE /specialities/:id/documents/:docId
858
+ deleteSpecialitiesIdDocumentsDocId: (args) => request("DELETE", "/specialities/{id}/documents/{docId}", { hasBody: false }, args),
859
+ },
836
860
  "sso": {
837
861
  // POST /sso/activity/rollup — rank: public — POST /sso/activity/rollup
838
862
  postSsoActivityRollup: (args) => request("POST", "/sso/activity/rollup", { hasBody: true }, args),
@@ -13,6 +13,7 @@ export interface DeleteGovernmentAssignmentsBuilderIdRankKeyResponse { ok: boole
13
13
  export interface DeleteGovernmentRanksRankKeyPermissionsPermissionKeyResponse { ok: boolean; rank_key: unknown; permission_key: unknown; removed: unknown }
14
14
  export interface DeleteInboxIdSparkResponse { idea: unknown; sparked: boolean; unchanged: boolean }
15
15
  export interface DeleteMemoryFileResponse { deleted: boolean; builder_id: unknown; path: unknown }
16
+ export interface DeleteSpecialitiesIdDocumentsDocIdResponse { ok: boolean }
16
17
  export interface DeleteTasksIdCriteriaCriterionIdResponse { ok: boolean; removed: unknown }
17
18
  export interface DeleteTasksIdDependenciesDepIdResponse { ok: boolean; removed: unknown }
18
19
  export interface DeleteTasksIdVisualResponse { ok: boolean; visual_url: unknown }
@@ -84,6 +85,7 @@ export interface GetMeRecentShipsResponse { ships: unknown }
84
85
  export interface GetMeSessionsResponse { sessions: unknown }
85
86
  export interface GetMeSkillPrefsResponse { prefs: unknown; effective: unknown; defaults: unknown; known_skills: unknown; allowed_models: unknown }
86
87
  export interface GetMeSoundPrefsResponse { prefs: unknown; effective: unknown; effective_map: unknown; volume: unknown; defaults: unknown; known_sounds: unknown }
88
+ export interface GetMeSpecialitiesResponse { adoptions: unknown }
87
89
  export interface GetMemoryBfgBuildersBuilderIdFileResponse { builder_id: unknown; bfg_read: boolean; path: unknown; content: unknown; sha256: unknown; byte_len: unknown; mtime: unknown; updated_at: unknown; created_at: unknown }
88
90
  export interface GetMemoryBfgBuildersBuilderIdFilesResponse { builder_id: unknown; bfg_read: boolean; count: unknown; files: unknown }
89
91
  export interface GetMemoryBuildersBuilderIdFileResponse { builder_id: unknown; forensic: boolean; path: unknown; content: unknown; sha256: unknown; byte_len: unknown; mtime: unknown; updated_at: unknown; created_at: unknown }
@@ -133,6 +135,9 @@ export interface GetSecurityScansResponse { scans: unknown }
133
135
  export interface GetSessionsIdResponse { session: unknown }
134
136
  export interface GetSessionsMineResponse { sessions: unknown; count: unknown }
135
137
  export interface GetSessionsSearchResponse { sessions: unknown; count: unknown; total: unknown; totals: unknown; limit: unknown; offset: unknown }
138
+ export interface GetSpecialitiesIdDocumentsResponse { documents: unknown }
139
+ export interface GetSpecialitiesIdResponse { speciality: unknown }
140
+ export interface GetSpecialitiesResponse { specialities: unknown }
136
141
  export interface GetSsoPubkeyResponse { alg: unknown; format: unknown; public_key_b64: unknown }
137
142
  export interface GetTaskRecommendationsForMeResponse { recommendations: unknown; count: unknown }
138
143
  export interface GetTaskRecommendationsMineResponse { recommendations: unknown; count: unknown }
@@ -189,6 +194,8 @@ export interface PatchProjectsIdStatusResponse { project: unknown }
189
194
  export interface PatchProvisioningInstancesIdDetailRequest { description?: string; detail?: Record<string, unknown>; modules?: string[]; type?: string }
190
195
  export interface PatchProvisioningInstancesIdDetailResponse { ok: boolean; description: unknown; detail: unknown; options: unknown; publish: unknown; modules: unknown; type: unknown }
191
196
  export interface PatchProvisioningInstancesIdSettingsResponse { ok: boolean; saved: unknown; planet: unknown; push: unknown }
197
+ export interface PatchSpecialitiesIdRequest { name?: string; summary?: string; contract_md?: string; visibility?: string; sellable?: boolean }
198
+ export interface PatchSpecialitiesIdResponse { speciality: unknown }
192
199
  export interface PatchTaskRecommendationsIdRequest { status: "declined" | "withdrawn" }
193
200
  export interface PatchTaskRecommendationsIdResponse { ok: boolean; recommendation: unknown }
194
201
  export interface PatchTasksIdRequest { kind?: string; discipline?: string; requires_rank?: string; module_key?: string; goal_id?: number; parent_task_id?: StringifiableId; parallel_safe?: unknown; newcomer_friendly?: boolean; xenos_claimable?: boolean; security_sensitive?: boolean; automation_tag?: string; needs_migration?: boolean; description?: string; title?: string; priority?: unknown; value_summary?: string; status?: unknown }
@@ -342,6 +349,8 @@ export interface PostMyProjectsJoinRequest { origin: string; note?: string }
342
349
  export interface PostMyProjectsJoinResponse { ok: boolean; status: unknown; project: unknown; message: unknown }
343
350
  export interface PostOverrideRequestsIdDecideRequest { decision: string; note?: string }
344
351
  export interface PostProjectsInviteRequest { client_id: string; github_login: string }
352
+ export interface PostProjectsProjectIdSpecialitiesRequest { name: string; discipline: string; summary?: string; contract_md?: string; visibility?: string; sellable?: boolean }
353
+ export interface PostProjectsProjectIdSpecialitiesResponse { speciality: unknown }
345
354
  export interface PostProjectsRequest { origin: string; name: string; tagline?: string; description?: string; art_url?: string; type?: string; template?: string }
346
355
  export interface PostProjectsResponse { project: unknown }
347
356
  export interface PostProvisioningInstancesIdDisconnectRequest { confirm_slug: string }
@@ -372,6 +381,12 @@ export interface PostSecurityScansResponse { ok: boolean; scan: unknown }
372
381
  export interface PostSessionOptimizeRequest { mode?: string; time_budget_min?: unknown; max_parallel?: unknown }
373
382
  export interface PostSessionsRequest { session_id: string; task_ids?: number[]; total_tokens?: number; duration_seconds?: number; started_at?: string; ended_at?: string; detail?: unknown[]; metrics?: Record<string, unknown>; model_usage?: Record<string, unknown> }
374
383
  export interface PostSessionsResponse { skipped?: boolean; reason?: unknown; session?: unknown; token_reward?: unknown }
384
+ export interface PostSpecialitiesIdAbandonResponse { ok: boolean; was_active: unknown }
385
+ export interface PostSpecialitiesIdAdoptResponse { adoption: unknown }
386
+ export interface PostSpecialitiesIdDocumentsRequest { title: string; body_md: string; source?: string }
387
+ export interface PostSpecialitiesIdDocumentsResponse { skipped?: boolean; reason?: unknown; document?: unknown }
388
+ export interface PostSpecialitiesRequest { name: string; discipline: string; summary?: string; contract_md?: string; visibility?: string; sellable?: boolean }
389
+ export interface PostSpecialitiesResponse { speciality: unknown }
375
390
  export interface PostSsoActivityRollupRequest { client_id: string; client_secret: string; github_id: StringifiableId; credits?: number; tasks_shipped?: number; karma?: number; rank?: string; disciplines?: unknown; recent_ships?: unknown }
376
391
  export interface PostSsoActivityRollupResponse { ok: boolean }
377
392
  export interface PostSsoApplicantProfileRequest { client_id: string; client_secret: string; github_id: StringifiableId }
@@ -945,6 +960,8 @@ export interface BongosClient {
945
960
  getMeSoundPrefs(args?: RequestArgs): Promise<GetMeSoundPrefsResponse>;
946
961
  /** PATCH /me/sound-prefs — rank: any-builder */
947
962
  patchMeSoundPrefs(args?: RequestArgs): Promise<PatchMeSoundPrefsResponse>;
963
+ /** GET /me/specialities — rank: any-builder */
964
+ getMeSpecialities(args?: RequestArgs): Promise<GetMeSpecialitiesResponse>;
948
965
  /** GET /me/wandering — rank: any-builder */
949
966
  getMeWandering(args?: RequestArgs): Promise<ApiResponse>;
950
967
  /** PATCH /me/wandering — rank: any-builder */
@@ -1031,6 +1048,8 @@ export interface BongosClient {
1031
1048
  patchProjectsIdFeatured(args: RequestArgs & { body: PatchProjectsIdFeaturedRequest }): Promise<PatchProjectsIdFeaturedResponse>;
1032
1049
  /** PATCH /projects/{id}/status — rank: metic+archon */
1033
1050
  patchProjectsIdStatus(args: RequestArgs & { body: PatchProjectsIdStatusRequest }): Promise<PatchProjectsIdStatusResponse>;
1051
+ /** POST /projects/{projectId}/specialities — rank: any-builder */
1052
+ postProjectsProjectIdSpecialities(args: RequestArgs & { body: PostProjectsProjectIdSpecialitiesRequest }): Promise<PostProjectsProjectIdSpecialitiesResponse>;
1034
1053
  /** GET /projects/featured — rank: public */
1035
1054
  getProjectsFeatured(args?: RequestArgs): Promise<GetProjectsFeaturedResponse>;
1036
1055
  /** POST /projects/invite — rank: metic+archon */
@@ -1182,6 +1201,26 @@ export interface BongosClient {
1182
1201
  /** GET /sessions/upload-health — rank: metic+archon */
1183
1202
  getSessionsUploadHealth(args?: RequestArgs): Promise<ApiResponse>;
1184
1203
  };
1204
+ "specialities": {
1205
+ /** GET /specialities — rank: any-builder */
1206
+ getSpecialities(args?: RequestArgs): Promise<GetSpecialitiesResponse>;
1207
+ /** POST /specialities — rank: any-builder */
1208
+ postSpecialities(args: RequestArgs & { body: PostSpecialitiesRequest }): Promise<PostSpecialitiesResponse>;
1209
+ /** GET /specialities/{id} — rank: any-builder */
1210
+ getSpecialitiesId(args?: RequestArgs): Promise<GetSpecialitiesIdResponse>;
1211
+ /** PATCH /specialities/{id} — rank: any-builder */
1212
+ patchSpecialitiesId(args?: RequestArgs & { body?: PatchSpecialitiesIdRequest }): Promise<PatchSpecialitiesIdResponse>;
1213
+ /** POST /specialities/{id}/abandon — rank: any-builder */
1214
+ postSpecialitiesIdAbandon(args?: RequestArgs): Promise<PostSpecialitiesIdAbandonResponse>;
1215
+ /** POST /specialities/{id}/adopt — rank: any-builder */
1216
+ postSpecialitiesIdAdopt(args?: RequestArgs): Promise<PostSpecialitiesIdAdoptResponse>;
1217
+ /** GET /specialities/{id}/documents — rank: any-builder */
1218
+ getSpecialitiesIdDocuments(args?: RequestArgs): Promise<GetSpecialitiesIdDocumentsResponse>;
1219
+ /** POST /specialities/{id}/documents — rank: any-builder */
1220
+ postSpecialitiesIdDocuments(args: RequestArgs & { body: PostSpecialitiesIdDocumentsRequest }): Promise<PostSpecialitiesIdDocumentsResponse>;
1221
+ /** DELETE /specialities/{id}/documents/{docId} — rank: any-builder */
1222
+ deleteSpecialitiesIdDocumentsDocId(args?: RequestArgs): Promise<DeleteSpecialitiesIdDocumentsDocIdResponse>;
1223
+ };
1185
1224
  "sso": {
1186
1225
  /** POST /sso/activity/rollup — rank: public */
1187
1226
  postSsoActivityRollup(args: RequestArgs & { body: PostSsoActivityRollupRequest }): Promise<PostSsoActivityRollupResponse>;
@@ -593,6 +593,8 @@ export function createClient(opts = {}) {
593
593
  getMeSoundPrefs: (args) => request("GET", "/me/sound-prefs", { hasBody: false }, args),
594
594
  // PATCH /me/sound-prefs — rank: any-builder — PATCH /me/sound-prefs
595
595
  patchMeSoundPrefs: (args) => request("PATCH", "/me/sound-prefs", { hasBody: true }, args),
596
+ // GET /me/specialities — rank: any-builder — GET /me/specialities
597
+ getMeSpecialities: (args) => request("GET", "/me/specialities", { hasBody: false }, args),
596
598
  // GET /me/wandering — rank: any-builder — GET /me/wandering
597
599
  getMeWandering: (args) => request("GET", "/me/wandering", { hasBody: false }, args),
598
600
  // PATCH /me/wandering — rank: any-builder — PATCH /me/wandering
@@ -679,6 +681,8 @@ export function createClient(opts = {}) {
679
681
  patchProjectsIdFeatured: (args) => request("PATCH", "/projects/{id}/featured", { hasBody: true }, args),
680
682
  // PATCH /projects/{id}/status — rank: metic+archon — PATCH /projects/:id/status
681
683
  patchProjectsIdStatus: (args) => request("PATCH", "/projects/{id}/status", { hasBody: true }, args),
684
+ // POST /projects/{projectId}/specialities — rank: any-builder — POST /projects/:projectId/specialities
685
+ postProjectsProjectIdSpecialities: (args) => request("POST", "/projects/{projectId}/specialities", { hasBody: true }, args),
682
686
  // GET /projects/featured — rank: public — GET /projects/featured
683
687
  getProjectsFeatured: (args) => request("GET", "/projects/featured", { hasBody: false }, args),
684
688
  // POST /projects/invite — rank: metic+archon — POST /projects/invite
@@ -830,6 +834,26 @@ export function createClient(opts = {}) {
830
834
  // GET /sessions/upload-health — rank: metic+archon — GET /sessions/upload-health
831
835
  getSessionsUploadHealth: (args) => request("GET", "/sessions/upload-health", { hasBody: false }, args),
832
836
  },
837
+ "specialities": {
838
+ // GET /specialities — rank: any-builder — GET /specialities
839
+ getSpecialities: (args) => request("GET", "/specialities", { hasBody: false }, args),
840
+ // POST /specialities — rank: any-builder — POST /specialities
841
+ postSpecialities: (args) => request("POST", "/specialities", { hasBody: true }, args),
842
+ // GET /specialities/{id} — rank: any-builder — GET /specialities/:id
843
+ getSpecialitiesId: (args) => request("GET", "/specialities/{id}", { hasBody: false }, args),
844
+ // PATCH /specialities/{id} — rank: any-builder — PATCH /specialities/:id
845
+ patchSpecialitiesId: (args) => request("PATCH", "/specialities/{id}", { hasBody: true }, args),
846
+ // POST /specialities/{id}/abandon — rank: any-builder — POST /specialities/:id/abandon
847
+ postSpecialitiesIdAbandon: (args) => request("POST", "/specialities/{id}/abandon", { hasBody: true }, args),
848
+ // POST /specialities/{id}/adopt — rank: any-builder — POST /specialities/:id/adopt
849
+ postSpecialitiesIdAdopt: (args) => request("POST", "/specialities/{id}/adopt", { hasBody: true }, args),
850
+ // GET /specialities/{id}/documents — rank: any-builder — GET /specialities/:id/documents
851
+ getSpecialitiesIdDocuments: (args) => request("GET", "/specialities/{id}/documents", { hasBody: false }, args),
852
+ // POST /specialities/{id}/documents — rank: any-builder — POST /specialities/:id/documents
853
+ postSpecialitiesIdDocuments: (args) => request("POST", "/specialities/{id}/documents", { hasBody: true }, args),
854
+ // DELETE /specialities/{id}/documents/{docId} — rank: any-builder — DELETE /specialities/:id/documents/:docId
855
+ deleteSpecialitiesIdDocumentsDocId: (args) => request("DELETE", "/specialities/{id}/documents/{docId}", { hasBody: false }, args),
856
+ },
833
857
  "sso": {
834
858
  // POST /sso/activity/rollup — rank: public — POST /sso/activity/rollup
835
859
  postSsoActivityRollup: (args) => request("POST", "/sso/activity/rollup", { hasBody: true }, args),