@on-par/factory-core 0.9.8-next.2 → 0.9.8-next.20

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 (100) hide show
  1. package/dist/config/effort.d.ts.map +1 -1
  2. package/dist/config/effort.js +2 -0
  3. package/dist/config/effort.js.map +1 -1
  4. package/dist/config/index.d.ts +7 -5
  5. package/dist/config/index.d.ts.map +1 -1
  6. package/dist/config/index.js +4 -4
  7. package/dist/config/index.js.map +1 -1
  8. package/dist/config/intermediaries.d.ts +15 -0
  9. package/dist/config/intermediaries.d.ts.map +1 -0
  10. package/dist/config/intermediaries.js +14 -0
  11. package/dist/config/intermediaries.js.map +1 -0
  12. package/dist/config/repo-harnesses.d.ts +1 -0
  13. package/dist/config/repo-harnesses.d.ts.map +1 -1
  14. package/dist/config/repo-tier-guard.d.ts +4 -0
  15. package/dist/config/repo-tier-guard.d.ts.map +1 -0
  16. package/dist/config/repo-tier-guard.js +8 -0
  17. package/dist/config/repo-tier-guard.js.map +1 -0
  18. package/dist/config/repo.d.ts +5 -4
  19. package/dist/config/repo.d.ts.map +1 -1
  20. package/dist/config/repo.js +5 -4
  21. package/dist/config/repo.js.map +1 -1
  22. package/dist/config/v2.d.ts +1 -0
  23. package/dist/config/v2.d.ts.map +1 -1
  24. package/dist/config/v2.js +4 -0
  25. package/dist/config/v2.js.map +1 -1
  26. package/dist/daemon/execution-config.d.ts +2 -0
  27. package/dist/daemon/execution-config.d.ts.map +1 -1
  28. package/dist/daemon/run-runtime.d.ts +2 -0
  29. package/dist/daemon/run-runtime.d.ts.map +1 -1
  30. package/dist/filing/index.d.ts.map +1 -1
  31. package/dist/filing/index.js +1 -0
  32. package/dist/filing/index.js.map +1 -1
  33. package/dist/harness/catalog.d.ts.map +1 -1
  34. package/dist/harness/catalog.js +1 -0
  35. package/dist/harness/catalog.js.map +1 -1
  36. package/dist/harness/classify.d.ts.map +1 -1
  37. package/dist/harness/classify.js +4 -0
  38. package/dist/harness/classify.js.map +1 -1
  39. package/dist/harness/contract.d.ts.map +1 -1
  40. package/dist/harness/contract.js +1 -0
  41. package/dist/harness/contract.js.map +1 -1
  42. package/dist/harness/index.d.ts +1 -1
  43. package/dist/harness/index.d.ts.map +1 -1
  44. package/dist/harness/index.js +1 -0
  45. package/dist/harness/index.js.map +1 -1
  46. package/dist/harness/opencode-version.d.ts +9 -0
  47. package/dist/harness/opencode-version.d.ts.map +1 -1
  48. package/dist/harness/opencode-version.js +27 -5
  49. package/dist/harness/opencode-version.js.map +1 -1
  50. package/dist/harness/opencode.d.ts +27 -4
  51. package/dist/harness/opencode.d.ts.map +1 -1
  52. package/dist/harness/opencode.js +80 -9
  53. package/dist/harness/opencode.js.map +1 -1
  54. package/dist/harness/pi.d.ts +32 -0
  55. package/dist/harness/pi.d.ts.map +1 -0
  56. package/dist/harness/pi.js +194 -0
  57. package/dist/harness/pi.js.map +1 -0
  58. package/dist/internal.d.ts +3 -2
  59. package/dist/internal.d.ts.map +1 -1
  60. package/dist/internal.js +2 -0
  61. package/dist/internal.js.map +1 -1
  62. package/dist/models/index.d.ts +7 -11
  63. package/dist/models/index.d.ts.map +1 -1
  64. package/dist/models/index.js +33 -24
  65. package/dist/models/index.js.map +1 -1
  66. package/dist/models/overrides.d.ts +13 -0
  67. package/dist/models/overrides.d.ts.map +1 -0
  68. package/dist/models/overrides.js +24 -0
  69. package/dist/models/overrides.js.map +1 -0
  70. package/dist/models/pi-auth.d.ts +15 -0
  71. package/dist/models/pi-auth.d.ts.map +1 -0
  72. package/dist/models/pi-auth.js +57 -0
  73. package/dist/models/pi-auth.js.map +1 -0
  74. package/dist/models/zdr-review.d.ts +6 -0
  75. package/dist/models/zdr-review.d.ts.map +1 -0
  76. package/dist/models/zdr-review.js +27 -0
  77. package/dist/models/zdr-review.js.map +1 -0
  78. package/dist/phases/build-opencode-failover.d.ts +35 -0
  79. package/dist/phases/build-opencode-failover.d.ts.map +1 -0
  80. package/dist/phases/build-opencode-failover.js +32 -0
  81. package/dist/phases/build-opencode-failover.js.map +1 -0
  82. package/dist/phases/build.d.ts +2 -0
  83. package/dist/phases/build.d.ts.map +1 -1
  84. package/dist/phases/build.js +15 -0
  85. package/dist/phases/build.js.map +1 -1
  86. package/dist/router/breaker.d.ts +14 -7
  87. package/dist/router/breaker.d.ts.map +1 -1
  88. package/dist/router/breaker.js +27 -12
  89. package/dist/router/breaker.js.map +1 -1
  90. package/dist/router/index.d.ts +1 -0
  91. package/dist/router/index.d.ts.map +1 -1
  92. package/dist/router/index.js +4 -0
  93. package/dist/router/index.js.map +1 -1
  94. package/dist/run/run-issue.js +2 -2
  95. package/dist/run/run-issue.js.map +1 -1
  96. package/dist/types/index.d.ts +4 -1
  97. package/dist/types/index.d.ts.map +1 -1
  98. package/dist/utils/exec.d.ts +1 -1
  99. package/dist/utils/exec.d.ts.map +1 -1
  100. package/package.json +5 -5
@@ -1,6 +1,8 @@
1
1
  import type { HarnessDeclaration, ModelsConfig } from '../config/index.js';
2
2
  import type { ModelDefinition, ModelTier } from '../types/index.js';
3
3
  import { type LocalAuthAgent, type LocalAuthFailure } from '../utils/local-auth-record.js';
4
+ import { type PiAuthStatus } from './pi-auth.js';
5
+ export { type ModelOverrides, resolveModelOverrides, retiredModelHint } from './overrides.js';
4
6
  export declare class ModelRegistry {
5
7
  private config;
6
8
  constructor(config: ModelsConfig);
@@ -27,6 +29,8 @@ export declare class ModelRegistry {
27
29
  getHarnessId(modelId: string): string | undefined;
28
30
  /** Check if a model is speculative/unproven (excluded from routing unless opted in) */
29
31
  isExperimental(modelId: string): boolean;
32
+ /** True when the model's provider may use prompts for training (#2899): never chosen from a tier. */
33
+ trainsOnPrompts(modelId: string): boolean;
30
34
  /** Check if a model is safe for local-only routing. */
31
35
  isLocalOnlyModel(modelId: string): boolean;
32
36
  /** Check if a model is routable from static config/env. Machine probes live in diagnoseModels(). */
@@ -53,17 +57,6 @@ export declare class ModelRegistry {
53
57
  escalateAfterTierExhausted: boolean;
54
58
  };
55
59
  }
56
- export interface ModelOverrides {
57
- plan?: string;
58
- build?: string;
59
- }
60
- /** Suffix for an unknown-model error when the id is a retired packaged model; '' otherwise. */
61
- export declare function retiredModelHint(id: string): string;
62
- /** Resolve FACTORY_PLAN_MODEL / FACTORY_BUILD_MODEL env overrides, validated
63
- * against the registry. Throws a configuration error naming the env var when
64
- * it references a model not present in models.json. Empty/whitespace values
65
- * are treated as unset. */
66
- export declare function resolveModelOverrides(registry: ModelRegistry, env?: NodeJS.ProcessEnv): ModelOverrides;
67
60
  /** Check if a command is available on PATH */
68
61
  export declare function isCommandAvailable(cmd: string): boolean;
69
62
  /** True unless the harness needs a CLI that is not on PATH. Harnesses with no CLI probe are always present. */
@@ -96,12 +89,15 @@ export interface DoctorProbes {
96
89
  /** Non-inference evidence that the opencode CLI is logged in (stored credentials in opencode's
97
90
  * auth.json). Default: hasOpencodeLoginEvidence(). Never runs `opencode run`. */
98
91
  opencodeLoggedIn?: () => boolean;
92
+ /** `pi auth check` for one provider model (#2903). Default: runPiAuthCheck. Never runs inference. */
93
+ piAuthCheck?: (providerModel: string) => PiAuthStatus;
99
94
  /** The agent's last recorded run-time local_auth failure when no login has happened since
100
95
  * (#2733). Default: localAuthFailureSinceLogin(). Reads local state only. */
101
96
  localAuthFailure?: (agent: LocalAuthAgent) => LocalAuthFailure | null;
102
97
  /** Runs a declared harness `probe` command; returns null on exit 0, else a failure detail.
103
98
  * Default: runHarnessProbe. */
104
99
  harnessProbe?: (cmd: string) => string | null;
100
+ now?: () => Date;
105
101
  }
106
102
  export interface ModelDiagnosis {
107
103
  model: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
1
  // src/models/index.ts — Model registry: availability checks, cost calculation, tier resolution
2
2
  import { execSync } from 'node:child_process';
3
- import { retiredModels } from '@on-par/factory-config';
4
3
  import { ModelEffortsSchema, supportsEffort } from '../config/effort.js';
5
4
  import { HARNESS_CATALOG, harnessCliCommand, isAgenticHarness, KNOWN_HARNESS_IDS } from '../harness/catalog.js';
6
5
  import { hasClaudeLoginEvidence } from '../utils/claude-config.js';
7
6
  import { hasCodexLoginEvidence } from '../utils/codex-config.js';
8
7
  import { localAuthAgentFor, localAuthFailureSinceLogin, } from '../utils/local-auth-record.js';
9
8
  import { hasOpencodeLoginEvidence } from '../utils/opencode-config.js';
9
+ import { piAuthOutcome, runPiAuthCheck } from './pi-auth.js';
10
+ import { applyZdrReview } from './zdr-review.js';
11
+ export { resolveModelOverrides, retiredModelHint } from './overrides.js';
10
12
  export class ModelRegistry {
11
13
  config;
12
14
  constructor(config) {
@@ -92,6 +94,10 @@ export class ModelRegistry {
92
94
  isExperimental(modelId) {
93
95
  return !!this.get(modelId)?.experimental;
94
96
  }
97
+ /** True when the model's provider may use prompts for training (#2899): never chosen from a tier. */
98
+ trainsOnPrompts(modelId) {
99
+ return !!this.get(modelId)?.trainsOnPrompts;
100
+ }
95
101
  /** Check if a model is safe for local-only routing. */
96
102
  isLocalOnlyModel(modelId) {
97
103
  const def = this.get(modelId);
@@ -143,7 +149,12 @@ export class ModelRegistry {
143
149
  }
144
150
  /** Get all available models for a tier, in priority order */
145
151
  getAvailableModelsForTier(tier, byok = false, allowExperimental = false, localOnly = false) {
146
- return this.getModelsInTier(tier).filter((m) => {
152
+ const models = this.getModelsInTier(tier);
153
+ return models.filter((m) => {
154
+ // A single-entry tier is the shape of a models.pins.checker / models.pins.triage pin (applyRepoConfig), so a
155
+ // deliberate pin stays routable. Repo tiers cannot list a trainsOnPrompts model, and packaged tiers do not.
156
+ if (models.length > 1 && this.trainsOnPrompts(m))
157
+ return false;
147
158
  if (!allowExperimental && this.isExperimental(m))
148
159
  return false;
149
160
  if (localOnly && !this.isLocalOnlyModel(m))
@@ -158,27 +169,6 @@ export class ModelRegistry {
158
169
  return this.config.failover;
159
170
  }
160
171
  }
161
- /** Suffix for an unknown-model error when the id is a retired packaged model; '' otherwise. */
162
- export function retiredModelHint(id) {
163
- const retired = Object.hasOwn(retiredModels, id) ? retiredModels[id] : undefined;
164
- return retired ? `; '${id}' was removed under ${retired.adr}; use '${retired.replacement}'` : '';
165
- }
166
- /** Resolve FACTORY_PLAN_MODEL / FACTORY_BUILD_MODEL env overrides, validated
167
- * against the registry. Throws a configuration error naming the env var when
168
- * it references a model not present in models.json. Empty/whitespace values
169
- * are treated as unset. */
170
- export function resolveModelOverrides(registry, env = process.env) {
171
- const resolveVar = (envVar) => {
172
- const value = env[envVar]?.trim();
173
- if (!value)
174
- return undefined;
175
- if (!registry.get(value)) {
176
- throw new Error(`${envVar} is set to '${value}', which is not a model in models.json (known models: ${registry.list().join(', ')})${retiredModelHint(value)}`);
177
- }
178
- return value;
179
- };
180
- return { plan: resolveVar('FACTORY_PLAN_MODEL'), build: resolveVar('FACTORY_BUILD_MODEL') };
181
- }
182
172
  /** Check if a command is available on PATH */
183
173
  export function isCommandAvailable(cmd) {
184
174
  try {
@@ -296,6 +286,20 @@ export function diagnoseModels(registry, probes = {}, allowExperimental = false,
296
286
  }
297
287
  return opencodeLoggedInCache;
298
288
  };
289
+ const piAuthCache = new Map();
290
+ const piAuth = (providerModel) => {
291
+ let status = piAuthCache.get(providerModel);
292
+ if (status === undefined) {
293
+ try {
294
+ status = (probes.piAuthCheck ?? runPiAuthCheck)(providerModel);
295
+ }
296
+ catch {
297
+ status = 'unknown';
298
+ }
299
+ piAuthCache.set(providerModel, status);
300
+ }
301
+ return status;
302
+ };
299
303
  const localAuthFailureProbe = probes.localAuthFailure ?? ((agent) => localAuthFailureSinceLogin(agent));
300
304
  const localAuthFailureCache = new Map();
301
305
  const localAuthFailure = (agent) => {
@@ -382,6 +386,10 @@ export function diagnoseModels(registry, probes = {}, allowExperimental = false,
382
386
  reason = `${UNVERIFIED_PREFIX}${probe.okLabel} installed but not logged in and ${def.envKey} not set — run \`opencode auth login\` or export ${def.envKey}`;
383
387
  }
384
388
  }
389
+ else if (probe.command === 'pi') {
390
+ const target = registry.getProviderModel(m);
391
+ ({ reachable, unverified, reason } = piAuthOutcome(piAuth(target), target, probe.okLabel));
392
+ }
385
393
  else {
386
394
  reachable = true;
387
395
  reason = `ok (${probe.okLabel})`;
@@ -430,7 +438,8 @@ export function diagnoseModels(registry, probes = {}, allowExperimental = false,
430
438
  }
431
439
  }
432
440
  }
433
- return { model: m, provider, tiers, reachable, unverified, experimental, reason };
441
+ const row = { model: m, provider, tiers, reachable, unverified, experimental, reason };
442
+ return applyZdrReview(row, registry.getProviderModel(m), probes.now);
434
443
  });
435
444
  }
436
445
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAE/F,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEhH,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAGL,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAqB,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAuB,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE9F,MAAM,OAAO,aAAa;IACJ,MAAM;IAA1B,YAAoB,MAAoB;sBAApB,MAAM;QACxB,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QAC5B,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzD,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,GAAG,CAAC,CAAC;YACtG,KAAK,MAAM,MAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;oBACtD,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,yBAAyB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC;gBAChH,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC;IACvC,CAAC;IAED,yBAAyB;IACzB,IAAI;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,mCAAmC;IACnC,GAAG,CAAC,OAAe;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,kCAAkC;IAClC,QAAQ,CAAC,OAAe;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAiB,CAAC,CAAC;IACtE,CAAC;IAED,kDAAkD;IAClD,eAAe,CAAC,IAAY;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,4CAA4C;IAC5C,cAAc,CAAC,OAAe;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,CAAC,6BAA6B;QAC3D,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,kDAAkD;IAClD,YAAY,CAAC,OAAe;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC;IACtB,CAAC;IAED,oFAAoF;IACpF,qBAAqB,CAAC,SAAiB;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC;YAC7E,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;YAClC,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAED,mDAAmD;IACnD,qBAAqB;QACnB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,mGAAmG;IACnG,kBAAkB,CAAC,SAAiB;QAClC,OAAO,gBAAgB,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAChG,CAAC;IAED;oEACgE;IAChE,YAAY,CAAC,OAAe;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QAC3B,IAAI,GAAG,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC,OAAO,CAAC;QACpC,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,sBAAsB,CAAC;QAC1E,IAAI,GAAG,CAAC,KAAK;YAAE,OAAO,WAAW,CAAC;QAClC,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,aAAa,CAAC;QACpD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,uFAAuF;IACvF,cAAc,CAAC,OAAe;QAC5B,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAC3C,CAAC;IAED,qGAAqG;IACrG,eAAe,CAAC,OAAe;QAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC9C,CAAC;IAED,uDAAuD;IACvD,gBAAgB,CAAC,OAAe;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QACvB,MAAM,WAAW,GAAG,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC;QACjD,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrG,CAAC;IAED,oGAAoG;IACpG,WAAW,CAAC,OAAe;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yCAAyC;IACzC,aAAa,CAAC,OAAe;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;IACvC,CAAC;IAED,mCAAmC;IACnC,gBAAgB,CAAC,OAAe;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,aAAa,IAAI,OAAO,CAAC;IACrD,CAAC;IAED,kCAAkC;IAClC,kBAAkB,CAAC,OAAe;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC5C,CAAC;IAED,yFAAyF;IACzF,SAAS,CAAC,OAAe,EAAE,IAAY;QACrC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;YAAE,OAAO,SAAS,CAAC;QAC3F,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QACnF,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC/D,CAAC;IAED,kCAAkC;IAClC,YAAY,CAAC,OAAe;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IACtC,CAAC;IAED,sHAAsH;IACtH,YAAY,CAAC,OAAe,EAAE,WAAmB,EAAE,YAAoB;QACrE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,gBAAgB,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,iBAAiB,CAAC;IAC/G,CAAC;IAED,6DAA6D;IAC7D,yBAAyB,CAAC,IAAY,EAAE,IAAI,GAAG,KAAK,EAAE,iBAAiB,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK;QAChG,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACzB,6GAA6G;YAC7G,4GAA4G;YAC5G,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC/D,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC/D,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YACzD,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YAClD,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8BAA8B;IAC9B,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;CACF;AAED,8CAA8C;AAC9C,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,IAAI,CAAC;QACH,QAAQ,CAAC,cAAc,GAAG,cAAc,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,+GAA+G;AAC/G,MAAM,UAAU,mBAAmB,CACjC,SAA6B,EAC7B,gBAAgB,GAA6B,kBAAkB;IAE/D,MAAM,GAAG,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,GAAG,KAAK,SAAS,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAExC,oGAAoG;AACpG,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,IAAI,CAAC;QACH,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACxF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAgG,CAAC;QAC7G,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;YACtD,OAAO,mBAAmB,wBAAwB,GAAG,IAAI,GAAG,CAAC;QAC/D,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;aAC7C,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACzB,OAAO,QAAQ,GAAG,CAAC,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACzE,CAAC;AACH,CAAC;AAaD,sFAAsF;AACtF,MAAM,UAAU,sBAAsB,CACpC,QAAuB,EACvB,QAAQ,GAAmC,eAAe;IAE1D,OAAO,QAAQ,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACtD,MAAM,KAAK,GAAG,QAAQ,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;QAC7D,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACjE,IAAI,OAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,OAAO,KAAK,IAAI;YACrB,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;YACrD,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;AACL,CAAC;AAuCD,MAAM,iBAAiB,GAAG,iCAAiC,CAAC;AAE5D,mGAAmG;AACnG,MAAM,UAAU,sBAAsB,CAAC,OAAyB;IAC9D,OAAO,GAAG,OAAO,CAAC,KAAK,4CAA4C,OAAO,CAAC,EAAE,kCAAkC,OAAO,CAAC,KAAK,QAAQ,CAAC;AACvI,CAAC;AAED;;6BAE6B;AAC7B,SAAS,qBAAqB,CAAC,OAA2B;IACxD,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;QACvC,OAAO,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;qFAEqF;AACrF,MAAM,UAAU,cAAc,CAC5B,QAAuB,EACvB,MAAM,GAAiB,EAAE,EACzB,iBAAiB,GAAG,KAAK,EACzB,SAAS,GAAG,KAAK;IAEjB,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,kBAAkB,CAAC;IACvE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;IACrD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAClF,MAAM,mBAAmB,GAAG,MAAM,CAAC,cAAc,IAAI,CAAC,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACtF,IAAI,mBAAwC,CAAC;IAC7C,MAAM,cAAc,GAAG,GAAY,EAAE;QACnC,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,mBAAmB,GAAG,mBAAmB,EAAE,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACP,mBAAmB,GAAG,KAAK,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,MAAM,CAAC,aAAa,IAAI,CAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACnF,IAAI,kBAAuC,CAAC;IAC5C,MAAM,aAAa,GAAG,GAAY,EAAE;QAClC,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,kBAAkB,GAAG,kBAAkB,EAAE,CAAC;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACP,kBAAkB,GAAG,KAAK,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,OAAO,kBAAkB,CAAC;IAC5B,CAAC,CAAC;IACF,MAAM,qBAAqB,GAAG,MAAM,CAAC,gBAAgB,IAAI,CAAC,GAAG,EAAE,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAC5F,IAAI,qBAA0C,CAAC;IAC/C,MAAM,gBAAgB,GAAG,GAAY,EAAE;QACrC,IAAI,qBAAqB,KAAK,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,qBAAqB,GAAG,qBAAqB,EAAE,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC;gBACP,qBAAqB,GAAG,KAAK,CAAC;YAChC,CAAC;QACH,CAAC;QACD,OAAO,qBAAqB,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,IAAI,GAAG,EAAwB,CAAC;IACpD,MAAM,MAAM,GAAG,CAAC,aAAqB,EAAgB,EAAE;QACrD,IAAI,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC;YACjE,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,GAAG,SAAS,CAAC;YACrB,CAAC;YACD,WAAW,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,qBAAqB,GACzB,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC,KAAqB,EAAE,EAAE,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5F,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAA2C,CAAC;IACjF,MAAM,gBAAgB,GAAG,CAAC,KAAqB,EAA2B,EAAE;QAC1E,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,IAAI,OAAO,GAA4B,IAAI,CAAC;YAC5C,IAAI,CAAC;gBACH,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;IAClD,CAAC,CAAC;IAEF,IAAI,cAA6D,CAAC;IAClE,MAAM,aAAa,GAAG,CAAC,EAAU,EAAoC,EAAE;QACrE,cAAc,KAAK,IAAI,GAAG,CACxB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,IAAI,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CACpG,CAAC;QACF,OAAO,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAE9B,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvC,MAAM,GAAG,qDAAqD,CAAC;QACjE,CAAC;aAAM,IAAI,SAAS,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,MAAM,GAAG,kCAAkC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACjE,MAAM,QAAQ,GACZ,CAAC,KAAK,IAAI,SAAS,IAAI,QAAQ,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1G,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBACpC,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM,GAAG,gBAAgB,QAAQ,CAAC,OAAO,iBAAiB,CAAC;gBAC7D,CAAC;qBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;oBAC7C,MAAM,GAAG,YAAY,QAAQ,CAAC,OAAO,oBAAoB,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAC7E,CAAC;qBAAM,CAAC;oBACN,UAAU,GAAG,IAAI,CAAC;oBAClB,MAAM,GAAG,yBAAyB,QAAQ,CAAC,OAAO,2BAA2B,CAAC;gBAChF,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,GAAG,oBAAoB,SAAS,IAAI,MAAM,iCAAiC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClH,CAAC;iBAAM,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC1B,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBAC/C,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACnE,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACvE,oGAAoG;oBACpG,MAAM,GAAG,oBAAoB,KAAK,CAAC,OAAO,4CAA4C,GAAG,CAAC,QAAQ,IAAI,CAAC;gBACzG,CAAC;qBAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,CAAC;oBAC7D,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,wBAAwB,CAAC;gBACpD,CAAC;qBAAM,IAAI,SAAS,IAAI,WAAW,EAAE,CAAC;oBACpC,MAAM,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;gBAC/C,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAChC,oFAAoF;oBACpF,iGAAiG;oBACjG,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;wBAClD,UAAU,GAAG,IAAI,CAAC;wBAClB,MAAM,GAAG,GAAG,iBAAiB,GAAG,KAAK,CAAC,OAAO,2EAA2E,CAAC;oBAC3H,CAAC;yBAAM,IAAI,KAAK,CAAC,OAAO,KAAK,UAAU,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;wBACjF,oFAAoF;wBACpF,IAAI,gBAAgB,EAAE,EAAE,CAAC;4BACvB,SAAS,GAAG,IAAI,CAAC;4BACjB,MAAM,GAAG,OAAO,KAAK,CAAC,OAAO,UAAU,GAAG,CAAC,MAAM,WAAW,CAAC;wBAC/D,CAAC;6BAAM,CAAC;4BACN,UAAU,GAAG,IAAI,CAAC;4BAClB,MAAM,GAAG,GAAG,iBAAiB,GAAG,KAAK,CAAC,OAAO,oCAAoC,GAAG,CAAC,MAAM,oDAAoD,GAAG,CAAC,MAAM,EAAE,CAAC;wBAC9J,CAAC;oBACH,CAAC;yBAAM,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;wBAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC5C,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC7F,CAAC;yBAAM,CAAC;wBACN,SAAS,GAAG,IAAI,CAAC;wBACjB,MAAM,GAAG,OAAO,KAAK,CAAC,OAAO,GAAG,CAAC;oBACnC,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5D,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;oBACvD,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBACpB,SAAS,GAAG,IAAI,CAAC;wBACjB,MAAM,GAAG,OAAO,KAAK,CAAC,OAAO,GAAG,CAAC;oBACnC,CAAC;yBAAM,IAAI,cAAc,EAAE,EAAE,CAAC;wBAC5B,SAAS,GAAG,IAAI,CAAC;wBACjB,MAAM,GAAG,OAAO,KAAK,CAAC,OAAO,UAAU,GAAG,WAAW,CAAC;oBACxD,CAAC;yBAAM,CAAC;wBACN,UAAU,GAAG,IAAI,CAAC;wBAClB,MAAM,GAAG,GAAG,iBAAiB,GAAG,KAAK,CAAC,OAAO,oCAAoC,GAAG,8CAA8C,GAAG,0EAA0E,CAAC;oBAClN,CAAC;gBACH,CAAC;qBAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBACjD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,UAAU,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACN,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM,GAAG,OAAO,KAAK,CAAC,OAAO,GAAG,CAAC;gBACnC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,6EAA6E;gBAC7E,mDAAmD;gBACnD,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;gBAChC,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnC,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM,GAAG,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,QAAQ,OAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;gBAChE,CAAC;qBAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACvC,MAAM,GAAG,0BAA0B,CAAC;gBACtC,CAAC;qBAAM,IAAI,kBAAkB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnF,MAAM,GAAG,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,2BAA2B,CAAC;gBACtE,CAAC;qBAAM,CAAC;oBACN,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM,GAAG,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QACvF,OAAO,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { ModelRegistry } from './index.js';
2
+ export interface ModelOverrides {
3
+ plan?: string;
4
+ build?: string;
5
+ }
6
+ /** Suffix for an unknown-model error when the id is a retired packaged model; '' otherwise. */
7
+ export declare function retiredModelHint(id: string): string;
8
+ /** Resolve FACTORY_PLAN_MODEL / FACTORY_BUILD_MODEL env overrides, validated
9
+ * against the registry. Throws a configuration error naming the env var when
10
+ * it references a model not present in models.json. Empty/whitespace values
11
+ * are treated as unset. */
12
+ export declare function resolveModelOverrides(registry: ModelRegistry, env?: NodeJS.ProcessEnv): ModelOverrides;
13
+ //# sourceMappingURL=overrides.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overrides.d.ts","sourceRoot":"","sources":["../../src/models/overrides.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,+FAA+F;AAC/F,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;;4BAG4B;AAC5B,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,cAAc,CAYnH"}
@@ -0,0 +1,24 @@
1
+ // src/models/overrides.ts — Env model overrides and retired-model hints
2
+ import { retiredModels } from '@on-par/factory-config';
3
+ /** Suffix for an unknown-model error when the id is a retired packaged model; '' otherwise. */
4
+ export function retiredModelHint(id) {
5
+ const retired = Object.hasOwn(retiredModels, id) ? retiredModels[id] : undefined;
6
+ return retired ? `; '${id}' was removed under ${retired.adr}; use '${retired.replacement}'` : '';
7
+ }
8
+ /** Resolve FACTORY_PLAN_MODEL / FACTORY_BUILD_MODEL env overrides, validated
9
+ * against the registry. Throws a configuration error naming the env var when
10
+ * it references a model not present in models.json. Empty/whitespace values
11
+ * are treated as unset. */
12
+ export function resolveModelOverrides(registry, env = process.env) {
13
+ const resolveVar = (envVar) => {
14
+ const value = env[envVar]?.trim();
15
+ if (!value)
16
+ return undefined;
17
+ if (!registry.get(value)) {
18
+ throw new Error(`${envVar} is set to '${value}', which is not a model in models.json (known models: ${registry.list().join(', ')})${retiredModelHint(value)}`);
19
+ }
20
+ return value;
21
+ };
22
+ return { plan: resolveVar('FACTORY_PLAN_MODEL'), build: resolveVar('FACTORY_BUILD_MODEL') };
23
+ }
24
+ //# sourceMappingURL=overrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/models/overrides.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AASvD,+FAA+F;AAC/F,MAAM,UAAU,gBAAgB,CAAC,EAAU;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,uBAAuB,OAAO,CAAC,GAAG,UAAU,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACnG,CAAC;AAED;;;4BAG4B;AAC5B,MAAM,UAAU,qBAAqB,CAAC,QAAuB,EAAE,GAAG,GAAsB,OAAO,CAAC,GAAG;IACjG,MAAM,UAAU,GAAG,CAAC,MAAoD,EAAsB,EAAE;QAC9F,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,GAAG,MAAM,eAAe,KAAK,yDAAyD,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAC9I,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;AAC9F,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { type SpawnSyncOptionsWithStringEncoding, type SpawnSyncReturns } from 'node:child_process';
2
+ /** Result of `pi auth check` (#2903): ready=exit 0, not_ready=exit 1, invalid=exit 2; anything else is unknown. */
3
+ export type PiAuthStatus = 'ready' | 'not_ready' | 'invalid' | 'unknown';
4
+ /** The slice of `spawnSync` that runPiAuthCheck uses; injectable in tests. */
5
+ export type PiSpawn = (command: string, args: string[], options: SpawnSyncOptionsWithStringEncoding) => Pick<SpawnSyncReturns<string>, 'status' | 'signal' | 'stdout' | 'error'>;
6
+ /** Runs `pi auth check --model <m> --no-refresh` (no model call, no token refresh). The exit code and the
7
+ * stdout token must agree, so an older pi without the subcommand reads as unknown, not not_ready. */
8
+ export declare function runPiAuthCheck(providerModel: string, spawn?: PiSpawn): PiAuthStatus;
9
+ /** Maps a `pi auth check` status to the reachability fields of a ModelDiagnosis row. */
10
+ export declare function piAuthOutcome(status: PiAuthStatus, target: string, okLabel: string): {
11
+ reachable: boolean;
12
+ unverified: boolean;
13
+ reason: string;
14
+ };
15
+ //# sourceMappingURL=pi-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-auth.d.ts","sourceRoot":"","sources":["../../src/models/pi-auth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kCAAkC,EAAE,KAAK,gBAAgB,EAAa,MAAM,oBAAoB,CAAC;AAI/G,mHAAmH;AACnH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;AAMzE,8EAA8E;AAC9E,MAAM,MAAM,OAAO,GAAG,CACpB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,kCAAkC,KACxC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAC;AAE9E;sGACsG;AACtG,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,GAAE,OAAmB,GAAG,YAAY,CAoB9F;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAuB7D"}
@@ -0,0 +1,57 @@
1
+ // src/models/pi-auth.ts — `pi auth check` probe for factory models --doctor (#2903)
2
+ import { spawnSync } from 'node:child_process';
3
+ const PI_AUTH_TIMEOUT_MS = 10_000;
4
+ const PI_LOGIN_HINT = 'run `pi` then `/login <provider>`, or export the provider key';
5
+ const PI_AUTH_EXPECTED = { 0: 'ready', 1: 'not_ready', 2: 'invalid' };
6
+ /** Runs `pi auth check --model <m> --no-refresh` (no model call, no token refresh). The exit code and the
7
+ * stdout token must agree, so an older pi without the subcommand reads as unknown, not not_ready. */
8
+ export function runPiAuthCheck(providerModel, spawn = spawnSync) {
9
+ try {
10
+ const res = spawn('pi', ['auth', 'check', '--model', providerModel, '--no-refresh'], {
11
+ encoding: 'utf8',
12
+ timeout: PI_AUTH_TIMEOUT_MS,
13
+ stdio: 'pipe',
14
+ // Mirrors the pi harness (ADR-0163): DEEPSEEK_API_KEY is never passed to pi.
15
+ env: { ...process.env, DEEPSEEK_API_KEY: undefined },
16
+ });
17
+ if (res.error || res.signal || res.status === null)
18
+ return 'unknown';
19
+ const expected = PI_AUTH_EXPECTED[res.status];
20
+ if (!expected)
21
+ return 'unknown';
22
+ const token = String(res.stdout ?? '')
23
+ .split('\n')
24
+ .map((line) => line.trim().toLowerCase())
25
+ .find((line) => line !== '');
26
+ return token === expected ? expected : 'unknown';
27
+ }
28
+ catch {
29
+ return 'unknown';
30
+ }
31
+ }
32
+ /** Maps a `pi auth check` status to the reachability fields of a ModelDiagnosis row. */
33
+ export function piAuthOutcome(status, target, okLabel) {
34
+ switch (status) {
35
+ case 'ready':
36
+ return { reachable: true, unverified: false, reason: `ok (${okLabel})` };
37
+ case 'not_ready':
38
+ return {
39
+ reachable: false,
40
+ unverified: true,
41
+ reason: `unverified — no auth evidence: ${okLabel} auth check not_ready for ${target} — ${PI_LOGIN_HINT}`,
42
+ };
43
+ case 'invalid':
44
+ return {
45
+ reachable: false,
46
+ unverified: false,
47
+ reason: `${okLabel} reports invalid credentials for ${target} — ${PI_LOGIN_HINT}`,
48
+ };
49
+ default:
50
+ return {
51
+ reachable: false,
52
+ unverified: true,
53
+ reason: `unverified — could not run \`pi auth check\` for ${target} (upgrade pi or check it runs)`,
54
+ };
55
+ }
56
+ }
57
+ //# sourceMappingURL=pi-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-auth.js","sourceRoot":"","sources":["../../src/models/pi-auth.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,OAAO,EAAkE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/G,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAKlC,MAAM,aAAa,GAAG,+DAA+D,CAAC;AAEtF,MAAM,gBAAgB,GAA2C,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;AAS9G;sGACsG;AACtG,MAAM,UAAU,cAAc,CAAC,aAAqB,EAAE,KAAK,GAAY,SAAS;IAC9E,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE;YACnF,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,kBAAkB;YAC3B,KAAK,EAAE,MAAM;YACb,6EAA6E;YAC7E,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE;SACrD,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QACrE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;aACnC,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACxC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;QAC/B,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,aAAa,CAC3B,MAAoB,EACpB,MAAc,EACd,OAAe;IAEf,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO;YACV,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,OAAO,GAAG,EAAE,CAAC;QAC3E,KAAK,WAAW;YACd,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,IAAI;gBAChB,MAAM,EAAE,kCAAkC,OAAO,6BAA6B,MAAM,MAAM,aAAa,EAAE;aAC1G,CAAC;QACJ,KAAK,SAAS;YACZ,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,GAAG,OAAO,oCAAoC,MAAM,MAAM,aAAa,EAAE;aAClF,CAAC;QACJ;YACE,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,IAAI;gBAChB,MAAM,EAAE,oDAAoD,MAAM,gCAAgC;aACnG,CAAC;IACN,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ModelDiagnosis } from './index.js';
2
+ /** Doctor reason when `providerModel`'s intermediary is past its ZDR review date (ADR-0163); null otherwise. */
3
+ export declare function zdrReviewReason(providerModel: string, now: Date): string | null;
4
+ /** Downgrade a doctor row whose intermediary's ZDR review date has passed (#2897). */
5
+ export declare function applyZdrReview(d: ModelDiagnosis, providerModel: string, now?: () => Date): ModelDiagnosis;
6
+ //# sourceMappingURL=zdr-review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zdr-review.d.ts","sourceRoot":"","sources":["../../src/models/zdr-review.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,gHAAgH;AAChH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAK/E;AAOD,sFAAsF;AACtF,wBAAgB,cAAc,CAC5B,CAAC,EAAE,cAAc,EACjB,aAAa,EAAE,MAAM,EACrB,GAAG,GAAE,MAAM,IAAuB,GACjC,cAAc,CAMhB"}
@@ -0,0 +1,27 @@
1
+ // src/models/zdr-review.ts — Doctor downgrade for intermediaries past their ZDR review date (ADR-0163, #2897)
2
+ import { intermediaryFor } from '../config/intermediaries.js';
3
+ /** Doctor reason when `providerModel`'s intermediary is past its ZDR review date (ADR-0163); null otherwise. */
4
+ export function zdrReviewReason(providerModel, now) {
5
+ const intermediary = intermediaryFor(providerModel);
6
+ if (!intermediary?.reviewBy)
7
+ return null;
8
+ if (now.toISOString().slice(0, 10) <= intermediary.reviewBy)
9
+ return null; // the review day itself is still valid
10
+ return `ZDR review date ${intermediary.reviewBy} passed for ${intermediary.name}; re-check the agreement (ADR-0163)`;
11
+ }
12
+ /** Rows diagnoseModels excluded without probing (experimental-disabled / FACTORY_LOCAL_ONLY). */
13
+ function isExcludedRow(d) {
14
+ return d.reason.startsWith('experimental —') || d.reason === 'excluded by FACTORY_LOCAL_ONLY=1';
15
+ }
16
+ /** Downgrade a doctor row whose intermediary's ZDR review date has passed (#2897). */
17
+ export function applyZdrReview(d, providerModel, now = () => new Date()) {
18
+ const zdr = zdrReviewReason(providerModel, now());
19
+ if (!zdr)
20
+ return d;
21
+ if (d.reachable || d.unverified)
22
+ return { ...d, reachable: false, unverified: true, reason: `${zdr} (${d.reason})` };
23
+ if (isExcludedRow(d))
24
+ return d;
25
+ return { ...d, reason: `${d.reason}; ${zdr}` };
26
+ }
27
+ //# sourceMappingURL=zdr-review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zdr-review.js","sourceRoot":"","sources":["../../src/models/zdr-review.ts"],"names":[],"mappings":"AAAA,8GAA8G;AAE9G,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,gHAAgH;AAChH,MAAM,UAAU,eAAe,CAAC,aAAqB,EAAE,GAAS;IAC9D,MAAM,YAAY,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IACpD,IAAI,CAAC,YAAY,EAAE,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC,CAAC,uCAAuC;IACjH,OAAO,mBAAmB,YAAY,CAAC,QAAQ,eAAe,YAAY,CAAC,IAAI,qCAAqC,CAAC;AACvH,CAAC;AAED,iGAAiG;AACjG,SAAS,aAAa,CAAC,CAAiB;IACtC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,kCAAkC,CAAC;AAClG,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,cAAc,CAC5B,CAAiB,EACjB,aAAqB,EACrB,GAAG,GAAe,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;IAElC,MAAM,GAAG,GAAG,eAAe,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,GAAG;QAAE,OAAO,CAAC,CAAC;IACnB,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU;QAAE,OAAO,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;IACrH,IAAI,aAAa,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;AACjD,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { ModelRouter, RouterResult } from '../router/index.js';
2
+ import { type ConsumedSteering } from '../steering/index.js';
3
+ import type { FailoverReason } from '../types/index.js';
4
+ type Log = (type: 'worker_failover', msg: string, extra: {
5
+ failoverReason: FailoverReason;
6
+ }) => void;
7
+ /**
8
+ * Where an OpenCode BUILD continues once every build_opencode worker is capped (#2885): the first
9
+ * build_claude worker, else the first build_codex worker. Undefined means rethrow the original
10
+ * failure: the repo pinned the route (ADR-0092), auto-failover is off, or no target worker exists.
11
+ */
12
+ export declare function failOverOpencodeBuild(opts: {
13
+ router: ModelRouter;
14
+ reason: FailoverReason;
15
+ fromModel: string;
16
+ runOpts: Parameters<ModelRouter['run']>[2];
17
+ prompts: {
18
+ claude: () => string;
19
+ codex: () => string;
20
+ };
21
+ build: {
22
+ steering?: ConsumedSteering;
23
+ log: Log;
24
+ routePinned?: boolean;
25
+ autoFailover?: {
26
+ enabled: boolean;
27
+ };
28
+ codexDisabled?: boolean;
29
+ };
30
+ }): Promise<{
31
+ route: 'claude' | 'codex';
32
+ result: RouterResult;
33
+ } | undefined>;
34
+ export {};
35
+ //# sourceMappingURL=build-opencode-failover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-opencode-failover.d.ts","sourceRoot":"","sources":["../../src/phases/build-opencode-failover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE;IAAE,cAAc,EAAE,cAAc,CAAA;CAAE,KAAK,IAAI,CAAC;AAErG;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,MAAM,CAAA;KAAE,CAAC;IACvD,KAAK,EAAE;QACL,QAAQ,CAAC,EAAE,gBAAgB,CAAC;QAC5B,GAAG,EAAE,GAAG,CAAC;QACT,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,YAAY,CAAC,EAAE;YAAE,OAAO,EAAE,OAAO,CAAA;SAAE,CAAC;QACpC,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAAG,SAAS,CAAC,CA2B3E"}
@@ -0,0 +1,32 @@
1
+ import { applySteering } from '../steering/index.js';
2
+ /**
3
+ * Where an OpenCode BUILD continues once every build_opencode worker is capped (#2885): the first
4
+ * build_claude worker, else the first build_codex worker. Undefined means rethrow the original
5
+ * failure: the repo pinned the route (ADR-0092), auto-failover is off, or no target worker exists.
6
+ */
7
+ export async function failOverOpencodeBuild(opts) {
8
+ const { router, reason, fromModel } = opts;
9
+ if (opts.build.routePinned === true || (opts.build.autoFailover && !opts.build.autoFailover.enabled))
10
+ return undefined;
11
+ const claudeModel = router.resolveAll('build_claude')[0];
12
+ const codexModel = opts.build.codexDisabled ? undefined : router.resolveAll('build_codex')[0];
13
+ const target = claudeModel
14
+ ? { route: 'claude', task: 'build_claude', model: claudeModel }
15
+ : codexModel
16
+ ? { route: 'codex', task: 'build_codex', model: codexModel }
17
+ : undefined;
18
+ if (!target)
19
+ return undefined;
20
+ opts.build.log('worker_failover', `OpenCode build workers exhausted (${reason}) — continuing on ${target.route}: ` +
21
+ `from_model=${fromModel} to_model=${target.model} ` +
22
+ `from_route=build_opencode to_route=${target.task} reason=${reason}`, { failoverReason: reason });
23
+ const prompt = applySteering(opts.prompts[target.route](), opts.build.steering);
24
+ // modelOverride must be the chosen model: runOpts may hold the opencode pin.
25
+ const result = await router.run(target.task, prompt, {
26
+ ...opts.runOpts,
27
+ retryCause: 'failover',
28
+ modelOverride: target.model,
29
+ });
30
+ return { route: target.route, result };
31
+ }
32
+ //# sourceMappingURL=build-opencode-failover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-opencode-failover.js","sourceRoot":"","sources":["../../src/phases/build-opencode-failover.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAyB,MAAM,sBAAsB,CAAC;AAK5E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAa3C;IACC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC3C,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC;QAClG,OAAO,SAAS,CAAC;IACnB,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,MAAM,MAAM,GAAG,WAAW;QACxB,CAAC,CAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAY;QAC1E,CAAC,CAAC,UAAU;YACV,CAAC,CAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAY;YACvE,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,iBAAiB,EACjB,qCAAqC,MAAM,qBAAqB,MAAM,CAAC,KAAK,IAAI;QAC9E,cAAc,SAAS,aAAa,MAAM,CAAC,KAAK,GAAG;QACnD,sCAAsC,MAAM,CAAC,IAAI,WAAW,MAAM,EAAE,EACtE,EAAE,cAAc,EAAE,MAAM,EAAE,CAC3B,CAAC;IACF,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChF,6EAA6E;IAC7E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE;QACnD,GAAG,IAAI,CAAC,OAAO;QACf,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,MAAM,CAAC,KAAK;KAC5B,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;AACzC,CAAC"}
@@ -53,6 +53,8 @@ declare function buildPhaseImpl(opts: {
53
53
  /** modelOverride is the user's build pin (#367, #2510). A pinned build crosses harnesses only on
54
54
  * usage_cap or rate_limit; any other failure (local_auth included) parks like a pinned plan. */
55
55
  pinnedModel?: boolean;
56
+ /** The repo pinned the build route in .factory/config.json (ADR-0092); the opencode route never crosses harnesses then (#2885). */
57
+ routePinned?: boolean;
56
58
  /** Cross-provider Codex fallback used when a Claude worker is capped or unavailable. */
57
59
  codexFallbackModel?: string;
58
60
  onProviderFailure?: (info: {
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/phases/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/phases/build.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ import { failoversFrom } from '../router/index.js';
13
13
  import { applySteering } from '../steering/index.js';
14
14
  import { escalationLine, isEscalation } from '../utils/index.js';
15
15
  import { UNTRUSTED_ISSUE_BODY_NOTICE } from '../utils/untrusted-input.js';
16
+ import { failOverOpencodeBuild } from './build-opencode-failover.js';
16
17
  export async function buildPhase(opts) {
17
18
  return withLifecycle({
18
19
  bus: opts.bus,
@@ -153,6 +154,20 @@ async function buildPhaseImpl(opts) {
153
154
  modelOverride: fallback,
154
155
  });
155
156
  }
157
+ else if (taskType === 'build_opencode' && (reason === 'usage_cap' || reason === 'rate_limit')) {
158
+ const next = await failOverOpencodeBuild({
159
+ router,
160
+ reason,
161
+ runOpts,
162
+ build: opts,
163
+ fromModel: attempts?.at(-1)?.model ?? 'unknown',
164
+ prompts: { claude: claudeRoutePrompt, codex: () => buildCommitOnlyPrompt(promptOpts) },
165
+ });
166
+ if (!next)
167
+ throw err;
168
+ ({ route, result } = next);
169
+ crossHarnessReason = reason;
170
+ }
156
171
  else if (taskType !== 'build_codex' || !crossHarnessOk || reason === undefined)
157
172
  throw err;
158
173
  else {