pi-harness-runtime 1.1.82 → 1.1.84
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.
- package/harness/e2e/chatgpt-quota-scraper.ts +56 -7
- package/index.ts +26 -0
- package/package.json +1 -1
- package/packages/a2a-adapter/package.json +1 -1
- package/packages/architecture-generator/package.json +1 -1
- package/packages/auth/package.json +1 -1
- package/packages/autonomous-refactor/package.json +1 -1
- package/packages/autonomous-runtime/package.json +1 -1
- package/packages/cache-strategy/package.json +1 -1
- package/packages/capability-registry/package.json +1 -1
- package/packages/checkpoint/package.json +1 -1
- package/packages/cli-plugin-sdk/package.json +1 -1
- package/packages/clipboard/package.json +1 -1
- package/packages/clipboard-plugin/package.json +1 -1
- package/packages/code-generation/package.json +1 -1
- package/packages/code-review/package.json +1 -1
- package/packages/codex-adapter/package.json +1 -1
- package/packages/config-capture/package.json +1 -1
- package/packages/context-compiler/package.json +1 -1
- package/packages/context-discovery/package.json +1 -1
- package/packages/context-manager/package.json +1 -1
- package/packages/cookie-sanitizer/package.json +1 -1
- package/packages/cost-optimizer/package.json +1 -1
- package/packages/dependency-analyzer/package.json +1 -1
- package/packages/django-plugin/package.json +1 -1
- package/packages/doc-generator/package.json +1 -1
- package/packages/evaluation-engine/package.json +1 -1
- package/packages/evaluation-runner/package.json +1 -1
- package/packages/event-bus/package.json +1 -1
- package/packages/event-store/package.json +1 -1
- package/packages/experience-replay/package.json +1 -1
- package/packages/feedback-collector/package.json +1 -1
- package/packages/file-copy-helper/package.json +1 -1
- package/packages/framework-detector/package.json +1 -1
- package/packages/framework-plugin-sdk/package.json +1 -1
- package/packages/frappe-plugin/package.json +1 -1
- package/packages/generic-web-plugin/package.json +1 -1
- package/packages/health-monitor/package.json +1 -1
- package/packages/intent-analyzer/package.json +1 -1
- package/packages/jev-judge/package.json +1 -1
- package/packages/knowledge-graph/package.json +1 -1
- package/packages/knowledge-retrieval/package.json +1 -1
- package/packages/laravel-plugin/package.json +1 -1
- package/packages/learning-engine/package.json +1 -1
- package/packages/mcp-adapter/package.json +1 -1
- package/packages/memory-engine/package.json +1 -1
- package/packages/milestone-manager/package.json +1 -1
- package/packages/model-registry/package.json +1 -1
- package/packages/nextjs-plugin/package.json +1 -1
- package/packages/notification/package.json +1 -1
- package/packages/observability/package.json +1 -1
- package/packages/okf-indexer/package.json +1 -1
- package/packages/performance-optimizer/package.json +1 -1
- package/packages/privilege-broker/package.json +1 -1
- package/packages/project-analyzer/package.json +1 -1
- package/packages/project-bootstrap/package.json +1 -1
- package/packages/projection-engine/package.json +1 -1
- package/packages/prompt-compiler/package.json +1 -1
- package/packages/prompt-versioning/package.json +1 -1
- package/packages/provider-adapter-sdk/package.json +1 -1
- package/packages/provider-router/package.json +1 -1
- package/packages/provider-selector/package.json +1 -1
- package/packages/providers/dist/provider-id.js +1 -1
- package/packages/providers/dist/provider-id.js.map +1 -1
- package/packages/providers/package.json +1 -1
- package/packages/providers/src/provider-id.ts +1 -1
- package/packages/quota-manager/package.json +1 -1
- package/packages/rate-limiter/package.json +1 -1
- package/packages/react-vite-plugin/package.json +1 -1
- package/packages/release-manager/package.json +1 -1
- package/packages/requirement-compiler/package.json +1 -1
- package/packages/runtime/package.json +1 -1
- package/packages/scheduler/package.json +1 -1
- package/packages/scheduler-adapter/package.json +1 -1
- package/packages/session/package.json +1 -1
- package/packages/session-api/package.json +1 -1
- package/packages/session-export/package.json +1 -1
- package/packages/shared-context/package.json +1 -1
- package/packages/skill-mcp-client/package.json +1 -1
- package/packages/skill-registry/package.json +1 -1
- package/packages/sprint-planner/package.json +1 -1
- package/packages/subscription-engine/package.json +1 -1
- package/packages/task-compiler/package.json +1 -1
- package/packages/tencentdb-memory/package.json +1 -1
- package/packages/tencentdb-sync/package.json +1 -1
- package/packages/test-data-generator/package.json +1 -1
- package/packages/test-generator/package.json +1 -1
- package/packages/todo-bd-sync/package.json +1 -1
- package/packages/token-estimation/package.json +1 -1
- package/packages/token-optimizer/package.json +1 -1
- package/packages/trajectory/package.json +1 -1
- package/packages/tui/package.json +1 -1
- package/packages/types/package.json +1 -1
- package/packages/workflow-events/package.json +1 -1
- package/packages/workspace-scanner/package.json +1 -1
- package/packages/worktree/package.json +1 -1
- package/packages/write-review/package.json +1 -1
|
@@ -29,6 +29,12 @@ import { homedir } from "node:os";
|
|
|
29
29
|
|
|
30
30
|
export interface ChatGPTQuotaData {
|
|
31
31
|
provider: "openai" | "openai-codex";
|
|
32
|
+
/** 5h used percentage (0-100) */
|
|
33
|
+
h5UsedPct: number;
|
|
34
|
+
/** When the 5h window resets (e.g., "4h 30m") */
|
|
35
|
+
h5ResetsAt: string;
|
|
36
|
+
/** Epoch ms when the 5h window resets */
|
|
37
|
+
h5ResetsAtEpoch?: number;
|
|
32
38
|
/** Weekly used percentage (0-100) */
|
|
33
39
|
weeklyUsedPct: number;
|
|
34
40
|
/** When the weekly window resets (e.g., "5d 16h") */
|
|
@@ -394,6 +400,12 @@ export class ChatGPTQuotaScraper {
|
|
|
394
400
|
reset_after_seconds?: number;
|
|
395
401
|
reset_at?: number;
|
|
396
402
|
};
|
|
403
|
+
secondary_window?: {
|
|
404
|
+
used_percent?: number;
|
|
405
|
+
limit_window_seconds?: number;
|
|
406
|
+
reset_after_seconds?: number;
|
|
407
|
+
reset_at?: number;
|
|
408
|
+
};
|
|
397
409
|
};
|
|
398
410
|
credits?: {
|
|
399
411
|
has_credits?: boolean;
|
|
@@ -402,23 +414,60 @@ export class ChatGPTQuotaScraper {
|
|
|
402
414
|
plan_type?: string;
|
|
403
415
|
};
|
|
404
416
|
|
|
417
|
+
// primary_window = 5h, secondary_window = weekly
|
|
405
418
|
const primaryWindow = data?.rate_limit?.primary_window;
|
|
406
|
-
const
|
|
407
|
-
|
|
408
|
-
|
|
419
|
+
const secondaryWindow = data?.rate_limit?.secondary_window;
|
|
420
|
+
|
|
421
|
+
// Determine which is 5h (smaller window) and which is weekly
|
|
422
|
+
const FIVE_HOURS_SEC = 5 * 60 * 60; // 18000 seconds
|
|
423
|
+
let h5UsedPct = 0;
|
|
424
|
+
let h5ResetAfter = 0;
|
|
425
|
+
let h5ResetAt: number | undefined;
|
|
426
|
+
let weeklyUsedPct = 0;
|
|
427
|
+
let weeklyResetAfter = 0;
|
|
428
|
+
let weeklyResetAt: number | undefined;
|
|
429
|
+
|
|
430
|
+
// Classify windows by duration
|
|
431
|
+
if (primaryWindow) {
|
|
432
|
+
const duration = primaryWindow.limit_window_seconds ?? 0;
|
|
433
|
+
if (duration <= FIVE_HOURS_SEC) {
|
|
434
|
+
h5UsedPct = primaryWindow.used_percent ?? 0;
|
|
435
|
+
h5ResetAfter = primaryWindow.reset_after_seconds ?? 0;
|
|
436
|
+
h5ResetAt = primaryWindow.reset_at;
|
|
437
|
+
} else {
|
|
438
|
+
weeklyUsedPct = primaryWindow.used_percent ?? 0;
|
|
439
|
+
weeklyResetAfter = primaryWindow.reset_after_seconds ?? 0;
|
|
440
|
+
weeklyResetAt = primaryWindow.reset_at;
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
if (secondaryWindow) {
|
|
444
|
+
const duration = secondaryWindow.limit_window_seconds ?? 0;
|
|
445
|
+
if (duration <= FIVE_HOURS_SEC) {
|
|
446
|
+
h5UsedPct = secondaryWindow.used_percent ?? 0;
|
|
447
|
+
h5ResetAfter = secondaryWindow.reset_after_seconds ?? 0;
|
|
448
|
+
h5ResetAt = secondaryWindow.reset_at;
|
|
449
|
+
} else {
|
|
450
|
+
weeklyUsedPct = secondaryWindow.used_percent ?? 0;
|
|
451
|
+
weeklyResetAfter = secondaryWindow.reset_after_seconds ?? 0;
|
|
452
|
+
weeklyResetAt = secondaryWindow.reset_at;
|
|
453
|
+
}
|
|
454
|
+
}
|
|
409
455
|
|
|
410
456
|
if (!this.config.quiet) {
|
|
411
457
|
console.log(
|
|
412
|
-
`[DEBUG ChatGPTQuotaScraper]
|
|
458
|
+
`[DEBUG ChatGPTQuotaScraper] 5h: ${h5UsedPct}%, Weekly: ${weeklyUsedPct}%`,
|
|
413
459
|
);
|
|
414
460
|
}
|
|
415
461
|
|
|
416
462
|
return {
|
|
417
463
|
provider: "openai",
|
|
464
|
+
h5UsedPct,
|
|
465
|
+
h5ResetsAt: formatRemainsSeconds(h5ResetAfter),
|
|
466
|
+
h5ResetsAtEpoch: h5ResetAt ? h5ResetAt * 1000 : undefined,
|
|
418
467
|
weeklyUsedPct,
|
|
419
|
-
weeklyResetsAt: formatRemainsSeconds(
|
|
420
|
-
weeklyResetsAtEpoch:
|
|
421
|
-
resetAfterSeconds,
|
|
468
|
+
weeklyResetsAt: formatRemainsSeconds(weeklyResetAfter),
|
|
469
|
+
weeklyResetsAtEpoch: weeklyResetAt ? weeklyResetAt * 1000 : undefined,
|
|
470
|
+
resetAfterSeconds: weeklyResetAfter,
|
|
422
471
|
creditBalance: data.credits?.has_credits ? data.credits.balance : undefined,
|
|
423
472
|
planType: data.plan_type,
|
|
424
473
|
apiEndpoint: USAGE_API,
|
package/index.ts
CHANGED
|
@@ -1243,6 +1243,32 @@ Run \`bd ready\` to see current bd issues.
|
|
|
1243
1243
|
return;
|
|
1244
1244
|
}
|
|
1245
1245
|
|
|
1246
|
+
// OpenAI Codex path (uses OAuth tokens from ~/.codex/auth.json)
|
|
1247
|
+
if (provider === "openai-codex") {
|
|
1248
|
+
if (quotaAutoFetchInFlight) return;
|
|
1249
|
+
|
|
1250
|
+
|
|
1251
|
+
const nowMs = Date.now();
|
|
1252
|
+
if (nowMs - lastOpenAIQuotaFetchAt < OPENAI_REFRESH_MIN_INTERVAL_MS) {
|
|
1253
|
+
return;
|
|
1254
|
+
}
|
|
1255
|
+
|
|
1256
|
+
// Check if Codex auth file exists
|
|
1257
|
+
const codexAuthFile = join(homedir(), ".codex", "auth.json");
|
|
1258
|
+
if (!existsSync(codexAuthFile)) {
|
|
1259
|
+
return;
|
|
1260
|
+
}
|
|
1261
|
+
|
|
1262
|
+
quotaAutoFetchInFlight = true;
|
|
1263
|
+
lastOpenAIQuotaFetchAt = nowMs;
|
|
1264
|
+
try {
|
|
1265
|
+
await autoFetchOpenAIQuota({ suppressErrors: true });
|
|
1266
|
+
} finally {
|
|
1267
|
+
quotaAutoFetchInFlight = false;
|
|
1268
|
+
}
|
|
1269
|
+
return;
|
|
1270
|
+
}
|
|
1271
|
+
|
|
1246
1272
|
// GLM path (z.ai has both 5h and weekly windows)
|
|
1247
1273
|
if (provider === "glm") {
|
|
1248
1274
|
if (quotaAutoFetchInFlight) return;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-harness/capability-registry",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.84",
|
|
4
4
|
"description": "Capability Registry for pi-harness-runtime — tracks model capabilities and enables capability-based routing",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-harness/provider-router",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.84",
|
|
4
4
|
"description": "Enhanced Provider Router for pi-harness-runtime — intelligent routing with capabilities, costs, and quotas",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/provider-router.js",
|
|
@@ -100,7 +100,7 @@ export function providerDisplayName(provider) {
|
|
|
100
100
|
* - openai: has weekly-only window (no 5h limit since 2026)
|
|
101
101
|
*/
|
|
102
102
|
export function providerHasContinuousScrape(provider) {
|
|
103
|
-
return provider === "minimax" || provider === "openai" || provider === "glm";
|
|
103
|
+
return provider === "minimax" || provider === "openai" || provider === "openai-codex" || provider === "glm";
|
|
104
104
|
}
|
|
105
105
|
/** True if this provider has a TUI-driven signal path today. */
|
|
106
106
|
export function providerHasTUISignal(provider) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-id.js","sourceRoot":"","sources":["../src/provider-id.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"provider-id.js","sourceRoot":"","sources":["../src/provider-id.ts"],"names":[],"mappings":"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"}
|
|
@@ -114,7 +114,7 @@ export function providerDisplayName(provider: ProviderId): string {
|
|
|
114
114
|
* - openai: has weekly-only window (no 5h limit since 2026)
|
|
115
115
|
*/
|
|
116
116
|
export function providerHasContinuousScrape(provider: ProviderId): boolean {
|
|
117
|
-
return provider === "minimax" || provider === "openai" || provider === "glm";
|
|
117
|
+
return provider === "minimax" || provider === "openai" || provider === "openai-codex" || provider === "glm";
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
/** True if this provider has a TUI-driven signal path today. */
|