@audit-tools/shared 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/contracts.d.ts +2 -0
  2. package/dist/contracts.d.ts.map +1 -0
  3. package/dist/contracts.js +2 -0
  4. package/dist/contracts.js.map +1 -0
  5. package/dist/index.d.ts +35 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +21 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/io/json.d.ts +11 -0
  10. package/dist/io/json.d.ts.map +1 -0
  11. package/dist/io/json.js +142 -0
  12. package/dist/io/json.js.map +1 -0
  13. package/dist/providers/constants.d.ts +2 -0
  14. package/dist/providers/constants.d.ts.map +1 -0
  15. package/dist/providers/constants.js +2 -0
  16. package/dist/providers/constants.js.map +1 -0
  17. package/dist/providers/types.d.ts +43 -0
  18. package/dist/providers/types.d.ts.map +1 -0
  19. package/dist/providers/types.js +2 -0
  20. package/dist/providers/types.js.map +1 -0
  21. package/dist/quota/compositeQuotaSource.d.ts +8 -0
  22. package/dist/quota/compositeQuotaSource.d.ts.map +1 -0
  23. package/dist/quota/compositeQuotaSource.js +21 -0
  24. package/dist/quota/compositeQuotaSource.js.map +1 -0
  25. package/dist/quota/errorParsers/claudeCodeErrorParser.d.ts +7 -0
  26. package/dist/quota/errorParsers/claudeCodeErrorParser.d.ts.map +1 -0
  27. package/dist/quota/errorParsers/claudeCodeErrorParser.js +40 -0
  28. package/dist/quota/errorParsers/claudeCodeErrorParser.js.map +1 -0
  29. package/dist/quota/errorParsers/genericErrorParser.d.ts +10 -0
  30. package/dist/quota/errorParsers/genericErrorParser.d.ts.map +1 -0
  31. package/dist/quota/errorParsers/genericErrorParser.js +8 -0
  32. package/dist/quota/errorParsers/genericErrorParser.js.map +1 -0
  33. package/dist/quota/errorParsers/index.d.ts +6 -0
  34. package/dist/quota/errorParsers/index.d.ts.map +1 -0
  35. package/dist/quota/errorParsers/index.js +13 -0
  36. package/dist/quota/errorParsers/index.js.map +1 -0
  37. package/dist/quota/errorParsing.d.ts +8 -0
  38. package/dist/quota/errorParsing.d.ts.map +1 -0
  39. package/dist/quota/errorParsing.js +70 -0
  40. package/dist/quota/errorParsing.js.map +1 -0
  41. package/dist/quota/fileLock.d.ts +7 -0
  42. package/dist/quota/fileLock.d.ts.map +1 -0
  43. package/dist/quota/fileLock.js +65 -0
  44. package/dist/quota/fileLock.js.map +1 -0
  45. package/dist/quota/hostLimits.d.ts +10 -0
  46. package/dist/quota/hostLimits.d.ts.map +1 -0
  47. package/dist/quota/hostLimits.js +52 -0
  48. package/dist/quota/hostLimits.js.map +1 -0
  49. package/dist/quota/learnedQuotaSource.d.ts +8 -0
  50. package/dist/quota/learnedQuotaSource.d.ts.map +1 -0
  51. package/dist/quota/learnedQuotaSource.js +26 -0
  52. package/dist/quota/learnedQuotaSource.js.map +1 -0
  53. package/dist/quota/limits.d.ts +17 -0
  54. package/dist/quota/limits.d.ts.map +1 -0
  55. package/dist/quota/limits.js +78 -0
  56. package/dist/quota/limits.js.map +1 -0
  57. package/dist/quota/quotaSource.d.ts +13 -0
  58. package/dist/quota/quotaSource.d.ts.map +1 -0
  59. package/dist/quota/quotaSource.js +2 -0
  60. package/dist/quota/quotaSource.js.map +1 -0
  61. package/dist/quota/slidingWindow.d.ts +5 -0
  62. package/dist/quota/slidingWindow.d.ts.map +1 -0
  63. package/dist/quota/slidingWindow.js +29 -0
  64. package/dist/quota/slidingWindow.js.map +1 -0
  65. package/dist/quota/state.d.ts +13 -0
  66. package/dist/quota/state.d.ts.map +1 -0
  67. package/dist/quota/state.js +153 -0
  68. package/dist/quota/state.js.map +1 -0
  69. package/dist/quota/types.d.ts +54 -0
  70. package/dist/quota/types.d.ts.map +1 -0
  71. package/dist/quota/types.js +2 -0
  72. package/dist/quota/types.js.map +1 -0
  73. package/dist/types/accessDeclaration.d.ts +6 -0
  74. package/dist/types/accessDeclaration.d.ts.map +1 -0
  75. package/dist/types/accessDeclaration.js +2 -0
  76. package/dist/types/accessDeclaration.js.map +1 -0
  77. package/dist/types/disposition.d.ts +10 -0
  78. package/dist/types/disposition.d.ts.map +1 -0
  79. package/dist/types/disposition.js +2 -0
  80. package/dist/types/disposition.js.map +1 -0
  81. package/dist/types/flows.d.ts +18 -0
  82. package/dist/types/flows.d.ts.map +1 -0
  83. package/dist/types/flows.js +2 -0
  84. package/dist/types/flows.js.map +1 -0
  85. package/dist/types/graph.d.ts +23 -0
  86. package/dist/types/graph.d.ts.map +1 -0
  87. package/dist/types/graph.js +2 -0
  88. package/dist/types/graph.js.map +1 -0
  89. package/dist/types/risk.d.ts +10 -0
  90. package/dist/types/risk.d.ts.map +1 -0
  91. package/dist/types/risk.js +2 -0
  92. package/dist/types/risk.js.map +1 -0
  93. package/dist/types/runLedger.d.ts +18 -0
  94. package/dist/types/runLedger.d.ts.map +1 -0
  95. package/dist/types/runLedger.js +7 -0
  96. package/dist/types/runLedger.js.map +1 -0
  97. package/dist/types/sessionConfig.d.ts +75 -0
  98. package/dist/types/sessionConfig.d.ts.map +1 -0
  99. package/dist/types/sessionConfig.js +16 -0
  100. package/dist/types/sessionConfig.js.map +1 -0
  101. package/dist/types/stepContract.d.ts +7 -0
  102. package/dist/types/stepContract.d.ts.map +1 -0
  103. package/dist/types/stepContract.js +2 -0
  104. package/dist/types/stepContract.js.map +1 -0
  105. package/dist/types/surfaces.d.ts +16 -0
  106. package/dist/types/surfaces.d.ts.map +1 -0
  107. package/dist/types/surfaces.js +2 -0
  108. package/dist/types/surfaces.js.map +1 -0
  109. package/dist/validation/basic.d.ts +14 -0
  110. package/dist/validation/basic.d.ts.map +1 -0
  111. package/dist/validation/basic.js +47 -0
  112. package/dist/validation/basic.js.map +1 -0
  113. package/package.json +29 -0
@@ -0,0 +1,2 @@
1
+ export declare const AUDITOR_REPORT_MARKER: "<!-- audit-tools/audit-report/v1 -->";
2
+ //# sourceMappingURL=contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,EAChC,sCAA+C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const AUDITOR_REPORT_MARKER = "<!-- audit-tools/audit-report/v1 -->";
2
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAChC,sCAA+C,CAAC"}
@@ -0,0 +1,35 @@
1
+ export type { FileDispositionStatus, FileDispositionItem, FileDisposition, } from "./types/disposition.js";
2
+ export type { RiskItem, RiskRegister } from "./types/risk.js";
3
+ export type { FlowConfidenceLevel, CriticalFlow, CriticalFlowManifest, } from "./types/flows.js";
4
+ export { FLOW_CONFIDENCE_LEVELS } from "./types/flows.js";
5
+ export type { SurfaceKind, SurfaceRecord, SurfaceManifest, } from "./types/surfaces.js";
6
+ export { SURFACE_KINDS } from "./types/surfaces.js";
7
+ export type { RunLedgerStatus, RunLedgerEntry, RunLedger, } from "./types/runLedger.js";
8
+ export { RUN_LEDGER_STATUSES } from "./types/runLedger.js";
9
+ export type { GraphEdge, RouteEdge, GraphBundle, } from "./types/graph.js";
10
+ export type { AccessDeclaration } from "./types/accessDeclaration.js";
11
+ export type { StepStatus, DispatchModelTier, DispatchModelHint, } from "./types/stepContract.js";
12
+ export type { ProviderName, ResolvedProviderName, SessionUiMode, SubprocessTemplateConfig, ClaudeCodeConfig, OpenCodeConfig, VSCodeTaskConfig, BlockQuotaConfig, QuotaModelLimits, QuotaConfig, OpenTokenConfig, SessionConfig, } from "./types/sessionConfig.js";
13
+ export { PROVIDER_NAMES, SESSION_UI_MODES, PROVIDER_SECTION_KEYS, } from "./types/sessionConfig.js";
14
+ export { AUDITOR_REPORT_MARKER } from "./contracts.js";
15
+ export { isFileMissingError, readJsonFile, writeJsonFile, appendNdjsonFile, readNdjsonFile, readOptionalJsonFile, readOptionalNdjsonFile, writeNdjsonFile, readOptionalTextFile, writeTextFile, } from "./io/json.js";
16
+ export type { ValidationSeverity, ValidationIssue } from "./validation/basic.js";
17
+ export { describeValue, isRecord, createValidationIssue, pushValidationIssue, prefixValidationIssues, formatValidationIssues, requireKeys, } from "./validation/basic.js";
18
+ export type { WorkerProgress, LaunchFreshSessionInput, LaunchFreshSessionResult, ProviderRateLimits, FreshSessionProvider, } from "./providers/types.js";
19
+ export { LOCAL_SUBPROCESS_PROVIDER_NAME } from "./providers/constants.js";
20
+ export type { LimitSource, LimitConfidence, HostConcurrencyLimitSource, HostConcurrencyLimit, ResolvedLimits, ConcurrencyBucket, QuotaStateEntry, QuotaState, WaveSchedule, BackoffState, ObservedWaveOutcome, } from "./quota/types.js";
21
+ export type { QuotaSource, QuotaUsageSnapshot } from "./quota/quotaSource.js";
22
+ export { resolveLimits, lookupKnownModel, classifyProvider, } from "./quota/limits.js";
23
+ export type { ProviderType, LimitResolutionResult, ResolveLimitsOptions, } from "./quota/limits.js";
24
+ export { setQuotaStateDir, getQuotaStatePath, readQuotaState, writeQuotaState, computeMaxSafeConcurrency, recordWaveOutcome, decayWeight, applyDecayToEntry, computeBackoffCooldownMs, computeBackoffFailureWeight, computeRampUpConcurrency, } from "./quota/state.js";
25
+ export { detectRateLimitError, computeCooldownUntil, } from "./quota/errorParsing.js";
26
+ export { detectHostActiveSubagentLimit, resolveHostActiveSubagentLimit, } from "./quota/hostLimits.js";
27
+ export type { RateLimitDetectionResult } from "./quota/errorParsing.js";
28
+ export { acquireLock, releaseLock, withFileLock, FileLockTimeoutError, } from "./quota/fileLock.js";
29
+ export { runSlidingWindow } from "./quota/slidingWindow.js";
30
+ export type { SlidingWindowResult } from "./quota/slidingWindow.js";
31
+ export { LearnedQuotaSource } from "./quota/learnedQuotaSource.js";
32
+ export { CompositeQuotaSource } from "./quota/compositeQuotaSource.js";
33
+ export type { ErrorParser } from "./quota/errorParsers/index.js";
34
+ export { GenericErrorParser, ClaudeCodeErrorParser, getErrorParserForProvider, } from "./quota/errorParsers/index.js";
35
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
1
+ export { FLOW_CONFIDENCE_LEVELS } from "./types/flows.js";
2
+ export { SURFACE_KINDS } from "./types/surfaces.js";
3
+ export { RUN_LEDGER_STATUSES } from "./types/runLedger.js";
4
+ export { PROVIDER_NAMES, SESSION_UI_MODES, PROVIDER_SECTION_KEYS, } from "./types/sessionConfig.js";
5
+ // Contracts
6
+ export { AUDITOR_REPORT_MARKER } from "./contracts.js";
7
+ // IO
8
+ export { isFileMissingError, readJsonFile, writeJsonFile, appendNdjsonFile, readNdjsonFile, readOptionalJsonFile, readOptionalNdjsonFile, writeNdjsonFile, readOptionalTextFile, writeTextFile, } from "./io/json.js";
9
+ export { describeValue, isRecord, createValidationIssue, pushValidationIssue, prefixValidationIssues, formatValidationIssues, requireKeys, } from "./validation/basic.js";
10
+ // Provider constants
11
+ export { LOCAL_SUBPROCESS_PROVIDER_NAME } from "./providers/constants.js";
12
+ export { resolveLimits, lookupKnownModel, classifyProvider, } from "./quota/limits.js";
13
+ export { setQuotaStateDir, getQuotaStatePath, readQuotaState, writeQuotaState, computeMaxSafeConcurrency, recordWaveOutcome, decayWeight, applyDecayToEntry, computeBackoffCooldownMs, computeBackoffFailureWeight, computeRampUpConcurrency, } from "./quota/state.js";
14
+ export { detectRateLimitError, computeCooldownUntil, } from "./quota/errorParsing.js";
15
+ export { detectHostActiveSubagentLimit, resolveHostActiveSubagentLimit, } from "./quota/hostLimits.js";
16
+ export { acquireLock, releaseLock, withFileLock, FileLockTimeoutError, } from "./quota/fileLock.js";
17
+ export { runSlidingWindow } from "./quota/slidingWindow.js";
18
+ export { LearnedQuotaSource } from "./quota/learnedQuotaSource.js";
19
+ export { CompositeQuotaSource } from "./quota/compositeQuotaSource.js";
20
+ export { GenericErrorParser, ClaudeCodeErrorParser, getErrorParserForProvider, } from "./quota/errorParsers/index.js";
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAM1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AA0B3D,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAElC,YAAY;AACZ,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,KAAK;AACL,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,aAAa,GACd,MAAM,cAAc,CAAC;AAItB,OAAO,EACL,aAAa,EACb,QAAQ,EACR,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAW/B,qBAAqB;AACrB,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAiB1E,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,yBAAyB,EACzB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare function isFileMissingError(error: unknown): boolean;
2
+ export declare function readJsonFile<T>(path: string): Promise<T>;
3
+ export declare function writeJsonFile(path: string, value: unknown): Promise<void>;
4
+ export declare function appendNdjsonFile(path: string, value: unknown): Promise<void>;
5
+ export declare function readNdjsonFile<T>(path: string): Promise<T[]>;
6
+ export declare function readOptionalJsonFile<T>(path: string): Promise<T | undefined>;
7
+ export declare function readOptionalNdjsonFile<T>(path: string): Promise<T[] | undefined>;
8
+ export declare function writeNdjsonFile(path: string, values: unknown[]): Promise<void>;
9
+ export declare function readOptionalTextFile(path: string): Promise<string | undefined>;
10
+ export declare function writeTextFile(path: string, value: string): Promise<void>;
11
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/io/json.ts"],"names":[],"mappings":"AA+CA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAO1D;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAgB9D;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAmClE;AAED,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CASxB;AAED,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAS1B;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,EAAE,GAChB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS7B;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -0,0 +1,142 @@
1
+ import { mkdir, readFile, writeFile, appendFile, rename, rm, } from "node:fs/promises";
2
+ import { basename, dirname, join } from "node:path";
3
+ import { randomUUID } from "node:crypto";
4
+ function errorMessage(error) {
5
+ return error instanceof Error ? error.message : String(error);
6
+ }
7
+ function ioError(action, path, error) {
8
+ return new Error(`Failed to ${action} ${path}: ${errorMessage(error)}`);
9
+ }
10
+ async function ensureParentDirectory(path) {
11
+ try {
12
+ await mkdir(dirname(path), { recursive: true });
13
+ }
14
+ catch (error) {
15
+ throw ioError("prepare parent directory", path, error);
16
+ }
17
+ }
18
+ async function writeFileAtomic(path, content) {
19
+ await ensureParentDirectory(path);
20
+ const temp = join(dirname(path), `.${basename(path)}.${process.pid}.${randomUUID()}.tmp`);
21
+ try {
22
+ await writeFile(temp, content, "utf8");
23
+ await rename(temp, path);
24
+ }
25
+ catch (error) {
26
+ throw ioError("write", path, error);
27
+ }
28
+ finally {
29
+ await rm(temp, { force: true }).catch(() => undefined);
30
+ }
31
+ }
32
+ export function isFileMissingError(error) {
33
+ return (typeof error === "object" &&
34
+ error !== null &&
35
+ "code" in error &&
36
+ error.code === "ENOENT");
37
+ }
38
+ export async function readJsonFile(path) {
39
+ let content;
40
+ try {
41
+ content = await readFile(path, "utf8");
42
+ }
43
+ catch (error) {
44
+ if (isFileMissingError(error)) {
45
+ throw error;
46
+ }
47
+ throw ioError("read", path, error);
48
+ }
49
+ try {
50
+ return JSON.parse(content);
51
+ }
52
+ catch (error) {
53
+ throw new Error(`Invalid JSON in ${path}: ${errorMessage(error)}`);
54
+ }
55
+ }
56
+ export async function writeJsonFile(path, value) {
57
+ await writeFileAtomic(path, JSON.stringify(value, null, 2) + "\n");
58
+ }
59
+ export async function appendNdjsonFile(path, value) {
60
+ await ensureParentDirectory(path);
61
+ try {
62
+ await appendFile(path, JSON.stringify(value) + "\n", "utf8");
63
+ }
64
+ catch (error) {
65
+ throw ioError("append", path, error);
66
+ }
67
+ }
68
+ export async function readNdjsonFile(path) {
69
+ try {
70
+ const content = await readFile(path, "utf8");
71
+ const values = [];
72
+ let sawContent = false;
73
+ for (const [index, line] of content.split(/\r?\n/).entries()) {
74
+ if (line.trim().length === 0) {
75
+ continue;
76
+ }
77
+ sawContent = true;
78
+ try {
79
+ values.push(JSON.parse(line));
80
+ }
81
+ catch (error) {
82
+ throw new Error(`Invalid NDJSON in ${path} at line ${index + 1}: ${errorMessage(error)}`);
83
+ }
84
+ }
85
+ if (!sawContent && content.length > 0) {
86
+ throw new Error(`NDJSON file ${path} contains only whitespace — possible truncated write`);
87
+ }
88
+ return values;
89
+ }
90
+ catch (error) {
91
+ if (isFileMissingError(error)) {
92
+ throw error;
93
+ }
94
+ if (error instanceof Error && error.message.includes(path)) {
95
+ throw error;
96
+ }
97
+ throw ioError("read", path, error);
98
+ }
99
+ }
100
+ export async function readOptionalJsonFile(path) {
101
+ try {
102
+ return await readJsonFile(path);
103
+ }
104
+ catch (error) {
105
+ if (isFileMissingError(error)) {
106
+ return undefined;
107
+ }
108
+ throw error;
109
+ }
110
+ }
111
+ export async function readOptionalNdjsonFile(path) {
112
+ try {
113
+ return await readNdjsonFile(path);
114
+ }
115
+ catch (error) {
116
+ if (isFileMissingError(error)) {
117
+ return undefined;
118
+ }
119
+ throw error;
120
+ }
121
+ }
122
+ export async function writeNdjsonFile(path, values) {
123
+ const content = values.length === 0
124
+ ? ""
125
+ : values.map((v) => JSON.stringify(v)).join("\n") + "\n";
126
+ await writeFileAtomic(path, content);
127
+ }
128
+ export async function readOptionalTextFile(path) {
129
+ try {
130
+ return await readFile(path, "utf8");
131
+ }
132
+ catch (error) {
133
+ if (isFileMissingError(error)) {
134
+ return undefined;
135
+ }
136
+ throw ioError("read", path, error);
137
+ }
138
+ }
139
+ export async function writeTextFile(path, value) {
140
+ await writeFileAtomic(path, value);
141
+ }
142
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/io/json.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const LOCAL_SUBPROCESS_PROVIDER_NAME: "local-subprocess";
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/providers/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B,EAAG,kBAA2B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const LOCAL_SUBPROCESS_PROVIDER_NAME = "local-subprocess";
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/providers/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,8BAA8B,GAAG,kBAA2B,CAAC"}
@@ -0,0 +1,43 @@
1
+ export interface WorkerProgress {
2
+ type: "heartbeat" | "output";
3
+ runId: string;
4
+ obligationId: string | null;
5
+ elapsedMs: number;
6
+ message?: string;
7
+ }
8
+ export interface LaunchFreshSessionInput {
9
+ repoRoot: string;
10
+ runId: string;
11
+ obligationId: string | null;
12
+ promptPath: string;
13
+ taskPath: string;
14
+ resultPath: string;
15
+ stdoutPath: string;
16
+ stderrPath: string;
17
+ uiMode: "visible" | "headless";
18
+ timeoutMs: number;
19
+ stdinText?: string;
20
+ onProgress?: (update: WorkerProgress) => void;
21
+ }
22
+ export interface LaunchFreshSessionResult {
23
+ accepted: boolean;
24
+ processId?: number;
25
+ exitCode?: number | null;
26
+ signal?: string | null;
27
+ command?: string;
28
+ args?: string[];
29
+ stdoutPath?: string;
30
+ stderrPath?: string;
31
+ error?: string;
32
+ }
33
+ export interface ProviderRateLimits {
34
+ requests_per_minute?: number | null;
35
+ input_tokens_per_minute?: number | null;
36
+ output_tokens_per_minute?: number | null;
37
+ }
38
+ export interface FreshSessionProvider {
39
+ name: string;
40
+ launch(input: LaunchFreshSessionInput): Promise<LaunchFreshSessionResult>;
41
+ queryLimits?(model: string | null): Promise<ProviderRateLimits | null>;
42
+ }
43
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC1E,WAAW,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;CACxE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { QuotaSource, QuotaUsageSnapshot } from "./quotaSource.js";
2
+ export declare class CompositeQuotaSource implements QuotaSource {
3
+ readonly name = "composite";
4
+ private sources;
5
+ constructor(sources: QuotaSource[]);
6
+ queryCurrentUsage(providerModelKey: string): Promise<QuotaUsageSnapshot | null>;
7
+ }
8
+ //# sourceMappingURL=compositeQuotaSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compositeQuotaSource.d.ts","sourceRoot":"","sources":["../../src/quota/compositeQuotaSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAExE,qBAAa,oBAAqB,YAAW,WAAW;IACtD,QAAQ,CAAC,IAAI,eAAe;IAC5B,OAAO,CAAC,OAAO,CAAgB;gBAEnB,OAAO,EAAE,WAAW,EAAE;IAI5B,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;CAWtF"}
@@ -0,0 +1,21 @@
1
+ export class CompositeQuotaSource {
2
+ name = "composite";
3
+ sources;
4
+ constructor(sources) {
5
+ this.sources = sources;
6
+ }
7
+ async queryCurrentUsage(providerModelKey) {
8
+ for (const source of this.sources) {
9
+ try {
10
+ const snapshot = await source.queryCurrentUsage(providerModelKey);
11
+ if (snapshot)
12
+ return snapshot;
13
+ }
14
+ catch {
15
+ // Skip failing sources, try next
16
+ }
17
+ }
18
+ return null;
19
+ }
20
+ }
21
+ //# sourceMappingURL=compositeQuotaSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compositeQuotaSource.js","sourceRoot":"","sources":["../../src/quota/compositeQuotaSource.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,oBAAoB;IACtB,IAAI,GAAG,WAAW,CAAC;IACpB,OAAO,CAAgB;IAE/B,YAAY,OAAsB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,gBAAwB;QAC9C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;gBAClE,IAAI,QAAQ;oBAAE,OAAO,QAAQ,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,iCAAiC;YACnC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import type { RateLimitDetectionResult } from "../errorParsing.js";
2
+ import type { ErrorParser } from "./genericErrorParser.js";
3
+ export declare class ClaudeCodeErrorParser implements ErrorParser {
4
+ readonly name = "claude-code";
5
+ parse(text: string): RateLimitDetectionResult;
6
+ }
7
+ //# sourceMappingURL=claudeCodeErrorParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claudeCodeErrorParser.d.ts","sourceRoot":"","sources":["../../../src/quota/errorParsers/claudeCodeErrorParser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,qBAAa,qBAAsB,YAAW,WAAW;IACvD,QAAQ,CAAC,IAAI,iBAAiB;IAE9B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB;CAwC9C"}
@@ -0,0 +1,40 @@
1
+ export class ClaudeCodeErrorParser {
2
+ name = "claude-code";
3
+ parse(text) {
4
+ for (const line of text.split("\n")) {
5
+ const trimmed = line.trim();
6
+ if (!trimmed.startsWith("{"))
7
+ continue;
8
+ try {
9
+ const obj = JSON.parse(trimmed);
10
+ const level = obj["level"];
11
+ const type = obj["type"];
12
+ const message = obj["message"] ?? "";
13
+ const statusCode = obj["status_code"];
14
+ if (statusCode === 429 ||
15
+ type === "rate_limit_error" ||
16
+ (level === "error" && /\brate.?limit/i.test(message))) {
17
+ const retryAfter = obj["retry_after"];
18
+ const retryAfterMs = obj["retry_after_ms"];
19
+ let extractedMs = null;
20
+ if (retryAfterMs != null && retryAfterMs > 0) {
21
+ extractedMs = retryAfterMs;
22
+ }
23
+ else if (retryAfter != null && retryAfter > 0) {
24
+ extractedMs = retryAfter < 600 ? retryAfter * 1000 : retryAfter;
25
+ }
26
+ return {
27
+ isRateLimited: true,
28
+ retryAfterMs: extractedMs,
29
+ rawMatch: `claude-code-stderr:${statusCode ?? type ?? "rate_limit"}`,
30
+ };
31
+ }
32
+ }
33
+ catch {
34
+ // Not valid JSON, skip
35
+ }
36
+ }
37
+ return { isRateLimited: false, retryAfterMs: null, rawMatch: null };
38
+ }
39
+ }
40
+ //# sourceMappingURL=claudeCodeErrorParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claudeCodeErrorParser.js","sourceRoot":"","sources":["../../../src/quota/errorParsers/claudeCodeErrorParser.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,qBAAqB;IACvB,IAAI,GAAG,aAAa,CAAC;IAE9B,KAAK,CAAC,IAAY;QAChB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAEvC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;gBAE3D,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAuB,CAAC;gBACjD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAuB,CAAC;gBAC/C,MAAM,OAAO,GAAI,GAAG,CAAC,SAAS,CAAY,IAAI,EAAE,CAAC;gBACjD,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAuB,CAAC;gBAE5D,IACE,UAAU,KAAK,GAAG;oBAClB,IAAI,KAAK,kBAAkB;oBAC3B,CAAC,KAAK,KAAK,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EACrD,CAAC;oBACD,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAuB,CAAC;oBAC5D,MAAM,YAAY,GAAG,GAAG,CAAC,gBAAgB,CAAuB,CAAC;oBACjE,IAAI,WAAW,GAAkB,IAAI,CAAC;oBACtC,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;wBAC7C,WAAW,GAAG,YAAY,CAAC;oBAC7B,CAAC;yBAAM,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;wBAChD,WAAW,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;oBAClE,CAAC;oBAED,OAAO;wBACL,aAAa,EAAE,IAAI;wBACnB,YAAY,EAAE,WAAW;wBACzB,QAAQ,EAAE,sBAAsB,UAAU,IAAI,IAAI,IAAI,YAAY,EAAE;qBACrE,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,uBAAuB;YACzB,CAAC;QACH,CAAC;QAED,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACtE,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import type { RateLimitDetectionResult } from "../errorParsing.js";
2
+ export interface ErrorParser {
3
+ readonly name: string;
4
+ parse(text: string): RateLimitDetectionResult;
5
+ }
6
+ export declare class GenericErrorParser implements ErrorParser {
7
+ readonly name = "generic";
8
+ parse(text: string): RateLimitDetectionResult;
9
+ }
10
+ //# sourceMappingURL=genericErrorParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genericErrorParser.d.ts","sourceRoot":"","sources":["../../../src/quota/errorParsers/genericErrorParser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAGnE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAAC;CAC/C;AAED,qBAAa,kBAAmB,YAAW,WAAW;IACpD,QAAQ,CAAC,IAAI,aAAa;IAE1B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB;CAG9C"}
@@ -0,0 +1,8 @@
1
+ import { detectRateLimitError } from "../errorParsing.js";
2
+ export class GenericErrorParser {
3
+ name = "generic";
4
+ parse(text) {
5
+ return detectRateLimitError(text);
6
+ }
7
+ }
8
+ //# sourceMappingURL=genericErrorParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genericErrorParser.js","sourceRoot":"","sources":["../../../src/quota/errorParsers/genericErrorParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAO1D,MAAM,OAAO,kBAAkB;IACpB,IAAI,GAAG,SAAS,CAAC;IAE1B,KAAK,CAAC,IAAY;QAChB,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ export type { ErrorParser } from "./genericErrorParser.js";
2
+ export { GenericErrorParser } from "./genericErrorParser.js";
3
+ export { ClaudeCodeErrorParser } from "./claudeCodeErrorParser.js";
4
+ import type { ErrorParser } from "./genericErrorParser.js";
5
+ export declare function getErrorParserForProvider(providerName: string): ErrorParser;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/quota/errorParsers/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAU3D,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAG3E"}
@@ -0,0 +1,13 @@
1
+ export { GenericErrorParser } from "./genericErrorParser.js";
2
+ export { ClaudeCodeErrorParser } from "./claudeCodeErrorParser.js";
3
+ import { GenericErrorParser } from "./genericErrorParser.js";
4
+ import { ClaudeCodeErrorParser } from "./claudeCodeErrorParser.js";
5
+ const PROVIDER_PARSERS = {
6
+ "claude-code": () => new ClaudeCodeErrorParser(),
7
+ };
8
+ const genericParser = new GenericErrorParser();
9
+ export function getErrorParserForProvider(providerName) {
10
+ const factory = PROVIDER_PARSERS[providerName];
11
+ return factory ? factory() : genericParser;
12
+ }
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/quota/errorParsers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,gBAAgB,GAAsC;IAC1D,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,qBAAqB,EAAE;CACjD,CAAC;AAEF,MAAM,aAAa,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAE/C,MAAM,UAAU,yBAAyB,CAAC,YAAoB;IAC5D,MAAM,OAAO,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC/C,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface RateLimitDetectionResult {
2
+ isRateLimited: boolean;
3
+ retryAfterMs: number | null;
4
+ rawMatch: string | null;
5
+ }
6
+ export declare function detectRateLimitError(text: string): RateLimitDetectionResult;
7
+ export declare function computeCooldownUntil(retryAfterMs: number | null, defaultMs?: number): string;
8
+ //# sourceMappingURL=errorParsing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorParsing.d.ts","sourceRoot":"","sources":["../../src/quota/errorParsing.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AA0DD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAY3E;AAID,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,SAAS,GAAE,MAA4B,GACtC,MAAM,CAGR"}
@@ -0,0 +1,70 @@
1
+ const RATE_LIMIT_PATTERNS = [
2
+ /\b429\b/i,
3
+ /\btoo many requests\b/i,
4
+ /\brate.?limit/i,
5
+ /\boverloaded\b/i,
6
+ /\bresource.?exhausted\b/i,
7
+ /\bquota.?exceeded\b/i,
8
+ ];
9
+ function tryParseJson(text) {
10
+ const jsonStart = text.indexOf("{");
11
+ if (jsonStart === -1)
12
+ return null;
13
+ try {
14
+ return JSON.parse(text.slice(jsonStart));
15
+ }
16
+ catch {
17
+ return null;
18
+ }
19
+ }
20
+ function extractRetryAfterMs(obj) {
21
+ const headers = obj["headers"];
22
+ const retryAfter = headers?.["retry-after"] ??
23
+ headers?.["Retry-After"] ??
24
+ obj["retry_after"] ??
25
+ obj["retry_after_ms"];
26
+ if (retryAfter == null)
27
+ return null;
28
+ const val = typeof retryAfter === "string" ? Number(retryAfter) : retryAfter;
29
+ if (!Number.isFinite(val) || val <= 0)
30
+ return null;
31
+ // If the value looks like seconds (< 600), convert to ms
32
+ return val < 600 ? val * 1000 : val;
33
+ }
34
+ function detectFromJson(text) {
35
+ const obj = tryParseJson(text);
36
+ if (!obj)
37
+ return null;
38
+ const status = obj["status"];
39
+ const type = obj["type"];
40
+ const errorObj = obj["error"];
41
+ const errorType = errorObj?.["type"];
42
+ const isRateLimited = status === 429 ||
43
+ type === "rate_limit_error" ||
44
+ errorType === "rate_limit_error";
45
+ if (!isRateLimited)
46
+ return null;
47
+ return {
48
+ isRateLimited: true,
49
+ retryAfterMs: extractRetryAfterMs(obj),
50
+ rawMatch: `json:${status === 429 ? "status=429" : `type=${type ?? errorType}`}`,
51
+ };
52
+ }
53
+ export function detectRateLimitError(text) {
54
+ const jsonResult = detectFromJson(text);
55
+ if (jsonResult)
56
+ return jsonResult;
57
+ for (const pattern of RATE_LIMIT_PATTERNS) {
58
+ const match = pattern.exec(text);
59
+ if (match) {
60
+ return { isRateLimited: true, retryAfterMs: null, rawMatch: match[0] };
61
+ }
62
+ }
63
+ return { isRateLimited: false, retryAfterMs: null, rawMatch: null };
64
+ }
65
+ const DEFAULT_COOLDOWN_MS = 60_000;
66
+ export function computeCooldownUntil(retryAfterMs, defaultMs = DEFAULT_COOLDOWN_MS) {
67
+ const ms = retryAfterMs != null && retryAfterMs > 0 ? retryAfterMs : defaultMs;
68
+ return new Date(Date.now() + ms).toISOString();
69
+ }
70
+ //# sourceMappingURL=errorParsing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorParsing.js","sourceRoot":"","sources":["../../src/quota/errorParsing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare class FileLockTimeoutError extends Error {
2
+ constructor(lockPath: string);
3
+ }
4
+ export declare function acquireLock(lockPath: string, timeoutMs?: number): Promise<void>;
5
+ export declare function releaseLock(lockPath: string): Promise<void>;
6
+ export declare function withFileLock<T>(lockPath: string, fn: () => Promise<T>, timeoutMs?: number): Promise<T>;
7
+ //# sourceMappingURL=fileLock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileLock.d.ts","sourceRoot":"","sources":["../../src/quota/fileLock.ts"],"names":[],"mappings":"AAMA,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,QAAQ,EAAE,MAAM;CAI7B;AAWD,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,MAA2B,GACrC,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMjE;AAED,wBAAsB,YAAY,CAAC,CAAC,EAClC,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC,CAOZ"}