@capybara-hq/kernel 0.1.0-rc.6 → 0.1.0-rc.7

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 (331) hide show
  1. package/bootstrap.json +27 -3
  2. package/dist/admin/admin.controller.d.ts +8 -72
  3. package/dist/admin/admin.controller.js +21 -46
  4. package/dist/admin/admin.schemas.d.ts +57 -0
  5. package/dist/admin/admin.schemas.js +50 -0
  6. package/dist/admin/extensions.controller.d.ts +10 -0
  7. package/dist/admin/extensions.controller.js +18 -0
  8. package/dist/admin/extensions.schemas.d.ts +7 -0
  9. package/dist/admin/extensions.schemas.js +10 -0
  10. package/dist/admin/limit-defaults.d.ts +20 -0
  11. package/dist/admin/limit-defaults.js +10 -0
  12. package/dist/agents/agent-profile.service.d.ts +7 -5
  13. package/dist/agents/agent-profile.service.js +14 -9
  14. package/dist/agents/agents.controller.d.ts +7 -287
  15. package/dist/agents/agents.controller.js +7 -67
  16. package/dist/agents/agents.schemas.d.ts +389 -0
  17. package/dist/agents/agents.schemas.js +126 -0
  18. package/dist/agents/agents.service.d.ts +13 -5
  19. package/dist/agents/agents.service.js +67 -13
  20. package/dist/agents/definition.d.ts +47 -19
  21. package/dist/agents/definition.js +119 -38
  22. package/dist/agents/from-template.d.ts +2 -2
  23. package/dist/agents/from-template.js +76 -45
  24. package/dist/agents/from-template.service.d.ts +12 -0
  25. package/dist/agents/from-template.service.js +20 -3
  26. package/dist/agents/models.controller.d.ts +1 -2
  27. package/dist/agents/models.controller.js +1 -1
  28. package/dist/agents/org-templates.d.ts +13 -3
  29. package/dist/agents/org-templates.js +69 -28
  30. package/dist/agents/pending-connector-requests.d.ts +2 -0
  31. package/dist/agents/pending-connector-requests.js +1 -1
  32. package/dist/agents/pending-connectors.controller.d.ts +1 -1
  33. package/dist/agents/pending-connectors.controller.js +2 -2
  34. package/dist/agents/pending-connectors.service.d.ts +2 -2
  35. package/dist/agents/pending-connectors.service.js +19 -19
  36. package/dist/agents/profile.d.ts +18 -0
  37. package/dist/agents/profile.js +5 -1
  38. package/dist/agents/templates.controller.d.ts +8 -17
  39. package/dist/agents/templates.controller.js +13 -31
  40. package/dist/agents/templates.schemas.d.ts +20 -0
  41. package/dist/agents/templates.schemas.js +45 -0
  42. package/dist/background/background.controller.js +3 -2
  43. package/dist/background/background.schemas.d.ts +10 -0
  44. package/dist/background/background.schemas.js +16 -0
  45. package/dist/background/tasks.service.d.ts +1 -1
  46. package/dist/background/tasks.service.js +7 -2
  47. package/dist/catalog/admin-catalog.controller.d.ts +4 -57
  48. package/dist/catalog/admin-catalog.controller.js +8 -45
  49. package/dist/catalog/admin-catalog.schemas.d.ts +72 -0
  50. package/dist/catalog/admin-catalog.schemas.js +92 -0
  51. package/dist/catalog/catalog-content.d.ts +12 -2
  52. package/dist/catalog/catalog-scope.service.js +8 -2
  53. package/dist/catalog/catalog.service.d.ts +2 -0
  54. package/dist/catalog/catalog.service.js +3 -0
  55. package/dist/catalog/component-scope.controller.d.ts +3 -65
  56. package/dist/catalog/component-scope.controller.js +3 -56
  57. package/dist/catalog/component-scope.schemas.d.ts +114 -0
  58. package/dist/catalog/component-scope.schemas.js +97 -0
  59. package/dist/catalog/component-scope.service.d.ts +28 -4
  60. package/dist/catalog/component-scope.service.js +55 -3
  61. package/dist/catalog/component-state.d.ts +9 -2
  62. package/dist/catalog/component-state.js +22 -13
  63. package/dist/catalog/marketplaces.controller.d.ts +5 -35
  64. package/dist/catalog/marketplaces.controller.js +6 -34
  65. package/dist/catalog/marketplaces.schemas.d.ts +48 -0
  66. package/dist/catalog/marketplaces.schemas.js +53 -0
  67. package/dist/catalog/marketplaces.service.d.ts +15 -1
  68. package/dist/catalog/marketplaces.service.js +22 -1
  69. package/dist/catalog/org-catalog.controller.d.ts +6 -62
  70. package/dist/catalog/org-catalog.controller.js +12 -66
  71. package/dist/catalog/org-catalog.schemas.d.ts +79 -0
  72. package/dist/catalog/org-catalog.schemas.js +82 -0
  73. package/dist/catalog/org-catalog.service.d.ts +9 -2
  74. package/dist/catalog/org-catalog.service.js +38 -5
  75. package/dist/catalog/org-extension.controller.d.ts +1 -12
  76. package/dist/catalog/org-extension.controller.js +1 -10
  77. package/dist/catalog/org-extension.schemas.d.ts +15 -0
  78. package/dist/catalog/org-extension.schemas.js +22 -0
  79. package/dist/catalog/org-plugin-uploads.controller.d.ts +2 -19
  80. package/dist/catalog/org-plugin-uploads.controller.js +15 -28
  81. package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
  82. package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
  83. package/dist/catalog/owned-items.d.ts +6 -2
  84. package/dist/catalog/owned-items.js +16 -4
  85. package/dist/catalog/platform-components.d.ts +2 -0
  86. package/dist/catalog/platform-components.js +2 -0
  87. package/dist/catalog/plugin-import.js +1 -0
  88. package/dist/catalog/plugin-install.js +1 -1
  89. package/dist/catalog/requests.service.d.ts +2 -1
  90. package/dist/catalog/requests.service.js +6 -2
  91. package/dist/channels/channels.schemas.d.ts +33 -0
  92. package/dist/channels/channels.schemas.js +34 -0
  93. package/dist/channels/connections.controller.d.ts +2 -29
  94. package/dist/channels/connections.controller.js +1 -23
  95. package/dist/channels/connections.service.d.ts +8 -2
  96. package/dist/channels/connections.service.js +23 -5
  97. package/dist/channels/inbound.js +4 -0
  98. package/dist/conversations/conversations.controller.d.ts +16 -37
  99. package/dist/conversations/conversations.controller.js +16 -56
  100. package/dist/conversations/conversations.schemas.d.ts +52 -0
  101. package/dist/conversations/conversations.schemas.js +79 -0
  102. package/dist/conversations/conversations.service.d.ts +9 -1
  103. package/dist/conversations/conversations.service.js +23 -18
  104. package/dist/conversations/events.d.ts +80 -6
  105. package/dist/conversations/events.js +60 -5
  106. package/dist/conversations/message-context.d.ts +28 -0
  107. package/dist/conversations/message-context.js +56 -0
  108. package/dist/conversations/queue.d.ts +2 -1
  109. package/dist/conversations/queue.js +11 -2
  110. package/dist/db/kernel-schema.d.ts +20 -0
  111. package/dist/environments/environments.schemas.d.ts +3 -0
  112. package/dist/environments/environments.schemas.js +14 -0
  113. package/dist/environments/environments.service.d.ts +16 -4
  114. package/dist/environments/environments.service.js +58 -13
  115. package/dist/errors.d.ts +3 -0
  116. package/dist/errors.js +3 -0
  117. package/dist/evals/evals.schemas.d.ts +110 -0
  118. package/dist/evals/evals.schemas.js +107 -0
  119. package/dist/evals/reconstruct.js +18 -11
  120. package/dist/evals/recorded-tools.d.ts +2 -1
  121. package/dist/evals/recorded-tools.js +11 -3
  122. package/dist/evals/run-replay.d.ts +8 -1
  123. package/dist/evals/run-replay.js +13 -0
  124. package/dist/evals/runs.controller.d.ts +2 -57
  125. package/dist/evals/runs.controller.js +1 -42
  126. package/dist/evals/runs.service.d.ts +6 -6
  127. package/dist/evals/runs.service.js +32 -18
  128. package/dist/evals/sets.controller.d.ts +2 -28
  129. package/dist/evals/sets.controller.js +1 -31
  130. package/dist/evals/sets.service.d.ts +7 -7
  131. package/dist/evals/sets.service.js +23 -17
  132. package/dist/evals/snapshot.d.ts +3 -2
  133. package/dist/evals/snapshot.js +17 -4
  134. package/dist/extensions/admin-ops.d.ts +5 -3
  135. package/dist/extensions/admin-ops.js +17 -12
  136. package/dist/extensions/deployment-config.d.ts +16 -1
  137. package/dist/extensions/deployment-config.js +83 -0
  138. package/dist/extensions/extensions.module.js +3 -0
  139. package/dist/extensions/host.d.ts +33 -2
  140. package/dist/extensions/host.js +107 -1
  141. package/dist/extensions/installs.d.ts +5 -0
  142. package/dist/extensions/installs.js +12 -0
  143. package/dist/extensions/org-config.d.ts +17 -2
  144. package/dist/extensions/org-config.js +23 -4
  145. package/dist/extensions/point-defaults.controller.d.ts +2 -8
  146. package/dist/extensions/point-defaults.controller.js +1 -3
  147. package/dist/extensions/point-defaults.d.ts +3 -1
  148. package/dist/extensions/point-defaults.js +4 -2
  149. package/dist/extensions/point-defaults.schemas.d.ts +9 -0
  150. package/dist/extensions/point-defaults.schemas.js +14 -0
  151. package/dist/extensions/unavailable.d.ts +49 -0
  152. package/dist/extensions/unavailable.js +113 -0
  153. package/dist/files/previewers.controller.js +2 -3
  154. package/dist/files/previewers.d.ts +1 -1
  155. package/dist/files/previewers.js +4 -4
  156. package/dist/files/previewers.schemas.d.ts +10 -0
  157. package/dist/files/previewers.schemas.js +9 -0
  158. package/dist/http/api.module.js +2 -0
  159. package/dist/identity/accounts.d.ts +43 -4
  160. package/dist/identity/accounts.js +74 -6
  161. package/dist/identity/auth.guard.js +10 -1
  162. package/dist/identity/cookies.d.ts +6 -0
  163. package/dist/identity/cookies.js +14 -0
  164. package/dist/identity/identity.module.js +3 -0
  165. package/dist/identity/initial-passwords.controller.d.ts +22 -0
  166. package/dist/identity/initial-passwords.controller.js +49 -0
  167. package/dist/identity/initial-passwords.d.ts +61 -0
  168. package/dist/identity/initial-passwords.job.d.ts +16 -0
  169. package/dist/identity/initial-passwords.job.js +46 -0
  170. package/dist/identity/initial-passwords.js +159 -0
  171. package/dist/identity/me.controller.d.ts +14 -0
  172. package/dist/identity/me.controller.js +39 -1
  173. package/dist/identity/principal.d.ts +8 -0
  174. package/dist/identity/principal.js +8 -0
  175. package/dist/identity/settings.d.ts +3 -1
  176. package/dist/identity/settings.js +6 -4
  177. package/dist/inbox/inbox.schemas.d.ts +8 -0
  178. package/dist/inbox/inbox.schemas.js +11 -0
  179. package/dist/inbox/platform-inbox.controller.d.ts +1 -1
  180. package/dist/inbox/platform-inbox.controller.js +2 -2
  181. package/dist/index.d.ts +4 -0
  182. package/dist/index.js +6 -0
  183. package/dist/lifecycle/kernel-lifecycle.js +4 -0
  184. package/dist/models/enablement.d.ts +2 -0
  185. package/dist/models/enablement.js +1 -0
  186. package/dist/models/org-models.schemas.d.ts +8 -0
  187. package/dist/models/org-models.schemas.js +22 -0
  188. package/dist/models/prices.d.ts +3 -1
  189. package/dist/models/prices.js +7 -5
  190. package/dist/models/purposes.d.ts +12 -2
  191. package/dist/models/purposes.js +22 -8
  192. package/dist/orgs/orgs.controller.d.ts +2 -5
  193. package/dist/orgs/orgs.controller.js +3 -6
  194. package/dist/orgs/orgs.schemas.d.ts +8 -0
  195. package/dist/orgs/orgs.schemas.js +16 -0
  196. package/dist/orgs/orgs.service.d.ts +3 -1
  197. package/dist/orgs/orgs.service.js +6 -4
  198. package/dist/orgs/settings.service.d.ts +9 -1
  199. package/dist/orgs/settings.service.js +20 -5
  200. package/dist/overrides.d.ts +4 -0
  201. package/dist/overrides.js +2 -0
  202. package/dist/platform/errors.d.ts +21 -4
  203. package/dist/platform/errors.js +45 -6
  204. package/dist/platform/exclusions.d.ts +2 -3
  205. package/dist/platform/exclusions.js +68 -849
  206. package/dist/platform/method.js +1 -1
  207. package/dist/platform/operation.d.ts +82 -5
  208. package/dist/platform/operation.js +62 -7
  209. package/dist/platform/ops/accounts.ops.d.ts +32 -0
  210. package/dist/platform/ops/accounts.ops.js +291 -0
  211. package/dist/platform/ops/admin.ops.d.ts +36 -0
  212. package/dist/platform/ops/admin.ops.js +389 -0
  213. package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
  214. package/dist/platform/ops/agent-skills.ops.js +226 -0
  215. package/dist/platform/ops/agent-templates.ops.d.ts +4 -1
  216. package/dist/platform/ops/agent-templates.ops.js +194 -14
  217. package/dist/platform/ops/agents.ops.d.ts +19 -1
  218. package/dist/platform/ops/agents.ops.js +481 -58
  219. package/dist/platform/ops/approvals.ops.d.ts +30 -0
  220. package/dist/platform/ops/approvals.ops.js +116 -0
  221. package/dist/platform/ops/background.ops.d.ts +14 -0
  222. package/dist/platform/ops/background.ops.js +134 -0
  223. package/dist/platform/ops/catalog-admin.ops.d.ts +74 -0
  224. package/dist/platform/ops/catalog-admin.ops.js +587 -0
  225. package/dist/platform/ops/channels.ops.d.ts +16 -0
  226. package/dist/platform/ops/channels.ops.js +195 -0
  227. package/dist/platform/ops/components.ops.d.ts +46 -0
  228. package/dist/platform/ops/components.ops.js +853 -0
  229. package/dist/platform/ops/connectors.ops.d.ts +4 -2
  230. package/dist/platform/ops/connectors.ops.js +68 -6
  231. package/dist/platform/ops/conversations.ops.d.ts +30 -0
  232. package/dist/platform/ops/conversations.ops.js +470 -0
  233. package/dist/platform/ops/environments.ops.d.ts +26 -0
  234. package/dist/platform/ops/environments.ops.js +289 -0
  235. package/dist/platform/ops/errors.d.ts +10 -5
  236. package/dist/platform/ops/errors.js +19 -11
  237. package/dist/platform/ops/evals.ops.d.ts +28 -0
  238. package/dist/platform/ops/evals.ops.js +783 -0
  239. package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
  240. package/dist/platform/ops/extensions-admin.ops.js +344 -0
  241. package/dist/platform/ops/extensions.ops.d.ts +7 -1
  242. package/dist/platform/ops/extensions.ops.js +248 -17
  243. package/dist/platform/ops/inbox.ops.d.ts +25 -0
  244. package/dist/platform/ops/inbox.ops.js +378 -0
  245. package/dist/platform/ops/marketplaces.ops.d.ts +7 -1
  246. package/dist/platform/ops/marketplaces.ops.js +326 -17
  247. package/dist/platform/ops/models.ops.d.ts +25 -0
  248. package/dist/platform/ops/models.ops.js +232 -0
  249. package/dist/platform/ops/org-plugins.ops.d.ts +29 -0
  250. package/dist/platform/ops/org-plugins.ops.js +329 -0
  251. package/dist/platform/ops/org-settings.ops.d.ts +16 -0
  252. package/dist/platform/ops/org-settings.ops.js +102 -0
  253. package/dist/platform/ops/orgs.ops.d.ts +28 -0
  254. package/dist/platform/ops/orgs.ops.js +295 -0
  255. package/dist/platform/ops/other-orgs.d.ts +20 -0
  256. package/dist/platform/ops/other-orgs.js +72 -0
  257. package/dist/platform/ops/platform.ops.d.ts +4 -4
  258. package/dist/platform/ops/platform.ops.js +23 -24
  259. package/dist/platform/ops/plugins.ops.d.ts +10 -8
  260. package/dist/platform/ops/plugins.ops.js +176 -77
  261. package/dist/platform/ops/previewers.ops.d.ts +14 -0
  262. package/dist/platform/ops/previewers.ops.js +109 -0
  263. package/dist/platform/ops/requests.ops.js +57 -19
  264. package/dist/platform/ops/skills.ops.d.ts +5 -1
  265. package/dist/platform/ops/skills.ops.js +129 -11
  266. package/dist/platform/ops/unavailable.d.ts +23 -0
  267. package/dist/platform/ops/unavailable.js +111 -0
  268. package/dist/platform/parity.d.ts +33 -0
  269. package/dist/platform/parity.js +272 -0
  270. package/dist/platform/platform-ops.module.d.ts +32 -0
  271. package/dist/platform/platform-ops.module.js +78 -11
  272. package/dist/platform/route-schemas.d.ts +18 -0
  273. package/dist/platform/route-schemas.js +60 -0
  274. package/dist/roles/worker.module.js +2 -0
  275. package/dist/runtime/context/build.d.ts +2 -0
  276. package/dist/runtime/context/build.js +28 -2
  277. package/dist/runtime/context/compaction.js +10 -1
  278. package/dist/runtime/context/run-context.d.ts +65 -0
  279. package/dist/runtime/context/run-context.js +215 -0
  280. package/dist/runtime/model-call.js +2 -1
  281. package/dist/runtime/providers.js +8 -1
  282. package/dist/runtime/run-context.service.d.ts +65 -0
  283. package/dist/runtime/run-context.service.js +220 -0
  284. package/dist/runtime/run-worker.d.ts +5 -0
  285. package/dist/runtime/run-worker.js +31 -6
  286. package/dist/runtime/runtime.module.js +2 -0
  287. package/dist/runtime/subagents/definition.d.ts +15 -15
  288. package/dist/runtime/subagents/definition.js +46 -115
  289. package/dist/skills/changes.controller.js +2 -1
  290. package/dist/skills/changes.service.d.ts +1 -1
  291. package/dist/skills/changes.service.js +4 -4
  292. package/dist/skills/invocable.controller.d.ts +1 -1
  293. package/dist/skills/invocable.controller.js +2 -2
  294. package/dist/skills/invoke.d.ts +2 -2
  295. package/dist/skills/invoke.js +8 -1
  296. package/dist/skills/skills.controller.d.ts +4 -13
  297. package/dist/skills/skills.controller.js +8 -24
  298. package/dist/skills/skills.schemas.d.ts +48 -0
  299. package/dist/skills/skills.schemas.js +61 -0
  300. package/dist/skills/skills.service.d.ts +11 -1
  301. package/dist/skills/skills.service.js +37 -14
  302. package/dist/time-zone.d.ts +5 -0
  303. package/dist/time-zone.js +19 -0
  304. package/dist/tools/approvals.controller.js +2 -3
  305. package/dist/tools/approvals.schemas.d.ts +21 -0
  306. package/dist/tools/approvals.schemas.js +15 -0
  307. package/dist/tools/builtin-names.d.ts +10 -8
  308. package/dist/tools/builtin-names.js +16 -11
  309. package/dist/tools/builtins/builtin-tools.d.ts +3 -1
  310. package/dist/tools/builtins/builtin-tools.js +15 -3
  311. package/dist/tools/builtins/current-time.d.ts +26 -0
  312. package/dist/tools/builtins/current-time.js +99 -0
  313. package/dist/tools/builtins/platform.d.ts +19 -2
  314. package/dist/tools/builtins/platform.js +105 -16
  315. package/dist/tools/connectors.controller.d.ts +1 -2
  316. package/dist/tools/connectors.controller.js +1 -4
  317. package/dist/tools/connectors.schemas.d.ts +12 -0
  318. package/dist/tools/connectors.schemas.js +19 -0
  319. package/dist/tools/connectors.service.d.ts +5 -2
  320. package/dist/tools/connectors.service.js +7 -5
  321. package/dist/tools/org-tool-switches.d.ts +16 -2
  322. package/dist/tools/org-tool-switches.js +26 -9
  323. package/dist/tools/pipeline.js +3 -1
  324. package/dist/tools/registry.d.ts +48 -51
  325. package/dist/tools/registry.js +222 -233
  326. package/package.json +3 -3
  327. package/src/migrations/0090_initial_passwords.sql +27 -0
  328. package/src/migrations/0091_account_time_zone.sql +4 -0
  329. package/src/migrations/0092_tools_default_on.sql +27 -0
  330. package/dist/platform/redact-orgs.d.ts +0 -7
  331. package/dist/platform/redact-orgs.js +0 -52
@@ -1,98 +1,11 @@
1
1
  /**
2
2
  * Kernel HTTP routes the `Platform` tool does not mirror, each with a reason (spec §9);
3
3
  * `check:platform-ops` fails a route that is neither mirrored by an operation nor listed here.
4
- * `later` needs an `issue` URL.
4
+ * Every exclusion is for good: there is no "later" (rule `platform-op-later`).
5
5
  */
6
6
  export const PLATFORM_EXCLUSIONS = [
7
- // platform-admin
8
- {
9
- route: "GET /api/v1/admin/overview",
10
- category: "later",
11
- reason: "Platform dashboard totals an agent could read once admin reads are mirrored",
12
- issue: "https://github.com/capybara-hq/core/issues/91",
13
- },
14
- {
15
- route: "GET /api/v1/admin/accounts",
16
- category: "human-only",
17
- reason: "Lists every account with email addresses, a super admin console view",
18
- },
19
- {
20
- route: "POST /api/v1/admin/accounts",
21
- category: "human-only",
22
- reason: "Creates a login account with an initial password",
23
- },
24
- {
25
- route: "PATCH /api/v1/admin/accounts/:accountId",
26
- category: "human-only",
27
- reason: "Changes another account's status or super-admin flag",
28
- },
29
- {
30
- route: "GET /api/v1/admin/orgs",
31
- category: "later",
32
- reason: "Platform-wide org listing an agent could read once admin reads are mirrored",
33
- issue: "https://github.com/capybara-hq/core/issues/91",
34
- },
35
- {
36
- route: "GET /api/v1/admin/settings",
37
- category: "later",
38
- reason: "Deployment settings read that an agent could mirror later",
39
- issue: "https://github.com/capybara-hq/core/issues/91",
40
- },
41
- {
42
- route: "PUT /api/v1/admin/settings",
43
- category: "later",
44
- reason: "Deployment settings write that an agent could mirror later behind confirmation",
45
- issue: "https://github.com/capybara-hq/core/issues/91",
46
- },
47
- {
48
- route: "GET /api/v1/admin/models",
49
- category: "later",
50
- reason: "Platform model catalog read that an agent could mirror later",
51
- issue: "https://github.com/capybara-hq/core/issues/91",
52
- },
53
- {
54
- route: "PATCH /api/v1/admin/models/:provider/disabled",
55
- category: "later",
56
- reason: "Platform model disabled list write that an agent could mirror later behind confirmation",
57
- issue: "https://github.com/capybara-hq/core/issues/91",
58
- },
59
- {
60
- route: "GET /api/v1/admin/model-prices",
61
- category: "later",
62
- reason: "Model price table read that an agent could mirror later",
63
- issue: "https://github.com/capybara-hq/core/issues/91",
64
- },
65
- {
66
- route: "PUT /api/v1/admin/model-prices",
67
- category: "later",
68
- reason: "Model price write that an agent could mirror later behind confirmation",
69
- issue: "https://github.com/capybara-hq/core/issues/91",
70
- },
71
- {
72
- route: "GET /api/v1/admin/model-purposes",
73
- category: "later",
74
- reason: "Platform default model per purpose, readable by an agent later",
75
- issue: "https://github.com/capybara-hq/core/issues/91",
76
- },
77
- {
78
- route: "PUT /api/v1/admin/model-purposes/:purpose",
79
- category: "later",
80
- reason: "Platform default model per purpose, settable by an agent later",
81
- issue: "https://github.com/capybara-hq/core/issues/91",
82
- },
7
+ // platform-admin: every route is an operation (Task 7)
83
8
  // extensions-admin
84
- {
85
- route: "GET /api/v1/admin/extensions",
86
- category: "later",
87
- reason: "Installed extension list an agent could read later",
88
- issue: "https://github.com/capybara-hq/core/issues/91",
89
- },
90
- {
91
- route: "GET /api/v1/admin/extensions/:name",
92
- category: "later",
93
- reason: "Extension detail an agent could read later",
94
- issue: "https://github.com/capybara-hq/core/issues/91",
95
- },
96
9
  {
97
10
  route: "GET /api/v1/admin/extensions/:name/org-overrides",
98
11
  category: "secret",
@@ -108,6 +21,11 @@ export const PLATFORM_EXCLUSIONS = [
108
21
  category: "secret",
109
22
  reason: "Writes deployment config that can include secret fields",
110
23
  },
24
+ {
25
+ route: "DELETE /api/v1/admin/extensions/:name/config",
26
+ category: "secret",
27
+ reason: "Clears deployment config including secret values; done on the web",
28
+ },
111
29
  {
112
30
  route: "POST /api/v1/admin/extensions/:name/approve",
113
31
  category: "human-only",
@@ -115,27 +33,8 @@ export const PLATFORM_EXCLUSIONS = [
115
33
  },
116
34
  {
117
35
  route: "POST /api/v1/admin/extensions/:name/install",
118
- category: "later",
119
- reason: "Installs an extension; mirrored once extension lifecycle ops exist",
120
- issue: "https://github.com/capybara-hq/core/issues/91",
121
- },
122
- {
123
- route: "POST /api/v1/admin/extensions/:name/enable",
124
- category: "later",
125
- reason: "Enables an extension; mirrored once extension lifecycle ops exist",
126
- issue: "https://github.com/capybara-hq/core/issues/91",
127
- },
128
- {
129
- route: "POST /api/v1/admin/extensions/:name/disable",
130
- category: "later",
131
- reason: "Disables an extension; mirrored once extension lifecycle ops exist",
132
- issue: "https://github.com/capybara-hq/core/issues/91",
133
- },
134
- {
135
- route: "DELETE /api/v1/admin/extensions/:name",
136
- category: "later",
137
- reason: "Uninstalls an extension; mirrored once extension lifecycle ops exist",
138
- issue: "https://github.com/capybara-hq/core/issues/91",
36
+ category: "human-only",
37
+ reason: "Points an extension at a package from the package store (a new install or a version change); the package comes from an upload or npm import whose permissions a person reviews, and new permissions wait for that person's approval, so the install stays with the review on the web",
139
38
  },
140
39
  {
141
40
  route: "POST /api/v1/admin/extensions/packages/file",
@@ -144,9 +43,8 @@ export const PLATFORM_EXCLUSIONS = [
144
43
  },
145
44
  {
146
45
  route: "POST /api/v1/admin/extensions/packages/npm",
147
- category: "later",
148
- reason: "Installs a package from npm; mirrored once extension lifecycle ops exist",
149
- issue: "https://github.com/capybara-hq/core/issues/91",
46
+ category: "human-only",
47
+ reason: "Fetches an extension package and returns its permission review; installing it means confirming those permissions, which only a person does (spec §6.4)",
150
48
  },
151
49
  // setup
152
50
  {
@@ -160,12 +58,6 @@ export const PLATFORM_EXCLUSIONS = [
160
58
  reason: "Creates the first super admin account and password",
161
59
  },
162
60
  // agents
163
- {
164
- route: "PATCH /api/v1/orgs/:orgId/agents/:agentId/profile",
165
- category: "later",
166
- reason: "Agent profile edit an agent could do later",
167
- issue: "https://github.com/capybara-hq/core/issues/91",
168
- },
169
61
  {
170
62
  route: "POST /api/v1/orgs/:orgId/agents/:agentId/avatar/uploads",
171
63
  category: "transport",
@@ -176,96 +68,12 @@ export const PLATFORM_EXCLUSIONS = [
176
68
  category: "transport",
177
69
  reason: "Streams avatar image bytes",
178
70
  },
179
- {
180
- route: "DELETE /api/v1/orgs/:orgId/agents/:agentId",
181
- category: "later",
182
- reason: "Agent deletion an agent could request later behind confirmation",
183
- issue: "https://github.com/capybara-hq/core/issues/91",
184
- },
185
71
  {
186
72
  route: "POST /api/v1/orgs/:orgId/agents/:agentId/owner",
187
73
  category: "human-only",
188
74
  reason: "Transfers ownership of an agent to another person",
189
75
  },
190
- {
191
- route: "GET /api/v1/orgs/:orgId/agents/:agentId/versions",
192
- category: "later",
193
- reason: "Agent version history an agent could read later",
194
- issue: "https://github.com/capybara-hq/core/issues/91",
195
- },
196
- {
197
- route: "GET /api/v1/orgs/:orgId/models",
198
- category: "later",
199
- reason: "Model list available to the org, readable by an agent later",
200
- issue: "https://github.com/capybara-hq/core/issues/91",
201
- },
202
- {
203
- route: "GET /api/v1/orgs/:orgId/models/catalog",
204
- category: "later",
205
- reason: "Org model catalog with enablement, readable by an agent later",
206
- issue: "https://github.com/capybara-hq/core/issues/91",
207
- },
208
- {
209
- route: "POST /api/v1/orgs/:orgId/agents/:agentId/pending-connectors/:key/bind",
210
- category: "later",
211
- reason: "Binds a pending connector to an agent, mirrored later",
212
- issue: "https://github.com/capybara-hq/core/issues/91",
213
- },
214
- {
215
- route: "POST /api/v1/orgs/:orgId/agents/:agentId/pending-connectors/request",
216
- category: "later",
217
- reason: "Sending a setup request to the org admins is not a decision; mirrored later",
218
- issue: "https://github.com/capybara-hq/core/issues/91",
219
- },
220
- {
221
- route: "GET /api/v1/orgs/:orgId/agents/:agentId/pending-connectors/request",
222
- category: "later",
223
- reason: "Setup request status an agent could read later",
224
- issue: "https://github.com/capybara-hq/core/issues/91",
225
- },
226
- {
227
- route: "GET /api/v1/orgs/:orgId/readiness",
228
- category: "later",
229
- reason: "Org readiness checklist an agent could read later",
230
- issue: "https://github.com/capybara-hq/core/issues/91",
231
- },
232
- {
233
- route: "PUT /api/v1/orgs/:orgId/agent-templates/:id",
234
- category: "later",
235
- reason: "Org agent template edit an agent could do later",
236
- issue: "https://github.com/capybara-hq/core/issues/91",
237
- },
238
- {
239
- route: "GET /api/v1/orgs/:orgId/agent-templates/:id/delete-preview",
240
- category: "later",
241
- reason: "Template delete preview an agent could read later",
242
- issue: "https://github.com/capybara-hq/core/issues/91",
243
- },
244
- {
245
- route: "DELETE /api/v1/orgs/:orgId/agent-templates/:id",
246
- category: "later",
247
- reason: "Template deletion an agent could request later behind confirmation",
248
- issue: "https://github.com/capybara-hq/core/issues/91",
249
- },
250
- {
251
- route: "PUT /api/v1/orgs/:orgId/agent-templates/:id/shareable",
252
- category: "later",
253
- reason: "Sharing an org template with other orgs, mirrored later",
254
- issue: "https://github.com/capybara-hq/core/issues/91",
255
- },
256
76
  // background
257
- {
258
- route: "GET /api/v1/orgs/:orgId/conversations/:id/background-tasks",
259
- category: "later",
260
- reason: "Background task list an agent could read later",
261
- issue: "https://github.com/capybara-hq/core/issues/91",
262
- },
263
- {
264
- route: "POST /api/v1/orgs/:orgId/conversations/:id/background-tasks/:taskId/stop",
265
- category: "later",
266
- reason: "Stopping a background task, mirrored later",
267
- issue: "https://github.com/capybara-hq/core/issues/91",
268
- },
269
77
  {
270
78
  route: "GET /api/v1/orgs/:orgId/conversations/:id/background-tasks/:taskId/output",
271
79
  category: "transport",
@@ -277,24 +85,6 @@ export const PLATFORM_EXCLUSIONS = [
277
85
  category: "transport",
278
86
  reason: "Uploads a plugin archive as multipart bytes",
279
87
  },
280
- {
281
- route: "POST /api/v1/admin/catalog/import/npm",
282
- category: "later",
283
- reason: "Plugin import from npm, mirrored with the import review later",
284
- issue: "https://github.com/capybara-hq/core/issues/91",
285
- },
286
- {
287
- route: "POST /api/v1/admin/catalog/import/git",
288
- category: "later",
289
- reason: "Plugin import from git, mirrored with the import review later",
290
- issue: "https://github.com/capybara-hq/core/issues/91",
291
- },
292
- {
293
- route: "GET /api/v1/admin/catalog/imports/:stagingId",
294
- category: "later",
295
- reason: "Import review read, mirrored with the import review later",
296
- issue: "https://github.com/capybara-hq/core/issues/91",
297
- },
298
88
  {
299
89
  route: "POST /api/v1/admin/catalog/imports/:stagingId/confirm",
300
90
  category: "human-only",
@@ -305,24 +95,6 @@ export const PLATFORM_EXCLUSIONS = [
305
95
  category: "transport",
306
96
  reason: "Serves icon image bytes",
307
97
  },
308
- {
309
- route: "POST /api/v1/admin/catalog/items/:id/scope/preview",
310
- category: "later",
311
- reason: "Scope change preview, mirrored later",
312
- issue: "https://github.com/capybara-hq/core/issues/91",
313
- },
314
- {
315
- route: "PUT /api/v1/admin/catalog/items/:id/scope",
316
- category: "later",
317
- reason: "Scope change for a catalog item, mirrored later",
318
- issue: "https://github.com/capybara-hq/core/issues/91",
319
- },
320
- {
321
- route: "PUT /api/v1/admin/catalog/items/:id/disabled",
322
- category: "later",
323
- reason: "Disabling a catalog item, mirrored later",
324
- issue: "https://github.com/capybara-hq/core/issues/91",
325
- },
326
98
  {
327
99
  route: "POST /api/v1/admin/catalog/items/:id/confirm",
328
100
  category: "human-only",
@@ -333,104 +105,13 @@ export const PLATFORM_EXCLUSIONS = [
333
105
  category: "human-only",
334
106
  reason: "Rejects a catalog item's reviewed changes, an approval decision",
335
107
  },
336
- {
337
- route: "PUT /api/v1/admin/catalog/items/:id/shown",
338
- category: "later",
339
- reason: "Showing or hiding a catalog item, mirrored later",
340
- issue: "https://github.com/capybara-hq/core/issues/91",
341
- },
342
- {
343
- route: "DELETE /api/v1/admin/catalog/items/:id",
344
- category: "later",
345
- reason: "Removing a catalog item, mirrored later behind confirmation",
346
- issue: "https://github.com/capybara-hq/core/issues/91",
347
- },
348
108
  // components
349
109
  {
350
110
  route: "POST /api/v1/admin/components/skill/:id/versions",
351
- category: "later",
352
- reason: "Publishing a platform skill version, mirrored later",
353
- issue: "https://github.com/capybara-hq/core/issues/91",
354
- },
355
- {
356
- route: "POST /api/v1/admin/components/agent_template/:id/versions",
357
- category: "later",
358
- reason: "Publishing a platform agent template version, mirrored later",
359
- issue: "https://github.com/capybara-hq/core/issues/91",
360
- },
361
- {
362
- route: "GET /api/v1/admin/components",
363
- category: "later",
364
- reason: "Platform component list an agent could read later",
365
- issue: "https://github.com/capybara-hq/core/issues/91",
366
- },
367
- {
368
- route: "GET /api/v1/admin/components/:kind/:id/versions",
369
- category: "later",
370
- reason: "Component version history an agent could read later",
371
- issue: "https://github.com/capybara-hq/core/issues/91",
372
- },
373
- {
374
- route: "POST /api/v1/admin/components/:kind/:id/scope/preview",
375
- category: "later",
376
- reason: "Component scope preview, mirrored later",
377
- issue: "https://github.com/capybara-hq/core/issues/91",
378
- },
379
- {
380
- route: "PUT /api/v1/admin/components/:kind/:id/scope",
381
- category: "later",
382
- reason: "Component scope change, mirrored later",
383
- issue: "https://github.com/capybara-hq/core/issues/91",
384
- },
385
- {
386
- route: "PUT /api/v1/admin/components/:kind/:id/disabled",
387
- category: "later",
388
- reason: "Disabling a component, mirrored later",
389
- issue: "https://github.com/capybara-hq/core/issues/91",
390
- },
391
- {
392
- route: "PUT /api/v1/admin/components/:kind/:id/shown",
393
- category: "later",
394
- reason: "Showing or hiding a component, mirrored later",
395
- issue: "https://github.com/capybara-hq/core/issues/91",
396
- },
397
- {
398
- route: "PUT /api/v1/orgs/:orgId/components/:kind/:id/switch",
399
- category: "later",
400
- reason: "Org switch for a platform component, mirrored later",
401
- issue: "https://github.com/capybara-hq/core/issues/91",
111
+ category: "transport",
112
+ reason: "Uploads a platform skill package as raw bytes",
402
113
  },
403
114
  // marketplaces
404
- {
405
- route: "GET /api/v1/admin/marketplaces/entries",
406
- category: "later",
407
- reason: "Marketplace entry list an agent could read later",
408
- issue: "https://github.com/capybara-hq/core/issues/91",
409
- },
410
- {
411
- route: "PATCH /api/v1/admin/marketplaces/:id",
412
- category: "later",
413
- reason: "Marketplace edit, mirrored later",
414
- issue: "https://github.com/capybara-hq/core/issues/91",
415
- },
416
- {
417
- route: "DELETE /api/v1/admin/marketplaces/:id",
418
- category: "later",
419
- reason: "Marketplace removal, mirrored later behind confirmation",
420
- issue: "https://github.com/capybara-hq/core/issues/91",
421
- },
422
- {
423
- route: "POST /api/v1/admin/marketplaces/:id/refresh",
424
- category: "later",
425
- reason: "Marketplace refresh, mirrored later",
426
- issue: "https://github.com/capybara-hq/core/issues/91",
427
- },
428
- {
429
- route: "POST /api/v1/admin/marketplaces/:id/entries/:name/import",
430
- category: "later",
431
- reason: "Importing a marketplace entry, mirrored with the import review later",
432
- issue: "https://github.com/capybara-hq/core/issues/91",
433
- },
434
115
  // org-catalog
435
116
  {
436
117
  route: "GET /api/v1/orgs/:orgId/catalog/:itemId/icon",
@@ -452,18 +133,6 @@ export const PLATFORM_EXCLUSIONS = [
452
133
  category: "secret",
453
134
  reason: "Body carries connector credentials and client secrets entered by a person",
454
135
  },
455
- {
456
- route: "GET /api/v1/orgs/:orgId/plugin-installs",
457
- category: "later",
458
- reason: "Org plugin install list an agent could read later",
459
- issue: "https://github.com/capybara-hq/core/issues/91",
460
- },
461
- {
462
- route: "DELETE /api/v1/orgs/:orgId/plugin-installs/:installId",
463
- category: "later",
464
- reason: "Uninstalling a plugin from an org, mirrored later",
465
- issue: "https://github.com/capybara-hq/core/issues/91",
466
- },
467
136
  {
468
137
  route: "POST /api/v1/orgs/:orgId/catalog-requests/:id/decide",
469
138
  category: "human-only",
@@ -474,12 +143,6 @@ export const PLATFORM_EXCLUSIONS = [
474
143
  category: "human-only",
475
144
  reason: "Dismisses another person's catalog request",
476
145
  },
477
- {
478
- route: "GET /api/v1/admin/catalog/requests",
479
- category: "later",
480
- reason: "Platform catalog request list an agent could read later",
481
- issue: "https://github.com/capybara-hq/core/issues/91",
482
- },
483
146
  {
484
147
  route: "POST /api/v1/admin/catalog/requests/:id/decide",
485
148
  category: "human-only",
@@ -510,99 +173,33 @@ export const PLATFORM_EXCLUSIONS = [
510
173
  category: "secret",
511
174
  reason: "Starts an org config copy whose secrets a person enters on the web",
512
175
  },
513
- {
514
- route: "GET /api/v1/orgs/:orgId/extensions/:extension/tools",
515
- category: "later",
516
- reason: "An extension's tools with the org's on/off switches, readable by an agent later",
517
- issue: "https://github.com/capybara-hq/core/issues/91",
518
- },
519
- {
520
- route: "PUT /api/v1/orgs/:orgId/extensions/:extension/tools/:tool",
521
- category: "later",
522
- reason: "Turns one extension tool on or off in the org; an org-class write for later",
523
- issue: "https://github.com/capybara-hq/core/issues/91",
524
- },
525
176
  // org-uploads
526
177
  {
527
178
  route: "POST /api/v1/orgs/:orgId/catalog/uploads/file",
528
179
  category: "transport",
529
180
  reason: "Uploads a plugin archive as multipart bytes",
530
181
  },
531
- {
532
- route: "GET /api/v1/orgs/:orgId/catalog/uploads/:stagingId",
533
- category: "later",
534
- reason: "Upload review read, mirrored with the import review later",
535
- issue: "https://github.com/capybara-hq/core/issues/91",
536
- },
537
182
  {
538
183
  route: "POST /api/v1/orgs/:orgId/catalog/uploads/:stagingId/confirm",
539
184
  category: "human-only",
540
185
  reason: "Confirms an upload review, an approval decision",
541
186
  },
542
- {
543
- route: "PUT /api/v1/orgs/:orgId/owned-plugins/:id/shareable",
544
- category: "later",
545
- reason: "Sharing an org-owned plugin with other orgs, mirrored later",
546
- issue: "https://github.com/capybara-hq/core/issues/91",
547
- },
548
- {
549
- route: "POST /api/v1/orgs/:orgId/owned-plugins/:id/delete/preview",
550
- category: "later",
551
- reason: "Owned plugin delete preview, mirrored later",
552
- issue: "https://github.com/capybara-hq/core/issues/91",
553
- },
554
- {
555
- route: "POST /api/v1/orgs/:orgId/owned-plugins/:id/delete",
556
- category: "later",
557
- reason: "Owned plugin deletion, mirrored later behind confirmation",
558
- issue: "https://github.com/capybara-hq/core/issues/91",
559
- },
560
- {
561
- route: "DELETE /api/v1/orgs/:orgId/owned-plugins/:id/pending",
562
- category: "later",
563
- reason: "Dropping a pending owned plugin upload, mirrored later",
564
- issue: "https://github.com/capybara-hq/core/issues/91",
565
- },
566
187
  // channels
567
- {
568
- route: "GET /api/v1/orgs/:orgId/channels",
569
- category: "later",
570
- reason: "Channel connection list an agent could read later",
571
- issue: "https://github.com/capybara-hq/core/issues/91",
572
- },
573
188
  {
574
189
  route: "GET /api/v1/orgs/:orgId/channels/schema/:plugin",
575
- category: "later",
576
- reason: "Channel config schema an agent could read later",
577
- issue: "https://github.com/capybara-hq/core/issues/91",
190
+ category: "internal",
191
+ reason: "The config form schema of the create and credential routes, which stay on the web; an agent has no use for it",
578
192
  },
579
193
  {
580
194
  route: "POST /api/v1/orgs/:orgId/channels",
581
195
  category: "secret",
582
196
  reason: "Creates a channel connection with app secrets",
583
197
  },
584
- {
585
- route: "GET /api/v1/orgs/:orgId/channels/:connectionId",
586
- category: "secret",
587
- reason: "Returns a channel connection whose config holds secret fields",
588
- },
589
- {
590
- route: "PATCH /api/v1/orgs/:orgId/channels/:connectionId",
591
- category: "secret",
592
- reason: "Writes channel config that includes secret fields",
593
- },
594
- {
595
- route: "DELETE /api/v1/orgs/:orgId/channels/:connectionId",
596
- category: "later",
597
- reason: "Removing a channel connection, mirrored later behind confirmation",
598
- issue: "https://github.com/capybara-hq/core/issues/91",
599
- },
600
198
  // attachments
601
199
  {
602
200
  route: "GET /api/v1/orgs/:orgId/attachments/limits",
603
- category: "later",
604
- reason: "Attachment limits an agent could read later",
605
- issue: "https://github.com/capybara-hq/core/issues/91",
201
+ category: "internal",
202
+ reason: "The composer's pre-upload check on the web; an agent does not upload attachments",
606
203
  },
607
204
  {
608
205
  route: "POST /api/v1/orgs/:orgId/attachments",
@@ -622,63 +219,13 @@ export const PLATFORM_EXCLUSIONS = [
622
219
  // conversations
623
220
  {
624
221
  route: "POST /api/v1/orgs/:orgId/conversations",
625
- category: "later",
626
- reason: "Starting a conversation, mirrored later",
627
- issue: "https://github.com/capybara-hq/core/issues/91",
628
- },
629
- {
630
- route: "PATCH /api/v1/orgs/:orgId/conversations/:id",
631
- category: "later",
632
- reason: "Renaming or editing a conversation, mirrored later",
633
- issue: "https://github.com/capybara-hq/core/issues/91",
634
- },
635
- {
636
- route: "DELETE /api/v1/orgs/:orgId/conversations/:id",
637
- category: "later",
638
- reason: "Deleting a conversation, mirrored later behind confirmation",
639
- issue: "https://github.com/capybara-hq/core/issues/91",
640
- },
641
- {
642
- route: "GET /api/v1/orgs/:orgId/conversations",
643
- category: "later",
644
- reason: "Conversation list an agent could read later",
645
- issue: "https://github.com/capybara-hq/core/issues/91",
222
+ category: "internal",
223
+ reason: "Starting a conversation starts a run the person must watch and own; an agent cannot open conversations on their behalf, and the web does it on first send",
646
224
  },
647
225
  {
648
226
  route: "GET /api/v1/orgs/:orgId/conversations/groups",
649
- category: "later",
650
- reason: "Conversation groups an agent could read later",
651
- issue: "https://github.com/capybara-hq/core/issues/91",
652
- },
653
- {
654
- route: "GET /api/v1/orgs/:orgId/conversations/:id",
655
- category: "later",
656
- reason: "Conversation detail an agent could read later",
657
- issue: "https://github.com/capybara-hq/core/issues/91",
658
- },
659
- {
660
- route: "GET /api/v1/orgs/:orgId/conversations/:id/events",
661
- category: "later",
662
- reason: "Event log read an agent could do later",
663
- issue: "https://github.com/capybara-hq/core/issues/91",
664
- },
665
- {
666
- route: "GET /api/v1/orgs/:orgId/conversations/:id/subagents",
667
- category: "later",
668
- reason: "Sub-agent list an agent could read later",
669
- issue: "https://github.com/capybara-hq/core/issues/91",
670
- },
671
- {
672
- route: "GET /api/v1/orgs/:orgId/conversations/:id/agent-tree",
673
- category: "later",
674
- reason: "Agent tree an agent could read later",
675
- issue: "https://github.com/capybara-hq/core/issues/91",
676
- },
677
- {
678
- route: "GET /api/v1/orgs/:orgId/conversations/:id/usage",
679
- category: "later",
680
- reason: "Usage totals an agent could read later",
681
- issue: "https://github.com/capybara-hq/core/issues/91",
227
+ category: "internal",
228
+ reason: "The sidebar's per-agent grouping of the same rows; conversations.list with its agentId filter returns the same data",
682
229
  },
683
230
  {
684
231
  route: "GET /api/v1/orgs/:orgId/conversations/:id/outputs/:outputId",
@@ -695,215 +242,53 @@ export const PLATFORM_EXCLUSIONS = [
695
242
  category: "transport",
696
243
  reason: "Serves artifact preview bytes",
697
244
  },
698
- {
699
- route: "GET /api/v1/orgs/:orgId/conversations/:id/files",
700
- category: "later",
701
- reason: "Conversation file list an agent could read later",
702
- issue: "https://github.com/capybara-hq/core/issues/91",
703
- },
704
245
  {
705
246
  route: "GET /api/v1/orgs/:orgId/conversations/:id/files/:fileId/content",
706
247
  category: "transport",
707
248
  reason: "Serves sandbox file bytes",
708
249
  },
709
- {
710
- route: "GET /api/v1/orgs/:orgId/conversations/:id/environment",
711
- category: "later",
712
- reason: "The conversation's environment and its instance state, an agent could read later",
713
- issue: "https://github.com/capybara-hq/core/issues/91",
714
- },
715
250
  // environments (personal cloud environments, environments design phase 1)
716
- {
717
- route: "GET /api/v1/orgs/:orgId/environments",
718
- category: "later",
719
- reason: "The person's environments, an agent could list later",
720
- issue: "https://github.com/capybara-hq/core/issues/91",
721
- },
722
- {
723
- route: "POST /api/v1/orgs/:orgId/environments",
724
- category: "later",
725
- reason: "Creates a personal cloud environment; an agent could do it later behind confirmation",
726
- issue: "https://github.com/capybara-hq/core/issues/91",
727
- },
728
- {
729
- route: "GET /api/v1/orgs/:orgId/environments/:id",
730
- category: "later",
731
- reason: "One environment's details, an agent could read later",
732
- issue: "https://github.com/capybara-hq/core/issues/91",
733
- },
734
- {
735
- route: "PATCH /api/v1/orgs/:orgId/environments/:id",
736
- category: "later",
737
- reason: "Renames an environment; an agent could do it later behind confirmation",
738
- issue: "https://github.com/capybara-hq/core/issues/91",
739
- },
740
- {
741
- route: "DELETE /api/v1/orgs/:orgId/environments/:id",
742
- category: "human-only",
743
- reason: "Deletes an environment and its files",
744
- },
745
- {
746
- route: "POST /api/v1/orgs/:orgId/environments/:id/files/reset",
747
- category: "human-only",
748
- reason: "Wipes an environment's files to start with an empty workspace",
749
- },
750
251
  {
751
252
  route: "GET /api/v1/orgs/:orgId/conversations/:id/tools",
752
- category: "later",
753
- reason: "Tool list of a conversation, readable by an agent later",
754
- issue: "https://github.com/capybara-hq/core/issues/91",
253
+ category: "internal",
254
+ reason: "Titles and key arguments for the web's tool rows, derived from the event log that conversations.events returns",
755
255
  },
756
256
  {
757
257
  route: "POST /api/v1/orgs/:orgId/conversations/:id/messages",
758
- category: "later",
759
- reason: "Sending a user message, mirrored later",
760
- issue: "https://github.com/capybara-hq/core/issues/91",
258
+ category: "internal",
259
+ reason: "Sending a message to a conversation starts a run in the person's name; runs are started by the person, not by another run",
761
260
  },
762
261
  {
763
262
  route: "GET /api/v1/orgs/:orgId/conversations/:id/queue",
764
- category: "later",
765
- reason: "Message queue read an agent could do later",
766
- issue: "https://github.com/capybara-hq/core/issues/91",
263
+ category: "internal",
264
+ reason: "Deprecated message queue the web no longer uses; leftover items drain until the table is dropped",
767
265
  },
768
266
  {
769
267
  route: "POST /api/v1/orgs/:orgId/conversations/:id/queue",
770
- category: "later",
771
- reason: "Queueing a message, mirrored later",
772
- issue: "https://github.com/capybara-hq/core/issues/91",
268
+ category: "internal",
269
+ reason: "Deprecated alias of POST messages, which stays with the person",
773
270
  },
774
271
  {
775
272
  route: "POST /api/v1/orgs/:orgId/conversations/:id/queue/resume",
776
- category: "later",
777
- reason: "Resuming a paused queue, mirrored later",
778
- issue: "https://github.com/capybara-hq/core/issues/91",
273
+ category: "internal",
274
+ reason: "Deprecated message queue the web no longer uses; leftover items drain until the table is dropped",
779
275
  },
780
276
  {
781
277
  route: "PATCH /api/v1/orgs/:orgId/conversations/:id/queue/:itemId",
782
- category: "later",
783
- reason: "Editing a queued message, mirrored later",
784
- issue: "https://github.com/capybara-hq/core/issues/91",
278
+ category: "internal",
279
+ reason: "Deprecated message queue the web no longer uses; leftover items drain until the table is dropped",
785
280
  },
786
281
  {
787
282
  route: "DELETE /api/v1/orgs/:orgId/conversations/:id/queue/:itemId",
788
- category: "later",
789
- reason: "Removing a queued message, mirrored later",
790
- issue: "https://github.com/capybara-hq/core/issues/91",
283
+ category: "internal",
284
+ reason: "Deprecated message queue the web no longer uses; leftover items drain until the table is dropped",
791
285
  },
792
286
  {
793
287
  route: "POST /api/v1/orgs/:orgId/conversations/:id/queue/:itemId/send",
794
- category: "later",
795
- reason: "Sending a queued message now, mirrored later",
796
- issue: "https://github.com/capybara-hq/core/issues/91",
797
- },
798
- {
799
- route: "POST /api/v1/orgs/:orgId/conversations/:id/abort",
800
- category: "later",
801
- reason: "Aborting a run, mirrored later",
802
- issue: "https://github.com/capybara-hq/core/issues/91",
288
+ category: "internal",
289
+ reason: "Deprecated queue item send; sending a message stays with the person",
803
290
  },
804
291
  // evals
805
- {
806
- route: "POST /api/v1/orgs/:orgId/eval-sets/:setId/runs/estimate",
807
- category: "later",
808
- reason: "Eval run cost estimate, mirrored later",
809
- issue: "https://github.com/capybara-hq/core/issues/91",
810
- },
811
- {
812
- route: "POST /api/v1/orgs/:orgId/eval-sets/:setId/runs",
813
- category: "later",
814
- reason: "Starting an eval run, mirrored later behind confirmation",
815
- issue: "https://github.com/capybara-hq/core/issues/91",
816
- },
817
- {
818
- route: "GET /api/v1/orgs/:orgId/eval-sets/:setId/runs",
819
- category: "later",
820
- reason: "Eval run list an agent could read later",
821
- issue: "https://github.com/capybara-hq/core/issues/91",
822
- },
823
- {
824
- route: "GET /api/v1/orgs/:orgId/eval-runs/:runId",
825
- category: "later",
826
- reason: "Eval run detail an agent could read later",
827
- issue: "https://github.com/capybara-hq/core/issues/91",
828
- },
829
- {
830
- route: "GET /api/v1/orgs/:orgId/eval-runs/:runId/results",
831
- category: "later",
832
- reason: "Eval results an agent could read later",
833
- issue: "https://github.com/capybara-hq/core/issues/91",
834
- },
835
- {
836
- route: "GET /api/v1/orgs/:orgId/eval-runs/:runId/results/:resultId",
837
- category: "later",
838
- reason: "Eval result detail an agent could read later",
839
- issue: "https://github.com/capybara-hq/core/issues/91",
840
- },
841
- {
842
- route: "POST /api/v1/orgs/:orgId/eval-runs/:runId/cancel",
843
- category: "later",
844
- reason: "Cancelling an eval run, mirrored later",
845
- issue: "https://github.com/capybara-hq/core/issues/91",
846
- },
847
- {
848
- route: "PUT /api/v1/orgs/:orgId/eval-results/:resultId/label",
849
- category: "later",
850
- reason: "Labelling an eval result, mirrored later",
851
- issue: "https://github.com/capybara-hq/core/issues/91",
852
- },
853
- {
854
- route: "POST /api/v1/orgs/:orgId/eval-sets",
855
- category: "later",
856
- reason: "Creating an eval set, mirrored later",
857
- issue: "https://github.com/capybara-hq/core/issues/91",
858
- },
859
- {
860
- route: "GET /api/v1/orgs/:orgId/eval-sets",
861
- category: "later",
862
- reason: "Eval set list an agent could read later",
863
- issue: "https://github.com/capybara-hq/core/issues/91",
864
- },
865
- {
866
- route: "GET /api/v1/orgs/:orgId/eval-sets/:setId",
867
- category: "later",
868
- reason: "Eval set detail an agent could read later",
869
- issue: "https://github.com/capybara-hq/core/issues/91",
870
- },
871
- {
872
- route: "PATCH /api/v1/orgs/:orgId/eval-sets/:setId",
873
- category: "later",
874
- reason: "Editing an eval set, mirrored later",
875
- issue: "https://github.com/capybara-hq/core/issues/91",
876
- },
877
- {
878
- route: "DELETE /api/v1/orgs/:orgId/eval-sets/:setId",
879
- category: "later",
880
- reason: "Deleting an eval set, mirrored later behind confirmation",
881
- issue: "https://github.com/capybara-hq/core/issues/91",
882
- },
883
- {
884
- route: "POST /api/v1/orgs/:orgId/eval-sets/:setId/cases",
885
- category: "later",
886
- reason: "Adding an eval case, mirrored later",
887
- issue: "https://github.com/capybara-hq/core/issues/91",
888
- },
889
- {
890
- route: "POST /api/v1/orgs/:orgId/eval-sets/:setId/cases/sample",
891
- category: "later",
892
- reason: "Sampling eval cases from conversations, mirrored later",
893
- issue: "https://github.com/capybara-hq/core/issues/91",
894
- },
895
- {
896
- route: "GET /api/v1/orgs/:orgId/eval-sets/:setId/cases/:caseId",
897
- category: "later",
898
- reason: "Eval case detail an agent could read later",
899
- issue: "https://github.com/capybara-hq/core/issues/91",
900
- },
901
- {
902
- route: "DELETE /api/v1/orgs/:orgId/eval-sets/:setId/cases/:caseId",
903
- category: "later",
904
- reason: "Removing an eval case, mirrored later",
905
- issue: "https://github.com/capybara-hq/core/issues/91",
906
- },
907
292
  {
908
293
  route: "GET /api/v1/orgs/:orgId/trajectories",
909
294
  category: "human-only",
@@ -915,24 +300,6 @@ export const PLATFORM_EXCLUSIONS = [
915
300
  reason: "Reads a full trajectory of someone's conversation, audited as a human review",
916
301
  },
917
302
  // extension-points
918
- {
919
- route: "GET /api/v1/orgs/:orgId/extension-points",
920
- category: "later",
921
- reason: "Extension point defaults an agent could read later",
922
- issue: "https://github.com/capybara-hq/core/issues/91",
923
- },
924
- {
925
- route: "GET /api/v1/orgs/:orgId/extension-points/available",
926
- category: "later",
927
- reason: "Available extension point providers an agent could read later",
928
- issue: "https://github.com/capybara-hq/core/issues/91",
929
- },
930
- {
931
- route: "PUT /api/v1/orgs/:orgId/extension-points/:point/default",
932
- category: "later",
933
- reason: "Choosing the default provider for a point, mirrored later",
934
- issue: "https://github.com/capybara-hq/core/issues/91",
935
- },
936
303
  // previewers
937
304
  {
938
305
  route: "GET /api/v1/orgs/:orgId/conversations/:id/files/:fileId/previewers",
@@ -944,19 +311,12 @@ export const PLATFORM_EXCLUSIONS = [
944
311
  category: "transport",
945
312
  reason: "Serves a rendered file preview",
946
313
  },
314
+ // identity
947
315
  {
948
- route: "GET /api/v1/orgs/:orgId/file-previewers",
949
- category: "later",
950
- reason: "File previewer settings an agent could read later",
951
- issue: "https://github.com/capybara-hq/core/issues/91",
952
- },
953
- {
954
- route: "PUT /api/v1/orgs/:orgId/file-previewers",
955
- category: "later",
956
- reason: "File previewer settings an agent could change later",
957
- issue: "https://github.com/capybara-hq/core/issues/91",
316
+ route: "POST /api/v1/orgs/:orgId/approvals/:approvalId/initial-password",
317
+ category: "secret",
318
+ reason: "Returns a generated initial password once, on the web, to the person who approved the account creation",
958
319
  },
959
- // identity
960
320
  { route: "POST /api/v1/auth/login", category: "human-only", reason: "Password login" },
961
321
  { route: "POST /api/v1/auth/refresh", category: "human-only", reason: "Rotates a refresh token" },
962
322
  { route: "POST /api/v1/auth/logout", category: "human-only", reason: "Ends the login session" },
@@ -970,6 +330,16 @@ export const PLATFORM_EXCLUSIONS = [
970
330
  category: "human-only",
971
331
  reason: "Switches the web session's current org",
972
332
  },
333
+ {
334
+ route: "GET /api/v1/me/preferences",
335
+ category: "internal",
336
+ reason: "The person's time zone setting the web's preferences page reads; the run context already gives the agent the zone in effect",
337
+ },
338
+ {
339
+ route: "PUT /api/v1/me/preferences",
340
+ category: "human-only",
341
+ reason: "A person's own time zone setting, chosen on their preferences page",
342
+ },
973
343
  {
974
344
  route: "PUT /api/v1/me/password",
975
345
  category: "human-only",
@@ -1025,53 +395,15 @@ export const PLATFORM_EXCLUSIONS = [
1025
395
  category: "human-only",
1026
396
  reason: "Unlinks a login identity",
1027
397
  },
1028
- // inbox
1029
- {
1030
- route: "GET /api/v1/admin/inbox",
1031
- category: "later",
1032
- reason: "Platform inbox list an agent could read later",
1033
- issue: "https://github.com/capybara-hq/core/issues/91",
1034
- },
1035
- {
1036
- route: "GET /api/v1/admin/inbox/count",
1037
- category: "later",
1038
- reason: "Platform inbox badge count, readable later",
1039
- issue: "https://github.com/capybara-hq/core/issues/91",
1040
- },
1041
- {
1042
- route: "POST /api/v1/admin/inbox/notices/:id/dismiss",
1043
- category: "later",
1044
- reason: "Dismissing a platform notice, mirrored later",
1045
- issue: "https://github.com/capybara-hq/core/issues/91",
1046
- },
1047
398
  // health
1048
399
  { route: "GET /healthz", category: "transport", reason: "Liveness probe for the orchestrator" },
1049
400
  { route: "GET /readyz", category: "transport", reason: "Readiness probe for the orchestrator" },
1050
401
  // models
1051
- {
1052
- route: "GET /api/v1/orgs/:orgId/model-purposes",
1053
- category: "later",
1054
- reason: "Org model per purpose, readable by an agent later",
1055
- issue: "https://github.com/capybara-hq/core/issues/91",
1056
- },
1057
- {
1058
- route: "PUT /api/v1/orgs/:orgId/model-purposes/:purpose",
1059
- category: "later",
1060
- reason: "Org model per purpose, settable by an agent later",
1061
- issue: "https://github.com/capybara-hq/core/issues/91",
1062
- },
1063
- {
1064
- route: "PATCH /api/v1/orgs/:orgId/models/:provider/disabled",
1065
- category: "later",
1066
- reason: "Org model disabled list write that an agent could mirror later behind confirmation",
1067
- issue: "https://github.com/capybara-hq/core/issues/91",
1068
- },
1069
402
  // orgs
1070
403
  {
1071
404
  route: "POST /api/v1/orgs/:orgId/extensions/:extension/directory/sync",
1072
- category: "later",
1073
- reason: "Triggering a directory sync, mirrored later",
1074
- issue: "https://github.com/capybara-hq/core/issues/91",
405
+ category: "human-only",
406
+ reason: "Adds and removes org members from the directory; only an admin, by hand, starts it",
1075
407
  },
1076
408
  {
1077
409
  route: "POST /api/v1/orgs/:orgId/invitations",
@@ -1105,21 +437,8 @@ export const PLATFORM_EXCLUSIONS = [
1105
437
  },
1106
438
  {
1107
439
  route: "GET /api/v1/orgs",
1108
- category: "later",
1109
- reason: "Org list an agent could read later",
1110
- issue: "https://github.com/capybara-hq/core/issues/91",
1111
- },
1112
- {
1113
- route: "GET /api/v1/orgs/:orgId",
1114
- category: "later",
1115
- reason: "Org detail an agent could read later",
1116
- issue: "https://github.com/capybara-hq/core/issues/91",
1117
- },
1118
- {
1119
- route: "PATCH /api/v1/orgs/:orgId",
1120
- category: "later",
1121
- reason: "Org profile edit, mirrored later",
1122
- issue: "https://github.com/capybara-hq/core/issues/91",
440
+ category: "internal",
441
+ reason: "The web's org switcher across the caller's orgs; an agent works in its conversation's org (orgs.current)",
1123
442
  },
1124
443
  { route: "DELETE /api/v1/orgs/:orgId", category: "human-only", reason: "Deletes the whole org" },
1125
444
  {
@@ -1132,12 +451,6 @@ export const PLATFORM_EXCLUSIONS = [
1132
451
  category: "human-only",
1133
452
  reason: "Removes the caller from the org",
1134
453
  },
1135
- {
1136
- route: "GET /api/v1/orgs/:orgId/members",
1137
- category: "later",
1138
- reason: "Member list an agent could read later",
1139
- issue: "https://github.com/capybara-hq/core/issues/91",
1140
- },
1141
454
  {
1142
455
  route: "PATCH /api/v1/orgs/:orgId/members/:accountId",
1143
456
  category: "human-only",
@@ -1163,18 +476,6 @@ export const PLATFORM_EXCLUSIONS = [
1163
476
  category: "human-only",
1164
477
  reason: "Revokes a service token",
1165
478
  },
1166
- {
1167
- route: "GET /api/v1/orgs/:orgId/settings",
1168
- category: "later",
1169
- reason: "Org settings read an agent could do later",
1170
- issue: "https://github.com/capybara-hq/core/issues/91",
1171
- },
1172
- {
1173
- route: "PATCH /api/v1/orgs/:orgId/settings",
1174
- category: "later",
1175
- reason: "Org settings write, mirrored later behind confirmation",
1176
- issue: "https://github.com/capybara-hq/core/issues/91",
1177
- },
1178
479
  // runtime
1179
480
  {
1180
481
  route: "GET /api/v1/orgs/:orgId/conversations/:id/runs/:runId/draft",
@@ -1187,85 +488,21 @@ export const PLATFORM_EXCLUSIONS = [
1187
488
  reason: "Server-sent event stream of a conversation",
1188
489
  },
1189
490
  // skills
1190
- {
1191
- route: "GET /api/v1/orgs/:orgId/skill-changes/:id",
1192
- category: "later",
1193
- reason: "Skill change detail an agent could read later",
1194
- issue: "https://github.com/capybara-hq/core/issues/91",
1195
- },
1196
491
  {
1197
492
  route: "POST /api/v1/orgs/:orgId/skill-changes/:id/decide",
1198
493
  category: "human-only",
1199
494
  reason: "Decides a proposed skill change",
1200
495
  },
1201
- {
1202
- route: "GET /api/v1/orgs/:orgId/agents/:agentId/skills",
1203
- category: "later",
1204
- reason: "Skills attached to an agent, readable later",
1205
- issue: "https://github.com/capybara-hq/core/issues/91",
1206
- },
1207
- {
1208
- route: "DELETE /api/v1/orgs/:orgId/agents/:agentId/skills/:skillId",
1209
- category: "later",
1210
- reason: "Detaching a skill from an agent, mirrored later",
1211
- issue: "https://github.com/capybara-hq/core/issues/91",
1212
- },
1213
- {
1214
- route: "GET /api/v1/orgs/:orgId/inbox",
1215
- category: "later",
1216
- reason: "Org inbox list an agent could read later",
1217
- issue: "https://github.com/capybara-hq/core/issues/91",
1218
- },
1219
- {
1220
- route: "POST /api/v1/orgs/:orgId/inbox/notices/:id/dismiss",
1221
- category: "later",
1222
- reason: "Dismissing an org notice, mirrored later",
1223
- issue: "https://github.com/capybara-hq/core/issues/91",
1224
- },
1225
- {
1226
- route: "GET /api/v1/orgs/:orgId/agents/:agentId/invocable-skills",
1227
- category: "later",
1228
- reason: "Invocable skill list an agent could read later",
1229
- issue: "https://github.com/capybara-hq/core/issues/91",
1230
- },
1231
496
  {
1232
497
  route: "POST /api/v1/orgs/:orgId/skills/uploads",
1233
498
  category: "transport",
1234
499
  reason: "Uploads a skill archive as multipart bytes",
1235
500
  },
1236
- {
1237
- route: "PUT /api/v1/orgs/:orgId/skills/:id/shareable",
1238
- category: "later",
1239
- reason: "Sharing an org skill with other orgs, mirrored later",
1240
- issue: "https://github.com/capybara-hq/core/issues/91",
1241
- },
1242
- {
1243
- route: "GET /api/v1/orgs/:orgId/skills/:id/delete-preview",
1244
- category: "later",
1245
- reason: "Skill delete preview an agent could read later",
1246
- issue: "https://github.com/capybara-hq/core/issues/91",
1247
- },
1248
- {
1249
- route: "DELETE /api/v1/orgs/:orgId/skills/:id",
1250
- category: "later",
1251
- reason: "Skill deletion, mirrored later behind confirmation",
1252
- issue: "https://github.com/capybara-hq/core/issues/91",
1253
- },
1254
501
  // approvals
1255
- {
1256
- route: "GET /api/v1/orgs/:orgId/approvals",
1257
- category: "human-only",
1258
- reason: "Lists approvals awaiting a person's decision",
1259
- },
1260
- {
1261
- route: "GET /api/v1/orgs/:orgId/approvals/:id",
1262
- category: "human-only",
1263
- reason: "Shows an approval awaiting a person's decision",
1264
- },
1265
502
  {
1266
503
  route: "POST /api/v1/orgs/:orgId/approvals/:id/decision",
1267
504
  category: "human-only",
1268
- reason: "Decides a tool permission approval",
505
+ reason: "Decides a tool permission approval; only the person decides (spec §6.4); reading what waits is approvals.waiting / approvals.get",
1269
506
  },
1270
507
  {
1271
508
  route: "GET /api/v1/orgs/:orgId/me/tool-grants",
@@ -1280,27 +517,23 @@ export const PLATFORM_EXCLUSIONS = [
1280
517
  // connectors
1281
518
  {
1282
519
  route: "GET /api/v1/orgs/:orgId/connectors/prompts",
1283
- category: "later",
1284
- reason: "Connector prompt list an agent could read later",
1285
- issue: "https://github.com/capybara-hq/core/issues/91",
520
+ category: "internal",
521
+ reason: "Feeds the slash menu of the web input box: prompt templates of remote servers, written for a person to fill in and send; an agent has no one to send them to",
1286
522
  },
1287
523
  {
1288
524
  route: "GET /api/v1/orgs/:orgId/connectors/resources",
1289
- category: "later",
1290
- reason: "Connector resource list an agent could read later",
1291
- issue: "https://github.com/capybara-hq/core/issues/91",
525
+ category: "internal",
526
+ reason: "Feeds the @ reference picker of the web input box; an agent reads connector resources through its connector tools",
1292
527
  },
1293
528
  {
1294
529
  route: "POST /api/v1/orgs/:orgId/connectors/:connectorId/prompts/:name",
1295
- category: "later",
1296
- reason: "Rendering a connector prompt, mirrored later",
1297
- issue: "https://github.com/capybara-hq/core/issues/91",
530
+ category: "internal",
531
+ reason: "Renders a remote server's prompt into text for the web input box, for the person to send; it calls the server with the person's own credential",
1298
532
  },
1299
533
  {
1300
534
  route: "GET /api/v1/orgs/:orgId/connectors/kinds",
1301
- category: "later",
1302
- reason: "Connector kinds an agent could read later",
1303
- issue: "https://github.com/capybara-hq/core/issues/91",
535
+ category: "internal",
536
+ reason: "The protocols the web's create-connector form offers; creating a connector stays on the web (secret credentials)",
1304
537
  },
1305
538
  {
1306
539
  route: "POST /api/v1/orgs/:orgId/connectors",
@@ -1317,18 +550,6 @@ export const PLATFORM_EXCLUSIONS = [
1317
550
  category: "secret",
1318
551
  reason: "Edits connector endpoint config that can carry credentials",
1319
552
  },
1320
- {
1321
- route: "DELETE /api/v1/orgs/:orgId/connectors/:connectorId",
1322
- category: "later",
1323
- reason: "Deleting a connector, mirrored later behind confirmation",
1324
- issue: "https://github.com/capybara-hq/core/issues/91",
1325
- },
1326
- {
1327
- route: "POST /api/v1/orgs/:orgId/connectors/:connectorId/refresh",
1328
- category: "later",
1329
- reason: "Refreshing a connector's tool list, mirrored later",
1330
- issue: "https://github.com/capybara-hq/core/issues/91",
1331
- },
1332
553
  {
1333
554
  route: "POST /api/v1/orgs/:orgId/connectors/:connectorId/tools/:name/review",
1334
555
  category: "human-only",
@@ -1351,9 +572,8 @@ export const PLATFORM_EXCLUSIONS = [
1351
572
  },
1352
573
  {
1353
574
  route: "GET /api/v1/orgs/:orgId/tools/extensions",
1354
- category: "later",
1355
- reason: "Extension-provided tool list an agent could read later",
1356
- issue: "https://github.com/capybara-hq/core/issues/91",
575
+ category: "internal",
576
+ reason: "Display list of the agent form's tools picker; extensions.tools gives an agent the same facts",
1357
577
  },
1358
578
  {
1359
579
  route: "POST /api/v1/orgs/:orgId/connectors/:connectorId/connect",
@@ -1378,9 +598,8 @@ export const PLATFORM_EXCLUSIONS = [
1378
598
  // ui
1379
599
  {
1380
600
  route: "GET /api/v1/orgs/:orgId/ui/contributions",
1381
- category: "later",
1382
- reason: "Extension UI contribution list, readable later",
1383
- issue: "https://github.com/capybara-hq/core/issues/91",
601
+ category: "internal",
602
+ reason: "Navigation entries of the web shell (panels, pages, embeds); nothing an agent acts on",
1384
603
  },
1385
604
  {
1386
605
  route: "GET /api/v1/orgs/:orgId/ui/views/:plugin/:id",