@jterrats/open-orchestra 1.0.16 → 1.0.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 (313) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/CLAUDE.md +25 -2
  3. package/README.md +32 -9
  4. package/dist/active-runtime-store.d.ts +18 -0
  5. package/dist/active-runtime-store.js +75 -0
  6. package/dist/active-runtime-store.js.map +1 -0
  7. package/dist/benchmark.js +65 -27
  8. package/dist/benchmark.js.map +1 -1
  9. package/dist/chat-api-errors.d.ts +7 -0
  10. package/dist/chat-api-errors.js +15 -0
  11. package/dist/chat-api-errors.js.map +1 -0
  12. package/dist/chat-api-message-persistence.d.ts +12 -0
  13. package/dist/chat-api-message-persistence.js +125 -0
  14. package/dist/chat-api-message-persistence.js.map +1 -0
  15. package/dist/chat-api-records.d.ts +35 -0
  16. package/dist/chat-api-records.js +94 -0
  17. package/dist/chat-api-records.js.map +1 -0
  18. package/dist/chat-api-service.d.ts +32 -0
  19. package/dist/chat-api-service.js +120 -0
  20. package/dist/chat-api-service.js.map +1 -0
  21. package/dist/chat-api-storage.d.ts +1 -0
  22. package/dist/chat-api-storage.js +14 -0
  23. package/dist/chat-api-storage.js.map +1 -0
  24. package/dist/chat-api-types.d.ts +81 -0
  25. package/dist/chat-api-types.js +2 -0
  26. package/dist/chat-api-types.js.map +1 -0
  27. package/dist/chat-compliance-service.d.ts +60 -0
  28. package/dist/chat-compliance-service.js +241 -0
  29. package/dist/chat-compliance-service.js.map +1 -0
  30. package/dist/chat-event-stream.d.ts +13 -0
  31. package/dist/chat-event-stream.js +124 -0
  32. package/dist/chat-event-stream.js.map +1 -0
  33. package/dist/chat-pagination.d.ts +6 -0
  34. package/dist/chat-pagination.js +64 -0
  35. package/dist/chat-pagination.js.map +1 -0
  36. package/dist/chat-storage-actor-validation.d.ts +4 -0
  37. package/dist/chat-storage-actor-validation.js +65 -0
  38. package/dist/chat-storage-actor-validation.js.map +1 -0
  39. package/dist/chat-storage-content-policy.d.ts +6 -0
  40. package/dist/chat-storage-content-policy.js +84 -0
  41. package/dist/chat-storage-content-policy.js.map +1 -0
  42. package/dist/chat-storage-errors.d.ts +20 -0
  43. package/dist/chat-storage-errors.js +17 -0
  44. package/dist/chat-storage-errors.js.map +1 -0
  45. package/dist/chat-storage-local-files.d.ts +17 -0
  46. package/dist/chat-storage-local-files.js +78 -0
  47. package/dist/chat-storage-local-files.js.map +1 -0
  48. package/dist/chat-storage-local-paths.d.ts +6 -0
  49. package/dist/chat-storage-local-paths.js +124 -0
  50. package/dist/chat-storage-local-paths.js.map +1 -0
  51. package/dist/chat-storage-local-projection.d.ts +10 -0
  52. package/dist/chat-storage-local-projection.js +55 -0
  53. package/dist/chat-storage-local-projection.js.map +1 -0
  54. package/dist/chat-storage-local-records.d.ts +13 -0
  55. package/dist/chat-storage-local-records.js +56 -0
  56. package/dist/chat-storage-local-records.js.map +1 -0
  57. package/dist/chat-storage-local.d.ts +6 -0
  58. package/dist/chat-storage-local.js +114 -0
  59. package/dist/chat-storage-local.js.map +1 -0
  60. package/dist/chat-storage-validation.d.ts +10 -0
  61. package/dist/chat-storage-validation.js +100 -0
  62. package/dist/chat-storage-validation.js.map +1 -0
  63. package/dist/chat-storage.d.ts +16 -0
  64. package/dist/chat-storage.js +4 -0
  65. package/dist/chat-storage.js.map +1 -0
  66. package/dist/chat-workflow-timeline.d.ts +17 -0
  67. package/dist/chat-workflow-timeline.js +210 -0
  68. package/dist/chat-workflow-timeline.js.map +1 -0
  69. package/dist/{workspace-claude-settings.d.ts → claude-settings.d.ts} +22 -3
  70. package/dist/{workspace-claude-settings.js → claude-settings.js} +28 -9
  71. package/dist/claude-settings.js.map +1 -0
  72. package/dist/command-init.d.ts +2 -0
  73. package/dist/command-init.js +150 -0
  74. package/dist/command-init.js.map +1 -0
  75. package/dist/command-manifest.js +1 -1
  76. package/dist/command-manifest.js.map +1 -1
  77. package/dist/commands.d.ts +1 -1
  78. package/dist/commands.js +1 -140
  79. package/dist/commands.js.map +1 -1
  80. package/dist/constants.d.ts +1 -0
  81. package/dist/constants.js +1 -0
  82. package/dist/constants.js.map +1 -1
  83. package/dist/context-runtime-preprocessor.d.ts +41 -0
  84. package/dist/context-runtime-preprocessor.js +199 -0
  85. package/dist/context-runtime-preprocessor.js.map +1 -0
  86. package/dist/cursor-settings.d.ts +25 -0
  87. package/dist/cursor-settings.js +72 -0
  88. package/dist/cursor-settings.js.map +1 -0
  89. package/dist/health-commands.js +43 -3
  90. package/dist/health-commands.js.map +1 -1
  91. package/dist/metrics-commands.js +3 -0
  92. package/dist/metrics-commands.js.map +1 -1
  93. package/dist/model-aliases.d.ts +5 -0
  94. package/dist/model-aliases.js +37 -0
  95. package/dist/model-aliases.js.map +1 -0
  96. package/dist/ollama-provider.js +25 -0
  97. package/dist/ollama-provider.js.map +1 -1
  98. package/dist/phase-playbooks.js +11 -0
  99. package/dist/phase-playbooks.js.map +1 -1
  100. package/dist/provider-agent-wrapper.js +14 -0
  101. package/dist/provider-agent-wrapper.js.map +1 -1
  102. package/dist/runtime-adapters.js +56 -0
  103. package/dist/runtime-adapters.js.map +1 -1
  104. package/dist/runtime-bootstrap.js +34 -11
  105. package/dist/runtime-bootstrap.js.map +1 -1
  106. package/dist/runtime-capacity-policy.d.ts +38 -0
  107. package/dist/runtime-capacity-policy.js +117 -0
  108. package/dist/runtime-capacity-policy.js.map +1 -0
  109. package/dist/runtime-capacity-scheduler-helpers.d.ts +40 -0
  110. package/dist/runtime-capacity-scheduler-helpers.js +111 -0
  111. package/dist/runtime-capacity-scheduler-helpers.js.map +1 -0
  112. package/dist/runtime-capacity-scheduler-state.d.ts +44 -0
  113. package/dist/runtime-capacity-scheduler-state.js +128 -0
  114. package/dist/runtime-capacity-scheduler-state.js.map +1 -0
  115. package/dist/runtime-capacity-scheduler.d.ts +34 -0
  116. package/dist/runtime-capacity-scheduler.js +193 -0
  117. package/dist/runtime-capacity-scheduler.js.map +1 -0
  118. package/dist/runtime-capacity-snapshot.d.ts +14 -0
  119. package/dist/runtime-capacity-snapshot.js +87 -0
  120. package/dist/runtime-capacity-snapshot.js.map +1 -0
  121. package/dist/runtime-child-prompt.d.ts +2 -1
  122. package/dist/runtime-child-prompt.js +12 -1
  123. package/dist/runtime-child-prompt.js.map +1 -1
  124. package/dist/runtime-claude-native-bridge.js +2 -1
  125. package/dist/runtime-claude-native-bridge.js.map +1 -1
  126. package/dist/runtime-commands.js +6 -0
  127. package/dist/runtime-commands.js.map +1 -1
  128. package/dist/runtime-context-manifest.d.ts +4 -1
  129. package/dist/runtime-context-manifest.js +59 -3
  130. package/dist/runtime-context-manifest.js.map +1 -1
  131. package/dist/runtime-execution-adapters.js +19 -0
  132. package/dist/runtime-execution-adapters.js.map +1 -1
  133. package/dist/runtime-execution-renderer.js +4 -0
  134. package/dist/runtime-execution-renderer.js.map +1 -1
  135. package/dist/runtime-execution.js +13 -82
  136. package/dist/runtime-execution.js.map +1 -1
  137. package/dist/runtime-hooks.d.ts +46 -0
  138. package/dist/runtime-hooks.js +95 -0
  139. package/dist/runtime-hooks.js.map +1 -0
  140. package/dist/runtime-lifecycle-watch.d.ts +5 -2
  141. package/dist/runtime-lifecycle-watch.js +19 -3
  142. package/dist/runtime-lifecycle-watch.js.map +1 -1
  143. package/dist/runtime-load-balancer.d.ts +12 -0
  144. package/dist/runtime-load-balancer.js +106 -0
  145. package/dist/runtime-load-balancer.js.map +1 -0
  146. package/dist/runtime-parent-actions.js +5 -0
  147. package/dist/runtime-parent-actions.js.map +1 -1
  148. package/dist/runtime-spawn-bridge.js +24 -0
  149. package/dist/runtime-spawn-bridge.js.map +1 -1
  150. package/dist/runtime-spawn-guidance.js +15 -46
  151. package/dist/runtime-spawn-guidance.js.map +1 -1
  152. package/dist/runtime-worker-registry.d.ts +19 -0
  153. package/dist/runtime-worker-registry.js +84 -0
  154. package/dist/runtime-worker-registry.js.map +1 -0
  155. package/dist/security/chat-guardrail-policy.d.ts +7 -0
  156. package/dist/security/chat-guardrail-policy.js +61 -0
  157. package/dist/security/chat-guardrail-policy.js.map +1 -0
  158. package/dist/security/chat-guardrail-types.d.ts +65 -0
  159. package/dist/security/chat-guardrail-types.js +2 -0
  160. package/dist/security/chat-guardrail-types.js.map +1 -0
  161. package/dist/security/chat-guardrail-validation.d.ts +9 -0
  162. package/dist/security/chat-guardrail-validation.js +64 -0
  163. package/dist/security/chat-guardrail-validation.js.map +1 -0
  164. package/dist/security/chat-guardrails.d.ts +3 -0
  165. package/dist/security/chat-guardrails.js +136 -0
  166. package/dist/security/chat-guardrails.js.map +1 -0
  167. package/dist/security/content-classifier.d.ts +2 -0
  168. package/dist/security/content-classifier.js +179 -0
  169. package/dist/security/content-classifier.js.map +1 -0
  170. package/dist/security/operation-contract-types.d.ts +28 -0
  171. package/dist/security/operation-contract-types.js +2 -0
  172. package/dist/security/operation-contract-types.js.map +1 -0
  173. package/dist/security/operation-contract.d.ts +2 -0
  174. package/dist/security/operation-contract.js +169 -0
  175. package/dist/security/operation-contract.js.map +1 -0
  176. package/dist/security/payment-card-detection.d.ts +3 -0
  177. package/dist/security/payment-card-detection.js +48 -0
  178. package/dist/security/payment-card-detection.js.map +1 -0
  179. package/dist/security/policy-engine.d.ts +2 -0
  180. package/dist/security/policy-engine.js +142 -0
  181. package/dist/security/policy-engine.js.map +1 -0
  182. package/dist/security/policy-types.d.ts +79 -0
  183. package/dist/security/policy-types.js +7 -0
  184. package/dist/security/policy-types.js.map +1 -0
  185. package/dist/security/prompt-intake.d.ts +13 -0
  186. package/dist/security/prompt-intake.js +33 -0
  187. package/dist/security/prompt-intake.js.map +1 -0
  188. package/dist/security/provider-egress-policy.d.ts +27 -0
  189. package/dist/security/provider-egress-policy.js +72 -0
  190. package/dist/security/provider-egress-policy.js.map +1 -0
  191. package/dist/security/public-api-auth.d.ts +20 -0
  192. package/dist/security/public-api-auth.js +55 -0
  193. package/dist/security/public-api-auth.js.map +1 -0
  194. package/dist/security/public-api-policy.d.ts +8 -0
  195. package/dist/security/public-api-policy.js +40 -0
  196. package/dist/security/public-api-policy.js.map +1 -0
  197. package/dist/security/redaction.d.ts +3 -0
  198. package/dist/security/redaction.js +95 -0
  199. package/dist/security/redaction.js.map +1 -0
  200. package/dist/security/restricted-content-quarantine.d.ts +17 -0
  201. package/dist/security/restricted-content-quarantine.js +50 -0
  202. package/dist/security/restricted-content-quarantine.js.map +1 -0
  203. package/dist/security/restricted-data-classifier.d.ts +9 -0
  204. package/dist/security/restricted-data-classifier.js +254 -0
  205. package/dist/security/restricted-data-classifier.js.map +1 -0
  206. package/dist/security/sink-encoding.d.ts +6 -0
  207. package/dist/security/sink-encoding.js +40 -0
  208. package/dist/security/sink-encoding.js.map +1 -0
  209. package/dist/skills-render.js +7 -14
  210. package/dist/skills-render.js.map +1 -1
  211. package/dist/sprint-commands.js +33 -22
  212. package/dist/sprint-commands.js.map +1 -1
  213. package/dist/telemetry-redaction.d.ts +2 -0
  214. package/dist/telemetry-redaction.js +25 -2
  215. package/dist/telemetry-redaction.js.map +1 -1
  216. package/dist/transcription-failures.d.ts +2 -0
  217. package/dist/transcription-failures.js +4 -0
  218. package/dist/transcription-failures.js.map +1 -0
  219. package/dist/transcription-media-preflight.d.ts +9 -0
  220. package/dist/transcription-media-preflight.js +147 -0
  221. package/dist/transcription-media-preflight.js.map +1 -0
  222. package/dist/transcription-request.d.ts +13 -0
  223. package/dist/transcription-request.js +150 -0
  224. package/dist/transcription-request.js.map +1 -0
  225. package/dist/transcription-source-policy.d.ts +4 -0
  226. package/dist/transcription-source-policy.js +43 -0
  227. package/dist/transcription-source-policy.js.map +1 -0
  228. package/dist/transcription-types.d.ts +161 -0
  229. package/dist/transcription-types.js +2 -0
  230. package/dist/transcription-types.js.map +1 -0
  231. package/dist/types/chat.d.ts +203 -0
  232. package/dist/types/chat.js +10 -0
  233. package/dist/types/chat.js.map +1 -0
  234. package/dist/types/model-config.d.ts +4 -0
  235. package/dist/types/public-api.d.ts +75 -0
  236. package/dist/types/public-api.js +2 -0
  237. package/dist/types/public-api.js.map +1 -0
  238. package/dist/types/restricted-data.d.ts +69 -0
  239. package/dist/types/restricted-data.js +8 -0
  240. package/dist/types/restricted-data.js.map +1 -0
  241. package/dist/types/restricted-fragment.d.ts +82 -0
  242. package/dist/types/restricted-fragment.js +14 -0
  243. package/dist/types/restricted-fragment.js.map +1 -0
  244. package/dist/types/runtime.d.ts +159 -0
  245. package/dist/types.d.ts +9 -1
  246. package/dist/types.js +1 -0
  247. package/dist/types.js.map +1 -1
  248. package/dist/web-api.js +24 -0
  249. package/dist/web-api.js.map +1 -1
  250. package/dist/web-artifact-parsers.d.ts +6 -0
  251. package/dist/web-artifact-parsers.js +244 -0
  252. package/dist/web-artifact-parsers.js.map +1 -0
  253. package/dist/web-artifact-types.d.ts +76 -0
  254. package/dist/web-artifact-types.js +2 -0
  255. package/dist/web-artifact-types.js.map +1 -0
  256. package/dist/web-artifacts.d.ts +2 -43
  257. package/dist/web-artifacts.js +73 -58
  258. package/dist/web-artifacts.js.map +1 -1
  259. package/dist/web-chat-route-inputs.d.ts +11 -0
  260. package/dist/web-chat-route-inputs.js +156 -0
  261. package/dist/web-chat-route-inputs.js.map +1 -0
  262. package/dist/web-chat-routes.d.ts +7 -0
  263. package/dist/web-chat-routes.js +213 -0
  264. package/dist/web-chat-routes.js.map +1 -0
  265. package/dist/web-console/assets/index-CJup1cIA.css +1 -0
  266. package/dist/web-console/assets/index-CVDOfipu.js +11 -0
  267. package/dist/web-console/index.html +2 -2
  268. package/dist/web-evidence.d.ts +1 -1
  269. package/dist/web-evidence.js +9 -2
  270. package/dist/web-evidence.js.map +1 -1
  271. package/dist/web-public-route-inputs.d.ts +14 -0
  272. package/dist/web-public-route-inputs.js +136 -0
  273. package/dist/web-public-route-inputs.js.map +1 -0
  274. package/dist/web-public-routes.d.ts +6 -0
  275. package/dist/web-public-routes.js +194 -0
  276. package/dist/web-public-routes.js.map +1 -0
  277. package/dist/web-public-service.d.ts +16 -0
  278. package/dist/web-public-service.js +154 -0
  279. package/dist/web-public-service.js.map +1 -0
  280. package/dist/workflow-phase-planner.js +5 -3
  281. package/dist/workflow-phase-planner.js.map +1 -1
  282. package/dist/workflow-phases.js +5 -0
  283. package/dist/workflow-phases.js.map +1 -1
  284. package/dist/workflow-run-commands.js +89 -10
  285. package/dist/workflow-run-commands.js.map +1 -1
  286. package/dist/workflow-services.js +5 -0
  287. package/dist/workflow-services.js.map +1 -1
  288. package/dist/workspace-runtime-bootstrap.js +15 -4
  289. package/dist/workspace-runtime-bootstrap.js.map +1 -1
  290. package/docs/audio-video-transcription-skill.md +102 -70
  291. package/docs/chat-audit-retention.md +76 -0
  292. package/docs/chat-provider-provenance-ledger.md +75 -0
  293. package/docs/context-runtime-preprocessing.md +37 -0
  294. package/docs/orchestra-mvp.md +8 -2
  295. package/docs/public-api-contract.md +43 -0
  296. package/docs/release-test-matrix.md +14 -14
  297. package/docs/restricted-fragment-storage-contract.md +147 -0
  298. package/docs/runtime-adapters.md +47 -7
  299. package/docs/runtime-capacity.md +57 -0
  300. package/docs/security-saas-orchestrator.md +368 -0
  301. package/docs/site-manifest.json +128 -30
  302. package/package.json +5 -2
  303. package/site/dist/_headers +9 -0
  304. package/site/dist/_redirects +2 -0
  305. package/site/dist/architecture.mmd +61 -0
  306. package/site/dist/assets/index-Bi8l6tCE.js +10 -0
  307. package/site/dist/assets/index-BsCLqY__.css +1 -0
  308. package/site/dist/favicon.svg +19 -0
  309. package/site/dist/index.html +28 -0
  310. package/site/package.json +19 -0
  311. package/dist/web-console/assets/index-BHs7OIv8.css +0 -1
  312. package/dist/web-console/assets/index-BJuVTqfQ.js +0 -11
  313. package/dist/workspace-claude-settings.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import { randomUUID } from "node:crypto";
2
+ import { evaluateProviderEgressPolicy } from "./security/provider-egress-policy.js";
2
3
  export async function executeProviderBackedAgent(request, deps) {
3
4
  const requestId = `provider-agent-${randomUUID()}`;
4
5
  const providerIds = [request.routing.provider, ...request.routing.fallbacks];
@@ -16,6 +17,18 @@ export async function executeProviderBackedAgent(request, deps) {
16
17
  if (!budget.passed) {
17
18
  return blockedResult(request, requestId, providerId, budget.safeMessage ?? "provider execution blocked by budget envelope");
18
19
  }
20
+ const egressDecision = evaluateProviderEgressPolicy({
21
+ requestId,
22
+ taskId: request.taskId,
23
+ role: request.role,
24
+ actor: request.actor,
25
+ providerId,
26
+ messages: request.messages,
27
+ });
28
+ if (!egressDecision.allowed) {
29
+ return blockedResult(request, requestId, providerId, egressDecision.safeMessage ??
30
+ "provider egress blocked before provider execution");
31
+ }
19
32
  const provider = deps.createProvider(providerId);
20
33
  const capabilityBlock = providerCapabilityBlock(request, entryResult.entry);
21
34
  if (capabilityBlock) {
@@ -238,6 +251,7 @@ function providerFailureCode(error) {
238
251
  }
239
252
  function sanitizeProviderError(error) {
240
253
  return errorMessage(error)
254
+ .replace(/\bhttps?:\/\/[^\s),;]+/gi, "[REDACTED_PROVIDER_URL]")
241
255
  .replace(/Bearer\s+\S+/gi, "Bearer [REDACTED]")
242
256
  .replace(/\b(authorization|x-goog-api-key|x-api-key|api[-_]?key|apiKey)\s*[:=]\s*[^&\s,;]+/gi, "$1=[REDACTED]")
243
257
  .replace(/\bAIza[0-9A-Za-z_-]{20,}\b/g, "[REDACTED_API_KEY]")
@@ -1 +1 @@
1
- {"version":3,"file":"provider-agent-wrapper.js","sourceRoot":"","sources":["../src/provider-agent-wrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-agent-wrapper.js","sourceRoot":"","sources":["../src/provider-agent-wrapper.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,35 @@ const runtimeAdapters = [
19
19
  supportsManagedBlocks: true,
20
20
  supportsImports: true,
21
21
  guidance: "Reference compact Open Orchestra blocks from CLAUDE.md and load task skills on demand.",
22
+ recurringPreflightLines: [
23
+ "- Claude recurring preflight: after each phase completes, after a subagent returns, and after any context compaction or session resume, rerun `orchestra health --runtime claude-cli --json` and `orchestra validate --pre-run --task <ID> --json` before continuing.",
24
+ "- Treat a non-empty `missingActiveContext` or missing workflow run as a signal to re-register or resume the workflow before editing files.",
25
+ ],
26
+ bootstrapSpawnLines: [
27
+ "- Claude Code parent runtimes should launch the rendered packet with the native Agent/Subagent tool; use Task only when that is the exposed legacy alias.",
28
+ "- Prefer a role-named Claude subagent and record the resulting id or label in spawn lifecycle.",
29
+ "",
30
+ "### Claude Subagent Delegation — Exact Sequence",
31
+ "",
32
+ "When the user asks to delegate, or a workflow phase requires a subagent, follow this sequence without skipping steps:",
33
+ "",
34
+ "1. `orchestra workflow run --task <ID> --gates phase` — generates the spawn packet and session id.",
35
+ "2. `orchestra runtime parent-actions --task <ID> --json` — inspect pending `claude-agent-request` actions.",
36
+ "3. Read the `payload.promptArtifact` file from the action — this is the subagent prompt.",
37
+ "4. Launch a subagent using the native **Agent** tool with the prompt artifact content as the prompt.",
38
+ "5. `orchestra runtime spawn-lifecycle --session <sessionId> --status spawned --agent-id <label>` — record the child.",
39
+ "6. After the subagent writes its handoff artifact, run: `orchestra runtime parent-actions --task <ID> --dispatch --runtime claude-cli --until-idle` — this auto-detects completion and promotes queued sessions.",
40
+ "7. `orchestra workflow run --task <ID> --resume <run-id>` — advance the workflow to the next phase.",
41
+ "",
42
+ "**Never skip step 1.** The session id, spawn packet, and expected handoff path come from `orchestra workflow run`. Do not invent child context or launch subagents with ad-hoc prompts outside this sequence.",
43
+ "After the developer subagent completes, run `orchestra workflow run --task <ID> --resume <run-id>` to drive the QA phase; do not mark work done until QA evidence is recorded and the `qa→release` gate has been surfaced to the user.",
44
+ ],
45
+ spawnProtocolLines: [
46
+ "- Spawn only from an Orchestra `runtime spawn-request` artifact; do not invent child context.",
47
+ "- Keep detached children in background and let the parent continue talking to the user.",
48
+ "- Record `spawned`, terminal status, evidence artifact, and agent id through `runtime spawn-lifecycle`.",
49
+ "- Claude Code: use the native Agent/Subagent tool for the packet; use Task only if exposed as the legacy alias.",
50
+ ],
22
51
  },
23
52
  {
24
53
  target: "cursor",
@@ -29,6 +58,16 @@ const runtimeAdapters = [
29
58
  supportsManagedBlocks: true,
30
59
  supportsImports: true,
31
60
  guidance: "Use MDC rules for compact task routing and keep detailed skills in referenced files.",
61
+ bootstrapSpawnLines: [
62
+ "- Cursor parent runtimes should launch the rendered packet as a Background Agent so work continues in parallel with the current chat.",
63
+ "- Record the Cursor Background Agent id or branch label in spawn lifecycle before resuming the workflow.",
64
+ ],
65
+ spawnProtocolLines: [
66
+ "- Spawn only from an Orchestra `runtime spawn-request` artifact; do not invent child context.",
67
+ "- Keep detached children in background and let the parent continue talking to the user.",
68
+ "- Record `spawned`, terminal status, evidence artifact, and agent id through `runtime spawn-lifecycle`.",
69
+ "- Cursor: launch the packet as a Background Agent and record the Background Agent id or branch label.",
70
+ ],
32
71
  },
33
72
  {
34
73
  target: "codex",
@@ -39,6 +78,23 @@ const runtimeAdapters = [
39
78
  supportsManagedBlocks: true,
40
79
  supportsImports: false,
41
80
  guidance: "Reference Open Orchestra from AGENTS.md so local CLI work follows workflow gates.",
81
+ bootstrapSpawnHint: [
82
+ "- Codex parent runtimes should call `spawn_agent` for `codex-spawn-agent` actions using the `promptArtifact`, then record `spawned` with the returned agent id.",
83
+ ],
84
+ recurringPreflightLines: [
85
+ "- Codex recurring preflight: before each new work block and after any context shift, compaction, resume, interruption, or role handoff, rerun `orchestra health --runtime codex-cli --json`, `orchestra task list --json --status pending,blocked,in_progress`, and `orchestra validate --pre-run --task <ID> --json`.",
86
+ "- Treat `activeOrchestraContext: false` or non-empty `missingActiveContext` from pre-run validation as a drift warning; reload the task context and resume/register the workflow before editing files.",
87
+ "- Codex has no native recurring hook in this project, so this managed guidance and validation command are the fallback enforcement mechanism; the `--runtime codex-cli` flag is what registers the active runtime in `.agent-workflow/active-runtime.json`.",
88
+ ],
89
+ bootstrapSpawnLines: [
90
+ "- Codex parent runtimes should use `spawn_agent` for the rendered packet and avoid waiting by default.",
91
+ ],
92
+ spawnProtocolLines: [
93
+ "- Spawn only from an Orchestra `runtime spawn-request` artifact; do not invent child context.",
94
+ "- Keep detached children in background and let the parent continue talking to the user.",
95
+ "- Record `spawned`, terminal status, evidence artifact, and agent id through `runtime spawn-lifecycle`.",
96
+ "- Codex: use `spawn_agent` for the packet and avoid `wait_agent` unless the next critical step is blocked.",
97
+ ],
42
98
  },
43
99
  {
44
100
  target: "vscode",
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-adapters.js","sourceRoot":"","sources":["../src/runtime-adapters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-adapters.js","sourceRoot":"","sources":["../src/runtime-adapters.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { applyCursorMdcFrontmatter } from "./cursor-mdc.js";
4
4
  import { getRuntimeAdapter } from "./runtime-adapters.js";
5
5
  import { runtimeBootstrapSpawnLines } from "./runtime-spawn-guidance.js";
6
6
  const BOOTSTRAP_BLOCK_ID = "runtime-bootstrap";
7
- const BOOTSTRAP_VERSION = "1";
7
+ const BOOTSTRAP_VERSION = "2";
8
8
  const BOOTSTRAP_SOURCE = "open-orchestra command-manifest,runtime-bootstrap";
9
9
  export function renderRuntimeBootstrap(target = "generic") {
10
10
  const commands = listCommandManifest();
@@ -37,12 +37,20 @@ export function renderRuntimeBootstrap(target = "generic") {
37
37
  "```",
38
38
  "orchestra estimate --task <ID> --sizing <xs|s|m|l|xl> --solo-days <N> --ai-unguided-days <N> --ai-guided-days <N>",
39
39
  "```",
40
+ "Do not run `orchestra workflow run` until this estimate is recorded; an unestimated task signals incomplete planning.",
40
41
  "",
41
42
  "### Step 3 — Run the autonomous workflow",
42
43
  "```",
43
44
  "orchestra workflow run --task <ID> --gates phase",
44
45
  "```",
45
46
  "The workflow sequences PM → PO → Architect → Developer → QA → Release.",
47
+ "Execution mode is selected from sizing when no explicit `--phase-execution` is provided:",
48
+ "- `xs` (1 point): `single-agent` so all phases run inline without spawn overhead.",
49
+ "- `s` (2–3 points): `single-agent` by default; use `subagents` when the work is separable.",
50
+ "- `m`, `l`, `xl`: `subagents` so phase work is isolated and reviewable.",
51
+ "For xs/s tasks, prefer `orchestra workflow run --task <ID> --gates phase --phase-execution single-agent` when you need to be explicit. The parent agent still produces handoffs, evidence, and reviews for every phase.",
52
+ "The agent (Claude Code) is responsible for executing every phase in sequence — acting as PM, then PO, then Architect, then Developer, then QA, then Release — before marking work complete.",
53
+ 'Never pass `--from-phase`, `--skip-phases`, or any phase-shortcut flag. If a phase seems irrelevant, record a bypass rationale with `orchestra validate --pre-run --task <ID> --bypass --bypass-rationale "..."` instead.',
46
54
  "Gates pause at `po→architect` and `qa→release` for human review.",
47
55
  "The architect phase requires a sizing decision before proceeding:",
48
56
  "```",
@@ -61,6 +69,7 @@ export function renderRuntimeBootstrap(target = "generic") {
61
69
  "```",
62
70
  "orchestra workflow run --task <ID> --resume <run-id>",
63
71
  "```",
72
+ "At a `po→architect` or `qa→release` gate, stop work, surface the handoff artifact to the user, and wait for explicit approval before resuming — do not self-approve or continue autonomously.",
64
73
  "Gate approval is not automatic. Before approving `po→architect`, verify the GitHub issue or Orchestra task has user-validated acceptance criteria, non-goals, assumptions, priority, and sizing context.",
65
74
  "Before approving `qa→release`, verify real implementation evidence exists: changed files, exact validation commands, test results, QA findings, BA/PO acceptance, and Architect review when technical contracts changed.",
66
75
  "If a generated handoff says `Acceptance Criteria: none`, treat it as incomplete. Pull criteria from the linked issue/task, record a review finding, and do not approve release until the gap is fixed or explicitly risk-accepted.",
@@ -69,19 +78,23 @@ export function renderRuntimeBootstrap(target = "generic") {
69
78
  "```",
70
79
  "orchestra benchmark --task <ID>",
71
80
  "```",
81
+ "A task is not complete until `orchestra benchmark` has run. Do not close the task or mark it done beforehand.",
72
82
  "",
73
83
  "## Active Work",
74
- "- At session start, run `orchestra health --json` before implementation or file edits.",
84
+ "- At session start, run `" +
85
+ healthPreflightCommand(target) +
86
+ "` before implementation or file edits.",
75
87
  "- Run `orchestra task list --json --status pending,blocked,in_progress` and identify resumable work before creating a new task.",
76
88
  "- For the active task, run context, delegation, plan, skills, protocol, and workflow render commands.",
77
89
  "- Run `orchestra validate --pre-run --task <ID> --json` before implementation; resolve missing estimate, workflow run, evidence, or review checks.",
78
90
  '- If a user accepts a smaller/advisory path, record it with `orchestra validate --pre-run --task <ID> --bypass --bypass-rationale "..."`.',
91
+ "- After `orchestra workflow run` completes a phase or reports a pending action, immediately run `orchestra runtime parent-actions --task <ID> --json` and dispatch any actionable `claude-agent-request` items before continuing.",
79
92
  ...recurringPreflightLines(target),
80
93
  "",
81
94
  "## Runtime-Native Background Spawn",
82
95
  "- When a workflow phase returns `completionMode=detached`, keep the parent conversation available and do not block on the child unless the user explicitly asks to wait.",
83
96
  "- After `orchestra workflow run` reports a pending parent runtime action, immediately inspect `orchestra runtime parent-actions --task <ID> --json` and consume safe actions supported by the active runtime.",
84
- "- Codex parent runtimes should call `spawn_agent` for `codex-spawn-agent` actions using the `promptArtifact`, then record `spawned` with the returned agent id.",
97
+ ...codexSpawnHint(target),
85
98
  "- Do not auto-consume actions when the user explicitly asked to pause, when the action is queued, or when the runtime/tool is unavailable or unsafe.",
86
99
  "- Use `orchestra runtime spawn-request --task <ID> --role <role> --phase <phase> --run-id <run-id>` to render the assignment packet.",
87
100
  "- Record child state with `orchestra runtime spawn-lifecycle --session <session-id> --status <spawned|active|completed|failed> --agent-id <id>`.",
@@ -98,6 +111,7 @@ export function renderRuntimeBootstrap(target = "generic") {
98
111
  "- Record command/file/browser evidence with `orchestra evidence add`.",
99
112
  "- Record review outcome with `orchestra review`.",
100
113
  "- Update task status only after evidence and review are present.",
114
+ "- **Never run `git push` without explicit user instruction.** Completing a task, finishing QA, or closing a workflow run does not authorize a push.",
101
115
  "",
102
116
  "## Command Discovery",
103
117
  "- Use `orchestra commands manifest --json` for command metadata.",
@@ -154,15 +168,24 @@ function bootstrapCommandIds() {
154
168
  "summary",
155
169
  ]);
156
170
  }
171
+ function codexSpawnHint(target) {
172
+ return getRuntimeAdapter(target).bootstrapSpawnHint ?? [];
173
+ }
157
174
  function recurringPreflightLines(target) {
158
- if (target !== "codex") {
159
- return [];
160
- }
161
- return [
162
- "- Codex recurring preflight: before each new work block and after any context shift, compaction, resume, interruption, or role handoff, rerun `orchestra health --json`, `orchestra task list --json --status pending,blocked,in_progress`, and `orchestra validate --pre-run --task <ID> --json`.",
163
- "- Treat `activeOrchestraContext: false` or non-empty `missingActiveContext` from pre-run validation as a drift warning; reload the task context and resume/register the workflow before editing files.",
164
- "- Codex has no native recurring hook in this project, so this managed guidance and validation command are the fallback enforcement mechanism.",
165
- ];
175
+ return getRuntimeAdapter(target).recurringPreflightLines ?? [];
176
+ }
177
+ const HEALTH_RUNTIME_BY_TARGET = {
178
+ claude: "claude-cli",
179
+ codex: "codex-cli",
180
+ cursor: "cursor-cli",
181
+ vscode: "vscode-agent",
182
+ windsurf: "windsurf-agent",
183
+ };
184
+ function healthPreflightCommand(target) {
185
+ const executionId = HEALTH_RUNTIME_BY_TARGET[target];
186
+ return executionId
187
+ ? `orchestra health --runtime ${executionId} --json`
188
+ : "orchestra health --json";
166
189
  }
167
190
  function targetNote(target) {
168
191
  const adapter = getRuntimeAdapter(target);
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-bootstrap.js","sourceRoot":"","sources":["../src/runtime-bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-bootstrap.js","sourceRoot":"","sources":["../src/runtime-bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { RuntimeCapacityScope, RuntimeCapacityUnit, RuntimeQuotaPolicy, RuntimeScheduleReasonCode, RuntimeScheduleRequest } from "./types.js";
2
+ export type RuntimeCapacityMode = "local" | "saas";
3
+ export declare const LOCAL_RUNTIME_CAPACITY_SCOPE: RuntimeCapacityScope;
4
+ export declare const DEFAULT_RUNTIME_CAPACITY_UNIT: RuntimeCapacityUnit;
5
+ export declare const DEFAULT_RUNTIME_QUOTA_POLICY: RuntimeQuotaPolicy;
6
+ export interface RuntimeCapacityCounters {
7
+ active: RuntimeScheduleRequest[];
8
+ queued: RuntimeScheduleRequest[];
9
+ }
10
+ export interface RuntimeCapacityValidation {
11
+ valid: boolean;
12
+ scope: RuntimeCapacityScope;
13
+ reasonCode?: RuntimeScheduleReasonCode;
14
+ userSafeReason?: string;
15
+ }
16
+ export interface RuntimeCapacityLimitEvaluation {
17
+ allowed: boolean;
18
+ reasonCode?: RuntimeScheduleReasonCode;
19
+ userSafeReason?: string;
20
+ }
21
+ export declare function normalizeRuntimeScheduleRequest(request: RuntimeScheduleRequest, mode: RuntimeCapacityMode, defaultScope?: RuntimeCapacityScope): RuntimeCapacityValidation;
22
+ export declare function evaluateRuntimeCapacityLimits({ request, scope, counters, platformPolicy, tenantPolicy, workspacePolicy, }: {
23
+ request: RuntimeScheduleRequest;
24
+ scope: RuntimeCapacityScope;
25
+ counters: RuntimeCapacityCounters;
26
+ platformPolicy: RuntimeQuotaPolicy;
27
+ tenantPolicy: RuntimeQuotaPolicy;
28
+ workspacePolicy: RuntimeQuotaPolicy;
29
+ }): RuntimeCapacityLimitEvaluation;
30
+ export declare function canQueueRuntimeCapacity({ request, scope, counters, platformPolicy, tenantPolicy, workspacePolicy, }: {
31
+ request: RuntimeScheduleRequest;
32
+ scope: RuntimeCapacityScope;
33
+ counters: RuntimeCapacityCounters;
34
+ platformPolicy: RuntimeQuotaPolicy;
35
+ tenantPolicy: RuntimeQuotaPolicy;
36
+ workspacePolicy: RuntimeQuotaPolicy;
37
+ }): RuntimeCapacityLimitEvaluation;
38
+ export declare function queueReasonForLimit(reasonCode: RuntimeScheduleReasonCode): RuntimeScheduleReasonCode;
@@ -0,0 +1,117 @@
1
+ export const LOCAL_RUNTIME_CAPACITY_SCOPE = {
2
+ platformId: "local",
3
+ tenantId: "local",
4
+ workspaceId: "local-workspace",
5
+ };
6
+ export const DEFAULT_RUNTIME_CAPACITY_UNIT = {
7
+ concurrencyUnits: 1,
8
+ };
9
+ export const DEFAULT_RUNTIME_QUOTA_POLICY = {
10
+ maxActive: 3,
11
+ maxQueued: 25,
12
+ maxActivePerProvider: 2,
13
+ maxActivePerRuntime: 3,
14
+ limitAction: "queue",
15
+ queueTtlMs: 30_000,
16
+ };
17
+ const WORKLOAD_CLASSES = [
18
+ "interactive",
19
+ "workflow-phase",
20
+ "runtime-native-spawn",
21
+ "provider-backed-phase",
22
+ "background-maintenance",
23
+ "evidence-processing",
24
+ ];
25
+ export function normalizeRuntimeScheduleRequest(request, mode, defaultScope = LOCAL_RUNTIME_CAPACITY_SCOPE) {
26
+ if (!request.scope && mode === "saas") {
27
+ return {
28
+ valid: false,
29
+ scope: defaultScope,
30
+ reasonCode: "rejected_missing_scope",
31
+ userSafeReason: "tenant and workspace scope are required",
32
+ };
33
+ }
34
+ const scope = request.scope ?? defaultScope;
35
+ if (!scope.platformId ||
36
+ !scope.tenantId ||
37
+ !scope.workspaceId ||
38
+ !WORKLOAD_CLASSES.includes(request.workloadClass) ||
39
+ !Number.isFinite(request.capacity.concurrencyUnits) ||
40
+ request.capacity.concurrencyUnits <= 0) {
41
+ return {
42
+ valid: false,
43
+ scope,
44
+ reasonCode: "rejected_invalid_request",
45
+ userSafeReason: "runtime capacity request is invalid",
46
+ };
47
+ }
48
+ return { valid: true, scope };
49
+ }
50
+ export function evaluateRuntimeCapacityLimits({ request, scope, counters, platformPolicy, tenantPolicy, workspacePolicy, }) {
51
+ const requestUnits = request.capacity.concurrencyUnits;
52
+ const checks = [
53
+ activeLimitCheck(sumActiveUnits(counters.active), requestUnits, platformPolicy.maxActive, "rejected_platform_limit", "platform runtime capacity is exhausted"),
54
+ activeLimitCheck(sumActiveUnits(counters.active.filter((item) => sameTenant(item, scope))), requestUnits, tenantPolicy.maxActive, "rejected_tenant_limit", "tenant runtime capacity is exhausted"),
55
+ activeLimitCheck(sumActiveUnits(counters.active.filter((item) => sameWorkspace(item, scope))), requestUnits, workspacePolicy.maxActive, "rejected_workspace_limit", "workspace runtime capacity is exhausted"),
56
+ providerLimitCheck(request, counters.active, tenantPolicy),
57
+ runtimeLimitCheck(request, counters.active, tenantPolicy),
58
+ ];
59
+ return checks.find((check) => !check.allowed) ?? { allowed: true };
60
+ }
61
+ export function canQueueRuntimeCapacity({ request, scope, counters, platformPolicy, tenantPolicy, workspacePolicy, }) {
62
+ const requestUnits = request.capacity.concurrencyUnits;
63
+ const checks = [
64
+ queuedLimitCheck(sumActiveUnits(counters.queued), requestUnits, platformPolicy.maxQueued, "rejected_queue_full", "platform runtime queue is full"),
65
+ queuedLimitCheck(sumActiveUnits(counters.queued.filter((item) => sameTenant(item, scope))), requestUnits, tenantPolicy.maxQueued, "rejected_tenant_limit", "tenant runtime queue is full"),
66
+ queuedLimitCheck(sumActiveUnits(counters.queued.filter((item) => sameWorkspace(item, scope))), requestUnits, workspacePolicy.maxQueued, "rejected_workspace_limit", "workspace runtime queue is full"),
67
+ ];
68
+ return checks.find((check) => !check.allowed) ?? { allowed: true };
69
+ }
70
+ export function queueReasonForLimit(reasonCode) {
71
+ if (reasonCode === "rejected_platform_limit")
72
+ return "queued_platform_limit";
73
+ if (reasonCode === "rejected_tenant_limit")
74
+ return "queued_tenant_limit";
75
+ if (reasonCode === "rejected_workspace_limit")
76
+ return "queued_workspace_limit";
77
+ if (reasonCode === "rejected_provider_limit")
78
+ return "queued_provider_limit";
79
+ if (reasonCode === "rejected_runtime_limit")
80
+ return "queued_runtime_limit";
81
+ return "queued_no_eligible_worker";
82
+ }
83
+ function activeLimitCheck(activeUnits, requestUnits, maxActive, reasonCode, userSafeReason) {
84
+ if (activeUnits + requestUnits <= maxActive)
85
+ return { allowed: true };
86
+ return { allowed: false, reasonCode, userSafeReason };
87
+ }
88
+ function queuedLimitCheck(queuedUnits, requestUnits, maxQueued, reasonCode, userSafeReason) {
89
+ if (queuedUnits + requestUnits <= maxQueued)
90
+ return { allowed: true };
91
+ return { allowed: false, reasonCode, userSafeReason };
92
+ }
93
+ function providerLimitCheck(request, active, policy) {
94
+ if (!request.provider || policy.maxActivePerProvider === undefined) {
95
+ return { allowed: true };
96
+ }
97
+ const activeUnits = sumActiveUnits(active.filter((item) => item.provider === request.provider));
98
+ return activeLimitCheck(activeUnits, request.capacity.concurrencyUnits, policy.maxActivePerProvider, "rejected_provider_limit", "provider runtime capacity is exhausted");
99
+ }
100
+ function runtimeLimitCheck(request, active, policy) {
101
+ if (!request.runtime || policy.maxActivePerRuntime === undefined) {
102
+ return { allowed: true };
103
+ }
104
+ const activeUnits = sumActiveUnits(active.filter((item) => item.runtime === request.runtime));
105
+ return activeLimitCheck(activeUnits, request.capacity.concurrencyUnits, policy.maxActivePerRuntime, "rejected_runtime_limit", "runtime capacity is exhausted");
106
+ }
107
+ function sameTenant(request, scope) {
108
+ return request.scope?.tenantId === scope.tenantId;
109
+ }
110
+ function sameWorkspace(request, scope) {
111
+ return (request.scope?.tenantId === scope.tenantId &&
112
+ request.scope.workspaceId === scope.workspaceId);
113
+ }
114
+ function sumActiveUnits(requests) {
115
+ return requests.reduce((total, request) => total + request.capacity.concurrencyUnits, 0);
116
+ }
117
+ //# sourceMappingURL=runtime-capacity-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-capacity-policy.js","sourceRoot":"","sources":["../src/runtime-capacity-policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { RuntimeCapacitySchedulerEvent, RuntimeCapacityScope, RuntimeLease, RuntimeQuotaPolicy, RuntimeScheduleDecision, RuntimeScheduleReasonCode, RuntimeScheduleRequest } from "./types.js";
2
+ export interface RuntimeCapacityQueuedRequest {
3
+ queueId: string;
4
+ request: RuntimeScheduleRequest;
5
+ enqueuedAt: number;
6
+ }
7
+ export declare function normalizeCapacityRequest({ request, defaultScope, tenantPolicy, }: {
8
+ request: RuntimeScheduleRequest;
9
+ defaultScope: RuntimeCapacityScope;
10
+ tenantPolicy: RuntimeQuotaPolicy;
11
+ }): RuntimeScheduleRequest;
12
+ export declare function sortQueuedRuntimeRequests(queue: RuntimeCapacityQueuedRequest[]): void;
13
+ export declare function optionalExpiresAt(request: RuntimeScheduleRequest): {
14
+ expiresAt: string;
15
+ } | Record<string, never>;
16
+ export declare function reasonForCode(reasonCode: RuntimeScheduleReasonCode): string;
17
+ export declare function createRuntimeScheduleDecision({ decisionId, status, request, reasonCode, userSafeReason, workerId, lease, queue, }: {
18
+ decisionId: string;
19
+ status: RuntimeScheduleDecision["status"];
20
+ request: RuntimeScheduleRequest;
21
+ reasonCode: RuntimeScheduleReasonCode;
22
+ userSafeReason: string;
23
+ workerId?: string;
24
+ lease?: RuntimeLease;
25
+ queue?: RuntimeScheduleDecision["queue"];
26
+ }): {
27
+ decision: RuntimeScheduleDecision;
28
+ event: RuntimeCapacitySchedulerEvent;
29
+ };
30
+ export declare function createRuntimeReleaseEvent({ decisionId, lease, leaseDurationMs, }: {
31
+ decisionId: string;
32
+ lease: RuntimeLease;
33
+ leaseDurationMs: number;
34
+ }): RuntimeCapacitySchedulerEvent;
35
+ export declare function createRuntimePromotedEvent({ decisionId, request, workerId, queueLatencyMs, }: {
36
+ decisionId: string;
37
+ request: RuntimeScheduleRequest;
38
+ workerId: string;
39
+ queueLatencyMs: number;
40
+ }): RuntimeCapacitySchedulerEvent;
@@ -0,0 +1,111 @@
1
+ import { DEFAULT_RUNTIME_CAPACITY_UNIT } from "./runtime-capacity-policy.js";
2
+ export function normalizeCapacityRequest({ request, defaultScope, tenantPolicy, }) {
3
+ return {
4
+ ...request,
5
+ scope: request.scope ?? defaultScope,
6
+ capacity: request.capacity ?? DEFAULT_RUNTIME_CAPACITY_UNIT,
7
+ queuePolicy: request.queuePolicy ?? {
8
+ priority: "normal",
9
+ limitAction: "queue",
10
+ ...(tenantPolicy.queueTtlMs
11
+ ? { maxQueueMs: tenantPolicy.queueTtlMs }
12
+ : {}),
13
+ },
14
+ };
15
+ }
16
+ export function sortQueuedRuntimeRequests(queue) {
17
+ queue.sort((left, right) => priorityWeight(right.request.queuePolicy?.priority) -
18
+ priorityWeight(left.request.queuePolicy?.priority) ||
19
+ left.request.scope.tenantId.localeCompare(right.request.scope.tenantId) ||
20
+ left.request.scope.workspaceId.localeCompare(right.request.scope.workspaceId) ||
21
+ left.enqueuedAt - right.enqueuedAt ||
22
+ left.queueId.localeCompare(right.queueId));
23
+ }
24
+ export function optionalExpiresAt(request) {
25
+ const ttl = request.queuePolicy?.maxQueueMs;
26
+ return ttl ? { expiresAt: new Date(Date.now() + ttl).toISOString() } : {};
27
+ }
28
+ export function reasonForCode(reasonCode) {
29
+ const reasons = {
30
+ admitted: "runtime capacity lease admitted",
31
+ queued_platform_limit: "queued until platform runtime capacity is available",
32
+ queued_tenant_limit: "queued until tenant runtime capacity is available",
33
+ queued_workspace_limit: "queued until workspace runtime capacity is available",
34
+ queued_provider_limit: "queued until provider runtime capacity is available",
35
+ queued_runtime_limit: "queued until runtime capacity is available",
36
+ queued_no_eligible_worker: "queued until an eligible runtime worker is available",
37
+ rejected_invalid_request: "runtime capacity request is invalid",
38
+ rejected_missing_scope: "tenant and workspace scope are required",
39
+ rejected_platform_limit: "platform runtime capacity is exhausted",
40
+ rejected_tenant_limit: "tenant runtime capacity is exhausted",
41
+ rejected_workspace_limit: "workspace runtime capacity is exhausted",
42
+ rejected_provider_limit: "provider runtime capacity is exhausted",
43
+ rejected_runtime_limit: "runtime capacity is exhausted",
44
+ rejected_queue_full: "runtime queue is full",
45
+ deferred_no_eligible_worker: "no eligible runtime worker is available",
46
+ };
47
+ return reasons[reasonCode];
48
+ }
49
+ export function createRuntimeScheduleDecision({ decisionId, status, request, reasonCode, userSafeReason, workerId, lease, queue, }) {
50
+ const decision = {
51
+ decisionId,
52
+ status,
53
+ scope: request.scope,
54
+ workloadClass: request.workloadClass,
55
+ reasonCode,
56
+ userSafeReason,
57
+ ...(workerId ? { workerId } : {}),
58
+ ...(lease ? { lease } : {}),
59
+ ...(queue ? { queue } : {}),
60
+ };
61
+ return {
62
+ decision,
63
+ event: {
64
+ decisionId,
65
+ type: status,
66
+ scope: request.scope,
67
+ workloadClass: request.workloadClass,
68
+ reasonCode,
69
+ timestamp: new Date().toISOString(),
70
+ ...(request.provider ? { provider: request.provider } : {}),
71
+ ...(request.runtime ? { runtime: request.runtime } : {}),
72
+ ...(workerId ? { workerId } : {}),
73
+ },
74
+ };
75
+ }
76
+ export function createRuntimeReleaseEvent({ decisionId, lease, leaseDurationMs, }) {
77
+ return {
78
+ decisionId,
79
+ type: "released",
80
+ scope: lease.scope,
81
+ workloadClass: lease.workloadClass,
82
+ workerId: lease.workerId,
83
+ reasonCode: "released",
84
+ leaseDurationMs,
85
+ timestamp: new Date().toISOString(),
86
+ ...(lease.provider ? { provider: lease.provider } : {}),
87
+ ...(lease.runtime ? { runtime: lease.runtime } : {}),
88
+ };
89
+ }
90
+ export function createRuntimePromotedEvent({ decisionId, request, workerId, queueLatencyMs, }) {
91
+ return {
92
+ decisionId,
93
+ type: "promoted",
94
+ scope: request.scope,
95
+ workloadClass: request.workloadClass,
96
+ workerId,
97
+ reasonCode: "admitted",
98
+ queueLatencyMs,
99
+ timestamp: new Date().toISOString(),
100
+ ...(request.provider ? { provider: request.provider } : {}),
101
+ ...(request.runtime ? { runtime: request.runtime } : {}),
102
+ };
103
+ }
104
+ function priorityWeight(priority = "normal") {
105
+ if (priority === "high")
106
+ return 3;
107
+ if (priority === "normal")
108
+ return 2;
109
+ return 1;
110
+ }
111
+ //# sourceMappingURL=runtime-capacity-scheduler-helpers.js.map