@overkill-dev/run 0.0.59 → 0.0.60

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 (69) hide show
  1. package/engine/test-body-resource-attachment.d.ts +1 -0
  2. package/engine/test-body-resource-attachment.d.ts.map +1 -1
  3. package/engine/test-body-resource-attachment.js +1 -0
  4. package/engine/test-body-resource-attachment.js.map +1 -1
  5. package/package.json +2 -1
  6. package/packages/run/run.entry-point.d.ts +3 -2
  7. package/packages/run/run.entry-point.d.ts.map +1 -1
  8. package/packages/run/run.entry-point.js +1 -1
  9. package/packages/run/run.entry-point.js.map +1 -1
  10. package/readme.md +11 -1
  11. package/resources/resource-graph.d.ts +1 -0
  12. package/resources/resource-graph.d.ts.map +1 -1
  13. package/resources/resource-graph.js +2 -2
  14. package/resources/resource-graph.js.map +1 -1
  15. package/run/execution-plan-resolution.js +356 -0
  16. package/run/execution-plan-resolution.js.map +1 -0
  17. package/run/permission-denial-runtime-policy.js +12 -2
  18. package/run/permission-denial-runtime-policy.js.map +1 -1
  19. package/run/resource-lifecycle-boundaries.js +8 -4
  20. package/run/resource-lifecycle-boundaries.js.map +1 -1
  21. package/run/resource-lifecycle-state.d.ts +9 -1
  22. package/run/resource-lifecycle-state.d.ts.map +1 -1
  23. package/run/resource-lifecycle-state.js.map +1 -1
  24. package/run/resource-lifecycle.js +37 -5
  25. package/run/resource-lifecycle.js.map +1 -1
  26. package/run/resource-ownership-plan.d.ts +30 -0
  27. package/run/resource-ownership-plan.d.ts.map +1 -0
  28. package/run/run-collected-planning.js +8 -0
  29. package/run/run-collected-planning.js.map +1 -1
  30. package/run/run-errors.d.ts +54 -0
  31. package/run/run-errors.d.ts.map +1 -1
  32. package/run/run-errors.js +61 -0
  33. package/run/run-errors.js.map +1 -1
  34. package/run/run-types.d.ts +3 -2
  35. package/run/run-types.d.ts.map +1 -1
  36. package/run/run-types.js +3 -4
  37. package/run/run-types.js.map +1 -1
  38. package/run/work-unit-planning.js +16 -3
  39. package/run/work-unit-planning.js.map +1 -1
  40. package/run/worker-pool-execution.js +15 -19
  41. package/run/worker-pool-execution.js.map +1 -1
  42. package/run/worker-pool-hedged-arbitration.js +22 -6
  43. package/run/worker-pool-hedged-arbitration.js.map +1 -1
  44. package/run/worker-pool-host-protocol.js.map +1 -1
  45. package/run/worker-pool-host-task.js +9 -0
  46. package/run/worker-pool-host-task.js.map +1 -1
  47. package/run/worker-pool-host.entry-point.js +13 -13
  48. package/run/worker-pool-host.entry-point.js.map +1 -1
  49. package/run/worker-pool-lanes.js +16 -9
  50. package/run/worker-pool-lanes.js.map +1 -1
  51. package/run/worker-pool-placement-planning.js +24 -3
  52. package/run/worker-pool-placement-planning.js.map +1 -1
  53. package/run/worker-pool-protocol.js +19 -0
  54. package/run/worker-pool-protocol.js.map +1 -1
  55. package/run/worker-pool-resource-lifecycle-execution.js +143 -12
  56. package/run/worker-pool-resource-lifecycle-execution.js.map +1 -1
  57. package/run/worker-pool-routing.js +13 -1
  58. package/run/worker-pool-routing.js.map +1 -1
  59. package/run/worker-pool-runtime.js +12 -16
  60. package/run/worker-pool-runtime.js.map +1 -1
  61. package/run/worker-pool-task-events.js +6 -1
  62. package/run/worker-pool-task-events.js.map +1 -1
  63. package/run/worker-pool-task-validation.js +1 -0
  64. package/run/worker-pool-task-validation.js.map +1 -1
  65. package/run/worker-pool-worker-resources.js +9 -2
  66. package/run/worker-pool-worker-resources.js.map +1 -1
  67. package/run/worker-pool-worker.js +9 -1
  68. package/run/worker-pool-worker.js.map +1 -1
  69. package/sbom.cdx.json +4 -4
@@ -15,6 +15,7 @@ export type TestBodyRuntimeScenarioBindingSummary = TestBodyScenarioSlotSummary
15
15
  };
16
16
  export type TestBodyResourceSummary = {
17
17
  readonly dependencies: readonly string[];
18
+ readonly handleTransport: 'local' | 'projected';
18
19
  readonly name: string;
19
20
  readonly requirements: readonly TestBodyExecutionRequirementSummary[];
20
21
  readonly scenarios: readonly TestBodyScenarioSlotSummary[];
@@ -1 +1 @@
1
- {"version":3,"file":"test-body-resource-attachment.d.ts","sourceRoot":"","sources":["../../../../source/engine/test-body-resource-attachment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-body-resource-attachment.d.ts","sourceRoot":"","sources":["../../../../source/engine/test-body-resource-attachment.ts"],"names":[],"mappings":"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"}
@@ -67,6 +67,7 @@ function freezeResourceGraph(resources) {
67
67
  return Object.freeze(resources.map(function freezeResource(resource) {
68
68
  return Object.freeze({
69
69
  dependencies: Object.freeze(Array.from(resource.dependencies)),
70
+ handleTransport: resource.handleTransport,
70
71
  name: resource.name,
71
72
  requirements: freezeRequirements(resource.requirements),
72
73
  scenarios: Object.freeze(resource.scenarios.map(function freezeScenario(scenario) {
@@ -1 +1 @@
1
- {"version":3,"file":"test-body-resource-attachment.js","sourceRoot":"","sources":["../../../../source/engine/test-body-resource-attachment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-body-resource-attachment.js","sourceRoot":"","sources":["../../../../source/engine/test-body-resource-attachment.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -90,6 +90,7 @@
90
90
  "./run/default-run-engine.js",
91
91
  "./run/definition-location-capture.js",
92
92
  "./run/duration-history.js",
93
+ "./run/execution-plan-resolution.js",
93
94
  "./run/node-child-process-starters.js",
94
95
  "./run/node-process-capability-restrictions.js",
95
96
  "./run/node-run-dependencies.entry-point.js",
@@ -119,5 +120,5 @@
119
120
  "./run/worker-pool-worker-resources.js"
120
121
  ],
121
122
  "type": "module",
122
- "version": "0.0.59"
123
+ "version": "0.0.60"
123
124
  }
@@ -1,12 +1,13 @@
1
1
  export declare const runIfMain: import("../../run/run-if-main.ts").RunIfMain;
2
2
  export { orchestrator } from '../../run/run-orchestrator.entry-point.ts';
3
3
  export { defineConfig, loadRunConfig, RunConfigError } from './config.entry-point.ts';
4
- export { RunResolutionError } from '../../run/run-errors.ts';
4
+ export { RunExecutionPlanError, RunResolutionError } from '../../run/run-errors.ts';
5
+ export type { PlannedResourceOwner, ResourceOwnerPlacement, ResourceOwnershipPlan } from '../../run/resource-ownership-plan.ts';
5
6
  export type { LoadedRunConfig, RunConfigLoader, RunConfigLoaderDependencies, RunConfigLoadRequest, RunProjectConfig, RunProjectIntegrationExecution, RunProjectIntegrationProfileConfig, RunProjectMeasuredResourceUsage, RunProjectMicrotestExecution, RunProjectMicrotestProfileConfig, RunProjectProfileFiles, RunProjectProfileConfig, RunProjectProfilesConfig, RunProjectResourceBudgets, RunProjectResourceUsageConfig, RunProjectTimingProfilePolicy, RunProjectTimeoutConfig, RunProjectUnmeasuredResourceUsage } from '../../run/run-config.ts';
6
7
  export type { RunIfMain, RunIfMainDependencies } from '../../run/run-if-main.ts';
7
8
  export type { RunIfMainProfileResolver, RunIfMainProfileResolverDependencies } from '../../run/run-if-main-profile.ts';
8
9
  export type { RunIfMainOptions, RunIfMainRootOptions } from '../../run/run-if-main-options.ts';
9
- export type { RunResolutionErrorCode } from '../../run/run-errors.ts';
10
+ export type { ExecutionPlanResourceFacts, RunExecutionPlanConflict, RunResolutionErrorCode } from '../../run/run-errors.ts';
10
11
  export type { RunInvocationTimingOptions } from '../../run/run-timing-collection.ts';
11
12
  export type { RuntimeDimensions, RuntimeId, WorkId, WorkloadId } from '../../engine/identity.ts';
12
13
  export type { DynamicWorkUnitId, PlacementAttemptId, PlacementAttemptInterruptionCause, PlacementAttemptReason, PlacementRecoveryDecision, PlacementTrace, PlacementTraceEntry, PlacementWorkerId, TraceWorkUnitId } from '../../run/placement-trace.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"run.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/run/run.entry-point.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,SAAS,8CAgBpB,CAAC;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EACH,YAAY,EACZ,aAAa,EACb,cAAc,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EACR,eAAe,EACf,eAAe,EACf,2BAA2B,EAC3B,oBAAoB,EACpB,gBAAgB,EAChB,8BAA8B,EAC9B,kCAAkC,EAClC,+BAA+B,EAC/B,4BAA4B,EAC5B,gCAAgC,EAChC,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,6BAA6B,EAC7B,6BAA6B,EAC7B,uBAAuB,EACvB,iCAAiC,EACpC,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACR,SAAS,EACT,qBAAqB,EACxB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACR,wBAAwB,EACxB,oCAAoC,EACvC,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACR,gBAAgB,EAChB,oBAAoB,EACvB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,YAAY,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AACrF,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjG,YAAY,EACR,iBAAiB,EACjB,kBAAkB,EAClB,iCAAiC,EACjC,sBAAsB,EACtB,yBAAyB,EACzB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EAClB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACR,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,WAAW,EACX,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EACzB,QAAQ,EACR,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,UAAU,EACV,aAAa,EACb,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,2BAA2B,EAC3B,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,UAAU,EACV,QAAQ,EACR,YAAY,EACf,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"run.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/run/run.entry-point.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,SAAS,8CAgBpB,CAAC;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EACH,YAAY,EACZ,aAAa,EACb,cAAc,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACpF,YAAY,EACR,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACxB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACR,eAAe,EACf,eAAe,EACf,2BAA2B,EAC3B,oBAAoB,EACpB,gBAAgB,EAChB,8BAA8B,EAC9B,kCAAkC,EAClC,+BAA+B,EAC/B,4BAA4B,EAC5B,gCAAgC,EAChC,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,6BAA6B,EAC7B,6BAA6B,EAC7B,uBAAuB,EACvB,iCAAiC,EACpC,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACR,SAAS,EACT,qBAAqB,EACxB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACR,wBAAwB,EACxB,oCAAoC,EACvC,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACR,gBAAgB,EAChB,oBAAoB,EACvB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACR,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACzB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AACrF,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjG,YAAY,EACR,iBAAiB,EACjB,kBAAkB,EAClB,iCAAiC,EACjC,sBAAsB,EACtB,yBAAyB,EACzB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EAClB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACR,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,WAAW,EACX,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EACzB,QAAQ,EACR,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,UAAU,EACV,aAAa,EACb,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,2BAA2B,EAC3B,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,UAAU,EACV,QAAQ,EACR,YAAY,EACf,MAAM,wBAAwB,CAAC"}
@@ -33,5 +33,5 @@ export const runIfMain = createRunIfMain({
33
33
  });
34
34
  export { orchestrator } from "../../run/run-orchestrator.entry-point.js";
35
35
  export { defineConfig, loadRunConfig, RunConfigError } from "./config.entry-point.js";
36
- export { RunResolutionError } from "../../run/run-errors.js";
36
+ export { RunExecutionPlanError, RunResolutionError } from "../../run/run-errors.js";
37
37
  //# sourceMappingURL=run.entry-point.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/run/run.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;IACrD,aAAa;IACb,IAAI;IACJ,aAAa;IACb,QAAQ;IACR,IAAI;CACP,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC;IACrC,0BAA0B,EAAE,8BAA8B;IAC1D,mBAAmB,EAAE,yBAAyB;IAC9C,WAAW;IACX,uBAAuB;QACnB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACzB,CAAC;IACD,YAAY;QACR,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC5B,CAAC;IACD,oBAAoB;IACpB,SAAS,EAAE,gBAAgB;IAC3B,WAAW,CAAC,QAAQ;QAChB,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAChC,CAAC;IACD,MAAM,EAAE,OAAO,CAAC,MAAM;CACzB,CAAC,CAAC;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EACH,YAAY,EACZ,aAAa,EACb,cAAc,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"run.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/run/run.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;IACrD,aAAa;IACb,IAAI;IACJ,aAAa;IACb,QAAQ;IACR,IAAI;CACP,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC;IACrC,0BAA0B,EAAE,8BAA8B;IAC1D,mBAAmB,EAAE,yBAAyB;IAC9C,WAAW;IACX,uBAAuB;QACnB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACzB,CAAC;IACD,YAAY;QACR,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC5B,CAAC;IACD,oBAAoB;IACpB,SAAS,EAAE,gBAAgB;IAC3B,WAAW,CAAC,QAAQ;QAChB,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAChC,CAAC;IACD,MAAM,EAAE,OAAO,CAAC,MAAM;CACzB,CAAC,CAAC;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EACH,YAAY,EACZ,aAAa,EACb,cAAc,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
package/readme.md CHANGED
@@ -166,7 +166,12 @@ local order, and worker lifecycle. Unmatched selected file sets are rejected
166
166
  by default, or run as plain file units with profile defaults when
167
167
  `unmatched: 'file'` is configured. `RunFacts.execution` contains the frozen
168
168
  `PlacementPlan`: work units, resolved per-unit policy, local worker lanes, and
169
- the deterministic initial lane assignment used by execution. Worker-pool
169
+ the deterministic initial lane assignment used by execution. The plan also
170
+ freezes resource ownership for every selected `per-run`, `per-file`, and
171
+ `per-suite` boundary. Shared resources either stay on one reusable executor
172
+ lane or use a dedicated infrastructure worker that projects handles to the
173
+ assigned work. Local-only handles are rejected when the resolved placement
174
+ requires projection. Worker-pool
170
175
  placement defaults to `assignmentPolicy: 'case-count-balanced'`, which places
171
176
  larger selected work units first and balances lane load by selected case count
172
177
  and resource capacity weight.
@@ -208,6 +213,11 @@ serial without serializing unrelated units. `single-worker` pins matching work
208
213
  to one lane without changing in-unit scheduling. For `supervised-process`, a
209
214
  serial or exclusive requirement anywhere in the selected plan makes the
210
215
  containing process plan serial.
216
+ Planning rejects incompatible runtime or resource definitions, invalid resource
217
+ dependency scopes, mixed worker lifecycles for one hard constraint, and worker
218
+ capacity that cannot satisfy the resolved lifecycle lanes. These failures are
219
+ reported as `RunExecutionPlanError` with deterministic structured conflicts
220
+ before test execution begins.
211
221
  Direct `RunConfig` values may set `execution.hostProcess` for worker-pool
212
222
  profiles. `{ kind: 'direct' }` keeps the worker-thread pool in the coordinator
213
223
  process. `{ kind: 'child', nodeArguments: [...] }` starts one supervised host
@@ -15,6 +15,7 @@ export type CallableResourceDefinition = AnyResourceDefinition & {
15
15
  readonly dispose: ResourceDisposeCallback | null;
16
16
  };
17
17
  export declare function resourceEntries(resources: ResourceDependencies): readonly ResourceEntry[];
18
+ export declare function resourceDependencyScopeAllowed(resource: Pick<AnyResourceDefinition, 'scope'>, dependency: Pick<AnyResourceDefinition, 'scope'>): boolean;
18
19
  export declare function callableResourceDefinition(resource: AnyResourceDefinition): CallableResourceDefinition;
19
20
  export declare function createResourceGraph(resources: ResourceDependencies): ResourceGraph;
20
21
  export declare function assertPerCaseResourceGraph(resources: ResourceDependencies): void;
@@ -1 +1 @@
1
- {"version":3,"file":"resource-graph.d.ts","sourceRoot":"","sources":["../../../../source/resources/resource-graph.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,qBAAqB,EAC1B,KAAK,SAAS,EAEd,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAE7B,MAAM,gBAAgB,CAAC;AAaxB,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AACrE,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,YAAY,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;CAC9C,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,SAAS,aAAa,EAAE,CAAC;CACtD,CAAC;AACF,KAAK,yBAAyB,GAAG,uBAAuB,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;AACtG,MAAM,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,yBAAyB,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/G,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,GAAG;IAC7D,QAAQ,CAAC,OAAO,EAAE,CACd,OAAO,EAAE,uBAAuB,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,KAC5E,SAAS,CAAC,OAAO,CAAC,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAAC;CACpD,CAAC;AAQF,wBAAgB,eAAe,CAAC,SAAS,EAAE,oBAAoB,GAAG,SAAS,aAAa,EAAE,CAEzF;AA+CD,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,qBAAqB,GAAG,0BAA0B,CAQtG;AAiFD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,oBAAoB,GAAG,aAAa,CAElF;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,oBAAoB,GAAG,IAAI,CAuBhF;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,oBAAoB,GAAG,IAAI,CAwBpF"}
1
+ {"version":3,"file":"resource-graph.d.ts","sourceRoot":"","sources":["../../../../source/resources/resource-graph.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,qBAAqB,EAC1B,KAAK,SAAS,EAEd,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAE7B,MAAM,gBAAgB,CAAC;AAaxB,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AACrE,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,YAAY,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;CAC9C,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,SAAS,aAAa,EAAE,CAAC;CACtD,CAAC;AACF,KAAK,yBAAyB,GAAG,uBAAuB,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;AACtG,MAAM,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,yBAAyB,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/G,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,GAAG;IAC7D,QAAQ,CAAC,OAAO,EAAE,CACd,OAAO,EAAE,uBAAuB,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,KAC5E,SAAS,CAAC,OAAO,CAAC,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAAC;CACpD,CAAC;AAQF,wBAAgB,eAAe,CAAC,SAAS,EAAE,oBAAoB,GAAG,SAAS,aAAa,EAAE,CAEzF;AA4BD,wBAAgB,8BAA8B,CAC1C,QAAQ,EAAE,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,EAC9C,UAAU,EAAE,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,GACjD,OAAO,CAaT;AAMD,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,qBAAqB,GAAG,0BAA0B,CAQtG;AAiFD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,oBAAoB,GAAG,aAAa,CAElF;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,oBAAoB,GAAG,IAAI,CAuBhF;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,oBAAoB,GAAG,IAAI,CAwBpF"}
@@ -24,7 +24,7 @@ function scopeRank(scope) {
24
24
  }
25
25
  return perCaseScopeRank;
26
26
  }
27
- function dependencyScopeAllowed(resource, dependency) {
27
+ export function resourceDependencyScopeAllowed(resource, dependency) {
28
28
  const resourceScope = resource.scope;
29
29
  const dependencyScope = dependency.scope;
30
30
  if (dependencyScope === 'shared-per-worker') {
@@ -113,7 +113,7 @@ export function assertResourceDependencyScopes(resources) {
113
113
  const graph = createResourceGraph(resources);
114
114
  for (const node of graph.order) {
115
115
  for (const dependency of node.dependencies) {
116
- if (!dependencyScopeAllowed(node.descriptor, dependency.descriptor)) {
116
+ if (!resourceDependencyScopeAllowed(node.descriptor, dependency.descriptor)) {
117
117
  throw resourceLifecycleError([
118
118
  `Resource "${node.descriptor.name}" uses ${node.descriptor.scope} scope and cannot depend on`,
119
119
  `resource "${dependency.descriptor.name}" with ${dependency.descriptor.scope} scope.`
@@ -1 +1 @@
1
- {"version":3,"file":"resource-graph.js","sourceRoot":"","sources":["../../../../source/resources/resource-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-graph.js","sourceRoot":"","sources":["../../../../source/resources/resource-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,356 @@
1
+ import { runtimeIdentityKey, workIdentityKey } from "../engine/identity.js";
2
+ import { resourceDependencyScopeAllowed } from "../resources/resource-graph.js";
3
+ import { caseResourceOwnershipBoundaries, resourceScopes } from "./resource-lifecycle-boundaries.js";
4
+ import { collectedRunCaseEntries } from "./collected-run-plan.js";
5
+ import { hardConstraintKeys } from "./work-unit-resource-constraints.js";
6
+ function stableJson(value) {
7
+ if (value === null || typeof value !== 'object') {
8
+ return JSON.stringify(value);
9
+ }
10
+ if (Array.isArray(value)) {
11
+ return `[${value.map(stableJson).join(',')}]`;
12
+ }
13
+ const keys = Object.keys(value).toSorted(function compareKeys(left, right) {
14
+ return left.localeCompare(right);
15
+ });
16
+ return `{${keys
17
+ .map(function entry(key) {
18
+ return `${JSON.stringify(key)}:${stableJson(Reflect.get(value, key))}`;
19
+ })
20
+ .join(',')}}`;
21
+ }
22
+ function nonEmpty(values, message) {
23
+ const first = values[0];
24
+ if (first === undefined) {
25
+ throw new Error(message);
26
+ }
27
+ return [first, ...values.slice(1)];
28
+ }
29
+ function mapWith(values, key, value) {
30
+ const updatedValues = new Map(values);
31
+ updatedValues.set(key, value);
32
+ return updatedValues;
33
+ }
34
+ function uniqueWork(work) {
35
+ const workByKey = new Map(work.map(function workEntry(item) {
36
+ return [workIdentityKey(item), item];
37
+ }));
38
+ return Array.from(workByKey.values());
39
+ }
40
+ const resourceScopeNames = resourceScopes;
41
+ function isResourceScope(scope) {
42
+ return resourceScopeNames.has(scope);
43
+ }
44
+ function resourceScope(resource) {
45
+ return isResourceScope(resource.scope) ? resource.scope : null;
46
+ }
47
+ function resourceFacts(resource) {
48
+ const scope = resourceScope(resource);
49
+ return scope === null ? null : { name: resource.name, scope };
50
+ }
51
+ function resourceDefinitionEnvelope(resource) {
52
+ return {
53
+ dependencies: resource.dependencies.toSorted(function compareDependencies(left, right) {
54
+ return left.localeCompare(right);
55
+ }),
56
+ handleTransport: resource.handleTransport,
57
+ requirements: resource.requirements,
58
+ scenarios: resource.scenarios,
59
+ scope: resource.scope
60
+ };
61
+ }
62
+ function runtimeSummaryForId(runtimes, runtimeId) {
63
+ return runtimes.find(function runtimeNameMatches(runtime) {
64
+ return runtime.name === runtimeId.name;
65
+ }) ?? null;
66
+ }
67
+ function recordResourceDefinitions(entry, resources) {
68
+ const updatedResources = new Map(resources);
69
+ for (const resource of entry.testCase.resourceAttachments.resourceGraph) {
70
+ const definitions = new Map(updatedResources.get(resource.name));
71
+ const envelope = stableJson(resourceDefinitionEnvelope(resource));
72
+ const definition = definitions.get(envelope) ?? { resource, work: [] };
73
+ definitions.set(envelope, { resource, work: [...definition.work, entry.workId] });
74
+ updatedResources.set(resource.name, definitions);
75
+ }
76
+ return updatedResources;
77
+ }
78
+ function recordRuntimeDefinition(entry, runtimeId, runtimes) {
79
+ const runtime = runtimeSummaryForId(entry.testCase.resourceAttachments.runtimeGraphs, runtimeId);
80
+ if (runtime === null) {
81
+ return runtimes;
82
+ }
83
+ const runtimeKey = runtimeIdentityKey(runtimeId);
84
+ const existing = runtimes.get(runtimeKey);
85
+ const definitions = new Map(existing?.definitions);
86
+ const envelope = stableJson(runtime);
87
+ definitions.set(envelope, [...definitions.get(envelope) ?? [], entry.workId]);
88
+ return mapWith(runtimes, runtimeKey, { definitions, runtime: runtimeId });
89
+ }
90
+ function resourceDefinitionConflict(name, definitions) {
91
+ const values = Array.from(definitions.values());
92
+ const facts = values.flatMap(function definitionFacts(definition) {
93
+ const factsForResource = resourceFacts(definition.resource);
94
+ return factsForResource === null ? [] : [factsForResource];
95
+ });
96
+ const work = uniqueWork(values.flatMap(function definitionWork(definition) {
97
+ return definition.work;
98
+ }));
99
+ return definitions.size <= 1 || facts.length === 0 || work.length === 0 ? [] : [{
100
+ definitions: nonEmpty(facts, 'Resource definition conflict requires resource facts.'),
101
+ kind: 'resource-definition',
102
+ name,
103
+ work: nonEmpty(work, 'Resource definition conflict requires work.')
104
+ }];
105
+ }
106
+ function runtimeDefinitionConflict(record) {
107
+ const work = uniqueWork(Array.from(record.definitions.values()).flat());
108
+ return record.definitions.size <= 1 ? [] : [{
109
+ kind: 'runtime-definition',
110
+ runtime: record.runtime,
111
+ work: nonEmpty(work, 'Runtime definition conflict requires work.')
112
+ }];
113
+ }
114
+ function identityConflicts(plan) {
115
+ let resources = new Map();
116
+ let runtimes = new Map();
117
+ for (const entry of collectedRunCaseEntries(plan)) {
118
+ resources = recordResourceDefinitions(entry, resources);
119
+ for (const runtimeId of entry.workId.runtimes) {
120
+ runtimes = recordRuntimeDefinition(entry, runtimeId, runtimes);
121
+ }
122
+ }
123
+ return [
124
+ ...Array
125
+ .from(resources, function resourceConflict([name, definitions]) {
126
+ return resourceDefinitionConflict(name, definitions);
127
+ })
128
+ .flat(),
129
+ ...Array.from(runtimes.values()).flatMap(runtimeDefinitionConflict)
130
+ ];
131
+ }
132
+ function dependencyConflictRecord(resource, dependency) {
133
+ const resourceValue = resourceFacts(resource);
134
+ const dependencyValue = resourceFacts(dependency);
135
+ if (resourceValue === null || dependencyValue === null) {
136
+ return null;
137
+ }
138
+ return resourceDependencyScopeAllowed(resourceValue, dependencyValue)
139
+ ? null
140
+ : { dependency: dependencyValue, resource: resourceValue };
141
+ }
142
+ function recordResourceDependencyConflicts(entry, resource, resources, conflicts) {
143
+ let updatedConflicts = conflicts;
144
+ for (const dependencyName of resource.dependencies) {
145
+ const dependency = resources.get(dependencyName);
146
+ const record = dependency === undefined ? null : dependencyConflictRecord(resource, dependency);
147
+ if (record !== null) {
148
+ const key = stableJson(record);
149
+ const existing = updatedConflicts.get(key);
150
+ updatedConflicts = mapWith(updatedConflicts, key, {
151
+ ...record,
152
+ work: [...existing?.work ?? [], entry.workId]
153
+ });
154
+ }
155
+ }
156
+ return updatedConflicts;
157
+ }
158
+ function recordDependencyConflicts(entry, conflicts) {
159
+ const resources = new Map(entry.testCase.resourceAttachments.resourceGraph.map(function resourceEntry(resource) {
160
+ return [resource.name, resource];
161
+ }));
162
+ let updatedConflicts = conflicts;
163
+ for (const resource of resources.values()) {
164
+ updatedConflicts = recordResourceDependencyConflicts(entry, resource, resources, updatedConflicts);
165
+ }
166
+ return updatedConflicts;
167
+ }
168
+ function dependencyScopeConflicts(plan) {
169
+ let conflicts = new Map();
170
+ for (const entry of collectedRunCaseEntries(plan)) {
171
+ conflicts = recordDependencyConflicts(entry, conflicts);
172
+ }
173
+ return Array.from(conflicts.values(), function dependencyConflict(conflict) {
174
+ return {
175
+ dependency: conflict.dependency,
176
+ kind: 'resource-dependency-scope',
177
+ resource: conflict.resource,
178
+ work: nonEmpty(uniqueWork(conflict.work), 'Resource dependency conflict requires work.')
179
+ };
180
+ });
181
+ }
182
+ function caseBoundaryRecords(entry) {
183
+ return caseResourceOwnershipBoundaries({
184
+ id: entry.id,
185
+ resourceAttachments: entry.testCase.resourceAttachments,
186
+ workId: entry.workId
187
+ });
188
+ }
189
+ const sharedResourceScopes = new Set(['per-file', 'per-run', 'per-suite']);
190
+ function isSharedBoundary(boundary) {
191
+ return sharedResourceScopes.has(boundary.scope);
192
+ }
193
+ function recordSharedBoundaries(entry, boundaries) {
194
+ return caseBoundaryRecords(entry).reduce(function addSharedBoundary(updatedBoundaries, boundary) {
195
+ if (!isSharedBoundary(boundary)) {
196
+ return updatedBoundaries;
197
+ }
198
+ const record = updatedBoundaries.get(boundary.key) ?? { boundary, work: [] };
199
+ return mapWith(updatedBoundaries, boundary.key, {
200
+ boundary,
201
+ work: [...record.work, entry.workId]
202
+ });
203
+ }, boundaries);
204
+ }
205
+ function sharedBoundaryWork(plan) {
206
+ let boundaries = new Map();
207
+ for (const entry of collectedRunCaseEntries(plan)) {
208
+ boundaries = recordSharedBoundaries(entry, boundaries);
209
+ }
210
+ return Array.from(boundaries.values(), function boundaryRecord(record) {
211
+ return { boundary: record.boundary, work: uniqueWork(record.work) };
212
+ });
213
+ }
214
+ function unitsByWork(units) {
215
+ return new Map(units.flatMap(function unitWorkEntries(unit) {
216
+ return unit.work.map(function unitWorkEntry(work) {
217
+ return [workIdentityKey(work), unit];
218
+ });
219
+ }));
220
+ }
221
+ function boundaryUnits(boundary, units) {
222
+ const unitsById = new Map(boundary.work.flatMap(function boundaryUnit(work) {
223
+ const unit = units.get(workIdentityKey(work));
224
+ return unit === undefined ? [] : [[stableJson(unit.id), unit]];
225
+ }));
226
+ return Array.from(unitsById.values());
227
+ }
228
+ function projectionConflicts(plan, units, workerCount) {
229
+ const indexedUnits = unitsByWork(units);
230
+ return sharedBoundaryWork(plan).flatMap(function boundaryConflict(record) {
231
+ const owners = boundaryUnits(record, indexedUnits);
232
+ const usesFreshWorker = owners.some(function unitUsesFreshWorker(unit) {
233
+ return unit.workerLifecycle === 'fresh-worker-per-unit';
234
+ });
235
+ const spansUnitsWithoutOneReusableLane = owners.length > 1 && (workerCount > 1 || usesFreshWorker);
236
+ const needsProjection = record.boundary.scope === 'per-run' || spansUnitsWithoutOneReusableLane;
237
+ if (!needsProjection || record.boundary.handleTransport === 'projected') {
238
+ return [];
239
+ }
240
+ return [{
241
+ boundaryKey: record.boundary.key,
242
+ kind: 'resource-projection-required',
243
+ resource: {
244
+ name: record.boundary.resourceName,
245
+ scope: record.boundary.scope
246
+ },
247
+ work: nonEmpty(record.work, 'Resource projection conflict requires work.')
248
+ }];
249
+ });
250
+ }
251
+ function lifecycleConflicts(units) {
252
+ const unitsByConstraint = new Map();
253
+ for (const unit of units) {
254
+ for (const constraint of hardConstraintKeys(unit.resourceConstraints)) {
255
+ const constrainedUnits = unitsByConstraint.get(constraint) ?? [];
256
+ constrainedUnits.push(unit);
257
+ unitsByConstraint.set(constraint, constrainedUnits);
258
+ }
259
+ }
260
+ return Array
261
+ .from(unitsByConstraint, function lifecycleConflict([constraint, constrainedUnits]) {
262
+ const lifecycleSet = new Set(constrainedUnits.map(function unitLifecycle(unit) {
263
+ return unit.workerLifecycle;
264
+ }));
265
+ const lifecycles = Array.from(lifecycleSet);
266
+ return lifecycles.length <= 1 ? [] : [{
267
+ constraint,
268
+ kind: 'worker-lifecycle',
269
+ lifecycles: nonEmpty(lifecycles, 'Worker lifecycle conflict requires lifecycles.'),
270
+ units: nonEmpty(constrainedUnits.map(function conflictingUnit(unit) {
271
+ return unit.id;
272
+ }), 'Worker lifecycle conflict requires units.')
273
+ }];
274
+ })
275
+ .flat();
276
+ }
277
+ function workerCapacityConflict(input) {
278
+ if (input.workerCount.resolved >= input.requiredLifecycleLanes) {
279
+ return [];
280
+ }
281
+ const lifecycleSet = new Set(input.units.map(function unitLifecycle(unit) {
282
+ return unit.workerLifecycle;
283
+ }));
284
+ const lifecycles = Array.from(lifecycleSet);
285
+ return [{
286
+ available: input.workerCount.resolved,
287
+ kind: 'worker-capacity',
288
+ lifecycles: nonEmpty(lifecycles, 'Worker capacity conflict requires lifecycles.'),
289
+ required: input.requiredLifecycleLanes
290
+ }];
291
+ }
292
+ function conflictKey(conflict) {
293
+ return `${conflict.kind}:${stableJson(conflict)}`;
294
+ }
295
+ function sortedConflicts(conflicts) {
296
+ return conflicts.toSorted(function compareConflicts(left, right) {
297
+ return conflictKey(left).localeCompare(conflictKey(right));
298
+ });
299
+ }
300
+ export function collectedPlanCompatibilityConflicts(plan) {
301
+ return sortedConflicts([...identityConflicts(plan), ...dependencyScopeConflicts(plan)]);
302
+ }
303
+ export function executionPlanCompatibilityConflicts(input) {
304
+ return sortedConflicts([
305
+ ...collectedPlanCompatibilityConflicts(input.selectedPlan),
306
+ ...projectionConflicts(input.selectedPlan, input.units, input.workerCount.resolved),
307
+ ...lifecycleConflicts(input.units),
308
+ ...workerCapacityConflict(input)
309
+ ]);
310
+ }
311
+ function singleReuseLane(units, lanes) {
312
+ const lane = lanes[0];
313
+ const allUnitsReuseWorkers = units.every(function unitReusesWorker(unit) {
314
+ return unit.workerLifecycle === 'reuse';
315
+ });
316
+ return lanes.length === 1 && lane !== undefined && allUnitsReuseWorkers
317
+ ? lane
318
+ : null;
319
+ }
320
+ function infrastructureOwner() {
321
+ return { id: 'resource-owner', kind: 'infrastructure-worker' };
322
+ }
323
+ function ownerPlacement(record, ownerUnits, reusableLane) {
324
+ if (record.boundary.scope === 'per-run') {
325
+ return reusableLane === null
326
+ ? infrastructureOwner()
327
+ : { kind: 'executor-lane', lane: reusableLane.id };
328
+ }
329
+ const onlyUnit = ownerUnits[0];
330
+ if (ownerUnits.length === 1 && onlyUnit !== undefined) {
331
+ return { kind: 'work-unit', unit: onlyUnit.id };
332
+ }
333
+ return reusableLane === null
334
+ ? infrastructureOwner()
335
+ : { kind: 'executor-lane', lane: reusableLane.id };
336
+ }
337
+ export function createResourceOwnershipPlan(input) {
338
+ const indexedUnits = unitsByWork(input.units);
339
+ const reusableLane = singleReuseLane(input.units, input.lanes);
340
+ const owners = sharedBoundaryWork(input.selectedPlan)
341
+ .map(function plannedOwner(record) {
342
+ const ownerUnits = boundaryUnits(record, indexedUnits);
343
+ return {
344
+ boundaryKey: record.boundary.key,
345
+ placement: ownerPlacement(record, ownerUnits, reusableLane),
346
+ resourceName: record.boundary.resourceName,
347
+ scope: record.boundary.scope,
348
+ work: nonEmpty(record.work, 'Resource owner requires work.')
349
+ };
350
+ })
351
+ .toSorted(function compareOwners(left, right) {
352
+ return left.boundaryKey.localeCompare(right.boundaryKey);
353
+ });
354
+ return { owners };
355
+ }
356
+ //# sourceMappingURL=execution-plan-resolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-plan-resolution.js","sourceRoot":"","sources":["../../../../source/run/execution-plan-resolution.ts"],"names":[],"mappings":"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"}
@@ -15,10 +15,20 @@ const permissionDiagnosticsCapabilities = {
15
15
  function permissionDiagnosticsPhase(loadComplete) {
16
16
  return loadComplete ? 'out-of-test' : 'load';
17
17
  }
18
+ function permissionWasDropped(message) {
19
+ return typeof message === 'object' && message !== null && Reflect.get(message, 'drop') === true;
20
+ }
21
+ function ignorePermissionDropDiagnostics(recordDiagnostic) {
22
+ return function recordPermissionDenial(message) {
23
+ if (!permissionWasDropped(message)) {
24
+ recordDiagnostic(message);
25
+ }
26
+ };
27
+ }
18
28
  export function createPermissionDiagnosticsSubscriptions(activeCaseStorage, phase, recordError) {
19
29
  return Object.entries(permissionDiagnosticsCapabilities).map(function subscribeToPermissionChannel([name, capability]) {
20
30
  const channel = diagnosticsChannel.channel(name);
21
- const listener = function recordDiagnostic(message) {
31
+ const listener = ignorePermissionDropDiagnostics(function recordDiagnostic(message) {
22
32
  const activeCase = activeCaseStorage.getStore();
23
33
  recordError(permissionDeniedRunnerErrorFromDiagnostic({
24
34
  channel: name,
@@ -32,7 +42,7 @@ export function createPermissionDiagnosticsSubscriptions(activeCaseStorage, phas
32
42
  hook: null,
33
43
  phase: activeCase === undefined ? phase() : 'body'
34
44
  }));
35
- };
45
+ });
36
46
  channel.subscribe(listener);
37
47
  return {
38
48
  unsubscribe() {