@snagset/server 0.1.16 → 0.1.18

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 (193) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +9 -10
  3. package/dist/app.js +51 -47
  4. package/dist/app.js.map +1 -1
  5. package/dist/bin.js +31 -32
  6. package/dist/bin.js.map +1 -1
  7. package/dist/boot.js +21 -21
  8. package/dist/boot.js.map +1 -1
  9. package/dist/config.generated.js +5 -8
  10. package/dist/config.generated.js.map +1 -1
  11. package/dist/config.js +14 -14
  12. package/dist/config.js.map +1 -1
  13. package/dist/crypto.js +1 -1
  14. package/dist/crypto.js.map +1 -1
  15. package/dist/db/connect.js +1 -1
  16. package/dist/db/migrate.js +11 -11
  17. package/dist/db/rls.js +3 -3
  18. package/dist/db/rls.js.map +1 -1
  19. package/dist/domain.js +73 -5
  20. package/dist/domain.js.map +1 -1
  21. package/dist/explain.js +1 -1
  22. package/dist/instance/address.js +3 -3
  23. package/dist/instance/address.js.map +1 -1
  24. package/dist/instance/settings.js +1 -1
  25. package/dist/integrations/github.js +3 -3
  26. package/dist/integrations/github.js.map +1 -1
  27. package/dist/integrations/inbound.js +3 -3
  28. package/dist/integrations/inbound.js.map +1 -1
  29. package/dist/integrations/linear.js +1 -1
  30. package/dist/integrations/linear.js.map +1 -1
  31. package/dist/integrations/outbox.js +4 -4
  32. package/dist/integrations/outbox.js.map +1 -1
  33. package/dist/integrations/slack.js +2 -2
  34. package/dist/integrations/slack.js.map +1 -1
  35. package/dist/jobs/index.js +3 -3
  36. package/dist/jobs/reaper.js +11 -11
  37. package/dist/jobs/reaper.js.map +1 -1
  38. package/dist/jobs/set.js +3 -3
  39. package/dist/jobs/set.js.map +1 -1
  40. package/dist/jobs/soon.js +3 -3
  41. package/dist/keys.js +3 -3
  42. package/dist/keys.js.map +1 -1
  43. package/dist/listen.js +3 -3
  44. package/dist/listen.js.map +1 -1
  45. package/dist/mail/assigned.js +10 -10
  46. package/dist/mail/assigned.js.map +1 -1
  47. package/dist/mail/digest.js +3 -3
  48. package/dist/mail/digest.js.map +1 -1
  49. package/dist/mail/index.js +2 -2
  50. package/dist/mail/links.js +5 -5
  51. package/dist/mail/mailer.js +2 -2
  52. package/dist/mail/notify.js +22 -22
  53. package/dist/mail/notify.js.map +1 -1
  54. package/dist/mail/resend.js +1 -1
  55. package/dist/mail/resolve.js +1 -1
  56. package/dist/mail/resolve.js.map +1 -1
  57. package/dist/mail/smtp.js +1 -1
  58. package/dist/mail/unsubscribe.js +1 -1
  59. package/dist/net/publicFetch.js +1 -1
  60. package/dist/orgs.js +5 -5
  61. package/dist/orgs.js.map +1 -1
  62. package/dist/plan.js +1 -1
  63. package/dist/projects.js +4 -4
  64. package/dist/projects.js.map +1 -1
  65. package/dist/routes/account.js +1 -1
  66. package/dist/routes/account.js.map +1 -1
  67. package/dist/routes/activity.js +1 -1
  68. package/dist/routes/anchorReports.js +9 -9
  69. package/dist/routes/anchorReports.js.map +1 -1
  70. package/dist/routes/assignees.js +4 -4
  71. package/dist/routes/assignees.js.map +1 -1
  72. package/dist/routes/attachments.js +6 -6
  73. package/dist/routes/attachments.js.map +1 -1
  74. package/dist/routes/auth.js +4 -4
  75. package/dist/routes/bodyLimit.js +5 -5
  76. package/dist/routes/bodyLimit.js.map +1 -1
  77. package/dist/routes/commentEdit.js +5 -5
  78. package/dist/routes/commentEdit.js.map +1 -1
  79. package/dist/routes/comments.js +24 -24
  80. package/dist/routes/comments.js.map +1 -1
  81. package/dist/routes/cors.js +33 -15
  82. package/dist/routes/cors.js.map +1 -1
  83. package/dist/routes/instance.js +3 -3
  84. package/dist/routes/instance.js.map +1 -1
  85. package/dist/routes/integrations.js +14 -11
  86. package/dist/routes/integrations.js.map +1 -1
  87. package/dist/routes/invites.js +7 -7
  88. package/dist/routes/invites.js.map +1 -1
  89. package/dist/routes/mcpAuth.js +13 -13
  90. package/dist/routes/mcpAuth.js.map +1 -1
  91. package/dist/routes/mcpToken.js +4 -4
  92. package/dist/routes/mcpToken.js.map +1 -1
  93. package/dist/routes/mcpTokens.js +27 -14
  94. package/dist/routes/mcpTokens.js.map +1 -1
  95. package/dist/routes/members.js +9 -5
  96. package/dist/routes/members.js.map +1 -1
  97. package/dist/routes/owner.js +13 -13
  98. package/dist/routes/owner.js.map +1 -1
  99. package/dist/routes/reviewLinks.js +4 -4
  100. package/dist/routes/reviewLinks.js.map +1 -1
  101. package/dist/routes/rounds.js +3 -3
  102. package/dist/routes/rounds.js.map +1 -1
  103. package/dist/routes/sessions.js +186 -71
  104. package/dist/routes/sessions.js.map +1 -1
  105. package/dist/routes/sites.js +9 -9
  106. package/dist/routes/sites.js.map +1 -1
  107. package/dist/routes/threads.js +95 -95
  108. package/dist/routes/threads.js.map +1 -1
  109. package/dist/routes/widget.js +5 -5
  110. package/dist/routes/widget.js.map +1 -1
  111. package/dist/serverless.js +4 -4
  112. package/dist/serverless.js.map +1 -1
  113. package/dist/session.js +8 -8
  114. package/dist/session.js.map +1 -1
  115. package/dist/storage/bucket.js +4 -4
  116. package/dist/storage/bucket.js.map +1 -1
  117. package/dist/storage/settings.js +4 -4
  118. package/dist/storage/settings.js.map +1 -1
  119. package/dist/studioReviewers.js +4 -4
  120. package/dist/vendor/adapters/outbound/fence.js +2 -2
  121. package/dist/vendor/adapters/outbound/sanitise.js +14 -14
  122. package/dist/vendor/mcp/bin.js +4 -4
  123. package/dist/vendor/mcp/client.js +3 -3
  124. package/dist/vendor/mcp/server.js +3 -3
  125. package/dist/vendor/mcp/source.js +13 -13
  126. package/dist/vendor/mcp/view.js +15 -15
  127. package/dist/vendor/types/brief.js +2 -2
  128. package/dist/vendor/types/index.js +1 -1
  129. package/dist/vendor/types/names.js +20 -18
  130. package/dist/vendor/widget/object.js +3 -3
  131. package/dist/vendor/widget/predicates.js +38 -39
  132. package/package.json +1 -5
  133. package/static/dashboard/assets/{CompositeItem-DP7FLsIz.js → CompositeItem-D1SCvKo_.js} +1 -1
  134. package/static/dashboard/assets/{ConfirmDialog-B-mNmk6U.js → ConfirmDialog-DdUOWt96.js} +1 -1
  135. package/static/dashboard/assets/{CopyButton-bsaLPvqU.js → CopyButton-DX7vax3M.js} +1 -1
  136. package/static/dashboard/assets/{FieldItemContext-Cz9anwiZ.js → FieldItemContext-CMpCHNX8.js} +1 -1
  137. package/static/dashboard/assets/{InstallTag-DDMHFPFi.js → InstallTag-DkYPsEI0.js} +1 -1
  138. package/static/dashboard/assets/{SaveState-rgq6rRHH.js → SaveState-D0Hl8cny.js} +1 -1
  139. package/static/dashboard/assets/{_app-C5aeP_jI.js → _app-CcUZ9WT2.js} +1 -1
  140. package/static/dashboard/assets/{_app-B--Q2p1D.js → _app-CnG-wKIX.js} +1 -1
  141. package/static/dashboard/assets/{activity-CmpMwfWp.js → activity-DnvsedIb.js} +1 -1
  142. package/static/dashboard/assets/{arrow-left-BN3lUG8m.js → arrow-left-4jbTF1bA.js} +1 -1
  143. package/static/dashboard/assets/{avatar-4OkpxHzf.js → avatar-BKSc7tnv.js} +1 -1
  144. package/static/dashboard/assets/{badge-BGUQxxes.js → badge-aWVtPffe.js} +1 -1
  145. package/static/dashboard/assets/{card-BX32udhB.js → card-Bz0VdsxC.js} +1 -1
  146. package/static/dashboard/assets/{check-DjkY9Lhe.js → check-Ti2IOlgc.js} +1 -1
  147. package/static/dashboard/assets/{chevron-right-w26JMtvi.js → chevron-right-g-zbIopD.js} +1 -1
  148. package/static/dashboard/assets/{copy-BtOpNPn3.js → copy-BwBuD0FO.js} +1 -1
  149. package/static/dashboard/assets/{dialog-Ca351GqX.js → dialog-DdpHZobU.js} +1 -1
  150. package/static/dashboard/assets/{dropdown-menu-BdM8D0_i.js → dropdown-menu-CB2L3nig.js} +1 -1
  151. package/static/dashboard/assets/{image-off-DBc5pfc8.js → image-off-w_ej9pIJ.js} +1 -1
  152. package/static/dashboard/assets/{index-Bvmz5Xph.js → index-DtF8YHqn.js} +3 -3
  153. package/static/dashboard/assets/{invite-b1vVPR4n.js → invite-Dy3iQjzf.js} +1 -1
  154. package/static/dashboard/assets/{label-CeHVAC98.js → label-Dj8L94iS.js} +1 -1
  155. package/static/dashboard/assets/{layout-grid-BJUJgcuD.js → layout-grid-DuweH0Vl.js} +1 -1
  156. package/static/dashboard/assets/me-7-r9OeMR.js +1 -0
  157. package/static/dashboard/assets/{parts-BU_5BLga.js → parts-CA4cbfy3.js} +1 -1
  158. package/static/dashboard/assets/{plus-DW3meZh8.js → plus-CEWgXDLj.js} +1 -1
  159. package/static/dashboard/assets/s._site-D69M50OI.js +1 -0
  160. package/static/dashboard/assets/{s._site.comments-CyIqVrl3.js → s._site.comments-DNJ2SE5c.js} +1 -1
  161. package/static/dashboard/assets/{s._site.reviewers-muaVzTtT.js → s._site.reviewers-B07NzSWj.js} +1 -1
  162. package/static/dashboard/assets/{s._site.settings-Bow6VdXW.js → s._site.settings-B577G5iG.js} +1 -1
  163. package/static/dashboard/assets/{setup-B5fdtoM-.js → setup-DcjjtB3g.js} +1 -1
  164. package/static/dashboard/assets/{sign-in-D9Bhw619.js → sign-in-gfvOs6Jw.js} +1 -1
  165. package/static/dashboard/assets/{sign-up-CK-LWLzn.js → sign-up-CFJt7ibH.js} +1 -1
  166. package/static/dashboard/assets/{sites-CLB6RzU6.js → sites-DbB5cjz5.js} +1 -1
  167. package/static/dashboard/assets/studio-BO-MHFqc.js +1 -0
  168. package/static/dashboard/assets/{studio-CVFUbJQb.js → studio-D9GxJaSF.js} +1 -1
  169. package/static/dashboard/assets/{studio.index-CUtMjh5_.js → studio.index-DktAxIPT.js} +1 -1
  170. package/static/dashboard/assets/studio.integrations-CbLyqPLX.js +1 -0
  171. package/static/dashboard/assets/{studio.members-BcVrAT7r.js → studio.members-DFtIL3JS.js} +1 -1
  172. package/static/dashboard/assets/{sun-BzCBfLxA.js → sun-Bg7U-6Y0.js} +1 -1
  173. package/static/dashboard/assets/{switch-Djsy8JA6.js → switch-CTN6hIca.js} +1 -1
  174. package/static/dashboard/assets/{table-Cnpowiv-.js → table-zQ3pj50_.js} +1 -1
  175. package/static/dashboard/assets/{useAriaLabelledBy-D35XdVIh.js → useAriaLabelledBy-BsNncGbx.js} +1 -1
  176. package/static/dashboard/assets/{useBaseQuery-DztMyAqa.js → useBaseQuery-DSqwWD_O.js} +1 -1
  177. package/static/dashboard/assets/useQuery-OgrKuHbc.js +1 -0
  178. package/static/dashboard/assets/useRender-DOFVvGfR.js +1 -0
  179. package/static/dashboard/assets/{useValueChanged-DY7n1sYE.js → useValueChanged-B9k7l-mp.js} +1 -1
  180. package/static/dashboard/assets/{users-CR2o4PsB.js → users-CRiOyD0f.js} +1 -1
  181. package/static/dashboard/assets/{welcome-DJ_8xHTE.js → welcome-DT2DB4jN.js} +1 -1
  182. package/static/dashboard/assets/{widget-signin-BOulktuR.js → widget-signin-CC9owVvs.js} +1 -1
  183. package/static/dashboard/assets/{you-DJGezimL.js → you-CtcXklc_.js} +1 -1
  184. package/static/dashboard/assets/{zod-4RphBaVj.js → zod-CLxHj89d.js} +1 -1
  185. package/static/dashboard/index.html +1 -1
  186. package/static/widget/snag.capture.js +1 -1
  187. package/static/widget/snag.runtime.js +2 -2
  188. package/static/dashboard/assets/me-zNn3-t75.js +0 -1
  189. package/static/dashboard/assets/s._site-DP3hLlXp.js +0 -1
  190. package/static/dashboard/assets/studio-CuiXjnSt.js +0 -1
  191. package/static/dashboard/assets/studio.integrations-CiQ83f7Q.js +0 -1
  192. package/static/dashboard/assets/useQuery-DCEPkmeo.js +0 -1
  193. package/static/dashboard/assets/useRender-C2NyqaXd.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"invites.js","sourceRoot":"","sources":["../../src/routes/invites.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invites.js","sourceRoot":"","sources":["../../src/routes/invites.ts"],"names":[],"mappings":"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"}
@@ -3,15 +3,15 @@ import { CREDENTIAL_PREFIX, HTTP_HEADER } from "../vendor/types/names.js";
3
3
  import { verifyMcpToken, touchMcpToken } from "./mcpToken.js";
4
4
  import { inOrg, maintenance } from "../db/scope.js";
5
5
  /**
6
- * The write budget — 07 §8.4, `mcpw:token`, 20 writes per 10 minutes
7
- * *(calibration)*, and §8.6 mitigation 5 is why it exists: *"An agent injected
6
+ * The write budget, `mcpw:token`, 20 writes per 10 minutes
7
+ * *(calibration)*, and the design is why it exists: *"An agent injected
8
8
  * into 'resolve every thread' stops on the 21st and must tell its user."*
9
9
  *
10
10
  * Counted out of `events` rather than a bucket in memory, and that is not
11
11
  * laziness. A budget in process memory resets when the process restarts and
12
12
  * does not exist at all across two instances — so on the serverless entry
13
13
  * (`serverless.ts`) an attacker gets 20 writes *per warm instance*, which is
14
- * not a budget. §8.6 mitigation 8 already requires every agent write to land in
14
+ * not a budget. Already requires every agent write to land in
15
15
  * `events` with the token id; counting the rows that must exist anyway makes
16
16
  * the budget exactly as durable as the audit trail.
17
17
  */
@@ -38,7 +38,7 @@ export function mcpAuth(sql) {
38
38
  }, 401);
39
39
  }
40
40
  c.set("mcp", claims);
41
- // 05 §9.6: a write over the remote transport needs the token's explicit
41
+ // A write over the remote transport needs the token's explicit
42
42
  // say-so. The marker is set by our own HTTP transport on the calls it
43
43
  // makes back in; a stranger setting it on a request of their own only
44
44
  // narrows what that request may do. Reads are untouched.
@@ -61,17 +61,17 @@ export function mcpAuth(sql) {
61
61
  * `void` on purpose — F29 reads `last_used_at`, but a failure to record it
62
62
  * must never fail a request that otherwise succeeded.
63
63
  *
64
- * The salt is the token's OWN hash. 00 §14.2b puts the IP salt on
64
+ * The salt is the token's OWN hash. The design puts the IP salt on
65
65
  * `projects`, which works for a project-scoped token and has nothing to
66
66
  * offer an org-wide one — and an org-wide token is what the CLI mints, so
67
67
  * "use the project salt" would mean recording nothing in the common case
68
68
  * and leaving F29 blind. `token_hash` is per-row, already stored, cannot
69
69
  * predate the row it is on, and is not derivable by whoever is being
70
- * hashed. The raw address is still never stored (08 §4.7).
70
+ * hashed. The raw address is still never stored.
71
71
  */
72
- // 05 §9.1's `mcp:token` bucket, 120 a minute. Counted in `rate_counters`
72
+ // The `mcp:token` bucket, 120 a minute. Counted in `rate_counters`
73
73
  // like the mail allowance — durable, org-scoped, one row per token — so
74
- // two instances or a restart share the same count. 07 §8.4: on 429 the
74
+ // two instances or a restart share the same count.: on 429 the
75
75
  // tool layer tells the agent to stop and ask, never to sleep and retry.
76
76
  const over = await overReadBudget(sql, claims, new Date()).catch(() => null);
77
77
  if (over)
@@ -98,7 +98,7 @@ export function mcpAllows(claims, orgId, scope) {
98
98
  return !!claims && claims.orgId === orgId && claims.scopes.includes(scope);
99
99
  }
100
100
  /**
101
- * The refusal, with the scope named — 05's registered `mcp_scope_denied`.
101
+ * The refusal, with the scope named — the registered `mcp_scope_denied`.
102
102
  *
103
103
  * The message says which scope and how to fix it, because the reader is an
104
104
  * agent relaying to a developer who minted the token minutes ago and has no
@@ -132,7 +132,7 @@ export async function checkWriteBudget(sql, tokenId) {
132
132
  const spent = row?.n ?? 0;
133
133
  return spent >= WRITE_BUDGET.writes ? spent : null;
134
134
  }
135
- /** 07 §8.4's stop signal, as an HTTP response. */
135
+ /** The stop signal, as an HTTP response. */
136
136
  export function budgetExhausted(c) {
137
137
  return c.json({
138
138
  error: {
@@ -145,7 +145,7 @@ export function budgetExhausted(c) {
145
145
  }, 429);
146
146
  }
147
147
  /**
148
- * The audit row — 07 §8.6 mitigation 8, *"so 'what did the agent do last
148
+ * The audit row, *"so 'what did the agent do last
149
149
  * Tuesday' is one query"*.
150
150
  *
151
151
  * Takes a transaction, and every caller passes the one doing the write. That
@@ -174,7 +174,7 @@ export async function recordAgentWrite(tx, what) {
174
174
  `;
175
175
  }
176
176
  /**
177
- * Find-or-create the agent's reviewer row — 07 §8.2 *Authorship*, and 05 §9.6's
177
+ * Find-or-create the agent's reviewer row — *Authorship*, and the
178
178
  * representation: `kind = 'guest'` with `is_agent = true` and
179
179
  * `agent_mcp_token_id` set.
180
180
  *
@@ -209,7 +209,7 @@ export async function agentReviewer(tx, what) {
209
209
  `;
210
210
  return id;
211
211
  }
212
- /** `mcp:token` — 05 §9.1, 07 §8.4: 120 requests per minute per token. */
212
+ /** `mcp:token`,: 120 requests per minute per token. */
213
213
  export const READ_BUDGET = { requests: 120, windowMs: 60_000 };
214
214
  /** Bump the token's minute window; the moment it clears when over, else null. */
215
215
  export async function overReadBudget(sql, claims, now) {
@@ -1 +1 @@
1
- {"version":3,"file":"mcpAuth.js","sourceRoot":"","sources":["../../src/routes/mcpAuth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcpAuth.js","sourceRoot":"","sources":["../../src/routes/mcpAuth.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { createHash, randomBytes, timingSafeEqual } from "node:crypto";
2
2
  import { CREDENTIAL_PREFIX } from "../vendor/types/names.js";
3
3
  import { inOrg, maintenance } from "../db/scope.js";
4
- /** 07 §8.2's vocabulary. This spec owns it; the server enforces it. */
4
+ /** The vocabulary. This spec owns it; the server enforces it. */
5
5
  export const MCP_SCOPES = [
6
6
  "threads:read",
7
7
  "context:read",
@@ -13,7 +13,7 @@ export const MCP_SCOPES = [
13
13
  * What the dashboard issues by default: **read-only, plus local source
14
14
  * mapping**.
15
15
  *
16
- * 07 §8.2: *"The default token issued by the dashboard carries `threads:read`
16
+ * *"The default token issued by the dashboard carries `threads:read`
17
17
  * and `source:map` only."* `context:read` is separate on purpose — breadcrumbs
18
18
  * and capture context are the personal-data-bearing half, and an agent that
19
19
  * only needs "what is broken and where" should not be handed a console log.
@@ -78,9 +78,9 @@ export async function verifyMcpToken(sql, presented, now = new Date()) {
78
78
  /**
79
79
  * Record use — `last_used_at`, and the address as a SALTED HASH.
80
80
  *
81
- * 07 F29 reads this column and 00 §14.2b put the salt in migration 0001 so no
81
+ * 07 F29 reads this column and put the salt in migration 0001 so no
82
82
  * historical hash predates it. The raw address is never stored anywhere in this
83
- * system (08 §4.7), and a token audit trail is not the place to make the first
83
+ * system, and a token audit trail is not the place to make the first
84
84
  * exception.
85
85
  *
86
86
  * Deliberately fire-and-forget at the call site: a failure to write an audit
@@ -1 +1 @@
1
- {"version":3,"file":"mcpToken.js","sourceRoot":"","sources":["../../src/routes/mcpToken.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcpToken.js","sourceRoot":"","sources":["../../src/routes/mcpToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAqCpD,iEAAiE;AACjE,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,eAAe;IACf,YAAY;CACJ,CAAC;AAGX;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAwB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;AAElF,MAAM,IAAI,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;AAc5F,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAA2C,EAC3C,EAAU,EACV,IAAiB;IAEjB,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,GAAG,iBAAiB,CAAC,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,cAAc,CAAC;IAE7C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAE,UAAgC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;IAED,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;;cAE3B,EAAE,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,MAAM;cACrE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MAAkB,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI;cACvE,IAAI,CAAC,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC,iBAAiB,IAAI,KAAK;GACrE,CAAC,CAAC;IACH,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC/B,CAAC;AAeD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAiB,EACjB,SAAiB,EACjB,MAAY,IAAI,IAAI,EAAE;IAEtB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAa9C;;;;0BAIuB,MAAM;;GAE7B,CAAC,CAAC;IACH,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACrG,IAAI,GAAG,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IAEzD,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,EAAE;QACf,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,KAAK,EAAE,GAAG,CAAC,MAAM;QACjB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,iBAAiB,EAAE,GAAG,CAAC,mBAAmB;KAC3C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAiB,EACjB,OAAe,EACf,MAAqB;IAErB,MAAM,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;iEAC8B,MAAM;kBACrD,OAAO;GACtB,CAAC,CAAC;AACL,CAAC"}
@@ -5,7 +5,8 @@ function fail(c, status, code, message, details) {
5
5
  return c.json({ error: { code, message, ...(details ? { details } : {}), requestId: c.get("requestId") } }, status);
6
6
  }
7
7
  const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
8
- const shape = (r) => ({
8
+ /** `viewer` decides `canRevoke`: an owner any token, an admin their own. */
9
+ const shape = (r, viewer) => ({
9
10
  id: r.id,
10
11
  name: r.name,
11
12
  prefix: r.prefix,
@@ -13,6 +14,7 @@ const shape = (r) => ({
13
14
  allowRemoteWrites: r.allow_remote_writes,
14
15
  site: r.project_uid ? { uid: r.project_uid, name: r.project_name ?? "" } : null,
15
16
  createdBy: r.created_by_name,
17
+ canRevoke: !r.revoked_at && (viewer.role === "owner" || (viewer.role === "admin" && r.created_by === viewer.userId)),
16
18
  createdAt: r.created_at.toISOString(),
17
19
  lastUsedAt: r.last_used_at?.toISOString() ?? null,
18
20
  expiresAt: r.expires_at?.toISOString() ?? null,
@@ -27,18 +29,25 @@ export function mcpTokenRoutes(deps) {
27
29
  return fail(c, 401, "unauthorized", "Sign in to the dashboard first.");
28
30
  return owner;
29
31
  };
30
- const mustBeOwner = (c) => {
32
+ /**
33
+ * Owners and admins mint tokens — each teammate wants one for their own
34
+ * coding agent. Revoking: an admin their own, an owner anyone's, so a
35
+ * token can always be cut off whoever made it (and removing a member
36
+ * revokes theirs, members.ts).
37
+ */
38
+ const mayMint = (c) => {
31
39
  const owner = signedIn(c);
32
40
  if (owner instanceof Response)
33
41
  return owner;
34
- if (owner.role !== "owner")
35
- return fail(c, 403, "forbidden", "Only an owner can mint or revoke an agent token.");
42
+ if (owner.role !== "owner" && owner.role !== "admin") {
43
+ return fail(c, 403, "forbidden", "Only an owner or an admin can mint an agent token.");
44
+ }
36
45
  return owner;
37
46
  };
38
47
  const load = (orgId, id) => sql.begin(async (tx) => {
39
48
  await tx `SELECT set_config('app.org_id', ${orgId}, true)`;
40
49
  return tx `
41
- SELECT t.id, t.name, t.prefix, t.scopes, t.allow_remote_writes, p.uid AS project_uid, p.name AS project_name, u.name AS created_by_name,
50
+ SELECT t.id, t.name, t.prefix, t.scopes, t.allow_remote_writes, p.uid AS project_uid, p.name AS project_name, u.name AS created_by_name, t.created_by,
42
51
  t.created_at, t.last_used_at, t.expires_at, t.revoked_at
43
52
  FROM mcp_tokens t
44
53
  LEFT JOIN projects p ON p.id = t.project_id
@@ -52,15 +61,15 @@ export function mcpTokenRoutes(deps) {
52
61
  if (owner instanceof Response)
53
62
  return owner;
54
63
  const rows = await load(owner.orgId);
55
- // D107/D108: whether POST /mcp is served, who decided, and where — the
64
+ // Whether POST /mcp is served, who decided, and where — the
56
65
  // card draws the switch from it and the dialog shows the remote config
57
66
  // only when it is on.
58
67
  const state = await deps.mcpHttp();
59
68
  const http = { enabled: state.enabled, source: state.source, url: `${(await deps.address()).replace(/\/+$/, "")}/mcp` };
60
- return c.json({ data: rows.map(shape), scopes: MCP_SCOPES, defaults: DEFAULT_SCOPES, http });
69
+ return c.json({ data: rows.map((r) => shape(r, owner)), scopes: MCP_SCOPES, defaults: DEFAULT_SCOPES, http });
61
70
  });
62
71
  app.post("/api/v1/mcp-tokens", async (c) => {
63
- const owner = mustBeOwner(c);
72
+ const owner = mayMint(c);
64
73
  if (owner instanceof Response)
65
74
  return owner;
66
75
  const body = (await c.req.json().catch(() => null));
@@ -103,23 +112,27 @@ export function mcpTokenRoutes(deps) {
103
112
  return mintMcpToken(tx, id, { orgId: owner.orgId, projectId, name, scopes, createdBy: owner.userId, expiresAt, allowRemoteWrites });
104
113
  });
105
114
  const [row] = await load(owner.orgId, id);
106
- return c.json({ token: shape(row), secret: minted.token }, 201);
115
+ return c.json({ token: shape(row, owner), secret: minted.token }, 201);
107
116
  });
108
117
  app.delete("/api/v1/mcp-tokens/:id", async (c) => {
109
- const owner = mustBeOwner(c);
118
+ const owner = mayMint(c);
110
119
  if (owner instanceof Response)
111
120
  return owner;
112
121
  const id = c.req.param("id") ?? "";
113
122
  if (!UUID.test(id))
114
123
  return fail(c, 404, "not_found", "No token with that id.");
124
+ const asOwner = owner.role === "owner";
115
125
  const done = await sql.begin(async (tx) => {
116
126
  await tx `SELECT set_config('app.org_id', ${owner.orgId}, true)`;
117
- return tx `UPDATE mcp_tokens SET revoked_at = now() WHERE id = ${id}::uuid AND org_id = ${owner.orgId}::uuid AND revoked_at IS NULL`;
127
+ return tx `UPDATE mcp_tokens SET revoked_at = now()
128
+ WHERE id = ${id}::uuid AND org_id = ${owner.orgId}::uuid AND revoked_at IS NULL
129
+ ${asOwner ? tx `` : tx `AND created_by = ${owner.userId}::uuid`}`;
118
130
  });
119
- if (done.count === 0)
120
- return fail(c, 404, "not_found", "No live token with that id — it may already be revoked.");
131
+ if (done.count === 0) {
132
+ return fail(c, 404, "not_found", asOwner ? "No live token with that id — it may already be revoked." : "No live token of yours with that id.");
133
+ }
121
134
  const [row] = await load(owner.orgId, id);
122
- return c.json({ token: row ? shape(row) : null });
135
+ return c.json({ token: row ? shape(row, owner) : null });
123
136
  });
124
137
  return app;
125
138
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcpTokens.js","sourceRoot":"","sources":["../../src/routes/mcpTokens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcpTokens.js","sourceRoot":"","sources":["../../src/routes/mcpTokens.ts"],"names":[],"mappings":"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"}
@@ -49,7 +49,7 @@ export function memberRoutes(deps) {
49
49
  return c.json({ data: await list(owner.orgId, owner.userId) });
50
50
  });
51
51
  /**
52
- * Gone, said rather than 404'd: a script written against D85's
52
+ * Gone, said rather than 404'd: a script written against the
53
53
  * create-with-password reads where members come from now, instead of
54
54
  * "no route", which reads as a typo.
55
55
  */
@@ -109,19 +109,23 @@ export function memberRoutes(deps) {
109
109
  if ((owners?.n ?? 0) <= 1)
110
110
  return "last_owner";
111
111
  }
112
- // 05 §6.4b: they leave the assignee pool and keep what was already
112
+ // They leave the assignee pool and keep what was already
113
113
  // assigned to them — blocked, which is the one mechanism the spec has
114
114
  // for that, and never un-assigned, which would rewrite history on
115
115
  // threads somebody is mid-conversation on.
116
116
  //
117
- // `identity_valid_after` too (D122): a member can now hold a WIDGET
117
+ // `identity_valid_after` too: a member can now hold a WIDGET
118
118
  // session on that row, signed in from a client's site, and this is the
119
119
  // column every widget request checks within ten seconds (reviewerCache)
120
120
  // — the refresh's membership check alone would leave them commenting
121
121
  // until their token next slid, up to fifteen minutes.
122
122
  await tx `UPDATE reviewers SET blocked_at = now(), identity_valid_after = now() WHERE org_id = ${owner.orgId} AND user_id = ${target.user_id} AND blocked_at IS NULL`;
123
+ // Their MCP tokens go with them. Admins can mint tokens now, and a
124
+ // token is checked against its row, not its maker — so without this an
125
+ // admin removed from the studio kept an agent reading its comments.
126
+ await tx `UPDATE mcp_tokens SET revoked_at = now() WHERE org_id = ${owner.orgId} AND created_by = ${target.user_id} AND revoked_at IS NULL`;
123
127
  // THIS STUDIO'S sessions, and the person only if this was their last
124
- // studio (D121). Before invites could add an existing account to a
128
+ // studio. Before invites could add an existing account to a
125
129
  // second studio, every user here had one membership and "remove from
126
130
  // the studio" and "delete the account" were the same act; now a person
127
131
  // in two studios removed from one keeps the other, and a soft-delete
@@ -133,7 +137,7 @@ export function memberRoutes(deps) {
133
137
  `);
134
138
  if (other) {
135
139
  // Still somebody's member: re-home them if this was the home org
136
- // (§3.0), because /auth/login opens a session in the HOME org and a
140
+ // because /auth/login opens a session in the HOME org and a
137
141
  // session in a studio with no membership row is refused on arrival —
138
142
  // they would be unable to sign in at all. Done before the membership
139
143
  // goes, while users_org can still see the row.
@@ -1 +1 @@
1
- {"version":3,"file":"members.js","sourceRoot":"","sources":["../../src/routes/members.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"members.js","sourceRoot":"","sources":["../../src/routes/members.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { studiosOf } from "../orgs.js";
6
6
  import { inOrg, maintenance } from "../db/scope.js";
7
7
  import { effectiveWriteMode } from "./sessions.js";
8
8
  import { pendingMigrations } from "../db/migrate.js";
9
- /** 05 §4.7: 30-day absolute, 7-day idle, rolling refresh on use. */
9
+ /** 30-day absolute, 7-day idle, rolling refresh on use. */
10
10
  const ABSOLUTE_MS = 30 * 24 * 60 * 60 * 1000;
11
11
  const IDLE_MS = 7 * 24 * 60 * 60 * 1000;
12
12
  const sha256 = (s) => createHash("sha256").update(s, "utf8").digest();
@@ -16,11 +16,11 @@ function fail(c, status, code, message) {
16
16
  /**
17
17
  * scrypt, not argon2id, and the deviation is deliberate.
18
18
  *
19
- * 05 §4.7's table says argon2id via `node-argon2`. That is a NATIVE module: it
19
+ * The table says argon2id via `node-argon2`. That is a NATIVE module: it
20
20
  * needs a compiler or a prebuilt binary for the exact platform and Node ABI,
21
- * and A9's promise is one npm package that `npx` runs with no build step. A
21
+ * and the promise is one npm package that `npx` runs with no build step. A
22
22
  * dependency that fails to install on a machine with no toolchain would make
23
- * the first-run login unreachable, which is the same failure mode §4.7 rejects
23
+ * the first-run login unreachable, which is the same failure mode rejects
24
24
  * magic-link-only auth for.
25
25
  *
26
26
  * scrypt is memory-hard, in the standard library, and OWASP-parameterised here
@@ -36,7 +36,7 @@ export function hashPassword(password) {
36
36
  /**
37
37
  * Verify, in constant time, and never leak WHICH part was wrong.
38
38
  *
39
- * Returns false for a user with no password (OAuth-only, §4.7) rather than
39
+ * Returns false for a user with no password (OAuth-only) rather than
40
40
  * throwing — but still spends the same work, because an early return on
41
41
  * "this account has no password" is an account-enumeration oracle measurable
42
42
  * over a few hundred requests.
@@ -125,7 +125,7 @@ export function ownerAuth(deps) {
125
125
  sessionId: row.id,
126
126
  role: row.role,
127
127
  });
128
- // Rolling refresh (§4.7), but not on every request: `last_seen_at` only
128
+ // Rolling refresh, but not on every request: `last_seen_at` only
129
129
  // needs to be accurate to within the idle window, and a write per request
130
130
  // turns a read-only dashboard page into a write on the hot path.
131
131
  if (at.getTime() - row.last_seen_at.getTime() > 60 * 60 * 1000) {
@@ -142,7 +142,7 @@ export function ownerAuth(deps) {
142
142
  * branch on which credential arrived rather than gating the whole path).
143
143
  *
144
144
  * `Origin` is NOT re-checked here — that half of `requireOwner()`'s story is
145
- * about login CSRF specifically (§4.7's comment on `/auth/login`) and every
145
+ * about login CSRF specifically (the comment on `/auth/login`) and every
146
146
  * other owner-cookie route relies on `SameSite=Lax` plus this pair.
147
147
  */
148
148
  export function csrfOk(c) {
@@ -151,7 +151,7 @@ export function csrfOk(c) {
151
151
  return (!!sent && !!cookie && sent.length === cookie.length && timingSafeEqual(Buffer.from(sent), Buffer.from(cookie)));
152
152
  }
153
153
  /**
154
- * §4.7's CSRF pair, on mutations only.
154
+ * The CSRF pair, on mutations only.
155
155
  *
156
156
  * TWO checks, and `SameSite=Lax` is explicitly not treated as sufficient by the
157
157
  * spec: `Origin` must equal the server's own, AND `x-snagset-csrf` must equal
@@ -318,7 +318,7 @@ export function ownerRoutes(deps) {
318
318
  GROUP BY p.id, p.uid, p.name, p.key_prefix, p.write_mode, p.write_mode_downgrade_at, p.status, p.settings, s.id
319
319
  ORDER BY p.created_at
320
320
  `);
321
- // The plan's numbers and how far along them the studio is (plan/09) —
321
+ // The plan's numbers and how far along them the studio is
322
322
  // shown where a limit exists, silent where there is none.
323
323
  // Every studio this person belongs to, for the switcher; the current one is marked.
324
324
  const studios = await studiosOf(sql, owner.userId);
@@ -336,8 +336,8 @@ export function ownerRoutes(deps) {
336
336
  integrations: l.integrations,
337
337
  source: l.source,
338
338
  },
339
- // NO id. Foundations §2.10 mints no `usr_` prefix, and the dashboard has
340
- // no use for one: it renders a name and an email. AC-1-9 is about
339
+ // NO id. Mints no `usr_` prefix, and the dashboard has
340
+ // no use for one: it renders a name and an email. Is about
341
341
  // project uuids specifically, but the habit is the point — an internal
342
342
  // id put on the wire because it was to hand is how the first one always
343
343
  // gets out.
@@ -353,11 +353,11 @@ export function ownerRoutes(deps) {
353
353
  uid: p.uid,
354
354
  name: p.name,
355
355
  keyPrefix: p.key_prefix,
356
- // What the widget enforces, not what the row says (D119). The row only
356
+ // What the widget enforces, not what the row says. The row only
357
357
  // catches up at the next sweep, which is now hourly or daily; a site
358
358
  // past its 24-hour grace window must not read "open" until then.
359
359
  writeMode: effectiveWriteMode(p, new Date()),
360
- // D91 (the switch) and D92 (the domain), for the card and Settings.
360
+ // (the switch) and (the domain), for the card and Settings.
361
361
  status: p.status,
362
362
  domain: p.domain,
363
363
  threads: p.threads,