audit-tools 0.30.49 → 0.30.53

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 (165) hide show
  1. package/dist/audit/cli/advanceAuditCommand.d.ts.map +1 -1
  2. package/dist/audit/cli/advanceAuditCommand.js +8 -4
  3. package/dist/audit/cli/advanceAuditCommand.js.map +1 -1
  4. package/dist/audit/cli/args.d.ts.map +1 -1
  5. package/dist/audit/cli/args.js +9 -2
  6. package/dist/audit/cli/args.js.map +1 -1
  7. package/dist/audit/cli/mergeAndIngestCommand.d.ts.map +1 -1
  8. package/dist/audit/cli/mergeAndIngestCommand.js +6 -22
  9. package/dist/audit/cli/mergeAndIngestCommand.js.map +1 -1
  10. package/dist/audit/cli/prompts.d.ts.map +1 -1
  11. package/dist/audit/cli/prompts.js +3 -1
  12. package/dist/audit/cli/prompts.js.map +1 -1
  13. package/dist/audit/cli/validateResultCommand.d.ts.map +1 -1
  14. package/dist/audit/cli/validateResultCommand.js +19 -6
  15. package/dist/audit/cli/validateResultCommand.js.map +1 -1
  16. package/dist/audit/cli/workerRunCommand.d.ts.map +1 -1
  17. package/dist/audit/cli/workerRunCommand.js +6 -21
  18. package/dist/audit/cli/workerRunCommand.js.map +1 -1
  19. package/dist/audit/contracts/workerSchemas.d.ts +27 -3
  20. package/dist/audit/contracts/workerSchemas.d.ts.map +1 -1
  21. package/dist/audit/contracts/workerSchemas.js +5 -1
  22. package/dist/audit/contracts/workerSchemas.js.map +1 -1
  23. package/dist/audit/extractors/analyzers/html.d.ts +1 -0
  24. package/dist/audit/extractors/analyzers/html.d.ts.map +1 -1
  25. package/dist/audit/extractors/analyzers/html.js +5 -3
  26. package/dist/audit/extractors/analyzers/html.js.map +1 -1
  27. package/dist/audit/extractors/browserExtension.d.ts.map +1 -1
  28. package/dist/audit/extractors/browserExtension.js +1 -8
  29. package/dist/audit/extractors/browserExtension.js.map +1 -1
  30. package/dist/audit/extractors/graphRoutes.d.ts.map +1 -1
  31. package/dist/audit/extractors/graphRoutes.js +4 -1
  32. package/dist/audit/extractors/graphRoutes.js.map +1 -1
  33. package/dist/audit/orchestrator/autoFixExecutor.d.ts +8 -0
  34. package/dist/audit/orchestrator/autoFixExecutor.d.ts.map +1 -1
  35. package/dist/audit/orchestrator/autoFixExecutor.js +68 -35
  36. package/dist/audit/orchestrator/autoFixExecutor.js.map +1 -1
  37. package/dist/audit/orchestrator/rollingDispatch.d.ts +2 -2
  38. package/dist/audit/orchestrator/rollingDispatch.d.ts.map +1 -1
  39. package/dist/audit/orchestrator/runtimeCommand.d.ts.map +1 -1
  40. package/dist/audit/orchestrator/runtimeCommand.js +7 -1
  41. package/dist/audit/orchestrator/runtimeCommand.js.map +1 -1
  42. package/dist/audit/orchestrator/selectiveDeepening/index.d.ts.map +1 -1
  43. package/dist/audit/orchestrator/selectiveDeepening/index.js +12 -8
  44. package/dist/audit/orchestrator/selectiveDeepening/index.js.map +1 -1
  45. package/dist/audit/orchestrator/taskBuilder.d.ts.map +1 -1
  46. package/dist/audit/orchestrator/taskBuilder.js +0 -32
  47. package/dist/audit/orchestrator/taskBuilder.js.map +1 -1
  48. package/dist/audit/quota/discoveredLimits.d.ts +12 -0
  49. package/dist/audit/quota/discoveredLimits.d.ts.map +1 -1
  50. package/dist/audit/quota/discoveredLimits.js +30 -25
  51. package/dist/audit/quota/discoveredLimits.js.map +1 -1
  52. package/dist/audit/quota/index.d.ts +120 -18
  53. package/dist/audit/quota/index.d.ts.map +1 -1
  54. package/dist/audit/types/auditScope.d.ts +2 -2
  55. package/dist/audit/validation/auditResults.d.ts +16 -0
  56. package/dist/audit/validation/auditResults.d.ts.map +1 -1
  57. package/dist/audit/validation/auditResults.js +35 -1
  58. package/dist/audit/validation/auditResults.js.map +1 -1
  59. package/dist/remediate/phases/close.d.ts.map +1 -1
  60. package/dist/remediate/phases/close.js +16 -6
  61. package/dist/remediate/phases/close.js.map +1 -1
  62. package/dist/remediate/steps/contractPipeline.d.ts +4 -1
  63. package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
  64. package/dist/remediate/steps/contractPipeline.js +63 -47
  65. package/dist/remediate/steps/contractPipeline.js.map +1 -1
  66. package/dist/remediate/steps/contractPipelinePrompts.d.ts +12 -1
  67. package/dist/remediate/steps/contractPipelinePrompts.d.ts.map +1 -1
  68. package/dist/remediate/steps/contractPipelinePrompts.js +29 -18
  69. package/dist/remediate/steps/contractPipelinePrompts.js.map +1 -1
  70. package/dist/remediate/steps/dispatch.d.ts +20 -3
  71. package/dist/remediate/steps/dispatch.d.ts.map +1 -1
  72. package/dist/remediate/steps/dispatch.js +221 -117
  73. package/dist/remediate/steps/dispatch.js.map +1 -1
  74. package/dist/remediate/steps/finalGate.d.ts +88 -0
  75. package/dist/remediate/steps/finalGate.d.ts.map +1 -0
  76. package/dist/remediate/steps/finalGate.js +171 -0
  77. package/dist/remediate/steps/finalGate.js.map +1 -0
  78. package/dist/remediate/steps/leanFastPath.d.ts.map +1 -1
  79. package/dist/remediate/steps/leanFastPath.js +12 -0
  80. package/dist/remediate/steps/leanFastPath.js.map +1 -1
  81. package/dist/remediate/steps/nextStep.d.ts +12 -82
  82. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  83. package/dist/remediate/steps/nextStep.js +142 -170
  84. package/dist/remediate/steps/nextStep.js.map +1 -1
  85. package/dist/remediate/steps/types.d.ts +1 -1
  86. package/dist/remediate/steps/types.d.ts.map +1 -1
  87. package/dist/remediate/steps/types.js.map +1 -1
  88. package/dist/remediate/validation/contractPipeline.d.ts.map +1 -1
  89. package/dist/remediate/validation/contractPipeline.js +17 -3
  90. package/dist/remediate/validation/contractPipeline.js.map +1 -1
  91. package/dist/shared/dispatch/rollingDispatch.d.ts +22 -1
  92. package/dist/shared/dispatch/rollingDispatch.d.ts.map +1 -1
  93. package/dist/shared/dispatch/rollingDispatch.js +147 -7
  94. package/dist/shared/dispatch/rollingDispatch.js.map +1 -1
  95. package/dist/shared/index.d.ts +6 -4
  96. package/dist/shared/index.d.ts.map +1 -1
  97. package/dist/shared/index.js +5 -3
  98. package/dist/shared/index.js.map +1 -1
  99. package/dist/shared/io/frictionCapture.d.ts +14 -1
  100. package/dist/shared/io/frictionCapture.d.ts.map +1 -1
  101. package/dist/shared/io/frictionCapture.js +28 -3
  102. package/dist/shared/io/frictionCapture.js.map +1 -1
  103. package/dist/shared/observability/runLog.d.ts +1 -1
  104. package/dist/shared/observability/runLog.d.ts.map +1 -1
  105. package/dist/shared/observability/runLog.js.map +1 -1
  106. package/dist/shared/providers/providerConfirmation.d.ts +16 -1
  107. package/dist/shared/providers/providerConfirmation.d.ts.map +1 -1
  108. package/dist/shared/providers/providerConfirmation.js +13 -13
  109. package/dist/shared/providers/providerConfirmation.js.map +1 -1
  110. package/dist/shared/providers/providerFactory.d.ts.map +1 -1
  111. package/dist/shared/providers/providerFactory.js +10 -14
  112. package/dist/shared/providers/providerFactory.js.map +1 -1
  113. package/dist/shared/providers/providerPathGuard.d.ts +21 -0
  114. package/dist/shared/providers/providerPathGuard.d.ts.map +1 -0
  115. package/dist/shared/providers/providerPathGuard.js +69 -0
  116. package/dist/shared/providers/providerPathGuard.js.map +1 -0
  117. package/dist/shared/providers/sharedProviderConfirmation.d.ts +14 -2
  118. package/dist/shared/providers/sharedProviderConfirmation.d.ts.map +1 -1
  119. package/dist/shared/providers/sharedProviderConfirmation.js +26 -5
  120. package/dist/shared/providers/sharedProviderConfirmation.js.map +1 -1
  121. package/dist/shared/quota/apiPool.d.ts +6 -1
  122. package/dist/shared/quota/apiPool.d.ts.map +1 -1
  123. package/dist/shared/quota/apiPool.js +13 -2
  124. package/dist/shared/quota/apiPool.js.map +1 -1
  125. package/dist/shared/quota/capacity.d.ts +87 -8
  126. package/dist/shared/quota/capacity.d.ts.map +1 -1
  127. package/dist/shared/quota/capacity.js +27 -2
  128. package/dist/shared/quota/capacity.js.map +1 -1
  129. package/dist/shared/quota/claudeOAuthQuotaSource.d.ts.map +1 -1
  130. package/dist/shared/quota/claudeOAuthQuotaSource.js +56 -0
  131. package/dist/shared/quota/claudeOAuthQuotaSource.js.map +1 -1
  132. package/dist/shared/quota/fileLock.d.ts +17 -2
  133. package/dist/shared/quota/fileLock.d.ts.map +1 -1
  134. package/dist/shared/quota/fileLock.js +21 -19
  135. package/dist/shared/quota/fileLock.js.map +1 -1
  136. package/dist/shared/quota/quotaSource.d.ts +62 -2
  137. package/dist/shared/quota/quotaSource.d.ts.map +1 -1
  138. package/dist/shared/quota/quotaSource.js +24 -0
  139. package/dist/shared/quota/quotaSource.js.map +1 -1
  140. package/dist/shared/quota/scheduler.d.ts +19 -2
  141. package/dist/shared/quota/scheduler.d.ts.map +1 -1
  142. package/dist/shared/quota/scheduler.js +162 -86
  143. package/dist/shared/quota/scheduler.js.map +1 -1
  144. package/dist/shared/quota/state.d.ts +22 -0
  145. package/dist/shared/quota/state.d.ts.map +1 -1
  146. package/dist/shared/quota/state.js +59 -0
  147. package/dist/shared/quota/state.js.map +1 -1
  148. package/dist/shared/quota/tokenBudgetView.d.ts +17 -0
  149. package/dist/shared/quota/tokenBudgetView.d.ts.map +1 -0
  150. package/dist/shared/quota/tokenBudgetView.js +77 -0
  151. package/dist/shared/quota/tokenBudgetView.js.map +1 -0
  152. package/dist/shared/quota/types.d.ts +19 -1
  153. package/dist/shared/quota/types.d.ts.map +1 -1
  154. package/dist/shared/quota/types.js +1 -2
  155. package/dist/shared/quota/types.js.map +1 -1
  156. package/dist/shared/repair/brokeredDispatch.d.ts.map +1 -1
  157. package/dist/shared/repair/brokeredDispatch.js +5 -3
  158. package/dist/shared/repair/brokeredDispatch.js.map +1 -1
  159. package/dist/shared/types/providerConfirmation.d.ts +9 -0
  160. package/dist/shared/types/providerConfirmation.d.ts.map +1 -1
  161. package/dist/shared/types/sessionConfig.d.ts +0 -3
  162. package/dist/shared/types/sessionConfig.d.ts.map +1 -1
  163. package/dist/shared/types/sessionConfig.js.map +1 -1
  164. package/package.json +2 -2
  165. package/scripts/audit/postinstall.mjs +22 -14
@@ -87,10 +87,11 @@ export { ClaudeCodeProvider, CLAUDE_CODE_PROVIDER_NAME, buildActiveClaudeCodeSes
87
87
  export { OpenCodeProvider, OPENCODE_PROVIDER_NAME, } from "./providers/opencodeProvider.js";
88
88
  export { resolveFreshSessionProviderName, createFreshSessionProvider, hasConfiguredOpenAiCompatible, discoverOutputConstraintCapability, } from "./providers/providerFactory.js";
89
89
  export { discoverProviders, queryProviderQuota, buildProviderConfirmationDisplay, applyProviderConfirmationSelections, } from "./providers/providerConfirmation.js";
90
+ export { commandExists, isSelfSpawnBlocked, setCommandExistsForTesting, } from "./providers/providerPathGuard.js";
90
91
  export { LimitSourceSchema, LimitConfidenceSchema, HostConcurrencyLimitSourceSchema, HostConcurrencyLimitSchema, ResolvedLimitsSchema, WaveBindingCapSchema, BackoffStateSchema, } from "./quota/types.js";
91
- export { QuotaUsageSnapshotSchema, probeQuotaSource } from "./quota/quotaSource.js";
92
+ export { QuotaUsageSnapshotSchema, QuotaWindowSchema, probeQuotaSource } from "./quota/quotaSource.js";
92
93
  export { resolveLimits, hostClassFor, resolveHostModel, } from "./quota/limits.js";
93
- export { setQuotaStateDir, getQuotaStatePath, readQuotaState, writeQuotaState, computeMaxSafeConcurrency, recordWaveOutcome, clearBucketFailureEvidence, decayWeight, applyDecayToEntry, computeBackoffCooldownMs, computeBackoffFailureWeight, computeRampUpConcurrency, BASE_COOLDOWN_MS, MAX_COOLDOWN_MS, MAX_BUCKET_LEVEL, } from "./quota/state.js";
94
+ export { setQuotaStateDir, getQuotaStatePath, readQuotaState, writeQuotaState, computeMaxSafeConcurrency, recordWaveOutcome, clearBucketFailureEvidence, foldTokensPerPctObservation, recordTokensPerPctObservation, decayWeight, applyDecayToEntry, computeBackoffCooldownMs, computeBackoffFailureWeight, computeRampUpConcurrency, BASE_COOLDOWN_MS, MAX_COOLDOWN_MS, MAX_BUCKET_LEVEL, } from "./quota/state.js";
94
95
  export { detectRateLimitError, detectRateLimitFromChannel, computeCooldownUntil, DEFAULT_COOLDOWN_MS, } from "./quota/errorParsing.js";
95
96
  export { HostSessionQuotaSource, HOST_SESSION_QUOTA_SOURCE_NAME, DEFAULT_MAX_CONSECUTIVE_RE_LIMITS, } from "./quota/hostSessionQuotaSource.js";
96
97
  // Shared claude-code stderr JSON-line scan (single source for the claude-code
@@ -103,7 +104,7 @@ export { runSlidingWindow } from "./quota/slidingWindow.js";
103
104
  export { scheduleWave, classifyProvider, selectDispatchDriver, DISPATCH_Y_DISPATCHER_MIN_ITEMS, buildProviderModelKey, parseHostModelRoster, DEFAULT_SAFETY_MARGIN, DEFAULT_EMPIRICAL_HALF_LIFE_HOURS, QUOTA_REMAINING_PCT_CRITICAL, QUOTA_REMAINING_PCT_LOW, } from "./quota/scheduler.js";
104
105
  export { HostModelRosterEntrySchema } from "./quota/scheduler.js";
105
106
  export { renderDispatchDriverInstruction } from "./quota/dispatchDriverPrompt.js";
106
- export { computeDispatchCapacity, summarizeDispatchCapacityPools, detectLivelock, buildEmptyPoolTerminal, } from "./quota/capacity.js";
107
+ export { computeDispatchCapacity, summarizeDispatchCapacityPools, detectLivelock, buildEmptyPoolTerminal, buildQuotaPausedTerminal, } from "./quota/capacity.js";
107
108
  export { DispatchCapacityPoolSummarySchema } from "./quota/capacity.js";
108
109
  // Generic dispatchable-source pools — the single-sourced backend-pool shape both
109
110
  // orchestrators spill into (any non-IDE source: API endpoint or CLI), each with its
@@ -118,6 +119,7 @@ export { scanStringAware } from "./parsing/stringAwareScanner.js";
118
119
  export { CompositeQuotaSource, buildQuotaSource, buildAccountScopedQuotaSource, } from "./quota/compositeQuotaSource.js";
119
120
  export { classifyQuotaCoverage, sourceCoversProvider, renderUnestablishedQuotaNudge, REACTIVE_ONLY_PROVIDERS, QuotaCoverageStatusSchema, } from "./quota/coverage.js";
120
121
  export { shouldEmitQuotaNudge, quotaNudgeMarkerName, renderQuotaCoverageNudge, } from "./quota/quotaCoverageNudge.js";
122
+ export { renderTokenBudgetView } from "./quota/tokenBudgetView.js";
121
123
  export { ClaudeOAuthQuotaSource, parseProviderModelKey, mapUsageToSnapshot, } from "./quota/claudeOAuthQuotaSource.js";
122
124
  export { fetchClaudeUsage } from "./quota/claudeOAuthQuotaSource.js";
123
125
  export { BaseHttpQuotaSource, fetchJsonOrNull, clampFraction, remainingFromUsedPercent, } from "./quota/httpQuotaSource.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"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"}
@@ -60,7 +60,20 @@ export declare function frictionCaptureDir(artifactsDir: string): string;
60
60
  * with path separators across OSes.
61
61
  */
62
62
  export declare function frictionCapturePath(artifactsDir: string, runId: string): string;
63
- /** Reduce a run id to a stable, filename-safe token (OS-agnostic). */
63
+ /**
64
+ * Encode a run id to a stable, filename-safe, OS-agnostic token that is
65
+ * INJECTIVE: distinct run ids ALWAYS map to distinct tokens, so distinct runs
66
+ * never collide on the same friction artifact path.
67
+ *
68
+ * Each character outside the safe set `[A-Za-z0-9._-]` is percent-encoded
69
+ * (`_xx`, hex of its UTF-8 bytes), and a literal `_` is itself escaped (`_5f`)
70
+ * so the encoding is unambiguously reversible. A naive `replace(/.../, "-")`
71
+ * collapse is many-to-one (`a/b` and `a-b` both → `a-b`); this is one-to-one.
72
+ *
73
+ * The empty run id encodes to the reserved sentinel `_` (which no non-empty id
74
+ * can produce, since a non-empty id always emits at least one char and a bare
75
+ * `_` would have been escaped to `_5f`), preserving a non-empty filename stem.
76
+ */
64
77
  export declare function sanitizeRunId(runId: string): string;
65
78
  /**
66
79
  * Whether this run's friction close-out has already been captured. Pure read; a
@@ -1 +1 @@
1
- {"version":3,"file":"frictionCapture.d.ts","sourceRoot":"","sources":["../../../src/shared/io/frictionCapture.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,eAAO,MAAM,+BAA+B,8BAA8B,CAAC;AAE3E,6EAA6E;AAC7E,eAAO,MAAM,wBAAwB,aAAa,CAAC;AAEnD,oEAAoE;AACpE,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9C,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,YAAY,CAAC;IACzC,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,mFAAmF;AACnF,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,OAAO,+BAA+B,CAAC;IACvD,8CAA8C;IAC9C,IAAI,EAAE,YAAY,GAAG,gBAAgB,CAAC;IACtC,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/E;AAED,sEAAsE;AACtE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CAKlB;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAUnC"}
1
+ {"version":3,"file":"frictionCapture.d.ts","sourceRoot":"","sources":["../../../src/shared/io/frictionCapture.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,eAAO,MAAM,+BAA+B,8BAA8B,CAAC;AAE3E,6EAA6E;AAC7E,eAAO,MAAM,wBAAwB,aAAa,CAAC;AAEnD,oEAAoE;AACpE,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9C,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,YAAY,CAAC;IACzC,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,mFAAmF;AACnF,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,OAAO,+BAA+B,CAAC;IACvD,8CAA8C;IAC9C,IAAI,EAAE,YAAY,GAAG,gBAAgB,CAAC;IACtC,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAenD;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CAKlB;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAUnC"}
@@ -43,10 +43,35 @@ export function frictionCaptureDir(artifactsDir) {
43
43
  export function frictionCapturePath(artifactsDir, runId) {
44
44
  return join(frictionCaptureDir(artifactsDir), `${sanitizeRunId(runId)}.json`);
45
45
  }
46
- /** Reduce a run id to a stable, filename-safe token (OS-agnostic). */
46
+ /**
47
+ * Encode a run id to a stable, filename-safe, OS-agnostic token that is
48
+ * INJECTIVE: distinct run ids ALWAYS map to distinct tokens, so distinct runs
49
+ * never collide on the same friction artifact path.
50
+ *
51
+ * Each character outside the safe set `[A-Za-z0-9._-]` is percent-encoded
52
+ * (`_xx`, hex of its UTF-8 bytes), and a literal `_` is itself escaped (`_5f`)
53
+ * so the encoding is unambiguously reversible. A naive `replace(/.../, "-")`
54
+ * collapse is many-to-one (`a/b` and `a-b` both → `a-b`); this is one-to-one.
55
+ *
56
+ * The empty run id encodes to the reserved sentinel `_` (which no non-empty id
57
+ * can produce, since a non-empty id always emits at least one char and a bare
58
+ * `_` would have been escaped to `_5f`), preserving a non-empty filename stem.
59
+ */
47
60
  export function sanitizeRunId(runId) {
48
- const cleaned = runId.replace(/[^A-Za-z0-9._-]+/g, "-").replace(/^-+|-+$/g, "");
49
- return cleaned.length > 0 ? cleaned : "run";
61
+ if (runId.length === 0) {
62
+ return "_";
63
+ }
64
+ let out = "";
65
+ for (const ch of runId) {
66
+ if (ch !== "_" && /^[A-Za-z0-9.\-]$/.test(ch)) {
67
+ out += ch;
68
+ continue;
69
+ }
70
+ for (const byte of Buffer.from(ch, "utf8")) {
71
+ out += "_" + byte.toString(16).padStart(2, "0");
72
+ }
73
+ }
74
+ return out;
50
75
  }
51
76
  /**
52
77
  * Whether this run's friction close-out has already been captured. Pure read; a
@@ -1 +1 @@
1
- {"version":3,"file":"frictionCapture.js","sourceRoot":"","sources":["../../../src/shared/io/frictionCapture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,2BAA2B,CAAC;AAE3E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,wBAAwB,GAAG,UAAU,CAAC;AA2BnD,kFAAkF;AAClF,MAAM,UAAU,kBAAkB,CAAC,YAAoB;IACrD,OAAO,IAAI,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,YAAoB,EAAE,KAAa;IACrE,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAChF,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAChF,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,YAAoB,EACpB,KAAa;IAEb,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CACzC,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,CACzC,CAAC;IACF,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,CAAC;AACrD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,MAK5C;IACC,MAAM,QAAQ,GAA4B;QACxC,cAAc,EAAE,+BAA+B;QAC/C,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,MAAM,CAAC,KAAK;QACpB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;KAClC,CAAC;IACF,MAAM,aAAa,CAAC,mBAAmB,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;IACtF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"frictionCapture.js","sourceRoot":"","sources":["../../../src/shared/io/frictionCapture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,2BAA2B,CAAC;AAE3E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,wBAAwB,GAAG,UAAU,CAAC;AA2BnD,kFAAkF;AAClF,MAAM,UAAU,kBAAkB,CAAC,YAAoB;IACrD,OAAO,IAAI,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,YAAoB,EAAE,KAAa;IACrE,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAChF,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,EAAE,KAAK,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9C,GAAG,IAAI,EAAE,CAAC;YACV,SAAS;QACX,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;YAC3C,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,YAAoB,EACpB,KAAa;IAEb,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CACzC,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,CACzC,CAAC;IACF,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,CAAC;AACrD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,MAK5C;IACC,MAAM,QAAQ,GAA4B;QACxC,cAAc,EAAE,+BAA+B;QAC/C,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,MAAM,CAAC,KAAK;QACpB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;KAClC,CAAC;IACF,MAAM,aAAa,CAAC,mBAAmB,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;IACtF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Stable vocabulary of run-log event kinds emitted across both orchestrators.
3
3
  * Typed as a union so consumers can rely on a fixed set when aggregating logs.
4
4
  */
5
- export type RunLogEventKind = "obligation" | "executor_start" | "executor_end" | "artifact_write" | "scope" | "outcome" | "provider_launch" | "step" | "state" | "error";
5
+ export type RunLogEventKind = "obligation" | "executor_start" | "executor_end" | "artifact_write" | "scope" | "outcome" | "provider_launch" | "provider_done" | "step" | "state" | "error";
6
6
  export interface RunLogEvent {
7
7
  /** Coarse phase/state, e.g. "advance" or "implementing". */
8
8
  phase?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"runLog.d.ts","sourceRoot":"","sources":["../../../src/shared/observability/runLog.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB,YAAY,GACZ,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,OAAO,GACP,SAAS,GACT,iBAAiB,GACjB,MAAM,GACN,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0FAA0F;IAC1F,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBAEvB,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAMxD,2EAA2E;IAC3E,MAAM,CAAC,QAAQ,IAAI,SAAS;IAI5B,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,8EAA8E;IAC9E,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;CAgBhC"}
1
+ {"version":3,"file":"runLog.d.ts","sourceRoot":"","sources":["../../../src/shared/observability/runLog.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB,YAAY,GACZ,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,OAAO,GACP,SAAS,GACT,iBAAiB,GACjB,eAAe,GACf,MAAM,GACN,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0FAA0F;IAC1F,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBAEvB,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAMxD,2EAA2E;IAC3E,MAAM,CAAC,QAAQ,IAAI,SAAS;IAI5B,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,8EAA8E;IAC9E,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;CAgBhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runLog.js","sourceRoot":"","sources":["../../../src/shared/observability/runLog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4CpC,MAAM,OAAO,SAAS;IACH,IAAI,CAAS;IACb,OAAO,CAAU;IACjB,GAAG,CAAe;IAEnC,YAAY,IAAY,EAAE,UAA4B,EAAE;QACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;QACvC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,2EAA2E;IAC3E,MAAM,CAAC,QAAQ;QACb,OAAO,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,8EAA8E;IAC9E,KAAK,CAAC,KAAkB;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACpD,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QACrF,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;YACtE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,GAAG,IAAI,CAAC;QAC3H,CAAC;QACD,IAAI,CAAC;YACH,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"runLog.js","sourceRoot":"","sources":["../../../src/shared/observability/runLog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6CpC,MAAM,OAAO,SAAS;IACH,IAAI,CAAS;IACb,OAAO,CAAU;IACjB,GAAG,CAAe;IAEnC,YAAY,IAAY,EAAE,UAA4B,EAAE;QACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;QACvC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,2EAA2E;IAC3E,MAAM,CAAC,QAAQ;QACb,OAAO,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,8EAA8E;IAC9E,KAAK,CAAC,KAAkB;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACpD,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QACrF,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;YACtE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,GAAG,IAAI,CAAC;QAC3H,CAAC;QACD,IAAI,CAAC;YACH,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;IACH,CAAC;CACF"}
@@ -7,6 +7,17 @@ export interface DiscoveredProvider {
7
7
  capabilityTier: CapabilityTier;
8
8
  quotaState?: ProviderRateLimits | null;
9
9
  detected: boolean;
10
+ /**
11
+ * Machine-readable self-spawn-blocked flag. True when the provider is detected
12
+ * on PATH but cannot be launched as a fresh subprocess because the host is
13
+ * already inside an active session of that same agent (claude-code while
14
+ * `CLAUDECODE` is set, codex while `CODEX` is set). The Gate-0 confirmation
15
+ * EXCLUDES a self-spawn-blocked provider from the dispatchable pool unless the
16
+ * operator explicitly includes it — a free-text `reason` string is advisory
17
+ * only and must never be the thing a downstream consumer parses to make that
18
+ * security decision.
19
+ */
20
+ selfSpawnBlocked?: boolean;
10
21
  reason?: string;
11
22
  }
12
23
  export interface ConfirmedProviderPool {
@@ -21,8 +32,12 @@ export interface ConfirmedProviderPool {
21
32
  *
22
33
  * @param sessionConfig - Current session config (may be empty `{}`).
23
34
  * @param env - Process env snapshot; defaults to `process.env`.
35
+ * @param detectCommand - Injectable PATH-detection hook (defaults to the
36
+ * single-sourced `commandExists`). Lets tests drive discovery deterministically
37
+ * without a real CLI on PATH, so the self-spawn-blocked security obligations are
38
+ * testable red-before-green regardless of what is installed in CI.
24
39
  */
25
- export declare function discoverProviders(sessionConfig: SessionConfig, env?: NodeJS.ProcessEnv): DiscoveredProvider[];
40
+ export declare function discoverProviders(sessionConfig: SessionConfig, env?: NodeJS.ProcessEnv, detectCommand?: (command: string) => boolean): DiscoveredProvider[];
26
41
  /**
27
42
  * Query the rate-limit state from a live provider if the `queryLimits` method
28
43
  * is available. Returns `null` on timeout/error — never throws.
@@ -1 +1 @@
1
- {"version":3,"file":"providerConfirmation.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/providerConfirmation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAW3E,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAEzE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,eAAe,EAAE,kBAAkB,EAAE,CAAC;CACvC;AA6ED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,aAAa,EAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,kBAAkB,EAAE,CA4DtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,kBAAkB,EAC5B,oBAAoB,EAAE,oBAAoB,EAC1C,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,GACnD,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAUpC;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,kBAAkB,EAAE,GAC/B,MAAM,CAiCR;AAED;;;;;;;GAOG;AACH,wBAAgB,mCAAmC,CACjD,UAAU,EAAE,kBAAkB,EAAE,EAChC,OAAO,EAAE,oBAAoB,EAAE,EAC/B,aAAa,EAAE,kBAAkB,EAAE,GAClC,qBAAqB,CAYvB"}
1
+ {"version":3,"file":"providerConfirmation.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/providerConfirmation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAY3E,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAEzE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,eAAe,EAAE,kBAAkB,EAAE,CAAC;CACvC;AAsED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,aAAa,EAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,aAAa,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAuB,GAC1D,kBAAkB,EAAE,CA6DtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,kBAAkB,EAC5B,oBAAoB,EAAE,oBAAoB,EAC1C,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,GACnD,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAUpC;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,kBAAkB,EAAE,GAC/B,MAAM,CAiCR;AAED;;;;;;;GAOG;AACH,wBAAgB,mCAAmC,CACjD,UAAU,EAAE,kBAAkB,EAAE,EAChC,OAAO,EAAE,oBAAoB,EAAE,EAC/B,aAAa,EAAE,kBAAkB,EAAE,GAClC,qBAAqB,CAYvB"}
@@ -1,5 +1,5 @@
1
- import { spawnSync } from "node:child_process";
2
1
  import { resolveFreshSessionProviderName, hasConfiguredOpenAiCompatible, hasConfiguredOpenCode, } from "./providerFactory.js";
2
+ import { commandExists, isSelfSpawnBlocked } from "./providerPathGuard.js";
3
3
  // ---------------------------------------------------------------------------
4
4
  // Internal helpers
5
5
  // ---------------------------------------------------------------------------
@@ -32,12 +32,6 @@ function defaultCapabilityTier(name) {
32
32
  return "unknown";
33
33
  }
34
34
  }
35
- /** Probe PATH for a single command. Returns true if the command resolves. */
36
- function commandExists(command) {
37
- const lookupCommand = process.platform === "win32" ? "where" : "which";
38
- const result = spawnSync(lookupCommand, [command], { stdio: "ignore" });
39
- return result.status === 0;
40
- }
41
35
  const CLI_PROBES = [
42
36
  {
43
37
  providerName: "claude-code",
@@ -65,12 +59,16 @@ const CLI_PROBES = [
65
59
  *
66
60
  * @param sessionConfig - Current session config (may be empty `{}`).
67
61
  * @param env - Process env snapshot; defaults to `process.env`.
62
+ * @param detectCommand - Injectable PATH-detection hook (defaults to the
63
+ * single-sourced `commandExists`). Lets tests drive discovery deterministically
64
+ * without a real CLI on PATH, so the self-spawn-blocked security obligations are
65
+ * testable red-before-green regardless of what is installed in CI.
68
66
  */
69
- export function discoverProviders(sessionConfig, env = process.env) {
67
+ export function discoverProviders(sessionConfig, env = process.env, detectCommand = commandExists) {
70
68
  const discovered = [];
71
69
  for (const probe of CLI_PROBES) {
72
70
  const command = (probe.configCommand(sessionConfig) ?? "").trim() || probe.defaultCommand;
73
- const available = commandExists(command);
71
+ const available = detectCommand(command);
74
72
  if (!available)
75
73
  continue;
76
74
  // PB-1: a bare-PATH opencode (no opencode.* config) is OPT-IN, not an
@@ -87,15 +85,17 @@ export function discoverProviders(sessionConfig, env = process.env) {
87
85
  env,
88
86
  commandExists: (cmd) => cmd === command,
89
87
  });
90
- // If auto-resolution wouldn't pick this provider (e.g. self-spawn blocked),
91
- // still surface it but note the restriction in `reason`.
92
- const blocked = (probe.providerName === "claude-code" && Boolean(env.CLAUDECODE)) ||
93
- (probe.providerName === "codex" && Boolean(env.CODEX));
88
+ // Machine-readable self-spawn-blocked flag, derived from the single-sourced
89
+ // guard. A self-spawn-blocked provider is still SURFACED (the operator may
90
+ // override) but carries the flag so Gate-0 can EXCLUDE it from the
91
+ // dispatchable pool without parsing the advisory `reason` string.
92
+ const blocked = isSelfSpawnBlocked(probe.providerName, env);
94
93
  discovered.push({
95
94
  name: probe.providerName,
96
95
  command,
97
96
  capabilityTier: defaultCapabilityTier(probe.providerName),
98
97
  detected: true,
98
+ selfSpawnBlocked: blocked,
99
99
  reason: blocked
100
100
  ? `detected on PATH but cannot self-spawn from within an active ${probe.providerName} session`
101
101
  : resolvedName === probe.providerName
@@ -1 +1 @@
1
- {"version":3,"file":"providerConfirmation.js","sourceRoot":"","sources":["../../../src/shared/providers/providerConfirmation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAuB9B,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;;;;;;;;;;;GAaG;AACH,SAAS,qBAAqB,CAAC,IAA0B;IACvD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,aAAa;YAChB,OAAO,UAAU,CAAC;QACpB,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO,CAAC;QACb,KAAK,mBAAmB,CAAC;QACzB,KAAK,qBAAqB,CAAC;QAC3B,KAAK,aAAa,CAAC;QACnB,KAAK,aAAa;YAChB,OAAO,SAAS,CAAC;QACnB,KAAK,kBAAkB;YACrB,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACvE,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxE,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7B,CAAC;AAcD,MAAM,UAAU,GAAe;IAC7B;QACE,YAAY,EAAE,aAAa;QAC3B,cAAc,EAAE,QAAQ;QACxB,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO;KACjD;IACD;QACE,YAAY,EAAE,UAAU;QACxB,cAAc,EAAE,UAAU;QAC1B,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO;KAC9C;IACD;QACE,YAAY,EAAE,OAAO;QACrB,cAAc,EAAE,OAAO;QACvB,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO;KAC3C;CACF,CAAC;AAEF,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,aAA4B,EAC5B,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,UAAU,GAAyB,EAAE,CAAC;IAE5C,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,OAAO,GACX,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,cAAc,CAAC;QAC5E,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAEzC,IAAI,CAAC,SAAS;YAAE,SAAS;QAEzB,sEAAsE;QACtE,yEAAyE;QACzE,4EAA4E;QAC5E,kFAAkF;QAClF,4DAA4D;QAC5D,IAAI,KAAK,CAAC,YAAY,KAAK,UAAU,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/E,SAAS;QACX,CAAC;QAED,4EAA4E;QAC5E,sEAAsE;QACtE,MAAM,YAAY,GAAG,+BAA+B,CAAC,MAAM,EAAE,aAAa,EAAE;YAC1E,GAAG;YACH,aAAa,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,KAAK,OAAO;SAChD,CAAC,CAAC;QAEH,4EAA4E;QAC5E,2DAA2D;QAC3D,MAAM,OAAO,GACX,CAAC,KAAK,CAAC,YAAY,KAAK,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACjE,CAAC,KAAK,CAAC,YAAY,KAAK,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAEzD,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,KAAK,CAAC,YAAY;YACxB,OAAO;YACP,cAAc,EAAE,qBAAqB,CAAC,KAAK,CAAC,YAAY,CAAC;YACzD,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,OAAO;gBACb,CAAC,CAAC,gEAAgE,KAAK,CAAC,YAAY,UAAU;gBAC9F,CAAC,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY;oBACnC,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,yEAAyE;SAChF,CAAC,CAAC;IACL,CAAC;IAED,+EAA+E;IAC/E,+EAA+E;IAC/E,8EAA8E;IAC9E,4EAA4E;IAC5E,IAAI,6BAA6B,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACnE,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,aAAa,CAAC,iBAAiB,EAAE,KAAK;YAC/C,cAAc,EAAE,qBAAqB,CAAC,mBAAmB,CAAC;YAC1D,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,oEAAoE;SAC7E,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAA4B,EAC5B,oBAA0C,EAC1C,GAAoD;IAEpD,IAAI,OAAO,oBAAoB,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gCAAgC,CAC9C,UAAgC;IAEhC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,gCAAgC,CAAC;IAC1C,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC;QAC9B,MAAM,KAAK,GACT,CAAC,CAAC,UAAU,IAAI,IAAI;YAClB,CAAC,CAAC,GAAG;YACL,CAAC,CAAC;gBACE,CAAC,CAAC,UAAU,CAAC,mBAAmB,IAAI,IAAI;oBACtC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,mBAAmB,MAAM;oBAC3C,CAAC,CAAC,IAAI;gBACR,CAAC,CAAC,UAAU,CAAC,uBAAuB,IAAI,IAAI;oBAC1C,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,uBAAuB,OAAO;oBAChD,CAAC,CAAC,IAAI;aACT;iBACE,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;QAE3B,+EAA+E;QAC/E,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC;QAChD,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAC7D,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,OAAO,KAAK,CAAC,CAAC,IAAI,GAAG,UAAU,MAAM,IAAI,MAAM,KAAK,MAAM,UAAU,IAAI,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,uCAAuC;QACvC,2BAA2B;QAC3B,GAAG,IAAI;KACR,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mCAAmC,CACjD,UAAgC,EAChC,OAA+B,EAC/B,aAAmC;IAEnC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAuB,OAAO,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,MAAM,oBAAoB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,GAAG,CAAC;QACJ,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC,CAAC;IACJ,OAAO;QACL,SAAS,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,oBAAoB,CAAC;QACjD,QAAQ,EAAE,OAAO;QACjB,eAAe,EAAE,oBAAoB;KACtC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"providerConfirmation.js","sourceRoot":"","sources":["../../../src/shared/providers/providerConfirmation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"providerFactory.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/providerFactory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAEhB,cAAc,EACf,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAcvD,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAK3E;AAMD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,GACzC,OAAO,CAET;AAQD;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,OAAO,CAAC;IAChC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,yBAAyB,EAAE,OAAO,CAAC;IACnC,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;CACzB;AA4JD;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,aAAa,GAAE,aAAkB,EACjC,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CACzC,GACL,oBAAoB,CAYtB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kCAAkC,CAChD,YAAY,EAAE,oBAAoB,EAClC,aAAa,GAAE,aAAkB,GAChC,0BAA0B,CAqB5B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC,gFAAgF;IAChF,gBAAgB,EAAE,MAAM,CAAC;IACzB,wBAAwB,EAAE,CACxB,MAAM,EAAE,gBAAgB,GAAG,SAAS,KACjC,oBAAoB,CAAC;IAC1B,sBAAsB,EAAE,CACtB,MAAM,EAAE,cAAc,GAAG,SAAS,KAC/B,oBAAoB,CAAC;IAC1B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,aAAa,EAAE,aAAa,YAAK,EACjC,IAAI,EAAE,wBAAwB,GAC7B,oBAAoB,CA6CtB"}
1
+ {"version":3,"file":"providerFactory.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/providerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAEhB,cAAc,EACf,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAcvD,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAK3E;AAMD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,GACzC,OAAO,CAET;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,OAAO,CAAC;IAChC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,yBAAyB,EAAE,OAAO,CAAC;IACnC,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;CACzB;AA6JD;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,aAAa,GAAE,aAAkB,EACjC,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CACzC,GACL,oBAAoB,CAYtB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kCAAkC,CAChD,YAAY,EAAE,oBAAoB,EAClC,aAAa,GAAE,aAAkB,GAChC,0BAA0B,CAqB5B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC,gFAAgF;IAChF,gBAAgB,EAAE,MAAM,CAAC;IACzB,wBAAwB,EAAE,CACxB,MAAM,EAAE,gBAAgB,GAAG,SAAS,KACjC,oBAAoB,CAAC;IAC1B,sBAAsB,EAAE,CACtB,MAAM,EAAE,cAAc,GAAG,SAAS,KAC/B,oBAAoB,CAAC;IAC1B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,aAAa,EAAE,aAAa,YAAK,EACjC,IAAI,EAAE,wBAAwB,GAC7B,oBAAoB,CA6CtB"}
@@ -1,4 +1,4 @@
1
- import { spawnSync } from "node:child_process";
1
+ import { commandExists, isSelfSpawnBlocked } from "./providerPathGuard.js";
2
2
  import { LocalSubprocessProvider } from "./localSubprocessProvider.js";
3
3
  import { SubprocessTemplateProvider } from "./subprocessTemplateProvider.js";
4
4
  import { CodexProvider } from "./codexProvider.js";
@@ -27,23 +27,19 @@ function hasConfiguredCodex(config) {
27
27
  export function hasConfiguredOpenAiCompatible(config) {
28
28
  return Boolean(config?.base_url?.trim()) && Boolean(config?.model?.trim());
29
29
  }
30
- function commandExists(command) {
31
- const lookupCommand = process.platform === "win32" ? "where" : "which";
32
- const result = spawnSync(lookupCommand, [command], { stdio: "ignore" });
33
- return result.status === 0;
34
- }
35
30
  function getAutoProviderContext(sessionConfig, env, lookupCommand) {
36
- const insideClaudeCode = Boolean(env.CLAUDECODE);
37
- const claudeCommand = sessionConfig.claude_code?.command ?? "claude";
38
- const opencodeCommand = sessionConfig.opencode?.command ?? "opencode";
39
- const codexCommand = sessionConfig.codex?.command ?? "codex";
40
- // In-session env signal for the OpenAI Codex CLI: `CODEX=1`, mirroring
41
- // the `CLAUDECODE` / `OPENCODE` convention used by other agentic CLIs.
31
+ // Self-spawn signals come from the single-sourced guard so the auto-resolver
32
+ // and Gate-0 discovery agree byte-for-byte on what "inside an active session"
33
+ // means (the `CLAUDECODE` / `CODEX` in-session env convention).
42
34
  // Note: `CODEX_*` vars in quota/hostLimits.ts denote Anthropic's "Codex
43
35
  // Desktop" originator — a distinct concept from the OpenAI Codex CLI.
44
- // This signal is the behavioral contract; it is regression-tested in
36
+ // These signals are the behavioral contract; regression-tested in
45
37
  // packages/shared/tests/codex-antigravity-providers.test.mjs.
46
- const insideCodex = Boolean(env.CODEX);
38
+ const insideClaudeCode = isSelfSpawnBlocked("claude-code", env);
39
+ const claudeCommand = sessionConfig.claude_code?.command ?? "claude";
40
+ const opencodeCommand = sessionConfig.opencode?.command ?? "opencode";
41
+ const codexCommand = sessionConfig.codex?.command ?? "codex";
42
+ const insideCodex = isSelfSpawnBlocked("codex", env);
47
43
  return {
48
44
  inVSCode: (env.TERM_PROGRAM ?? "").toLowerCase() === "vscode",
49
45
  insideOpenCode: Boolean(env.OPENCODE),
@@ -1 +1 @@
1
- {"version":3,"file":"providerFactory.js","sourceRoot":"","sources":["../../../src/shared/providers/providerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAY/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,SAAS,UAAU,CAAC,MAA4B;IAC9C,OAAO,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,uBAAuB,CAAC,aAA4B;IAC3D,OAAO,CACL,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACnD,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC;QACjD,aAAa,CAAC,WAAW,EAAE,4BAA4B,KAAK,IAAI,CACjE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,aAA4B;IAChE,OAAO,CACL,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAChD,UAAU,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAC/C,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA+B;IACzD,OAAO,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAC3C,MAA0C;IAE1C,OAAO,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACvE,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxE,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7B,CAAC;AAwBD,SAAS,sBAAsB,CAC7B,aAA4B,EAC5B,GAAsB,EACtB,aAA2C;IAE3C,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,OAAO,IAAI,QAAQ,CAAC;IACrE,MAAM,eAAe,GAAG,aAAa,CAAC,QAAQ,EAAE,OAAO,IAAI,UAAU,CAAC;IACtE,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,IAAI,OAAO,CAAC;IAC7D,uEAAuE;IACvE,uEAAuE;IACvE,wEAAwE;IACxE,sEAAsE;IACtE,qEAAqE;IACrE,8DAA8D;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO;QACL,QAAQ,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ;QAC7D,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QACrC,gBAAgB;QAChB,WAAW;QACX,oEAAoE;QACpE,wEAAwE;QACxE,yEAAyE;QACzE,sEAAsE;QACtE,qEAAqE;QACrE,8DAA8D;QAC9D,aAAa,EACX,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;YACxB,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,aAAa;QAC1D,qBAAqB,EAAE,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,gBAAgB,CAAC;QAC9E,sBAAsB,EAAE,UAAU,CAChC,aAAa,CAAC,WAAW,EAAE,gBAAgB,CAC5C;QACD,qBAAqB,EAAE,UAAU,CAC/B,aAAa,CAAC,mBAAmB,EAAE,gBAAgB,CACpD;QACD,mBAAmB,EAAE,uBAAuB,CAAC,aAAa,CAAC;QAC3D,iBAAiB,EAAE,qBAAqB,CAAC,aAAa,CAAC;QACvD,cAAc,EAAE,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC;QACvD,yBAAyB,EAAE,6BAA6B,CACtD,aAAa,CAAC,iBAAiB,CAChC;QACD,eAAe,EAAE,CAAC,gBAAgB,IAAI,aAAa,CAAC,aAAa,CAAC;QAClE,iBAAiB,EAAE,aAAa,CAAC,eAAe,CAAC;QACjD,uEAAuE;QACvE,iDAAiD;QACjD,cAAc,EAAE,CAAC,WAAW,IAAI,aAAa,CAAC,YAAY,CAAC;KAC5D,CAAC;AACJ,CAAC;AAQD;;;;;GAKG;AACH,MAAM,uBAAuB,GAA2B;IACtD;QACE,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,sDAAsD;QAC/D,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc;KACvC;IACD;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EACL,4EAA4E;YAC5E,2EAA2E;YAC3E,0EAA0E;QAC5E,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW;KACpC;IACD;QACE,IAAI,EAAE,aAAa;QACnB,OAAO,EACL,6EAA6E;YAC7E,yEAAyE;YACzE,0EAA0E;YAC1E,0EAA0E;QAC5E,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,qBAAqB;KAC9D;IACD;QACE,IAAI,EAAE,aAAa;QACnB,OAAO,EACL,8EAA8E;YAC9E,+EAA+E;YAC/E,cAAc;QAChB,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,sBAAsB;KACpE;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,kDAAkD;QAC3D,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,qBAAqB;KAC9C;IACD;QACE,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,+EAA+E;QACxF,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,eAAe;KACnE;IACD;QACE,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,4EAA4E;QACrF,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,iBAAiB,IAAI,GAAG,CAAC,iBAAiB;KACnE;IACD;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,yEAAyE;QAClF,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,cAAc;KAC7D;IACD;QACE,IAAI,EAAE,aAAa;QACnB,OAAO,EACL,gFAAgF;YAChF,8EAA8E;YAC9E,0EAA0E;QAC5E,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,eAAe;KACxC;IACD,yEAAyE;IACzE,+EAA+E;IAC/E,4EAA4E;IAC5E,sEAAsE;IACtE,qEAAqE;IACrE;QACE,IAAI,EAAE,mBAAmB;QACzB,OAAO,EACL,0FAA0F;YAC1F,uFAAuF;YACvF,oFAAoF;YACpF,4FAA4F;YAC5F,0FAA0F;QAC5F,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,yBAAyB;KAClD;IACD;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EACL,iFAAiF;YACjF,yDAAyD;QAC3D,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CACjB,GAAG,CAAC,cAAc,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,GAAG,CAAC,iBAAiB;KACvE;CACF,CAAC;AAEF,SAAS,kBAAkB,CAAC,OAA4B;IACtD,KAAK,MAAM,IAAI,IAAI,uBAAuB,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAChD,CAAC;IACD,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,+BAA+B,CAC7C,IAAwB,EACxB,gBAA+B,EAAE,EACjC,UAGI,EAAE;IAEN,MAAM,iBAAiB,GACrB,IAAI,IAAI,aAAa,CAAC,QAAQ,IAAI,kBAAkB,CAAC;IACvD,IAAI,iBAAiB,KAAK,MAAM,EAAE,CAAC;QACjC,OAAO,iBAAyC,CAAC;IACnD,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,aAAa,CAAC;IAC7D,OAAO,kBAAkB,CACvB,sBAAsB,CAAC,aAAa,EAAE,GAAG,EAAE,aAAa,CAAC,CAC1D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kCAAkC,CAChD,YAAkC,EAClC,gBAA+B,EAAE;IAEjC,IAAI,YAAY,KAAK,mBAAmB,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,aAAa,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;QACzE,yEAAyE;QACzE,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;YACzB,OAAO;gBACL,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EACJ,oHAAoH;aACvH,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,MAAM,EACJ,kIAAkI;SACrI,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,aAAa,YAAY,uHAAuH;KACzJ,CAAC;AACJ,CAAC;AA2BD;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,IAAwB,EACxB,gBAA+B,EAAE,EACjC,IAA8B;IAE9B,sEAAsE;IACtE,qEAAqE;IACrE,MAAM,aAAa,GAAG,IAAI,IAAI,aAAa,CAAC,QAAQ,IAAI,MAAM,CAAC;IAC/D,MAAM,YAAY,GAAG,+BAA+B,CAClD,aAAa,EACb,aAAa,CACd,CAAC;IACF,2EAA2E;IAC3E,4EAA4E;IAC5E,uEAAuE;IACvE,8EAA8E;IAC9E,0EAA0E;IAC1E,kEAAkE;IAClE,2EAA2E;IAC3E,kFAAkF;IAClF,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;QAC7B,MAAM,cAAc,GAClB,YAAY,KAAK,kBAAkB;YACjC,CAAC,CAAC,2KAA2K;YAC7K,CAAC,CAAC,MAAM,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,uBAAuB,IAAI,CAAC,gBAAgB,0BAA0B;YACpE,IAAI,YAAY,gBAAgB,cAAc,KAAK,CACtD,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;YACpB,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,YAAY;YACtB,KAAK,EAAE,0BAA0B;YACjC,IAAI,EACF,cAAc,KAAK,MAAM;gBACvB,CAAC,CAAC,oBAAoB,YAAY,EAAE;gBACpC,CAAC,CAAC,oBAAoB,YAAY,eAAe,cAAc,EAAE;SACtE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,YAAY,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IACtE,gFAAgF;IAChF,iFAAiF;IACjF,kFAAkF;IAClF,QAAQ,CAAC,gBAAgB,GAAG,kCAAkC,CAC5D,YAAY,EACZ,aAAa,CACd,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,4EAA4E;AAC5E,SAAS,iBAAiB,CACxB,YAAkC,EAClC,aAA4B,EAC5B,IAA8B;IAE9B,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,kBAAkB;YACrB,OAAO,IAAI,uBAAuB,EAAE,CAAC;QACvC,KAAK,qBAAqB;YACxB,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC;gBACjE,MAAM,IAAI,KAAK,CACb,sGAAsG,CACvG,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,0BAA0B,CACnC,aAAa,CAAC,mBAAmB,CAClC,CAAC;QACJ,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAClE,KAAK,OAAO;YACV,oEAAoE;YACpE,OAAO,IAAI,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAChD,KAAK,mBAAmB;YACtB,iEAAiE;YACjE,0EAA0E;YAC1E,OAAO,IAAI,wBAAwB,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACvE,KAAK,UAAU;YACb,OAAO,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7D,KAAK,aAAa;YAChB,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC;gBACzD,MAAM,IAAI,KAAK,CACb,sFAAsF,CACvF,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,0BAA0B,CACnC,aAAa,CAAC,WAAW,EACzB,aAAa,CACd,CAAC;QACJ,KAAK,aAAa;YAChB,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC;gBACzD,MAAM,IAAI,KAAK,CACb,uMAAuM,CACxM,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,0BAA0B,CACnC,aAAa,CAAC,WAAW,EACzB,aAAa,CACd,CAAC;QACJ;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"providerFactory.js","sourceRoot":"","sources":["../../../src/shared/providers/providerFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { ResolvedProviderName } from "../types/sessionConfig.js";
2
+ /**
3
+ * Probe PATH for a single command. Returns true if the command resolves.
4
+ * Routed through the injectable hook so tests can drive it deterministically.
5
+ */
6
+ export declare function commandExists(command: string): boolean;
7
+ /**
8
+ * Override the PATH-detection implementation for tests. Pass `null` to restore
9
+ * the real `where`/`which` probe. The hook is process-global; tests MUST restore
10
+ * it in a `finally` so they don't leak state into sibling tests.
11
+ */
12
+ export declare function setCommandExistsForTesting(impl: ((command: string) => boolean) | null): void;
13
+ /**
14
+ * Is `provider` self-spawn-blocked in the given environment? True iff the host
15
+ * is currently inside an active session of that same agent (e.g. `claude-code`
16
+ * while `CLAUDECODE` is set, `codex` while `CODEX` is set). Machine-readable,
17
+ * single-sourced, and the basis for both the auto-resolver's `*Available`
18
+ * guards and the Gate-0 `self_spawn_blocked` exclusion flag.
19
+ */
20
+ export declare function isSelfSpawnBlocked(provider: ResolvedProviderName, env?: NodeJS.ProcessEnv): boolean;
21
+ //# sourceMappingURL=providerPathGuard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerPathGuard.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/providerPathGuard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AA+BtE;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,IAAI,GAC1C,IAAI,CAEN;AAkBD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAGT"}
@@ -0,0 +1,69 @@
1
+ import { spawnSync } from "node:child_process";
2
+ /**
3
+ * Single-sourced PATH detection + self-spawn guard for the provider subsystem.
4
+ *
5
+ * Both `providerFactory.ts` (auto-resolution) and `providerConfirmation.ts`
6
+ * (Gate-0 discovery) used to carry their OWN copy of `commandExists` and their
7
+ * own ad-hoc `env.CLAUDECODE` / `env.CODEX` self-spawn checks. Two copies of a
8
+ * security-relevant guard is exactly the drift hazard the project's
9
+ * "single-source the guard" invariant exists to prevent — a fix to one copy
10
+ * silently leaves the other exploitable. This module is the ONE place that
11
+ * owns:
12
+ * - probing PATH for a command (`commandExists`),
13
+ * - deciding whether a provider would be self-spawn-blocked
14
+ * (`isSelfSpawnBlocked`) from inside an active session of that same agent.
15
+ *
16
+ * A test-injectable PATH-detection hook (`setCommandExistsForTesting`) lets
17
+ * tests drive discovery deterministically without a real CLI on PATH — the
18
+ * security obligations (self-spawn-blocked exclusion) must be testable
19
+ * red-before-green without depending on what happens to be installed in CI.
20
+ */
21
+ /** The real PATH probe: `where`/`which` exits 0 iff the command resolves. */
22
+ function probeCommandOnPath(command) {
23
+ const lookupCommand = process.platform === "win32" ? "where" : "which";
24
+ const result = spawnSync(lookupCommand, [command], { stdio: "ignore" });
25
+ return result.status === 0;
26
+ }
27
+ let commandExistsImpl = probeCommandOnPath;
28
+ /**
29
+ * Probe PATH for a single command. Returns true if the command resolves.
30
+ * Routed through the injectable hook so tests can drive it deterministically.
31
+ */
32
+ export function commandExists(command) {
33
+ return commandExistsImpl(command);
34
+ }
35
+ /**
36
+ * Override the PATH-detection implementation for tests. Pass `null` to restore
37
+ * the real `where`/`which` probe. The hook is process-global; tests MUST restore
38
+ * it in a `finally` so they don't leak state into sibling tests.
39
+ */
40
+ export function setCommandExistsForTesting(impl) {
41
+ commandExistsImpl = impl ?? probeCommandOnPath;
42
+ }
43
+ /**
44
+ * The in-session env signals that mark a host as already running INSIDE an agent
45
+ * of a given kind — a fresh subprocess of that same agent cannot be spawned from
46
+ * within one (it would self-spawn). Single-sourced so the auto-resolver and the
47
+ * Gate-0 discovery path agree byte-for-byte on what "self-spawn-blocked" means.
48
+ *
49
+ * Only `claude-code` and `codex` have a self-spawn hazard: they are headless
50
+ * CLIs auto-spawned as fresh subprocesses. The other providers are either
51
+ * IDE/template-bound, an API pool, or the always-available local-subprocess
52
+ * fallback — none can self-spawn.
53
+ */
54
+ const SELF_SPAWN_ENV_SIGNAL = {
55
+ "claude-code": "CLAUDECODE",
56
+ codex: "CODEX",
57
+ };
58
+ /**
59
+ * Is `provider` self-spawn-blocked in the given environment? True iff the host
60
+ * is currently inside an active session of that same agent (e.g. `claude-code`
61
+ * while `CLAUDECODE` is set, `codex` while `CODEX` is set). Machine-readable,
62
+ * single-sourced, and the basis for both the auto-resolver's `*Available`
63
+ * guards and the Gate-0 `self_spawn_blocked` exclusion flag.
64
+ */
65
+ export function isSelfSpawnBlocked(provider, env = process.env) {
66
+ const signal = SELF_SPAWN_ENV_SIGNAL[provider];
67
+ return signal !== undefined && Boolean(env[signal]);
68
+ }
69
+ //# sourceMappingURL=providerPathGuard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerPathGuard.js","sourceRoot":"","sources":["../../../src/shared/providers/providerPathGuard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C;;;;;;;;;;;;;;;;;;GAkBG;AAEH,6EAA6E;AAC7E,SAAS,kBAAkB,CAAC,OAAe;IACzC,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACvE,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxE,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,IAAI,iBAAiB,GAAiC,kBAAkB,CAAC;AAEzE;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,IAA2C;IAE3C,iBAAiB,GAAG,IAAI,IAAI,kBAAkB,CAAC;AACjD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,qBAAqB,GAAkD;IAC3E,aAAa,EAAE,YAAY;IAC3B,KAAK,EAAE,OAAO;CACf,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAA8B,EAC9B,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC/C,OAAO,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACtD,CAAC"}
@@ -89,7 +89,7 @@ export type SharedProviderConfirmationRead = {
89
89
  * not surfaced unless explicitly configured), so it never spuriously perturbs
90
90
  * the roster.
91
91
  */
92
- export declare function currentProviderRoster(sessionConfig: SessionConfig, env?: NodeJS.ProcessEnv): ResolvedProviderName[];
92
+ export declare function currentProviderRoster(sessionConfig: SessionConfig, env?: NodeJS.ProcessEnv, detectCommand?: (command: string) => boolean): ResolvedProviderName[];
93
93
  /**
94
94
  * Build a fresh shared confirmation from auto-discovery. Guarantees the
95
95
  * always-available `local-subprocess` fallback is present in the pool (it blocks
@@ -97,11 +97,23 @@ export declare function currentProviderRoster(sessionConfig: SessionConfig, env?
97
97
  * to fall back to it) and stamps the schema version, session-level flag, and
98
98
  * confirmation timestamp.
99
99
  *
100
+ * SECURITY (self-spawn exclusion): a provider that `discoverProviders` flags as
101
+ * `selfSpawnBlocked` (claude-code under `CLAUDECODE`, codex under `CODEX`) is set
102
+ * `excluded: true` AND carries the machine-readable `self_spawn_blocked` flag, so
103
+ * it is OUT of the dispatchable pool by default — launching it would self-spawn a
104
+ * fresh agent from inside an active session of the same agent. The operator can
105
+ * deliberately re-include it by naming it in `include`; that overrides the
106
+ * exclusion (the host still always retains the local-subprocess fallback).
107
+ *
100
108
  * @param sessionConfig - Current session config; may be an empty `{}`.
101
109
  * @param env - Process env snapshot; defaults to `process.env`.
102
110
  * @param exclude - Provider names to pre-exclude (from a prior gate).
111
+ * @param include - Provider names the operator explicitly opts back IN,
112
+ * overriding the default self-spawn-blocked exclusion for those names.
113
+ * @param detectCommand - Injectable PATH-detection hook, forwarded to
114
+ * `discoverProviders` so tests can drive discovery deterministically.
103
115
  */
104
- export declare function buildSharedProviderConfirmation(sessionConfig?: SessionConfig, env?: NodeJS.ProcessEnv, exclude?: ResolvedProviderName[]): SharedProviderConfirmation;
116
+ export declare function buildSharedProviderConfirmation(sessionConfig?: SessionConfig, env?: NodeJS.ProcessEnv, exclude?: ResolvedProviderName[], include?: ResolvedProviderName[], detectCommand?: (command: string) => boolean): SharedProviderConfirmation;
105
117
  /**
106
118
  * Atomically write the shared confirmation to
107
119
  * `<root>/.audit-tools/provider-confirmation.json`. The durable write goes
@@ -1 +1 @@
1
- {"version":3,"file":"sharedProviderConfirmation.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/sharedProviderConfirmation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAIrF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAK5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAM3E;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,EAAG,OAAgB,CAAC;AAErE,gFAAgF;AAChF,eAAO,MAAM,qCAAqC,+BACpB,CAAC;AAE/B,mEAAmE;AACnE,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnE;AAMD;;;;;;;GAOG;AACH,MAAM,WAAW,0BAA0B;IACzC,uDAAuD;IACvD,cAAc,EAAE,OAAO,oCAAoC,CAAC;IAC5D,0EAA0E;IAC1E,aAAa,EAAE,IAAI,CAAC;IACpB,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,aAAa,EAAE,kBAAkB,EAAE,CAAC;IACpC;;;OAGG;IACH,MAAM,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAED;;;;;GAKG;AACH,MAAM,MAAM,8BAA8B,GACtC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,YAAY,EAAE,0BAA0B,CAAA;CAAE,GACjE;IACE,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,0BAA0B,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;CAChB,GACD,IAAI,CAAC;AAMT;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,aAAa,EAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,oBAAoB,EAAE,CAGxB;AAuBD;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAC7C,aAAa,GAAE,aAAkB,EACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,OAAO,GAAE,oBAAoB,EAAO,GACnC,0BAA0B,CAiC5B;AAMD;;;;;;;GAOG;AACH,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,0BAA0B,EACxC,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,IAAI,CAAC,CAef;AA2DD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,MAAM,EACZ,aAAa,GAAE,aAAkB,EACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,8BAA8B,CAAC,CA8BzC"}
1
+ {"version":3,"file":"sharedProviderConfirmation.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/sharedProviderConfirmation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAIrF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAK5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAM3E;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,EAAG,OAAgB,CAAC;AAErE,gFAAgF;AAChF,eAAO,MAAM,qCAAqC,+BACpB,CAAC;AAE/B,mEAAmE;AACnE,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnE;AAMD;;;;;;;GAOG;AACH,MAAM,WAAW,0BAA0B;IACzC,uDAAuD;IACvD,cAAc,EAAE,OAAO,oCAAoC,CAAC;IAC5D,0EAA0E;IAC1E,aAAa,EAAE,IAAI,CAAC;IACpB,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,aAAa,EAAE,kBAAkB,EAAE,CAAC;IACpC;;;OAGG;IACH,MAAM,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAED;;;;;GAKG;AACH,MAAM,MAAM,8BAA8B,GACtC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,YAAY,EAAE,0BAA0B,CAAA;CAAE,GACjE;IACE,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,0BAA0B,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;CAChB,GACD,IAAI,CAAC;AAMT;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,aAAa,EAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GAC3C,oBAAoB,EAAE,CAKxB;AAuBD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,+BAA+B,CAC7C,aAAa,GAAE,aAAkB,EACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,OAAO,GAAE,oBAAoB,EAAO,EACpC,OAAO,GAAE,oBAAoB,EAAO,EACpC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GAC3C,0BAA0B,CA2C5B;AAMD;;;;;;;GAOG;AACH,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,0BAA0B,EACxC,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,IAAI,CAAC,CAef;AA2DD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,MAAM,EACZ,aAAa,GAAE,aAAkB,EACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,8BAA8B,CAAC,CA8BzC"}