@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-capacity-scheduler-helpers.js","sourceRoot":"","sources":["../src/runtime-capacity-scheduler-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { type RuntimeCapacityQueuedRequest } from "./runtime-capacity-scheduler-helpers.js";
2
+ import type { RuntimeCapacityCounters } from "./runtime-capacity-policy.js";
3
+ import type { RuntimeWorkerRegistry } from "./runtime-worker-registry.js";
4
+ import type { RuntimeCapacitySchedulerEvent, RuntimeCapacityScope, RuntimeLease, RuntimeScheduleDecision, RuntimeScheduleReasonCode, RuntimeScheduleRequest } from "./types.js";
5
+ export type RuntimeLeaseRecord = {
6
+ request: RuntimeScheduleRequest;
7
+ lease: RuntimeLease;
8
+ startedAt: number;
9
+ };
10
+ export declare class RuntimeCapacitySchedulerState {
11
+ private readonly queue;
12
+ private readonly leases;
13
+ private readonly events;
14
+ private rejected;
15
+ private nextDecision;
16
+ private nextQueue;
17
+ private nextLease;
18
+ activeRecords(): RuntimeLeaseRecord[];
19
+ queuedRequests(): RuntimeCapacityQueuedRequest[];
20
+ rejectedCount(): number;
21
+ counters(): RuntimeCapacityCounters;
22
+ drainEvents(): RuntimeCapacitySchedulerEvent[];
23
+ releaseLease(leaseId: string, registry: RuntimeWorkerRegistry): RuntimeLeaseRecord | undefined;
24
+ admit(request: RuntimeScheduleRequest, workerId: string, registry: RuntimeWorkerRegistry): RuntimeScheduleDecision;
25
+ queueRequest(request: RuntimeScheduleRequest, reasonCode: RuntimeScheduleReasonCode): RuntimeScheduleDecision;
26
+ reject(request: RuntimeScheduleRequest, scope: RuntimeCapacityScope, reasonCode: RuntimeScheduleReasonCode, userSafeReason: string): RuntimeScheduleDecision;
27
+ decision({ status, request, reasonCode, userSafeReason, workerId, lease, queue, }: {
28
+ status: RuntimeScheduleDecision["status"];
29
+ request: RuntimeScheduleRequest;
30
+ reasonCode: RuntimeScheduleReasonCode;
31
+ userSafeReason: string;
32
+ workerId?: string;
33
+ lease?: RuntimeLease;
34
+ queue?: RuntimeScheduleDecision["queue"];
35
+ }): RuntimeScheduleDecision;
36
+ sortQueue(): void;
37
+ removeQueuedAt(index: number): void;
38
+ recordPromoted({ decision, queued, workerId, }: {
39
+ decision: RuntimeScheduleDecision;
40
+ queued: RuntimeCapacityQueuedRequest;
41
+ workerId: string;
42
+ }): void;
43
+ private nextDecisionId;
44
+ }
@@ -0,0 +1,128 @@
1
+ import { createRuntimePromotedEvent, createRuntimeReleaseEvent, createRuntimeScheduleDecision, optionalExpiresAt, reasonForCode, sortQueuedRuntimeRequests, } from "./runtime-capacity-scheduler-helpers.js";
2
+ export class RuntimeCapacitySchedulerState {
3
+ queue = [];
4
+ leases = new Map();
5
+ events = [];
6
+ rejected = 0;
7
+ nextDecision = 0;
8
+ nextQueue = 0;
9
+ nextLease = 0;
10
+ activeRecords() {
11
+ return [...this.leases.values()];
12
+ }
13
+ queuedRequests() {
14
+ return this.queue;
15
+ }
16
+ rejectedCount() {
17
+ return this.rejected;
18
+ }
19
+ counters() {
20
+ return {
21
+ active: this.activeRecords().map((record) => record.request),
22
+ queued: this.queue.map((item) => item.request),
23
+ };
24
+ }
25
+ drainEvents() {
26
+ return this.events.splice(0);
27
+ }
28
+ releaseLease(leaseId, registry) {
29
+ const record = this.leases.get(leaseId);
30
+ if (!record)
31
+ return undefined;
32
+ this.leases.delete(leaseId);
33
+ registry.releaseWorkerCapacity(record.lease.workerId, record.lease.capacity);
34
+ this.events.push(createRuntimeReleaseEvent({
35
+ decisionId: this.nextDecisionId(),
36
+ lease: record.lease,
37
+ leaseDurationMs: Date.now() - record.startedAt,
38
+ }));
39
+ return record;
40
+ }
41
+ admit(request, workerId, registry) {
42
+ const lease = {
43
+ leaseId: `lease-${this.nextLease++}`,
44
+ workerId,
45
+ scope: request.scope,
46
+ workloadClass: request.workloadClass,
47
+ capacity: request.capacity,
48
+ expiresAt: new Date(Date.now() + (request.leaseTtlMs ?? 30_000)).toISOString(),
49
+ ...(request.provider ? { provider: request.provider } : {}),
50
+ ...(request.runtime ? { runtime: request.runtime } : {}),
51
+ };
52
+ registry.reserveWorkerCapacity(workerId, request.capacity);
53
+ this.leases.set(lease.leaseId, {
54
+ request,
55
+ lease,
56
+ startedAt: Date.now(),
57
+ });
58
+ return this.decision({
59
+ status: "admitted",
60
+ request,
61
+ reasonCode: "admitted",
62
+ userSafeReason: "runtime capacity lease admitted",
63
+ workerId,
64
+ lease,
65
+ });
66
+ }
67
+ queueRequest(request, reasonCode) {
68
+ const queueId = `queue-${this.nextQueue++}`;
69
+ this.queue.push({ queueId, request, enqueuedAt: Date.now() });
70
+ this.sortQueue();
71
+ const position = this.queue.findIndex((item) => item.queueId === queueId);
72
+ return this.decision({
73
+ status: "queued",
74
+ request,
75
+ reasonCode,
76
+ userSafeReason: reasonForCode(reasonCode),
77
+ queue: {
78
+ queueId,
79
+ position: position + 1,
80
+ reasonCode,
81
+ retryAfterMs: 1_000,
82
+ ...optionalExpiresAt(request),
83
+ },
84
+ });
85
+ }
86
+ reject(request, scope, reasonCode, userSafeReason) {
87
+ this.rejected += 1;
88
+ return this.decision({
89
+ status: "rejected",
90
+ request: { ...request, scope },
91
+ reasonCode,
92
+ userSafeReason,
93
+ });
94
+ }
95
+ decision({ status, request, reasonCode, userSafeReason, workerId, lease, queue, }) {
96
+ const decisionId = this.nextDecisionId();
97
+ const { decision, event } = createRuntimeScheduleDecision({
98
+ decisionId,
99
+ status,
100
+ request,
101
+ reasonCode,
102
+ userSafeReason,
103
+ ...(workerId ? { workerId } : {}),
104
+ ...(lease ? { lease } : {}),
105
+ ...(queue ? { queue } : {}),
106
+ });
107
+ this.events.push(event);
108
+ return decision;
109
+ }
110
+ sortQueue() {
111
+ sortQueuedRuntimeRequests(this.queue);
112
+ }
113
+ removeQueuedAt(index) {
114
+ this.queue.splice(index, 1);
115
+ }
116
+ recordPromoted({ decision, queued, workerId, }) {
117
+ this.events.push(createRuntimePromotedEvent({
118
+ decisionId: decision.decisionId,
119
+ request: queued.request,
120
+ workerId,
121
+ queueLatencyMs: Date.now() - queued.enqueuedAt,
122
+ }));
123
+ }
124
+ nextDecisionId() {
125
+ return `decision-${this.nextDecision++}`;
126
+ }
127
+ }
128
+ //# sourceMappingURL=runtime-capacity-scheduler-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-capacity-scheduler-state.js","sourceRoot":"","sources":["../src/runtime-capacity-scheduler-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { type RuntimeCapacityMode } from "./runtime-capacity-policy.js";
2
+ import { type RuntimeWorkerRegistry } from "./runtime-worker-registry.js";
3
+ import type { RuntimeCapacitySchedulerEvent, RuntimeCapacityScope, RuntimeCapacitySnapshot, RuntimeQuotaPolicy, RuntimeScheduleDecision, RuntimeScheduleRequest } from "./types.js";
4
+ export interface RuntimeCapacitySchedulerOptions {
5
+ mode?: RuntimeCapacityMode;
6
+ defaultScope?: RuntimeCapacityScope;
7
+ platformPolicy?: RuntimeQuotaPolicy;
8
+ tenantPolicy?: RuntimeQuotaPolicy;
9
+ workspacePolicy?: RuntimeQuotaPolicy;
10
+ registry?: RuntimeWorkerRegistry;
11
+ }
12
+ export declare class RuntimeCapacityScheduler {
13
+ private readonly mode;
14
+ private readonly defaultScope;
15
+ private readonly platformPolicy;
16
+ private readonly tenantPolicy;
17
+ private readonly workspacePolicy;
18
+ private readonly registry;
19
+ private readonly state;
20
+ constructor(options?: RuntimeCapacitySchedulerOptions);
21
+ schedule(request: RuntimeScheduleRequest): RuntimeScheduleDecision;
22
+ release(leaseId: string): RuntimeScheduleDecision[];
23
+ drainQueued(): RuntimeScheduleDecision[];
24
+ snapshot(scope?: RuntimeCapacityScope): RuntimeCapacitySnapshot;
25
+ drainEvents(): RuntimeCapacitySchedulerEvent[];
26
+ private normalizeRequest;
27
+ private queueOrRejectLimit;
28
+ private queueOrDefer;
29
+ private shouldQueue;
30
+ private scheduleQueued;
31
+ private queueDepthByWorker;
32
+ private effectiveTenantPolicy;
33
+ private effectiveWorkspacePolicy;
34
+ }
@@ -0,0 +1,193 @@
1
+ import { DEFAULT_RUNTIME_QUOTA_POLICY, LOCAL_RUNTIME_CAPACITY_SCOPE, canQueueRuntimeCapacity, evaluateRuntimeCapacityLimits, normalizeRuntimeScheduleRequest, queueReasonForLimit, } from "./runtime-capacity-policy.js";
2
+ import { normalizeCapacityRequest, reasonForCode, } from "./runtime-capacity-scheduler-helpers.js";
3
+ import { RuntimeCapacitySchedulerState } from "./runtime-capacity-scheduler-state.js";
4
+ import { buildRuntimeCapacitySnapshot } from "./runtime-capacity-snapshot.js";
5
+ import { selectRuntimeWorker } from "./runtime-load-balancer.js";
6
+ import { InMemoryRuntimeWorkerRegistry, createLocalRuntimeWorker, } from "./runtime-worker-registry.js";
7
+ export class RuntimeCapacityScheduler {
8
+ mode;
9
+ defaultScope;
10
+ platformPolicy;
11
+ tenantPolicy;
12
+ workspacePolicy;
13
+ registry;
14
+ state = new RuntimeCapacitySchedulerState();
15
+ constructor(options = {}) {
16
+ this.mode = options.mode ?? "local";
17
+ this.defaultScope = options.defaultScope ?? LOCAL_RUNTIME_CAPACITY_SCOPE;
18
+ this.platformPolicy =
19
+ options.platformPolicy ?? DEFAULT_RUNTIME_QUOTA_POLICY;
20
+ this.tenantPolicy = options.tenantPolicy ?? DEFAULT_RUNTIME_QUOTA_POLICY;
21
+ this.workspacePolicy =
22
+ options.workspacePolicy ?? DEFAULT_RUNTIME_QUOTA_POLICY;
23
+ this.registry =
24
+ options.registry ??
25
+ new InMemoryRuntimeWorkerRegistry([
26
+ createLocalRuntimeWorker({
27
+ maxConcurrencyUnits: this.platformPolicy.maxActive,
28
+ availableConcurrencyUnits: this.platformPolicy.maxActive,
29
+ }),
30
+ ]);
31
+ }
32
+ schedule(request) {
33
+ if (this.mode === "saas" && !request.scope) {
34
+ const normalized = this.normalizeRequest(request);
35
+ return this.state.reject(normalized, this.defaultScope, "rejected_missing_scope", "tenant and workspace scope are required");
36
+ }
37
+ const normalized = this.normalizeRequest(request);
38
+ const validation = normalizeRuntimeScheduleRequest(normalized, this.mode, this.defaultScope);
39
+ if (!validation.valid) {
40
+ return this.state.reject(normalized, validation.scope, validation.reasonCode ?? "rejected_invalid_request", validation.userSafeReason ?? "runtime capacity request is invalid");
41
+ }
42
+ const scopedRequest = { ...normalized, scope: validation.scope };
43
+ const limit = evaluateRuntimeCapacityLimits({
44
+ request: scopedRequest,
45
+ scope: validation.scope,
46
+ counters: this.state.counters(),
47
+ platformPolicy: this.platformPolicy,
48
+ tenantPolicy: this.effectiveTenantPolicy(scopedRequest),
49
+ workspacePolicy: this.effectiveWorkspacePolicy(scopedRequest),
50
+ });
51
+ if (!limit.allowed) {
52
+ return this.queueOrRejectLimit(scopedRequest, limit.reasonCode);
53
+ }
54
+ const selection = selectRuntimeWorker({
55
+ request: scopedRequest,
56
+ workers: this.registry.listWorkers(),
57
+ queueDepthByWorker: this.queueDepthByWorker(),
58
+ });
59
+ if (selection.worker) {
60
+ return this.state.admit(scopedRequest, selection.worker.workerId, this.registry);
61
+ }
62
+ return this.queueOrDefer(scopedRequest);
63
+ }
64
+ release(leaseId) {
65
+ const record = this.state.releaseLease(leaseId, this.registry);
66
+ if (!record)
67
+ return [];
68
+ return this.drainQueued();
69
+ }
70
+ drainQueued() {
71
+ const promoted = [];
72
+ let madeProgress = true;
73
+ while (madeProgress) {
74
+ madeProgress = false;
75
+ this.state.sortQueue();
76
+ const queue = this.state.queuedRequests();
77
+ for (let index = 0; index < queue.length; index += 1) {
78
+ const queued = queue[index];
79
+ if (!queued)
80
+ continue;
81
+ const decision = this.scheduleQueued(queued);
82
+ if (decision.status !== "admitted")
83
+ continue;
84
+ this.state.removeQueuedAt(index);
85
+ promoted.push(decision);
86
+ madeProgress = true;
87
+ break;
88
+ }
89
+ }
90
+ return promoted;
91
+ }
92
+ snapshot(scope) {
93
+ return buildRuntimeCapacitySnapshot({
94
+ active: this.state.activeRecords(),
95
+ queued: this.state.queuedRequests(),
96
+ rejected: this.state.rejectedCount(),
97
+ ...(scope ? { scope } : {}),
98
+ });
99
+ }
100
+ drainEvents() {
101
+ return this.state.drainEvents();
102
+ }
103
+ normalizeRequest(request) {
104
+ return normalizeCapacityRequest({
105
+ request,
106
+ defaultScope: this.defaultScope,
107
+ tenantPolicy: this.tenantPolicy,
108
+ });
109
+ }
110
+ queueOrRejectLimit(request, reasonCode) {
111
+ if (this.shouldQueue(request)) {
112
+ return this.state.queueRequest(request, queueReasonForLimit(reasonCode));
113
+ }
114
+ return this.state.reject(request, request.scope, reasonCode, reasonForCode(reasonCode));
115
+ }
116
+ queueOrDefer(request) {
117
+ if (this.shouldQueue(request)) {
118
+ return this.state.queueRequest(request, "queued_no_eligible_worker");
119
+ }
120
+ return this.state.decision({
121
+ status: "deferred",
122
+ request,
123
+ reasonCode: "deferred_no_eligible_worker",
124
+ userSafeReason: "no eligible runtime worker is available",
125
+ });
126
+ }
127
+ shouldQueue(request) {
128
+ if (request.queuePolicy?.limitAction !== "queue")
129
+ return false;
130
+ const queueLimit = canQueueRuntimeCapacity({
131
+ request,
132
+ scope: request.scope,
133
+ counters: this.state.counters(),
134
+ platformPolicy: this.platformPolicy,
135
+ tenantPolicy: this.effectiveTenantPolicy(request),
136
+ workspacePolicy: this.effectiveWorkspacePolicy(request),
137
+ });
138
+ return queueLimit.allowed;
139
+ }
140
+ scheduleQueued(queued) {
141
+ const limit = evaluateRuntimeCapacityLimits({
142
+ request: queued.request,
143
+ scope: queued.request.scope,
144
+ counters: this.state.counters(),
145
+ platformPolicy: this.platformPolicy,
146
+ tenantPolicy: this.effectiveTenantPolicy(queued.request),
147
+ workspacePolicy: this.effectiveWorkspacePolicy(queued.request),
148
+ });
149
+ if (!limit.allowed) {
150
+ const reasonCode = queueReasonForLimit(limit.reasonCode);
151
+ return this.state.decision({
152
+ status: "deferred",
153
+ request: queued.request,
154
+ reasonCode,
155
+ userSafeReason: reasonForCode(reasonCode),
156
+ });
157
+ }
158
+ const selection = selectRuntimeWorker({
159
+ request: queued.request,
160
+ workers: this.registry.listWorkers(),
161
+ queueDepthByWorker: this.queueDepthByWorker(),
162
+ });
163
+ if (!selection.worker) {
164
+ return this.state.decision({
165
+ status: "deferred",
166
+ request: queued.request,
167
+ reasonCode: "deferred_no_eligible_worker",
168
+ userSafeReason: "no eligible runtime worker is available",
169
+ });
170
+ }
171
+ const decision = this.state.admit(queued.request, selection.worker.workerId, this.registry);
172
+ this.state.recordPromoted({
173
+ decision,
174
+ queued,
175
+ workerId: selection.worker.workerId,
176
+ });
177
+ return decision;
178
+ }
179
+ queueDepthByWorker() {
180
+ return {};
181
+ }
182
+ effectiveTenantPolicy(request) {
183
+ return this.mode === "saas"
184
+ ? this.tenantPolicy
185
+ : (request.tenantPolicy ?? this.tenantPolicy);
186
+ }
187
+ effectiveWorkspacePolicy(request) {
188
+ return this.mode === "saas"
189
+ ? this.workspacePolicy
190
+ : (request.workspacePolicy ?? this.workspacePolicy);
191
+ }
192
+ }
193
+ //# sourceMappingURL=runtime-capacity-scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-capacity-scheduler.js","sourceRoot":"","sources":["../src/runtime-capacity-scheduler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { RuntimeCapacityScope, RuntimeCapacitySnapshot, RuntimeLease, RuntimeScheduleRequest } from "./types.js";
2
+ export interface RuntimeCapacitySnapshotLease {
3
+ request: RuntimeScheduleRequest;
4
+ lease: RuntimeLease;
5
+ }
6
+ export interface RuntimeCapacitySnapshotQueueItem {
7
+ request: RuntimeScheduleRequest;
8
+ }
9
+ export declare function buildRuntimeCapacitySnapshot({ active, queued, rejected, scope, }: {
10
+ active: RuntimeCapacitySnapshotLease[];
11
+ queued: RuntimeCapacitySnapshotQueueItem[];
12
+ rejected: number;
13
+ scope?: RuntimeCapacityScope;
14
+ }): RuntimeCapacitySnapshot;
@@ -0,0 +1,87 @@
1
+ export function buildRuntimeCapacitySnapshot({ active, queued, rejected, scope, }) {
2
+ const snapshot = emptyRuntimeCapacitySnapshot();
3
+ const scopedActive = active.filter((record) => matchesScope(record.request.scope, scope));
4
+ const scopedQueued = queued.filter((item) => matchesScope(item.request.scope, scope));
5
+ snapshot.active = scopedActive.length;
6
+ snapshot.queued = scopedQueued.length;
7
+ snapshot.reserved = scopedActive.length;
8
+ snapshot.rejected = scope ? 0 : rejected;
9
+ for (const record of scopedActive) {
10
+ addSnapshotRequest(snapshot, "active", record.request);
11
+ increment(snapshot.activeByWorkerId, record.lease.workerId);
12
+ }
13
+ for (const item of scopedQueued) {
14
+ addSnapshotRequest(snapshot, "queued", item.request);
15
+ }
16
+ return snapshot;
17
+ }
18
+ function emptyRuntimeCapacitySnapshot() {
19
+ return {
20
+ active: 0,
21
+ queued: 0,
22
+ reserved: 0,
23
+ rejected: 0,
24
+ openCircuits: 0,
25
+ activeByPlatform: {},
26
+ activeByTenant: {},
27
+ activeByWorkspace: {},
28
+ activeByWorkloadClass: emptyWorkloadCounters(),
29
+ activeByProvider: {},
30
+ activeByRuntime: {},
31
+ activeByRegion: {},
32
+ activeByWorkerId: {},
33
+ queuedByPlatform: {},
34
+ queuedByTenant: {},
35
+ queuedByWorkspace: {},
36
+ queuedByWorkloadClass: emptyWorkloadCounters(),
37
+ queuedByProvider: {},
38
+ queuedByRuntime: {},
39
+ queuedByRegion: {},
40
+ queuedByWorkerId: {},
41
+ };
42
+ }
43
+ function emptyWorkloadCounters() {
44
+ return {
45
+ interactive: 0,
46
+ "workflow-phase": 0,
47
+ "runtime-native-spawn": 0,
48
+ "provider-backed-phase": 0,
49
+ "background-maintenance": 0,
50
+ "evidence-processing": 0,
51
+ };
52
+ }
53
+ function addSnapshotRequest(snapshot, prefix, request) {
54
+ const byPlatform = prefix === "active" ? snapshot.activeByPlatform : snapshot.queuedByPlatform;
55
+ const byTenant = prefix === "active" ? snapshot.activeByTenant : snapshot.queuedByTenant;
56
+ const byWorkspace = prefix === "active"
57
+ ? snapshot.activeByWorkspace
58
+ : snapshot.queuedByWorkspace;
59
+ const byWorkload = prefix === "active"
60
+ ? snapshot.activeByWorkloadClass
61
+ : snapshot.queuedByWorkloadClass;
62
+ const byProvider = prefix === "active" ? snapshot.activeByProvider : snapshot.queuedByProvider;
63
+ const byRuntime = prefix === "active" ? snapshot.activeByRuntime : snapshot.queuedByRuntime;
64
+ const byRegion = prefix === "active" ? snapshot.activeByRegion : snapshot.queuedByRegion;
65
+ increment(byPlatform, request.scope.platformId);
66
+ increment(byTenant, request.scope.tenantId);
67
+ increment(byWorkspace, request.scope.workspaceId);
68
+ increment(byWorkload, request.workloadClass);
69
+ if (request.provider)
70
+ increment(byProvider, request.provider);
71
+ if (request.runtime)
72
+ increment(byRuntime, request.runtime);
73
+ for (const region of request.regionPreference?.regions ?? []) {
74
+ increment(byRegion, region);
75
+ }
76
+ }
77
+ function matchesScope(requestScope, filter) {
78
+ if (!filter)
79
+ return true;
80
+ return (requestScope.platformId === filter.platformId &&
81
+ requestScope.tenantId === filter.tenantId &&
82
+ requestScope.workspaceId === filter.workspaceId);
83
+ }
84
+ function increment(counters, key) {
85
+ counters[key] = (counters[key] ?? 0) + 1;
86
+ }
87
+ //# sourceMappingURL=runtime-capacity-snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-capacity-snapshot.js","sourceRoot":"","sources":["../src/runtime-capacity-snapshot.ts"],"names":[],"mappings":"AAiBA,MAAM,UAAU,4BAA4B,CAAC,EAC3C,MAAM,EACN,MAAM,EACN,QAAQ,EACR,KAAK,GAMN;IACC,MAAM,QAAQ,GAAG,4BAA4B,EAAE,CAAC;IAChD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAC5C,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,KAAM,EAAE,KAAK,CAAC,CAC3C,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAC1C,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAM,EAAE,KAAK,CAAC,CACzC,CAAC;IACF,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;IACtC,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC;IACxC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACzC,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QAClC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACvD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,4BAA4B;IACnC,OAAO;QACL,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,CAAC;QACT,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,EAAE;QACpB,cAAc,EAAE,EAAE;QAClB,iBAAiB,EAAE,EAAE;QACrB,qBAAqB,EAAE,qBAAqB,EAAE;QAC9C,gBAAgB,EAAE,EAAE;QACpB,eAAe,EAAE,EAAE;QACnB,cAAc,EAAE,EAAE;QAClB,gBAAgB,EAAE,EAAE;QACpB,gBAAgB,EAAE,EAAE;QACpB,cAAc,EAAE,EAAE;QAClB,iBAAiB,EAAE,EAAE;QACrB,qBAAqB,EAAE,qBAAqB,EAAE;QAC9C,gBAAgB,EAAE,EAAE;QACpB,eAAe,EAAE,EAAE;QACnB,cAAc,EAAE,EAAE;QAClB,gBAAgB,EAAE,EAAE;KACrB,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB;IAC5B,OAAO;QACL,WAAW,EAAE,CAAC;QACd,gBAAgB,EAAE,CAAC;QACnB,sBAAsB,EAAE,CAAC;QACzB,uBAAuB,EAAE,CAAC;QAC1B,wBAAwB,EAAE,CAAC;QAC3B,qBAAqB,EAAE,CAAC;KACzB,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,QAAiC,EACjC,MAA2B,EAC3B,OAA+B;IAE/B,MAAM,UAAU,GACd,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAC9E,MAAM,QAAQ,GACZ,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC1E,MAAM,WAAW,GACf,MAAM,KAAK,QAAQ;QACjB,CAAC,CAAC,QAAQ,CAAC,iBAAiB;QAC5B,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACjC,MAAM,UAAU,GACd,MAAM,KAAK,QAAQ;QACjB,CAAC,CAAC,QAAQ,CAAC,qBAAqB;QAChC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACrC,MAAM,UAAU,GACd,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAC9E,MAAM,SAAS,GACb,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC5E,MAAM,QAAQ,GACZ,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC1E,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,KAAM,CAAC,UAAU,CAAC,CAAC;IACjD,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAM,CAAC,QAAQ,CAAC,CAAC;IAC7C,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,KAAM,CAAC,WAAW,CAAC,CAAC;IACnD,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7C,IAAI,OAAO,CAAC,QAAQ;QAAE,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,OAAO;QAAE,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,gBAAgB,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;QAC7D,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CACnB,YAAkC,EAClC,MAA6B;IAE7B,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,CACL,YAAY,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;QAC7C,YAAY,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ;QACzC,YAAY,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW,CAChD,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,QAAgC,EAAE,GAAW;IAC9D,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { PhasePlaybook, RuntimeDelegationAssignment, RuntimeExecutionAdapter, RuntimeParentAction, TaskContext } from "./types.js";
2
- export declare function renderRuntimeChildPrompt({ taskId, phase, role, runtime, sessionId, assignment, context, contextManifestMarkdown, expectedResultArtifact, parentRuntimeAction, phasePlaybook, }: {
2
+ export declare function renderRuntimeChildPrompt({ taskId, phase, role, runtime, sessionId, assignment, context, contextManifestMarkdown, expectedResultArtifact, parentRuntimeAction, phasePlaybook, topWorkflowTemplate, }: {
3
3
  taskId: string;
4
4
  phase: string;
5
5
  role: string;
@@ -11,4 +11,5 @@ export declare function renderRuntimeChildPrompt({ taskId, phase, role, runtime,
11
11
  expectedResultArtifact: string;
12
12
  parentRuntimeAction: RuntimeParentAction;
13
13
  phasePlaybook?: PhasePlaybook;
14
+ topWorkflowTemplate?: string;
14
15
  }): string;
@@ -1,5 +1,5 @@
1
1
  import { renderPhasePlaybookMarkdown } from "./phase-playbooks.js";
2
- export function renderRuntimeChildPrompt({ taskId, phase, role, runtime, sessionId, assignment, context, contextManifestMarkdown, expectedResultArtifact, parentRuntimeAction, phasePlaybook, }) {
2
+ export function renderRuntimeChildPrompt({ taskId, phase, role, runtime, sessionId, assignment, context, contextManifestMarkdown, expectedResultArtifact, parentRuntimeAction, phasePlaybook, topWorkflowTemplate, }) {
3
3
  return [
4
4
  `# Runtime Child Prompt: ${taskId}`,
5
5
  "",
@@ -19,8 +19,19 @@ export function renderRuntimeChildPrompt({ taskId, phase, role, runtime, session
19
19
  "## Ownership Paths",
20
20
  ...listOrNone(assignment.paths),
21
21
  "",
22
+ "## Execution Mode",
23
+ `- Mode: ${assignment.executionMode}`,
24
+ "",
25
+ "## Context Loading Policy",
26
+ "- Use the Preprocessed Runtime Context bundle by default.",
27
+ "- Cite full source paths from the bundle when deeper inspection is required; do not load raw files unless the reduced bundle is insufficient for the assigned work.",
28
+ "- Preserve omitted content warnings in the handoff when they affect confidence or verification scope.",
29
+ "",
22
30
  contextManifestMarkdown,
23
31
  "",
32
+ ...(topWorkflowTemplate
33
+ ? ["## Workflow Template Guidance", "", topWorkflowTemplate, ""]
34
+ : []),
24
35
  ...(phasePlaybook ? [renderPhasePlaybookMarkdown(phasePlaybook), ""] : []),
25
36
  "## Return Contract",
26
37
  `- Write or summarize result evidence for ${expectedResultArtifact}.`,
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-child-prompt.js","sourceRoot":"","sources":["../src/runtime-child-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AASnE,MAAM,UAAU,wBAAwB,CAAC,EACvC,MAAM,EACN,KAAK,EACL,IAAI,EACJ,OAAO,EACP,SAAS,EACT,UAAU,EACV,OAAO,EACP,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,GAad;IACC,OAAO;QACL,2BAA2B,MAAM,EAAE;QACnC,EAAE;QACF,cAAc,OAAO,CAAC,EAAE,EAAE;QAC1B,cAAc,MAAM,EAAE;QACtB,YAAY,KAAK,EAAE;QACnB,WAAW,IAAI,EAAE;QACjB,iBAAiB,SAAS,EAAE;QAC5B,wCAAwC;QACxC,EAAE;QACF,SAAS;QACT,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK;QACvC,EAAE;QACF,wBAAwB;QACxB,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAC9C,EAAE;QACF,oBAAoB;QACpB,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC;QAC/B,EAAE;QACF,uBAAuB;QACvB,EAAE;QACF,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,oBAAoB;QACpB,4CAA4C,sBAAsB,GAAG;QACrE,8DAA8D;QAC9D,gBAAgB,MAAM,EAAE;QACxB,cAAc,KAAK,EAAE;QACrB,aAAa,IAAI,EAAE;QACnB,gBAAgB,OAAO,CAAC,EAAE,EAAE;QAC5B,mBAAmB,SAAS,EAAE;QAC9B,mFAAmF;QACnF,oJAAoJ;QACpJ,+GAA+G;QAC/G,EAAE;QACF,0BAA0B;QAC1B,mBAAmB,sBAAsB,UAAU,mBAAmB,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE;QACjJ,kDAAkD,mBAAmB,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE;QAC7I,mKAAmK;KACpK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,KAA2B;IAC7C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"runtime-child-prompt.js","sourceRoot":"","sources":["../src/runtime-child-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AASnE,MAAM,UAAU,wBAAwB,CAAC,EACvC,MAAM,EACN,KAAK,EACL,IAAI,EACJ,OAAO,EACP,SAAS,EACT,UAAU,EACV,OAAO,EACP,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,GAcpB;IACC,OAAO;QACL,2BAA2B,MAAM,EAAE;QACnC,EAAE;QACF,cAAc,OAAO,CAAC,EAAE,EAAE;QAC1B,cAAc,MAAM,EAAE;QACtB,YAAY,KAAK,EAAE;QACnB,WAAW,IAAI,EAAE;QACjB,iBAAiB,SAAS,EAAE;QAC5B,wCAAwC;QACxC,EAAE;QACF,SAAS;QACT,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK;QACvC,EAAE;QACF,wBAAwB;QACxB,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAC9C,EAAE;QACF,oBAAoB;QACpB,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC;QAC/B,EAAE;QACF,mBAAmB;QACnB,WAAW,UAAU,CAAC,aAAa,EAAE;QACrC,EAAE;QACF,2BAA2B;QAC3B,2DAA2D;QAC3D,qKAAqK;QACrK,uGAAuG;QACvG,EAAE;QACF,uBAAuB;QACvB,EAAE;QACF,GAAG,CAAC,mBAAmB;YACrB,CAAC,CAAC,CAAC,+BAA+B,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,CAAC;YAChE,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,oBAAoB;QACpB,4CAA4C,sBAAsB,GAAG;QACrE,8DAA8D;QAC9D,gBAAgB,MAAM,EAAE;QACxB,cAAc,KAAK,EAAE;QACrB,aAAa,IAAI,EAAE;QACnB,gBAAgB,OAAO,CAAC,EAAE,EAAE;QAC5B,mBAAmB,SAAS,EAAE;QAC9B,mFAAmF;QACnF,oJAAoJ;QACpJ,+GAA+G;QAC/G,EAAE;QACF,0BAA0B;QAC1B,mBAAmB,sBAAsB,UAAU,mBAAmB,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE;QACjJ,kDAAkD,mBAAmB,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE;QAC7I,mKAAmK;KACpK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,KAA2B;IAC7C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AAC1C,CAAC"}
@@ -44,7 +44,8 @@ function isClaudeParentRuntime() {
44
44
  process.env.CLAUDE_CODE === "1");
45
45
  }
46
46
  function hasClaudeNativeCallbackCapability() {
47
- return process.env.OPEN_ORCHESTRA_CLAUDE_NATIVE_CALLBACK === "1";
47
+ return (process.env.OPEN_ORCHESTRA_CLAUDE_NATIVE_CALLBACK === "1" ||
48
+ process.env.CLAUDECODE === "1");
48
49
  }
49
50
  function claudeNativeBridgeFallbackGuidance() {
50
51
  return [
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-claude-native-bridge.js","sourceRoot":"","sources":["../src/runtime-claude-native-bridge.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,yBAAyB,CACvC,MAAkC;IAElC,MAAM,QAAQ,GAAG;QACf,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,YAAqB;QAC9B,UAAU,EAAE,sBAA+B;QAC3C,IAAI,EAAE,mBAA4B;QAClC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc;QACpD,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAsB;QACpE,wBAAwB,EAAE,KAAc;KACzC,CAAC;IACF,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;QAC7B,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,MAAM,EACJ,gFAAgF;YAClF,QAAQ,EAAE,kCAAkC,EAAE;YAC9C,QAAQ;SACT,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,iCAAiC,EAAE,EAAE,CAAC;QACzC,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,MAAM,EACJ,wGAAwG;YAC1G,QAAQ,EAAE,kCAAkC,EAAE;YAC9C,QAAQ;SACT,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GACX,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,IAAI,EAAE;QACzD,0BAA0B,yBAAyB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;IAC1E,OAAO;QACL,MAAM,EAAE,mBAAmB;QAC3B,OAAO;QACP,QAAQ;QACR,OAAO,EAAE,6CAA6C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;KAC3E,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB;IAC5B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAI,EAAE,CAAC;IACxE,OAAO,CACL,aAAa,KAAK,QAAQ;QAC1B,aAAa,KAAK,YAAY;QAC9B,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,GAAG;QAC9B,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,GAAG,CAChC,CAAC;AACJ,CAAC;AAED,SAAS,iCAAiC;IACxC,OAAO,OAAO,CAAC,GAAG,CAAC,qCAAqC,KAAK,GAAG,CAAC;AACnE,CAAC;AAED,SAAS,kCAAkC;IACzC,OAAO;QACL,yDAAyD;QACzD,8IAA8I;QAC9I,8DAA8D;KAC/D,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,SAAS,yBAAyB,CAAC,SAAiB;IAClD,OAAO,SAAS,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"runtime-claude-native-bridge.js","sourceRoot":"","sources":["../src/runtime-claude-native-bridge.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,yBAAyB,CACvC,MAAkC;IAElC,MAAM,QAAQ,GAAG;QACf,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,YAAqB;QAC9B,UAAU,EAAE,sBAA+B;QAC3C,IAAI,EAAE,mBAA4B;QAClC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc;QACpD,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAsB;QACpE,wBAAwB,EAAE,KAAc;KACzC,CAAC;IACF,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;QAC7B,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,MAAM,EACJ,gFAAgF;YAClF,QAAQ,EAAE,kCAAkC,EAAE;YAC9C,QAAQ;SACT,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,iCAAiC,EAAE,EAAE,CAAC;QACzC,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,MAAM,EACJ,wGAAwG;YAC1G,QAAQ,EAAE,kCAAkC,EAAE;YAC9C,QAAQ;SACT,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GACX,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,IAAI,EAAE;QACzD,0BAA0B,yBAAyB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;IAC1E,OAAO;QACL,MAAM,EAAE,mBAAmB;QAC3B,OAAO;QACP,QAAQ;QACR,OAAO,EAAE,6CAA6C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;KAC3E,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB;IAC5B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAI,EAAE,CAAC;IACxE,OAAO,CACL,aAAa,KAAK,QAAQ;QAC1B,aAAa,KAAK,YAAY;QAC9B,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,GAAG;QAC9B,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,GAAG,CAChC,CAAC;AACJ,CAAC;AAED,SAAS,iCAAiC;IACxC,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,qCAAqC,KAAK,GAAG;QACzD,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,GAAG,CAC/B,CAAC;AACJ,CAAC;AAED,SAAS,kCAAkC;IACzC,OAAO;QACL,yDAAyD;QACzD,8IAA8I;QAC9I,8DAA8D;KAC/D,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,SAAS,yBAAyB,CAAC,SAAiB;IAClD,OAAO,SAAS,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC"}
@@ -142,6 +142,12 @@ export async function runtimeSpawnLifecycleCommand(options, io) {
142
142
  io.log(`Runtime spawn lifecycle ${status}: ${sessionId}`);
143
143
  if (autoResume.status === "resumed") {
144
144
  io.log(`Runtime lifecycle auto-resumed workflow ${autoResume.runId} (${autoResume.transition})`);
145
+ if (autoResume.parentDispatch) {
146
+ const dispatched = autoResume.parentDispatch.passes
147
+ .flatMap((pass) => pass.actions)
148
+ .filter((action) => action.status === "dispatched").length;
149
+ io.log(`Runtime lifecycle auto-dispatched parent actions: ${dispatched}`);
150
+ }
145
151
  }
146
152
  else if (status === "completed" || status === "closed") {
147
153
  io.log(`Runtime lifecycle auto-resume skipped: ${autoResume.reason}`);