crewly 1.20.181 → 1.20.183

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 (220) hide show
  1. package/config/roles/orchestrator/prompt.md +4 -0
  2. package/config/skills/agent/core/report-status/execute.sh +4 -2
  3. package/dist/backend/backend/src/constants.d.ts +101 -1
  4. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  5. package/dist/backend/backend/src/constants.js +110 -1
  6. package/dist/backend/backend/src/constants.js.map +1 -1
  7. package/dist/backend/backend/src/controllers/chat/agent-reply.controller.d.ts.map +1 -1
  8. package/dist/backend/backend/src/controllers/chat/agent-reply.controller.js +22 -1
  9. package/dist/backend/backend/src/controllers/chat/agent-reply.controller.js.map +1 -1
  10. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  11. package/dist/backend/backend/src/controllers/chat/chat.controller.js +25 -24
  12. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  13. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  14. package/dist/backend/backend/src/controllers/slack/slack.controller.js +15 -0
  15. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  16. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts +11 -1
  17. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts.map +1 -1
  18. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js +44 -9
  19. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js.map +1 -1
  20. package/dist/backend/backend/src/controllers/system/runtime-terms.controller.d.ts +31 -0
  21. package/dist/backend/backend/src/controllers/system/runtime-terms.controller.d.ts.map +1 -0
  22. package/dist/backend/backend/src/controllers/system/runtime-terms.controller.js +99 -0
  23. package/dist/backend/backend/src/controllers/system/runtime-terms.controller.js.map +1 -0
  24. package/dist/backend/backend/src/index.d.ts.map +1 -1
  25. package/dist/backend/backend/src/index.js +4 -0
  26. package/dist/backend/backend/src/index.js.map +1 -1
  27. package/dist/backend/backend/src/routes/modules/system.routes.d.ts.map +1 -1
  28. package/dist/backend/backend/src/routes/modules/system.routes.js +3 -0
  29. package/dist/backend/backend/src/routes/modules/system.routes.js.map +1 -1
  30. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -1
  31. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js +5 -0
  32. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js.map +1 -1
  33. package/dist/backend/backend/src/services/decisions/decision-card.d.ts +14 -4
  34. package/dist/backend/backend/src/services/decisions/decision-card.d.ts.map +1 -1
  35. package/dist/backend/backend/src/services/decisions/decision-card.js +31 -10
  36. package/dist/backend/backend/src/services/decisions/decision-card.js.map +1 -1
  37. package/dist/backend/backend/src/services/decisions/decision.service.d.ts +40 -2
  38. package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
  39. package/dist/backend/backend/src/services/decisions/decision.service.js +100 -8
  40. package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
  41. package/dist/backend/backend/src/services/decisions/decision.wiring.d.ts.map +1 -1
  42. package/dist/backend/backend/src/services/decisions/decision.wiring.js +7 -0
  43. package/dist/backend/backend/src/services/decisions/decision.wiring.js.map +1 -1
  44. package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts +2 -1
  45. package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts.map +1 -1
  46. package/dist/backend/backend/src/services/messaging/message-queue.service.js +6 -3
  47. package/dist/backend/backend/src/services/messaging/message-queue.service.js.map +1 -1
  48. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  49. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +6 -1
  50. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  51. package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.d.ts +3 -1
  52. package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.d.ts.map +1 -1
  53. package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.js +7 -4
  54. package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.js.map +1 -1
  55. package/dist/backend/backend/src/services/orc/orc-status-router.service.d.ts +110 -0
  56. package/dist/backend/backend/src/services/orc/orc-status-router.service.d.ts.map +1 -0
  57. package/dist/backend/backend/src/services/orc/orc-status-router.service.js +229 -0
  58. package/dist/backend/backend/src/services/orc/orc-status-router.service.js.map +1 -0
  59. package/dist/backend/backend/src/services/orc/orc-status-routing.d.ts +108 -0
  60. package/dist/backend/backend/src/services/orc/orc-status-routing.d.ts.map +1 -0
  61. package/dist/backend/backend/src/services/orc/orc-status-routing.js +145 -0
  62. package/dist/backend/backend/src/services/orc/orc-status-routing.js.map +1 -0
  63. package/dist/backend/backend/src/services/orc/orc-wake-counter.d.ts +86 -0
  64. package/dist/backend/backend/src/services/orc/orc-wake-counter.d.ts.map +1 -0
  65. package/dist/backend/backend/src/services/orc/orc-wake-counter.js +130 -0
  66. package/dist/backend/backend/src/services/orc/orc-wake-counter.js.map +1 -0
  67. package/dist/backend/backend/src/services/orc/work-item-destination.d.ts +33 -0
  68. package/dist/backend/backend/src/services/orc/work-item-destination.d.ts.map +1 -1
  69. package/dist/backend/backend/src/services/orc/work-item-destination.js +49 -0
  70. package/dist/backend/backend/src/services/orc/work-item-destination.js.map +1 -1
  71. package/dist/backend/backend/src/services/orc/work-item-destination.wiring.d.ts +2 -1
  72. package/dist/backend/backend/src/services/orc/work-item-destination.wiring.d.ts.map +1 -1
  73. package/dist/backend/backend/src/services/orc/work-item-destination.wiring.js +10 -4
  74. package/dist/backend/backend/src/services/orc/work-item-destination.wiring.js.map +1 -1
  75. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts +8 -0
  76. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts.map +1 -1
  77. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js +5 -0
  78. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js.map +1 -1
  79. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts +2 -0
  80. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -1
  81. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +4 -0
  82. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -1
  83. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts +2 -0
  84. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts.map +1 -1
  85. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.js.map +1 -1
  86. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts.map +1 -1
  87. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js +3 -0
  88. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js.map +1 -1
  89. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts +15 -1
  90. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts.map +1 -1
  91. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.js +13 -2
  92. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.js.map +1 -1
  93. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts +92 -0
  94. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts.map +1 -0
  95. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.js +199 -0
  96. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.js.map +1 -0
  97. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts +79 -0
  98. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts.map +1 -0
  99. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.js +145 -0
  100. package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.js.map +1 -0
  101. package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.d.ts +75 -0
  102. package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.d.ts.map +1 -0
  103. package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.js +218 -0
  104. package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.js.map +1 -0
  105. package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts +245 -0
  106. package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts.map +1 -0
  107. package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.js +428 -0
  108. package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.js.map +1 -0
  109. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.d.ts +67 -0
  110. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.d.ts.map +1 -0
  111. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.js +78 -0
  112. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.js.map +1 -0
  113. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.d.ts +39 -0
  114. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.d.ts.map +1 -0
  115. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.js +161 -0
  116. package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.js.map +1 -0
  117. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +16 -0
  118. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  119. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +31 -8
  120. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  121. package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.d.ts.map +1 -1
  122. package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.js +2 -0
  123. package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.js.map +1 -1
  124. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +23 -0
  125. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  126. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +61 -0
  127. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  128. package/dist/backend/backend/src/types/decision.types.d.ts +29 -5
  129. package/dist/backend/backend/src/types/decision.types.d.ts.map +1 -1
  130. package/dist/backend/build-info.json +2 -2
  131. package/dist/cli/backend/src/constants.d.ts +101 -1
  132. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  133. package/dist/cli/backend/src/constants.js +110 -1
  134. package/dist/cli/backend/src/constants.js.map +1 -1
  135. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -1
  136. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js +5 -0
  137. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js.map +1 -1
  138. package/dist/cli/backend/src/services/decisions/decision-card.d.ts +165 -0
  139. package/dist/cli/backend/src/services/decisions/decision-card.d.ts.map +1 -0
  140. package/dist/cli/backend/src/services/decisions/decision-card.js +358 -0
  141. package/dist/cli/backend/src/services/decisions/decision-card.js.map +1 -0
  142. package/dist/cli/backend/src/services/decisions/decision-contract.d.ts +83 -0
  143. package/dist/cli/backend/src/services/decisions/decision-contract.d.ts.map +1 -0
  144. package/dist/cli/backend/src/services/decisions/decision-contract.js +226 -0
  145. package/dist/cli/backend/src/services/decisions/decision-contract.js.map +1 -0
  146. package/dist/cli/backend/src/services/decisions/decision-store.d.ts +80 -0
  147. package/dist/cli/backend/src/services/decisions/decision-store.d.ts.map +1 -0
  148. package/dist/cli/backend/src/services/decisions/decision-store.js +151 -0
  149. package/dist/cli/backend/src/services/decisions/decision-store.js.map +1 -0
  150. package/dist/cli/backend/src/services/decisions/decision.service.d.ts +376 -0
  151. package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -0
  152. package/dist/cli/backend/src/services/decisions/decision.service.js +821 -0
  153. package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -0
  154. package/dist/cli/backend/src/services/decisions/ticket-thread-store.d.ts +97 -0
  155. package/dist/cli/backend/src/services/decisions/ticket-thread-store.d.ts.map +1 -0
  156. package/dist/cli/backend/src/services/decisions/ticket-thread-store.js +137 -0
  157. package/dist/cli/backend/src/services/decisions/ticket-thread-store.js.map +1 -0
  158. package/dist/cli/backend/src/services/messaging/message-queue.service.d.ts +2 -1
  159. package/dist/cli/backend/src/services/messaging/message-queue.service.d.ts.map +1 -1
  160. package/dist/cli/backend/src/services/messaging/message-queue.service.js +6 -3
  161. package/dist/cli/backend/src/services/messaging/message-queue.service.js.map +1 -1
  162. package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  163. package/dist/cli/backend/src/services/messaging/queue-processor.service.js +6 -1
  164. package/dist/cli/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  165. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts +3 -1
  166. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts.map +1 -1
  167. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js +7 -4
  168. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js.map +1 -1
  169. package/dist/cli/backend/src/services/orc/orc-status-routing.d.ts +108 -0
  170. package/dist/cli/backend/src/services/orc/orc-status-routing.d.ts.map +1 -0
  171. package/dist/cli/backend/src/services/orc/orc-status-routing.js +145 -0
  172. package/dist/cli/backend/src/services/orc/orc-status-routing.js.map +1 -0
  173. package/dist/cli/backend/src/services/orc/orc-wake-counter.d.ts +86 -0
  174. package/dist/cli/backend/src/services/orc/orc-wake-counter.d.ts.map +1 -0
  175. package/dist/cli/backend/src/services/orc/orc-wake-counter.js +130 -0
  176. package/dist/cli/backend/src/services/orc/orc-wake-counter.js.map +1 -0
  177. package/dist/cli/backend/src/services/orc/work-item-destination.d.ts +198 -0
  178. package/dist/cli/backend/src/services/orc/work-item-destination.d.ts.map +1 -0
  179. package/dist/cli/backend/src/services/orc/work-item-destination.js +288 -0
  180. package/dist/cli/backend/src/services/orc/work-item-destination.js.map +1 -0
  181. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts +136 -0
  182. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts.map +1 -0
  183. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.js +152 -0
  184. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.js.map +1 -0
  185. package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts +217 -0
  186. package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts.map +1 -0
  187. package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.js +430 -0
  188. package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.js.map +1 -0
  189. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts +92 -0
  190. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts.map +1 -0
  191. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.js +199 -0
  192. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.js.map +1 -0
  193. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts +79 -0
  194. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts.map +1 -0
  195. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.js +145 -0
  196. package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.js.map +1 -0
  197. package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts +245 -0
  198. package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts.map +1 -0
  199. package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.js +428 -0
  200. package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.js.map +1 -0
  201. package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.d.ts +67 -0
  202. package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.d.ts.map +1 -0
  203. package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.js +78 -0
  204. package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.js.map +1 -0
  205. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +16 -0
  206. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  207. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +31 -8
  208. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  209. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +23 -0
  210. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  211. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +61 -0
  212. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  213. package/dist/cli/backend/src/types/decision.types.d.ts +192 -0
  214. package/dist/cli/backend/src/types/decision.types.d.ts.map +1 -0
  215. package/dist/cli/backend/src/types/decision.types.js +13 -0
  216. package/dist/cli/backend/src/types/decision.types.js.map +1 -0
  217. package/dist/cli/cli/src/commands/harness-setup.js +2 -2
  218. package/frontend/dist/assets/{index-4271e95e.js → index-9c91de50.js} +138 -138
  219. package/frontend/dist/index.html +1 -1
  220. package/package.json +1 -1
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Runtime Terms consent endpoints (Settings → Runtimes).
3
+ *
4
+ * - `GET /api/system/runtime-terms` — every runtime with a Terms flow and its state
5
+ * - `POST /api/system/runtime-terms/:runtime/request` — "Accept terms…": post the
6
+ * Slack card (or return the open one)
7
+ * - `POST /api/system/runtime-terms/:runtime/probe` — launch it in a dedicated
8
+ * session, read the first screen (nothing is pressed); a Terms screen posts the card
9
+ * - `POST /api/system/runtime-terms/:runtime/answer { choice }` — answer inline
10
+ * (`agree_no_data` | `agree_share_data` | `decline`); goes through the card
11
+ * when one is open, so it updates too
12
+ *
13
+ * Owner only: a request from an agent session gets 403 — agents never accept
14
+ * Terms. specs/2026-10-01-runtime-terms-consent.md
15
+ *
16
+ * @module controllers/system/runtime-terms.controller
17
+ */
18
+ import { ensureOwnerCaller } from './system-control.controller.js';
19
+ import { getRuntimeTermsConsentService, TERMS_CHOICE_LABELS, } from '../../services/runtime-terms/runtime-terms-consent.service.js';
20
+ const NOT_READY = 'Runtime Terms consent is not ready yet — Crewly is still starting.';
21
+ /**
22
+ * Register the routes.
23
+ *
24
+ * @param router - The /api router
25
+ * @param deps - Dependencies (default: the backend's)
26
+ */
27
+ export function registerRuntimeTermsRoutes(router, deps = { terms: getRuntimeTermsConsentService }) {
28
+ router.get('/system/runtime-terms', (_req, res) => {
29
+ const terms = deps.terms();
30
+ if (!terms) {
31
+ res.status(503).json({ success: false, error: NOT_READY });
32
+ return;
33
+ }
34
+ res.json({ success: true, data: terms.list() });
35
+ });
36
+ router.post('/system/runtime-terms/:runtime/request', async (req, res) => {
37
+ if (!ensureOwnerCaller(req, res, 'runtime-terms request'))
38
+ return;
39
+ const terms = deps.terms();
40
+ if (!terms) {
41
+ res.status(503).json({ success: false, error: NOT_READY });
42
+ return;
43
+ }
44
+ if (!terms.supports(req.params.runtime)) {
45
+ res.status(404).json({ success: false, error: `Crewly has no Terms flow for ${req.params.runtime}` });
46
+ return;
47
+ }
48
+ try {
49
+ res.json({ success: true, data: await terms.requestConsent(req.params.runtime) });
50
+ }
51
+ catch (err) {
52
+ res.status(500).json({ success: false, error: err instanceof Error ? err.message : String(err) });
53
+ }
54
+ });
55
+ router.post('/system/runtime-terms/:runtime/probe', async (req, res) => {
56
+ if (!ensureOwnerCaller(req, res, 'runtime-terms probe'))
57
+ return;
58
+ const terms = deps.terms();
59
+ if (!terms) {
60
+ res.status(503).json({ success: false, error: NOT_READY });
61
+ return;
62
+ }
63
+ if (!terms.supports(req.params.runtime)) {
64
+ res.status(404).json({ success: false, error: `Crewly has no Terms flow for ${req.params.runtime}` });
65
+ return;
66
+ }
67
+ try {
68
+ res.json({ success: true, data: await terms.probe(req.params.runtime) });
69
+ }
70
+ catch (err) {
71
+ res.status(409).json({ success: false, error: err instanceof Error ? err.message : String(err) });
72
+ }
73
+ });
74
+ router.post('/system/runtime-terms/:runtime/answer', async (req, res) => {
75
+ if (!ensureOwnerCaller(req, res, 'runtime-terms answer'))
76
+ return;
77
+ const terms = deps.terms();
78
+ if (!terms) {
79
+ res.status(503).json({ success: false, error: NOT_READY });
80
+ return;
81
+ }
82
+ const choice = req.body?.choice;
83
+ if (!Object.prototype.hasOwnProperty.call(TERMS_CHOICE_LABELS, choice)) {
84
+ res.status(400).json({ success: false, error: `choice must be one of ${Object.keys(TERMS_CHOICE_LABELS).join(' | ')}` });
85
+ return;
86
+ }
87
+ if (!terms.supports(req.params.runtime)) {
88
+ res.status(404).json({ success: false, error: `Crewly has no Terms flow for ${req.params.runtime}` });
89
+ return;
90
+ }
91
+ try {
92
+ res.json({ success: true, data: await terms.answer(req.params.runtime, choice) });
93
+ }
94
+ catch (err) {
95
+ res.status(409).json({ success: false, error: err instanceof Error ? err.message : String(err) });
96
+ }
97
+ });
98
+ }
99
+ //# sourceMappingURL=runtime-terms.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-terms.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/system/runtime-terms.controller.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../backend/src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../backend/src/index.ts"],"names":[],"mappings":"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"}
@@ -4661,6 +4661,10 @@ export class CrewlyServer {
4661
4661
  attachDecisionSlackListeners(decisions);
4662
4662
  decisions.start();
4663
4663
  this.logger.info('Decision cards started');
4664
+ // Runtime Terms consent (specs/2026-10-01-runtime-terms-consent.md): the
4665
+ // owner agrees to a runtime's first-run Terms from a Slack card.
4666
+ const { startRuntimeTerms } = await import('./services/runtime-terms/runtime-terms.wiring.js');
4667
+ startRuntimeTerms({ crewlyHome: this.config.crewlyHome, decisions, machineName: () => os.hostname().replace(/\.local$/, '') });
4664
4668
  }
4665
4669
  catch (error) {
4666
4670
  this.logger.warn('Decision cards not started', { error: error instanceof Error ? error.message : String(error) });