audit-tools 0.34.41 → 0.35.0

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 (328) hide show
  1. package/dist/audit/cli/args.d.ts +6 -0
  2. package/dist/audit/cli/args.d.ts.map +1 -1
  3. package/dist/audit/cli/args.js +21 -4
  4. package/dist/audit/cli/args.js.map +1 -1
  5. package/dist/audit/cli/auditStep.d.ts +6 -15
  6. package/dist/audit/cli/auditStep.d.ts.map +1 -1
  7. package/dist/audit/cli/auditStep.js +1 -1
  8. package/dist/audit/cli/auditStep.js.map +1 -1
  9. package/dist/audit/cli/dispatch/hostFanoutGate.d.ts +21 -61
  10. package/dist/audit/cli/dispatch/hostFanoutGate.d.ts.map +1 -1
  11. package/dist/audit/cli/dispatch/hostFanoutGate.js +18 -167
  12. package/dist/audit/cli/dispatch/hostFanoutGate.js.map +1 -1
  13. package/dist/audit/cli/dispatch/packetFilter.d.ts +2 -2
  14. package/dist/audit/cli/dispatch/packetFilter.d.ts.map +1 -1
  15. package/dist/audit/cli/dispatch/packetFilter.js +3 -1
  16. package/dist/audit/cli/dispatch/packetFilter.js.map +1 -1
  17. package/dist/audit/cli/dispatch/quotaPool.d.ts +2 -14
  18. package/dist/audit/cli/dispatch/quotaPool.d.ts.map +1 -1
  19. package/dist/audit/cli/dispatch/quotaPool.js +16 -6
  20. package/dist/audit/cli/dispatch/quotaPool.js.map +1 -1
  21. package/dist/audit/cli/dispatch/tierRouting.d.ts +2 -2
  22. package/dist/audit/cli/dispatch/tokenUsageObservation.d.ts.map +1 -1
  23. package/dist/audit/cli/dispatch/tokenUsageObservation.js +10 -2
  24. package/dist/audit/cli/dispatch/tokenUsageObservation.js.map +1 -1
  25. package/dist/audit/cli/dispatch.d.ts +14 -3
  26. package/dist/audit/cli/dispatch.d.ts.map +1 -1
  27. package/dist/audit/cli/dispatch.js +87 -65
  28. package/dist/audit/cli/dispatch.js.map +1 -1
  29. package/dist/audit/cli/forceSynthesisCommand.d.ts.map +1 -1
  30. package/dist/audit/cli/forceSynthesisCommand.js +9 -1
  31. package/dist/audit/cli/forceSynthesisCommand.js.map +1 -1
  32. package/dist/audit/cli/hybridDispatch.d.ts +4 -9
  33. package/dist/audit/cli/hybridDispatch.d.ts.map +1 -1
  34. package/dist/audit/cli/hybridDispatch.js +1 -1
  35. package/dist/audit/cli/hybridDispatch.js.map +1 -1
  36. package/dist/audit/cli/lineIndex.d.ts +2 -0
  37. package/dist/audit/cli/lineIndex.d.ts.map +1 -1
  38. package/dist/audit/cli/lineIndex.js +4 -0
  39. package/dist/audit/cli/lineIndex.js.map +1 -1
  40. package/dist/audit/cli/nextStepCommand.d.ts +0 -26
  41. package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
  42. package/dist/audit/cli/nextStepCommand.js +14 -358
  43. package/dist/audit/cli/nextStepCommand.js.map +1 -1
  44. package/dist/audit/cli/nextStepHelpers.d.ts +5 -16
  45. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  46. package/dist/audit/cli/nextStepHelpers.js +27 -157
  47. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  48. package/dist/audit/cli/quotaCommand.d.ts.map +1 -1
  49. package/dist/audit/cli/quotaCommand.js +1 -5
  50. package/dist/audit/cli/quotaCommand.js.map +1 -1
  51. package/dist/audit/cli/reviewRun.d.ts.map +1 -1
  52. package/dist/audit/cli/reviewRun.js +58 -23
  53. package/dist/audit/cli/reviewRun.js.map +1 -1
  54. package/dist/audit/cli/rollingAuditDispatch.d.ts +1 -1
  55. package/dist/audit/cli/semanticReviewStep.d.ts.map +1 -1
  56. package/dist/audit/cli/semanticReviewStep.js +35 -54
  57. package/dist/audit/cli/semanticReviewStep.js.map +1 -1
  58. package/dist/audit/cli/steps.d.ts +4 -4
  59. package/dist/audit/cli/steps.d.ts.map +1 -1
  60. package/dist/audit/cli/steps.js +0 -1
  61. package/dist/audit/cli/steps.js.map +1 -1
  62. package/dist/audit/cli/workPartitionRuntime.d.ts +11 -0
  63. package/dist/audit/cli/workPartitionRuntime.d.ts.map +1 -0
  64. package/dist/audit/cli/workPartitionRuntime.js +39 -0
  65. package/dist/audit/cli/workPartitionRuntime.js.map +1 -0
  66. package/dist/audit/contracts/wrapperResponse.d.ts +6 -6
  67. package/dist/audit/io/artifacts.d.ts +1 -3
  68. package/dist/audit/io/artifacts.d.ts.map +1 -1
  69. package/dist/audit/io/artifacts.js +0 -3
  70. package/dist/audit/io/artifacts.js.map +1 -1
  71. package/dist/audit/orchestrator/advance.d.ts.map +1 -1
  72. package/dist/audit/orchestrator/advance.js +0 -35
  73. package/dist/audit/orchestrator/advance.js.map +1 -1
  74. package/dist/audit/orchestrator/advanceTypes.d.ts +4 -63
  75. package/dist/audit/orchestrator/advanceTypes.d.ts.map +1 -1
  76. package/dist/audit/orchestrator/executorRunners.d.ts.map +1 -1
  77. package/dist/audit/orchestrator/executorRunners.js +9 -12
  78. package/dist/audit/orchestrator/executorRunners.js.map +1 -1
  79. package/dist/audit/orchestrator/executors.d.ts.map +1 -1
  80. package/dist/audit/orchestrator/executors.js +0 -5
  81. package/dist/audit/orchestrator/executors.js.map +1 -1
  82. package/dist/audit/orchestrator/hostInputPause.d.ts +1 -1
  83. package/dist/audit/orchestrator/hostInputPause.js +1 -1
  84. package/dist/audit/orchestrator/ingestionExecutors.d.ts.map +1 -1
  85. package/dist/audit/orchestrator/ingestionExecutors.js +4 -1
  86. package/dist/audit/orchestrator/ingestionExecutors.js.map +1 -1
  87. package/dist/audit/orchestrator/intakeExecutors.d.ts +1 -65
  88. package/dist/audit/orchestrator/intakeExecutors.d.ts.map +1 -1
  89. package/dist/audit/orchestrator/intakeExecutors.js +3 -425
  90. package/dist/audit/orchestrator/intakeExecutors.js.map +1 -1
  91. package/dist/audit/orchestrator/nextStep.d.ts +0 -13
  92. package/dist/audit/orchestrator/nextStep.d.ts.map +1 -1
  93. package/dist/audit/orchestrator/nextStep.js +0 -7
  94. package/dist/audit/orchestrator/nextStep.js.map +1 -1
  95. package/dist/audit/orchestrator/planningExecutors.d.ts.map +1 -1
  96. package/dist/audit/orchestrator/planningExecutors.js +4 -1
  97. package/dist/audit/orchestrator/planningExecutors.js.map +1 -1
  98. package/dist/audit/orchestrator/rollingDispatch.d.ts +1 -1
  99. package/dist/audit/orchestrator/rollingDispatch.d.ts.map +1 -1
  100. package/dist/audit/orchestrator/rollingDispatch.js +5 -4
  101. package/dist/audit/orchestrator/rollingDispatch.js.map +1 -1
  102. package/dist/audit/orchestrator/state.d.ts +0 -39
  103. package/dist/audit/orchestrator/state.d.ts.map +1 -1
  104. package/dist/audit/orchestrator/state.js +3 -29
  105. package/dist/audit/orchestrator/state.js.map +1 -1
  106. package/dist/audit/orchestrator/synthesisExecutors.d.ts +8 -2
  107. package/dist/audit/orchestrator/synthesisExecutors.d.ts.map +1 -1
  108. package/dist/audit/orchestrator/synthesisExecutors.js +7 -5
  109. package/dist/audit/orchestrator/synthesisExecutors.js.map +1 -1
  110. package/dist/audit/reporting/findingIdentity.d.ts +2 -2
  111. package/dist/audit/reporting/findingIdentity.js +2 -2
  112. package/dist/audit/reporting/synthesis.d.ts +7 -1
  113. package/dist/audit/reporting/synthesis.d.ts.map +1 -1
  114. package/dist/audit/reporting/synthesis.js +27 -7
  115. package/dist/audit/reporting/synthesis.js.map +1 -1
  116. package/dist/audit/reporting/workBlocks.d.ts +14 -3
  117. package/dist/audit/reporting/workBlocks.d.ts.map +1 -1
  118. package/dist/audit/reporting/workBlocks.js +163 -73
  119. package/dist/audit/reporting/workBlocks.js.map +1 -1
  120. package/dist/audit/types/activeDispatch.d.ts +8 -7
  121. package/dist/audit/types/activeDispatch.d.ts.map +1 -1
  122. package/dist/audit/types/auditState.d.ts +6 -6
  123. package/dist/audit/types/externalAnalyzer.d.ts +6 -6
  124. package/dist/audit/validation/auditResults.d.ts.map +1 -1
  125. package/dist/audit/validation/auditResults.js +6 -1
  126. package/dist/audit/validation/auditResults.js.map +1 -1
  127. package/dist/remediate/contractPipeline/phaseCut.d.ts +8 -0
  128. package/dist/remediate/contractPipeline/phaseCut.d.ts.map +1 -1
  129. package/dist/remediate/contractPipeline/phaseCut.js +63 -0
  130. package/dist/remediate/contractPipeline/phaseCut.js.map +1 -1
  131. package/dist/remediate/contractPipeline/phaseCutArtifact.d.ts.map +1 -1
  132. package/dist/remediate/contractPipeline/phaseCutArtifact.js +5 -3
  133. package/dist/remediate/contractPipeline/phaseCutArtifact.js.map +1 -1
  134. package/dist/remediate/phases/plan.d.ts.map +1 -1
  135. package/dist/remediate/phases/plan.js +35 -12
  136. package/dist/remediate/phases/plan.js.map +1 -1
  137. package/dist/remediate/steps/contractPipeline.d.ts +6 -2
  138. package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
  139. package/dist/remediate/steps/contractPipeline.js +90 -6
  140. package/dist/remediate/steps/contractPipeline.js.map +1 -1
  141. package/dist/remediate/steps/contractPipelinePrompts.d.ts.map +1 -1
  142. package/dist/remediate/steps/contractPipelinePrompts.js +4 -2
  143. package/dist/remediate/steps/contractPipelinePrompts.js.map +1 -1
  144. package/dist/remediate/steps/dispatch/marshal.d.ts +6 -0
  145. package/dist/remediate/steps/dispatch/marshal.d.ts.map +1 -1
  146. package/dist/remediate/steps/dispatch/marshal.js +16 -17
  147. package/dist/remediate/steps/dispatch/marshal.js.map +1 -1
  148. package/dist/remediate/steps/dispatch/waveScheduling.d.ts +7 -15
  149. package/dist/remediate/steps/dispatch/waveScheduling.d.ts.map +1 -1
  150. package/dist/remediate/steps/dispatch/waveScheduling.js +26 -19
  151. package/dist/remediate/steps/dispatch/waveScheduling.js.map +1 -1
  152. package/dist/remediate/steps/nextStep.d.ts +5 -7
  153. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  154. package/dist/remediate/steps/nextStep.js +100 -82
  155. package/dist/remediate/steps/nextStep.js.map +1 -1
  156. package/dist/remediate/steps/rollingSession.d.ts +2 -1
  157. package/dist/remediate/steps/rollingSession.d.ts.map +1 -1
  158. package/dist/remediate/steps/rollingSession.js +14 -8
  159. package/dist/remediate/steps/rollingSession.js.map +1 -1
  160. package/dist/remediate/steps/sessionConfigLoad.d.ts +3 -2
  161. package/dist/remediate/steps/sessionConfigLoad.d.ts.map +1 -1
  162. package/dist/remediate/steps/sessionConfigLoad.js +4 -10
  163. package/dist/remediate/steps/sessionConfigLoad.js.map +1 -1
  164. package/dist/remediate/validation/contractPipeline.d.ts +1 -1
  165. package/dist/remediate/validation/contractPipeline.d.ts.map +1 -1
  166. package/dist/remediate/validation/contractPipeline.js +7 -1
  167. package/dist/remediate/validation/contractPipeline.js.map +1 -1
  168. package/dist/remediate/validation/contractPipelineGates.d.ts +8 -0
  169. package/dist/remediate/validation/contractPipelineGates.d.ts.map +1 -1
  170. package/dist/remediate/validation/contractPipelineGates.js +89 -0
  171. package/dist/remediate/validation/contractPipelineGates.js.map +1 -1
  172. package/dist/shared/config/resolveSessionConfig.d.ts.map +1 -1
  173. package/dist/shared/config/resolveSessionConfig.js +6 -5
  174. package/dist/shared/config/resolveSessionConfig.js.map +1 -1
  175. package/dist/shared/decompose/workPartition.d.ts +66 -0
  176. package/dist/shared/decompose/workPartition.d.ts.map +1 -0
  177. package/dist/shared/decompose/workPartition.js +523 -0
  178. package/dist/shared/decompose/workPartition.js.map +1 -0
  179. package/dist/shared/dispatch/admissionLoop.d.ts +5 -44
  180. package/dist/shared/dispatch/admissionLoop.d.ts.map +1 -1
  181. package/dist/shared/dispatch/admissionLoop.js +20 -82
  182. package/dist/shared/dispatch/admissionLoop.js.map +1 -1
  183. package/dist/shared/dispatch/coordinator.d.ts +5 -5
  184. package/dist/shared/dispatch/coordinator.d.ts.map +1 -1
  185. package/dist/shared/dispatch/coordinator.js +12 -11
  186. package/dist/shared/dispatch/coordinator.js.map +1 -1
  187. package/dist/shared/dispatch/costRank.d.ts +5 -155
  188. package/dist/shared/dispatch/costRank.d.ts.map +1 -1
  189. package/dist/shared/dispatch/costRank.js +2 -179
  190. package/dist/shared/dispatch/costRank.js.map +1 -1
  191. package/dist/shared/dispatch/dispatchQuotaContract.d.ts +37 -38
  192. package/dist/shared/dispatch/dispatchQuotaContract.d.ts.map +1 -1
  193. package/dist/shared/dispatch/dispatchQuotaContract.js +0 -1
  194. package/dist/shared/dispatch/dispatchQuotaContract.js.map +1 -1
  195. package/dist/shared/dispatch/hybridDispatch.d.ts +6 -2
  196. package/dist/shared/dispatch/hybridDispatch.d.ts.map +1 -1
  197. package/dist/shared/dispatch/hybridDispatch.js +1 -1
  198. package/dist/shared/dispatch/hybridDispatch.js.map +1 -1
  199. package/dist/shared/dispatch/rollingDispatch.d.ts +4 -4
  200. package/dist/shared/dispatch/rollingDispatch.d.ts.map +1 -1
  201. package/dist/shared/dispatch/rollingDispatch.js +13 -11
  202. package/dist/shared/dispatch/rollingDispatch.js.map +1 -1
  203. package/dist/shared/dispatch/unifiedRolling.d.ts +2 -2
  204. package/dist/shared/dispatch/unifiedRolling.d.ts.map +1 -1
  205. package/dist/shared/dispatch/unifiedRolling.js +1 -1
  206. package/dist/shared/dispatch/unifiedRolling.js.map +1 -1
  207. package/dist/shared/engine/obligationEngine.d.ts +2 -2
  208. package/dist/shared/friction/stepBoundaryCapture.d.ts +5 -59
  209. package/dist/shared/friction/stepBoundaryCapture.d.ts.map +1 -1
  210. package/dist/shared/friction/stepBoundaryCapture.js +11 -107
  211. package/dist/shared/friction/stepBoundaryCapture.js.map +1 -1
  212. package/dist/shared/index.d.ts +13 -16
  213. package/dist/shared/index.d.ts.map +1 -1
  214. package/dist/shared/index.js +9 -13
  215. package/dist/shared/index.js.map +1 -1
  216. package/dist/shared/io/stateDir.d.ts +2 -2
  217. package/dist/shared/io/stateDir.js +2 -2
  218. package/dist/shared/providers/auditorSources.d.ts +10 -84
  219. package/dist/shared/providers/auditorSources.d.ts.map +1 -1
  220. package/dist/shared/providers/auditorSources.js +42 -261
  221. package/dist/shared/providers/auditorSources.js.map +1 -1
  222. package/dist/shared/providers/dispatchExclusion.d.ts +22 -0
  223. package/dist/shared/providers/dispatchExclusion.d.ts.map +1 -0
  224. package/dist/shared/providers/dispatchExclusion.js +23 -0
  225. package/dist/shared/providers/dispatchExclusion.js.map +1 -0
  226. package/dist/shared/providers/identity.d.ts +2 -66
  227. package/dist/shared/providers/identity.d.ts.map +1 -1
  228. package/dist/shared/providers/identity.js +2 -72
  229. package/dist/shared/providers/identity.js.map +1 -1
  230. package/dist/shared/providers/providerFactory.d.ts +0 -3
  231. package/dist/shared/providers/providerFactory.d.ts.map +1 -1
  232. package/dist/shared/providers/providerFactory.js +5 -32
  233. package/dist/shared/providers/providerFactory.js.map +1 -1
  234. package/dist/shared/providers/providerPathGuard.d.ts +3 -3
  235. package/dist/shared/providers/providerPathGuard.js +7 -7
  236. package/dist/shared/providers/providerPathGuard.js.map +1 -1
  237. package/dist/shared/quota/apiPool.d.ts +19 -22
  238. package/dist/shared/quota/apiPool.d.ts.map +1 -1
  239. package/dist/shared/quota/apiPool.js +66 -47
  240. package/dist/shared/quota/apiPool.js.map +1 -1
  241. package/dist/shared/quota/capacity.d.ts +29 -24
  242. package/dist/shared/quota/capacity.d.ts.map +1 -1
  243. package/dist/shared/quota/capacity.js +30 -4
  244. package/dist/shared/quota/capacity.js.map +1 -1
  245. package/dist/shared/quota/codexHostConfig.d.ts +6 -13
  246. package/dist/shared/quota/codexHostConfig.d.ts.map +1 -1
  247. package/dist/shared/quota/codexHostConfig.js +8 -14
  248. package/dist/shared/quota/codexHostConfig.js.map +1 -1
  249. package/dist/shared/quota/fileLock.d.ts +7 -0
  250. package/dist/shared/quota/fileLock.d.ts.map +1 -1
  251. package/dist/shared/quota/fileLock.js +32 -4
  252. package/dist/shared/quota/fileLock.js.map +1 -1
  253. package/dist/shared/quota/hostLimits.d.ts +1 -1
  254. package/dist/shared/quota/hostLimits.d.ts.map +1 -1
  255. package/dist/shared/quota/hostLimits.js +8 -11
  256. package/dist/shared/quota/hostLimits.js.map +1 -1
  257. package/dist/shared/quota/hostPool.d.ts +1 -1
  258. package/dist/shared/quota/hostPool.js +2 -2
  259. package/dist/shared/quota/hostPool.js.map +1 -1
  260. package/dist/shared/quota/limits.d.ts.map +1 -1
  261. package/dist/shared/quota/limits.js +30 -26
  262. package/dist/shared/quota/limits.js.map +1 -1
  263. package/dist/shared/quota/scheduler.d.ts +2 -3
  264. package/dist/shared/quota/scheduler.d.ts.map +1 -1
  265. package/dist/shared/quota/scheduler.js +1 -1
  266. package/dist/shared/quota/scheduler.js.map +1 -1
  267. package/dist/shared/quota/types.d.ts +10 -10
  268. package/dist/shared/quota/types.d.ts.map +1 -1
  269. package/dist/shared/quota/types.js +4 -7
  270. package/dist/shared/quota/types.js.map +1 -1
  271. package/dist/shared/repair/brokeredDispatch.d.ts.map +1 -1
  272. package/dist/shared/repair/brokeredDispatch.js +3 -0
  273. package/dist/shared/repair/brokeredDispatch.js.map +1 -1
  274. package/dist/shared/reporting/auditDeliverable.d.ts.map +1 -1
  275. package/dist/shared/reporting/auditDeliverable.js +1 -0
  276. package/dist/shared/reporting/auditDeliverable.js.map +1 -1
  277. package/dist/shared/rolling/pausedState.d.ts +7 -7
  278. package/dist/shared/rolling/pausedState.js +3 -3
  279. package/dist/shared/tokens.d.ts +2 -5
  280. package/dist/shared/tokens.d.ts.map +1 -1
  281. package/dist/shared/tokens.js +15 -15
  282. package/dist/shared/tokens.js.map +1 -1
  283. package/dist/shared/types/auditorDescriptor.d.ts +3 -2
  284. package/dist/shared/types/auditorDescriptor.d.ts.map +1 -1
  285. package/dist/shared/types/auditorDescriptor.js +3 -2
  286. package/dist/shared/types/auditorDescriptor.js.map +1 -1
  287. package/dist/shared/types/finding.d.ts +80 -0
  288. package/dist/shared/types/finding.d.ts.map +1 -1
  289. package/dist/shared/types/finding.js +17 -0
  290. package/dist/shared/types/finding.js.map +1 -1
  291. package/dist/shared/types/sessionConfig.d.ts +5 -5
  292. package/dist/shared/types/sessionConfig.js +1 -1
  293. package/dist/shared/validation/findingsReport.d.ts.map +1 -1
  294. package/dist/shared/validation/findingsReport.js +3 -0
  295. package/dist/shared/validation/findingsReport.js.map +1 -1
  296. package/docs/audit-pkg/development.md +3 -2
  297. package/docs/audit-pkg/operator-guide.md +13 -106
  298. package/docs/audit-pkg/product.md +8 -7
  299. package/docs/audit-pkg/release.md +38 -29
  300. package/opencode.json +2 -2
  301. package/package.json +7 -4
  302. package/skills/audit-code/SKILL.md +2 -1
  303. package/skills/audit-code/audit-code.prompt.md +4 -3
  304. package/skills/remediate-code/remediate-code.prompt.md +2 -1
  305. package/dist/audit/cli/providerConfirmationStep.d.ts +0 -106
  306. package/dist/audit/cli/providerConfirmationStep.d.ts.map +0 -1
  307. package/dist/audit/cli/providerConfirmationStep.js +0 -396
  308. package/dist/audit/cli/providerConfirmationStep.js.map +0 -1
  309. package/dist/audit/orchestrator/providerConfirmation.d.ts +0 -25
  310. package/dist/audit/orchestrator/providerConfirmation.d.ts.map +0 -1
  311. package/dist/audit/orchestrator/providerConfirmation.js +0 -60
  312. package/dist/audit/orchestrator/providerConfirmation.js.map +0 -1
  313. package/dist/shared/providers/providerConfirmation.d.ts +0 -141
  314. package/dist/shared/providers/providerConfirmation.d.ts.map +0 -1
  315. package/dist/shared/providers/providerConfirmation.js +0 -420
  316. package/dist/shared/providers/providerConfirmation.js.map +0 -1
  317. package/dist/shared/providers/proxyCatalog.d.ts +0 -158
  318. package/dist/shared/providers/proxyCatalog.d.ts.map +0 -1
  319. package/dist/shared/providers/proxyCatalog.js +0 -658
  320. package/dist/shared/providers/proxyCatalog.js.map +0 -1
  321. package/dist/shared/providers/sharedProviderConfirmation.d.ts +0 -802
  322. package/dist/shared/providers/sharedProviderConfirmation.d.ts.map +0 -1
  323. package/dist/shared/providers/sharedProviderConfirmation.js +0 -1865
  324. package/dist/shared/providers/sharedProviderConfirmation.js.map +0 -1
  325. package/dist/shared/types/providerConfirmation.d.ts +0 -334
  326. package/dist/shared/types/providerConfirmation.d.ts.map +0 -1
  327. package/dist/shared/types/providerConfirmation.js +0 -35
  328. package/dist/shared/types/providerConfirmation.js.map +0 -1
@@ -0,0 +1,523 @@
1
+ /**
2
+ * Deterministic, overlap-tolerant partitioning for audit/remediation work.
3
+ *
4
+ * Shared units and files are affinity signals, not union-find edges. Capacity is
5
+ * expressed only in estimated input tokens supplied by the current runtime; no
6
+ * finding-count target or ceiling exists. The optimizer compares dimensionless
7
+ * objectives with equal weight, so there is no hand-tuned coefficient table.
8
+ *
9
+ * PURE + DETERMINISTIC: no IO, clock, randomness, or incidental iteration order.
10
+ */
11
+ const UNTAGGED = "(untagged)";
12
+ const NO_UNIT = "(no-unit)";
13
+ function stableUnique(values) {
14
+ return [...new Set(values.filter((value) => value.length > 0))].sort((a, b) => a.localeCompare(b));
15
+ }
16
+ function resolvePolicy(policy) {
17
+ if (!Number.isFinite(policy.capacityTokens) || policy.capacityTokens < 0) {
18
+ throw new Error("work partition capacityTokens must be a finite non-negative number");
19
+ }
20
+ if (policy.availableParallelism != null &&
21
+ (!Number.isSafeInteger(policy.availableParallelism) ||
22
+ policy.availableParallelism <= 0)) {
23
+ throw new Error("work partition availableParallelism must be a positive integer when supplied");
24
+ }
25
+ return {
26
+ capacityTokens: policy.capacityTokens,
27
+ availableParallelism: policy.availableParallelism ?? null,
28
+ fileTokenCosts: policy.fileTokenCosts ?? {},
29
+ };
30
+ }
31
+ function normalizeItems(items) {
32
+ const byId = new Map();
33
+ for (const item of items) {
34
+ if (byId.has(item.id)) {
35
+ throw new Error(`work partition item id must be unique: ${item.id}`);
36
+ }
37
+ if (!Number.isFinite(item.estimatedTokens) || item.estimatedTokens < 0) {
38
+ throw new Error(`work partition item ${item.id} requires finite non-negative estimatedTokens`);
39
+ }
40
+ byId.set(item.id, {
41
+ id: item.id,
42
+ unitIds: stableUnique(item.unitIds),
43
+ files: stableUnique(item.files),
44
+ semanticTags: stableUnique(item.semanticTags),
45
+ estimatedTokens: item.estimatedTokens,
46
+ role: item.role ?? "implementation",
47
+ });
48
+ }
49
+ return [...byId.values()].sort((a, b) => a.id.localeCompare(b.id));
50
+ }
51
+ function intersection(a, b) {
52
+ const shared = [];
53
+ let left = 0;
54
+ let right = 0;
55
+ while (left < a.length && right < b.length) {
56
+ const comparison = a[left].localeCompare(b[right]);
57
+ if (comparison === 0) {
58
+ shared.push(a[left]);
59
+ left += 1;
60
+ right += 1;
61
+ }
62
+ else if (comparison < 0) {
63
+ left += 1;
64
+ }
65
+ else {
66
+ right += 1;
67
+ }
68
+ }
69
+ return shared;
70
+ }
71
+ function mean(values) {
72
+ return values.length === 0
73
+ ? 0
74
+ : values.reduce((sum, value) => sum + value, 0) / values.length;
75
+ }
76
+ function jaccard(a, b) {
77
+ if (a.length === 0 || b.length === 0)
78
+ return null;
79
+ let shared = 0;
80
+ let left = 0;
81
+ let right = 0;
82
+ while (left < a.length && right < b.length) {
83
+ const comparison = a[left].localeCompare(b[right]);
84
+ if (comparison === 0) {
85
+ shared += 1;
86
+ left += 1;
87
+ right += 1;
88
+ }
89
+ else if (comparison < 0) {
90
+ left += 1;
91
+ }
92
+ else {
93
+ right += 1;
94
+ }
95
+ }
96
+ return shared / (a.length + b.length - shared);
97
+ }
98
+ function normalizedEntropy(values, universeSize) {
99
+ if (values.length === 0 || universeSize <= 1)
100
+ return 0;
101
+ const counts = new Map();
102
+ for (const value of values)
103
+ counts.set(value, (counts.get(value) ?? 0) + 1);
104
+ let entropy = 0;
105
+ for (const count of counts.values()) {
106
+ const probability = count / values.length;
107
+ entropy -= probability * Math.log(probability);
108
+ }
109
+ return Math.min(1, entropy / Math.log(universeSize));
110
+ }
111
+ /** Average item-to-group semantic cross entropy, normalized to the input vocabulary. */
112
+ function semanticCrossEntropy(groupItems, semanticUniverseSize) {
113
+ if (groupItems.length === 0 || semanticUniverseSize <= 1)
114
+ return 0;
115
+ const counts = new Map();
116
+ let total = 0;
117
+ for (const item of groupItems) {
118
+ const tags = item.semanticTags.length > 0 ? item.semanticTags : [UNTAGGED];
119
+ for (const tag of tags) {
120
+ counts.set(tag, (counts.get(tag) ?? 0) + 1);
121
+ total += 1;
122
+ }
123
+ }
124
+ const itemScores = groupItems.map((item) => {
125
+ const tags = item.semanticTags.length > 0 ? item.semanticTags : [UNTAGGED];
126
+ return mean(tags.map((tag) => -Math.log((counts.get(tag) ?? 0) / total)));
127
+ });
128
+ return Math.min(1, mean(itemScores) / Math.log(semanticUniverseSize));
129
+ }
130
+ function fileTokenCost(path, fileTokenCosts) {
131
+ const value = fileTokenCosts[path];
132
+ return typeof value === "number" && Number.isFinite(value) && value > 0
133
+ ? value
134
+ : 0;
135
+ }
136
+ function countLogCount(count) {
137
+ return count <= 1 ? 0 : count * Math.log(count);
138
+ }
139
+ function semanticValues(item) {
140
+ return item.semanticTags.length > 0 ? item.semanticTags : [UNTAGGED];
141
+ }
142
+ function unitValues(item) {
143
+ return item.unitIds.length > 0 ? item.unitIds : [NO_UNIT];
144
+ }
145
+ function emptyAssignmentGroup() {
146
+ return {
147
+ items: [],
148
+ findingTokens: 0,
149
+ fileTokens: 0,
150
+ files: new Set(),
151
+ semanticCounts: new Map(),
152
+ semanticWeights: new Map(),
153
+ semanticWeightedLogCounts: 0,
154
+ semanticTotal: 0,
155
+ unitCounts: new Map(),
156
+ unitCountLogCounts: 0,
157
+ unitTotal: 0,
158
+ };
159
+ }
160
+ function addItemToAssignmentGroup(group, item, fileTokenCosts) {
161
+ group.items.push(item);
162
+ group.findingTokens += item.estimatedTokens;
163
+ for (const file of item.files) {
164
+ if (group.files.has(file))
165
+ continue;
166
+ group.files.add(file);
167
+ group.fileTokens += fileTokenCost(file, fileTokenCosts);
168
+ }
169
+ const tags = semanticValues(item);
170
+ const tagWeight = 1 / tags.length;
171
+ for (const tag of tags) {
172
+ const previousCount = group.semanticCounts.get(tag) ?? 0;
173
+ const previousWeight = group.semanticWeights.get(tag) ?? 0;
174
+ if (previousCount > 0) {
175
+ group.semanticWeightedLogCounts -=
176
+ previousWeight * Math.log(previousCount);
177
+ }
178
+ const nextCount = previousCount + 1;
179
+ const nextWeight = previousWeight + tagWeight;
180
+ group.semanticCounts.set(tag, nextCount);
181
+ group.semanticWeights.set(tag, nextWeight);
182
+ group.semanticWeightedLogCounts += nextWeight * Math.log(nextCount);
183
+ }
184
+ group.semanticTotal += tags.length;
185
+ for (const unit of unitValues(item)) {
186
+ const previousCount = group.unitCounts.get(unit) ?? 0;
187
+ group.unitCountLogCounts -= countLogCount(previousCount);
188
+ const nextCount = previousCount + 1;
189
+ group.unitCounts.set(unit, nextCount);
190
+ group.unitCountLogCounts += countLogCount(nextCount);
191
+ group.unitTotal += 1;
192
+ }
193
+ }
194
+ function createAssignmentGroup(seed, fileTokenCosts) {
195
+ const group = emptyAssignmentGroup();
196
+ addItemToAssignmentGroup(group, seed, fileTokenCosts);
197
+ return group;
198
+ }
199
+ function projectedGroupTokens(group, item, fileTokenCosts) {
200
+ let tokens = group.findingTokens + group.fileTokens + item.estimatedTokens;
201
+ for (const file of item.files) {
202
+ if (!group.files.has(file))
203
+ tokens += fileTokenCost(file, fileTokenCosts);
204
+ }
205
+ return tokens;
206
+ }
207
+ function projectedSemanticCrossEntropy(group, item, semanticUniverseSize) {
208
+ const tags = semanticValues(item);
209
+ const tagWeight = 1 / tags.length;
210
+ let weightedLogCounts = group.semanticWeightedLogCounts;
211
+ for (const tag of tags) {
212
+ const previousCount = group.semanticCounts.get(tag) ?? 0;
213
+ const previousWeight = group.semanticWeights.get(tag) ?? 0;
214
+ if (previousCount > 0)
215
+ weightedLogCounts -= previousWeight * Math.log(previousCount);
216
+ weightedLogCounts +=
217
+ (previousWeight + tagWeight) * Math.log(previousCount + 1);
218
+ }
219
+ const itemCount = group.items.length + 1;
220
+ const tagCount = group.semanticTotal + tags.length;
221
+ const crossEntropy = (itemCount * Math.log(tagCount) - weightedLogCounts) / itemCount;
222
+ return Math.min(1, crossEntropy / Math.log(Math.max(2, semanticUniverseSize)));
223
+ }
224
+ function projectedUnitEntropy(group, item, unitUniverseSize) {
225
+ const values = unitValues(item);
226
+ let countLogCounts = group.unitCountLogCounts;
227
+ for (const unit of values) {
228
+ const previousCount = group.unitCounts.get(unit) ?? 0;
229
+ countLogCounts -= countLogCount(previousCount);
230
+ countLogCounts += countLogCount(previousCount + 1);
231
+ }
232
+ const total = group.unitTotal + values.length;
233
+ const entropy = Math.log(total) - countLogCounts / total;
234
+ return Math.min(1, entropy / Math.log(Math.max(2, unitUniverseSize)));
235
+ }
236
+ function estimateGroupTokens(items, fileTokenCosts) {
237
+ const findingTokens = items.reduce((sum, item) => sum + item.estimatedTokens, 0);
238
+ const files = stableUnique(items.flatMap((item) => item.files));
239
+ return (findingTokens +
240
+ files.reduce((sum, path) => sum + fileTokenCost(path, fileTokenCosts), 0));
241
+ }
242
+ function materializeGroup(items, role, fileTokenCosts) {
243
+ return {
244
+ itemIds: items.map((item) => item.id).sort((a, b) => a.localeCompare(b)),
245
+ unitIds: stableUnique(items.flatMap((item) => item.unitIds)),
246
+ files: stableUnique(items.flatMap((item) => item.files)),
247
+ role,
248
+ estimatedTokens: estimateGroupTokens(items, fileTokenCosts),
249
+ };
250
+ }
251
+ function itemAffinity(left, right) {
252
+ const signals = [
253
+ jaccard(left.files, right.files),
254
+ jaccard(left.unitIds, right.unitIds),
255
+ jaccard(left.semanticTags, right.semanticTags),
256
+ ].filter((value) => value != null);
257
+ return mean(signals);
258
+ }
259
+ function itemGroupAffinity(item, group) {
260
+ if (group.length === 0)
261
+ return 0;
262
+ return Math.max(...group.map((entry) => itemAffinity(item, entry)));
263
+ }
264
+ function orderForAssignment(items) {
265
+ const fileFrequency = new Map();
266
+ const unitFrequency = new Map();
267
+ const semanticFrequency = new Map();
268
+ for (const item of items) {
269
+ for (const file of item.files)
270
+ fileFrequency.set(file, (fileFrequency.get(file) ?? 0) + 1);
271
+ for (const unit of item.unitIds)
272
+ unitFrequency.set(unit, (unitFrequency.get(unit) ?? 0) + 1);
273
+ for (const tag of item.semanticTags) {
274
+ semanticFrequency.set(tag, (semanticFrequency.get(tag) ?? 0) + 1);
275
+ }
276
+ }
277
+ const frequencyDensity = (values, frequencies) => values.length === 0
278
+ ? null
279
+ : mean(values.map((value) => (frequencies.get(value) ?? 0) / items.length));
280
+ const connectivity = (item) => mean([
281
+ frequencyDensity(item.files, fileFrequency),
282
+ frequencyDensity(item.unitIds, unitFrequency),
283
+ frequencyDensity(item.semanticTags, semanticFrequency),
284
+ ].filter((value) => value != null));
285
+ return [...items].sort((a, b) => {
286
+ const connectivityDelta = connectivity(b) - connectivity(a);
287
+ if (connectivityDelta !== 0)
288
+ return connectivityDelta;
289
+ const tokenDelta = b.estimatedTokens - a.estimatedTokens;
290
+ if (tokenDelta !== 0)
291
+ return tokenDelta;
292
+ return a.id.localeCompare(b.id);
293
+ });
294
+ }
295
+ function selectSeeds(items, count) {
296
+ const ordered = orderForAssignment(items);
297
+ const seeds = [ordered[0]];
298
+ const remaining = new Map(ordered.slice(1).map((item) => [item.id, item]));
299
+ const nearestSeedAffinity = new Map([...remaining.values()].map((item) => [
300
+ item.id,
301
+ itemAffinity(item, seeds[0]),
302
+ ]));
303
+ while (seeds.length < count && remaining.size > 0) {
304
+ let next;
305
+ for (const candidate of remaining.values()) {
306
+ if (next === undefined) {
307
+ next = candidate;
308
+ continue;
309
+ }
310
+ const candidateNear = nearestSeedAffinity.get(candidate.id) ?? 0;
311
+ const nextNear = nearestSeedAffinity.get(next.id) ?? 0;
312
+ if (candidateNear < nextNear ||
313
+ (candidateNear === nextNear &&
314
+ (candidate.estimatedTokens > next.estimatedTokens ||
315
+ (candidate.estimatedTokens === next.estimatedTokens &&
316
+ candidate.id.localeCompare(next.id) < 0)))) {
317
+ next = candidate;
318
+ }
319
+ }
320
+ if (next === undefined)
321
+ break;
322
+ seeds.push(next);
323
+ remaining.delete(next.id);
324
+ nearestSeedAffinity.delete(next.id);
325
+ for (const candidate of remaining.values()) {
326
+ nearestSeedAffinity.set(candidate.id, Math.max(nearestSeedAffinity.get(candidate.id) ?? 0, itemAffinity(candidate, next)));
327
+ }
328
+ }
329
+ return seeds;
330
+ }
331
+ function placementObjective(group, item, policy, unitUniverseSize, semanticUniverseSize) {
332
+ const tokens = projectedGroupTokens(group, item, policy.fileTokenCosts);
333
+ const load = policy.capacityTokens > 0 ? Math.min(1, tokens / policy.capacityTokens) : 1;
334
+ let uniqueUnits = group.unitCounts.size;
335
+ for (const unit of unitValues(item)) {
336
+ if (!group.unitCounts.has(unit))
337
+ uniqueUnits += 1;
338
+ }
339
+ const unitSpan = uniqueUnits / Math.max(1, unitUniverseSize);
340
+ return mean([
341
+ load,
342
+ projectedSemanticCrossEntropy(group, item, semanticUniverseSize),
343
+ projectedUnitEntropy(group, item, unitUniverseSize),
344
+ unitSpan,
345
+ 1 - itemGroupAffinity(item, group.items),
346
+ ]);
347
+ }
348
+ function buildCandidate(items, requestedGroupCount, policy, unitUniverseSize, semanticUniverseSize) {
349
+ const seeds = selectSeeds(items, Math.min(items.length, requestedGroupCount));
350
+ const seedIds = new Set(seeds.map((item) => item.id));
351
+ const groups = seeds.map((seed) => createAssignmentGroup(seed, policy.fileTokenCosts));
352
+ for (const item of orderForAssignment(items).filter((entry) => !seedIds.has(entry.id))) {
353
+ let bestIndex = -1;
354
+ let bestScore = Number.POSITIVE_INFINITY;
355
+ for (let index = 0; index < groups.length; index += 1) {
356
+ const group = groups[index];
357
+ const afterTokens = projectedGroupTokens(group, item, policy.fileTokenCosts);
358
+ if (afterTokens > policy.capacityTokens)
359
+ continue;
360
+ const score = placementObjective(group, item, policy, unitUniverseSize, semanticUniverseSize);
361
+ if (score < bestScore || (score === bestScore && index < bestIndex)) {
362
+ bestScore = score;
363
+ bestIndex = index;
364
+ }
365
+ }
366
+ if (bestIndex < 0)
367
+ groups.push(createAssignmentGroup(item, policy.fileTokenCosts));
368
+ else
369
+ addItemToAssignmentGroup(groups[bestIndex], item, policy.fileTokenCosts);
370
+ }
371
+ return groups.map((group) => [...group.items].sort((a, b) => a.id.localeCompare(b.id)));
372
+ }
373
+ function deriveSeams(groups) {
374
+ const seams = [];
375
+ for (let left = 0; left < groups.length; left += 1) {
376
+ for (let right = left + 1; right < groups.length; right += 1) {
377
+ const a = groups[left];
378
+ const b = groups[right];
379
+ const sharedFiles = intersection(a.files, b.files);
380
+ const sharedUnitIds = intersection(a.unitIds, b.unitIds);
381
+ if (sharedFiles.length === 0 && sharedUnitIds.length === 0)
382
+ continue;
383
+ const systemic = a.role === "coordination" || b.role === "coordination";
384
+ const kind = systemic
385
+ ? "systemic_coordination"
386
+ : sharedFiles.length > 0
387
+ ? "predicted_write_conflict"
388
+ : "shared_context";
389
+ seams.push({
390
+ leftGroup: left,
391
+ rightGroup: right,
392
+ kind,
393
+ sharedFiles,
394
+ sharedUnitIds,
395
+ requiresPreparation: systemic || sharedFiles.length > 0,
396
+ });
397
+ }
398
+ }
399
+ return seams;
400
+ }
401
+ function scorePartition(groups, groupItems, seams, normalItemCount, policy, unitUniverseSize, semanticUniverseSize) {
402
+ const implementationGroups = groups
403
+ .map((group, index) => ({ group, items: groupItems[index] }))
404
+ .filter((entry) => entry.group.role === "implementation");
405
+ const tokenLoads = implementationGroups.map(({ group }) => group.estimatedTokens);
406
+ const sizeBalance = tokenLoads.length <= 1
407
+ ? 0
408
+ : (Math.max(...tokenLoads) - Math.min(...tokenLoads)) /
409
+ Math.max(policy.capacityTokens, Math.max(...tokenLoads));
410
+ const semantic = mean(implementationGroups.map(({ items }) => semanticCrossEntropy(items, Math.max(2, semanticUniverseSize))));
411
+ const unitEntropy = mean(implementationGroups.map(({ items }) => normalizedEntropy(items.flatMap((item) => item.unitIds.length > 0 ? item.unitIds : ["(no-unit)"]), Math.max(2, unitUniverseSize))));
412
+ const unitCount = mean(implementationGroups.map(({ group }) => group.unitIds.length / Math.max(1, unitUniverseSize)));
413
+ const fileAppearances = new Map();
414
+ for (const group of groups) {
415
+ for (const file of group.files) {
416
+ fileAppearances.set(file, (fileAppearances.get(file) ?? 0) + 1);
417
+ }
418
+ }
419
+ const totalFileAppearances = [...fileAppearances.values()].reduce((sum, count) => sum + count, 0);
420
+ const duplicateFileAppearances = [...fileAppearances.values()].reduce((sum, count) => sum + Math.max(0, count - 1), 0);
421
+ const writeOverlap = duplicateFileAppearances / Math.max(1, totalFileAppearances);
422
+ const possibleSeams = (groups.length * (groups.length - 1)) / 2;
423
+ const seamCost = seams.filter((seam) => seam.requiresPreparation).length /
424
+ Math.max(1, possibleSeams);
425
+ const implementationGroupCount = implementationGroups.length;
426
+ const blockCount = normalItemCount <= 1
427
+ ? 0
428
+ : (implementationGroupCount - 1) / (normalItemCount - 1);
429
+ const usefulParallelism = policy.availableParallelism == null
430
+ ? null
431
+ : Math.min(policy.availableParallelism, normalItemCount);
432
+ const parallelism = usefulParallelism == null || usefulParallelism === 0
433
+ ? 0
434
+ : Math.max(0, usefulParallelism - implementationGroupCount) /
435
+ usefulParallelism;
436
+ const dimensions = [
437
+ sizeBalance,
438
+ semantic,
439
+ unitEntropy,
440
+ unitCount,
441
+ writeOverlap,
442
+ seamCost,
443
+ blockCount,
444
+ parallelism,
445
+ ];
446
+ return {
447
+ sizeBalance,
448
+ semanticCrossEntropy: semantic,
449
+ unitEntropy,
450
+ unitCount,
451
+ writeOverlap,
452
+ seamCost,
453
+ blockCount,
454
+ parallelism,
455
+ total: mean(dimensions),
456
+ };
457
+ }
458
+ function emptyObjective() {
459
+ return {
460
+ sizeBalance: 0,
461
+ semanticCrossEntropy: 0,
462
+ unitEntropy: 0,
463
+ unitCount: 0,
464
+ writeOverlap: 0,
465
+ seamCost: 0,
466
+ blockCount: 0,
467
+ parallelism: 0,
468
+ total: 0,
469
+ };
470
+ }
471
+ /**
472
+ * Partition work items without forcing shared-unit/file transitive closure.
473
+ * Every input item appears in exactly one group; group file/unit scopes may
474
+ * overlap and every overlap is returned explicitly as a seam.
475
+ */
476
+ export function partitionWorkItems(input, runtimePolicy) {
477
+ const policy = resolvePolicy(runtimePolicy);
478
+ const items = normalizeItems(input);
479
+ if (items.length === 0)
480
+ return { groups: [], seams: [], objective: emptyObjective() };
481
+ const allUnits = stableUnique(items.flatMap((item) => item.unitIds));
482
+ const allSemanticTags = stableUnique(items.flatMap((item) => item.semanticTags.length > 0 ? item.semanticTags : ["(untagged)"]));
483
+ const coordination = items.filter((item) => item.role === "coordination");
484
+ const normal = items.filter((item) => item.role === "implementation");
485
+ const coordinationGroups = coordination.map((item) => materializeGroup([item], "coordination", policy.fileTokenCosts));
486
+ const coordinationGroupItems = coordination.map((item) => [item]);
487
+ if (normal.length === 0) {
488
+ const seams = deriveSeams(coordinationGroups);
489
+ return {
490
+ groups: coordinationGroups,
491
+ seams,
492
+ objective: scorePartition(coordinationGroups, coordinationGroupItems, seams, 0, policy, allUnits.length, allSemanticTags.length),
493
+ };
494
+ }
495
+ const requestedCounts = stableUnique([
496
+ "1",
497
+ ...(policy.availableParallelism == null
498
+ ? []
499
+ : [String(Math.min(normal.length, policy.availableParallelism))]),
500
+ ]).map(Number);
501
+ let best;
502
+ let bestSignature = "";
503
+ for (const requestedCount of requestedCounts) {
504
+ const candidateItems = buildCandidate(normal, requestedCount, policy, allUnits.length, allSemanticTags.length);
505
+ const implementationGroups = candidateItems.map((group) => materializeGroup(group, "implementation", policy.fileTokenCosts));
506
+ const groups = [...coordinationGroups, ...implementationGroups];
507
+ const groupItems = [...coordinationGroupItems, ...candidateItems];
508
+ const seams = deriveSeams(groups);
509
+ const objective = scorePartition(groups, groupItems, seams, normal.length, policy, allUnits.length, allSemanticTags.length);
510
+ const signature = groups
511
+ .map((group) => `${group.role}:${group.itemIds.join(",")}`)
512
+ .join("|");
513
+ if (best === undefined ||
514
+ objective.total < best.objective.total ||
515
+ (objective.total === best.objective.total &&
516
+ signature.localeCompare(bestSignature) < 0)) {
517
+ best = { groups, seams, objective };
518
+ bestSignature = signature;
519
+ }
520
+ }
521
+ return best;
522
+ }
523
+ //# sourceMappingURL=workPartition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workPartition.js","sourceRoot":"","sources":["../../../src/shared/decompose/workPartition.ts"],"names":[],"mappings":"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"}
@@ -65,17 +65,8 @@ export interface AdmissionPool {
65
65
  * within that tie. Never reorders against cost or tier.
66
66
  */
67
67
  capabilityScore?: number | null;
68
- /**
69
- * Throughput rank for the cost↔speed dial — the pool's effective PARALLELISM (higher
70
- * = faster; `+Infinity` = hardware-parallel). Consulted only when λ > 0. Derived
71
- * pool-class-aware by {@link deriveThroughputConcurrency} at the build site — a
72
- * backend source's uncapped default is `+Infinity` (parallel) while the conversation
73
- * host's unspecified default is `1` (sequential), so `declaredCap`'s ambiguous `null`
74
- * sentinel is NOT reused for the rank. See spec/dispatch-quota.md.
75
- */
76
- throughputConcurrency: number;
77
- /** Largest packet cost this pool can fit (context window − output). */
78
- capacityTokens: number;
68
+ /** Largest packet cost this pool can fit (context window − output). Null is unadmittable. */
69
+ capacityTokens: number | null;
79
70
  /**
80
71
  * Cold-start calibration (see WaveSchedule.calibrating): at least one binding window
81
72
  * has no real token budget derived yet (no absolute count, no learned slope). When
@@ -88,37 +79,17 @@ export interface AdmissionPool {
88
79
  */
89
80
  calibrating?: boolean;
90
81
  }
91
- /**
92
- * Derive a pool's throughput rank (effective parallelism) pool-class-aware — the fix
93
- * for the `declaredCap == null` ambiguity (spec/dispatch-quota.md): the same
94
- * "no cap" sentinel means opposite speeds on the two pool classes, so throughput cannot
95
- * be read off `declaredCap` alone.
96
- *
97
- * - **Backend source** (an endpoint that accepts concurrent requests): an uncapped
98
- * source is hardware-parallel ⇒ `+Infinity` (fastest); a declared `max_concurrent`
99
- * ⇒ that count.
100
- * - **Conversation host**: its parallelism IS its subagent budget; unspecified ⇒ the
101
- * host is effectively SEQUENTIAL ⇒ `1` (ranks slowest), NOT unbounded. This is what
102
- * stops λ=1 from crowning the default zero-declaration host over a metered parallel
103
- * source — with no manual declaration.
104
- */
105
- export declare function deriveThroughputConcurrency(params: {
106
- isConversationHost: boolean;
107
- hostActiveSubagents?: number | null;
108
- sourceConcurrencyCap?: number | null;
109
- }): number;
110
82
  /**
111
83
  * Build the admission pool set from the serializable per-pool capacity summaries —
112
84
  * the SINGLE source of truth both orchestrators use (audit summarizes its dispatch
113
85
  * capacity; remediate passes `schedule.capacity_pools`), so the two cannot drift on
114
86
  * how a pool maps to an {@link AdmissionPool}. Every field is derived here once:
115
87
  * budget (optimistic `+Infinity` when no live ceiling), the hard in-flight cap
116
- * (`declaredCap` — host subagent budget OR endpoint `max_concurrent`), cost rank
117
- * (with the operator-confirmed position as rung 1; spec/dispatch-quota.md), the
88
+ * (`declaredCap` — host subagent budget OR endpoint `max_concurrent`), cost rank,
118
89
  * capability tier ordinal, the throughput rank (pool-class-aware concurrency;
119
90
  * spec/dispatch-quota.md), and the context-window fit ceiling.
120
91
  */
121
- export declare function admissionPoolsFromSummaries(summaries: readonly DispatchCapacityPoolSummary[], confirmedCostPositions?: Map<string, number> | null): AdmissionPool[];
92
+ export declare function admissionPoolsFromSummaries(summaries: readonly DispatchCapacityPoolSummary[]): AdmissionPool[];
122
93
  /**
123
94
  * One constraint's evaluation, serialized for the persisted explain artifact —
124
95
  * the wire form of the ledger's {@link ConstraintOutcome} (legibility invariant,
@@ -803,14 +774,6 @@ export interface AdmitBatchInput {
803
774
  * concurrent admitter double-grants the account (budget AND cap-count axes).
804
775
  */
805
776
  leaseTtlMs?: number;
806
- /**
807
- * Cost↔speed dispatch bias (λ) ∈ [0, 1] — the operator-set operating point on the
808
- * cost-vs-throughput frontier among capable pools (spec/dispatch-quota.md).
809
- * λ=0 (default) is pure cost-first — byte-identical to the pre-dial ordering. λ=1 is
810
- * pure throughput (fastest-capable-first). 0<λ<1 blends the two axes' ordinals.
811
- * Out-of-range values clamp to [0, 1].
812
- */
813
- dispatchBias?: number;
814
777
  }
815
778
  /**
816
779
  * Build the composed capability gate (unified-routing step C): size-fit AND a
@@ -904,11 +867,9 @@ export declare function computeDispatchAdmission(input: {
904
867
  }[];
905
868
  pools: AdmissionPool[];
906
869
  /** Declared output cap for the packet envelope (cold-start; ratio refines later). */
907
- outputCap: number;
870
+ outputCap: number | null;
908
871
  grantLeases: boolean;
909
872
  ledger: ReservationLedger;
910
873
  capable?: (pool: AdmissionPool, packet: AdmissionCandidate) => boolean;
911
- /** Cost↔speed operating point λ ∈ [0,1]; see {@link AdmitBatchInput.dispatchBias}. */
912
- dispatchBias?: number;
913
874
  }): Promise<DispatchAdmission>;
914
875
  //# sourceMappingURL=admissionLoop.d.ts.map