pi-harness-runtime 1.1.90 → 1.1.92
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/footer-status.ts +3 -2
- package/index.ts +45 -13
- 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/package.json +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
package/footer-status.ts
CHANGED
|
@@ -254,16 +254,17 @@ export function buildFooterStatusValue(
|
|
|
254
254
|
const weeklyPct = view.weekly_used_pct ?? 0;
|
|
255
255
|
const weeklyLeft = Math.max(0, 100 - weeklyPct);
|
|
256
256
|
const weeklyResets = view.weekly_resets_at ?? "soon";
|
|
257
|
+
const h5Resets = view.h5_resets_at ?? "soon";
|
|
257
258
|
|
|
258
259
|
let statusLine: string;
|
|
259
260
|
if (view.h5_used_pct === undefined) {
|
|
260
261
|
// OpenAI: weekly-only (no 5h window)
|
|
261
262
|
statusLine = `week: ${weeklyLeft.toFixed(0)}% left (resets ${weeklyResets})`;
|
|
262
263
|
} else {
|
|
263
|
-
// MiniMax: has both 5h and weekly windows
|
|
264
|
+
// MiniMax/GLM: has both 5h and weekly windows
|
|
264
265
|
const h5Pct = view.h5_used_pct;
|
|
265
266
|
const h5Left = Math.max(0, 100 - h5Pct);
|
|
266
|
-
statusLine = `5h: ${h5Left.toFixed(0)}% left
|
|
267
|
+
statusLine = `5h: ${h5Left.toFixed(0)}% left (resets ${h5Resets}) - week: ${weeklyLeft.toFixed(0)}% left (resets ${weeklyResets})`;
|
|
267
268
|
}
|
|
268
269
|
|
|
269
270
|
const freshnessSuffix =
|
package/index.ts
CHANGED
|
@@ -1155,7 +1155,7 @@ Run \`bd ready\` to see current bd issues.
|
|
|
1155
1155
|
}
|
|
1156
1156
|
}
|
|
1157
1157
|
|
|
1158
|
-
|
|
1158
|
+
/**
|
|
1159
1159
|
* Auto-fetch GLM quota via z.ai API.
|
|
1160
1160
|
* GLM has both 5h and weekly windows.
|
|
1161
1161
|
*/
|
|
@@ -1173,23 +1173,55 @@ Run \`bd ready\` to see current bd issues.
|
|
|
1173
1173
|
return false;
|
|
1174
1174
|
}
|
|
1175
1175
|
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1176
|
+
// Check if 5h quota is exhausted (100% or more used)
|
|
1177
|
+
const exhausted = data.h5UsedPct >= 100;
|
|
1178
|
+
|
|
1179
|
+
writeMirrorRecord("glm", {
|
|
1180
|
+
synced_at: data.scrapedAt,
|
|
1181
|
+
source: "scrape",
|
|
1182
|
+
h5_used_pct: data.h5UsedPct,
|
|
1183
|
+
h5_resets_at: data.h5ResetsAt,
|
|
1184
|
+
h5_resets_at_epoch: data.h5ResetsAtEpoch,
|
|
1185
|
+
weekly_used_pct: data.weeklyUsedPct,
|
|
1186
|
+
weekly_resets_at: data.weeklyResetsAt,
|
|
1187
|
+
weekly_resets_at_epoch: data.weeklyResetsAtEpoch,
|
|
1188
|
+
model: data.modelName,
|
|
1189
|
+
exhausted,
|
|
1190
|
+
});
|
|
1187
1191
|
return true;
|
|
1188
1192
|
} catch (error) {
|
|
1193
|
+
// Check if this is a 429 quota error
|
|
1194
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
1195
|
+
const is429 = errorMsg.includes("1308") || errorMsg.includes("Usage limit reached");
|
|
1196
|
+
|
|
1197
|
+
if (is429) {
|
|
1198
|
+
// Extract reset time from error
|
|
1199
|
+
const { parseGLMErrorResetTime } = await import("./harness/e2e/glm-quota-scraper.js");
|
|
1200
|
+
const resetAt = parseGLMErrorResetTime(errorMsg);
|
|
1201
|
+
const resetEpoch = resetAt ? new Date(resetAt).getTime() : undefined;
|
|
1202
|
+
|
|
1203
|
+
writeMirrorRecord("glm", {
|
|
1204
|
+
synced_at: new Date().toISOString(),
|
|
1205
|
+
source: "scrape", // still mark as scrape for consistency
|
|
1206
|
+
exhausted: true,
|
|
1207
|
+
limitType: "rate_limit",
|
|
1208
|
+
h5_used_pct: 100,
|
|
1209
|
+
h5_resets_at_epoch: resetEpoch,
|
|
1210
|
+
});
|
|
1211
|
+
|
|
1212
|
+
if (!suppressErrors) {
|
|
1213
|
+
const resetTime = resetAt
|
|
1214
|
+
? `resets at ${new Date(resetAt).toLocaleString()}`
|
|
1215
|
+
: "resets soon";
|
|
1216
|
+
console.error(`[pi-harness] GLM 5h quota exhausted! ${resetTime}`);
|
|
1217
|
+
}
|
|
1218
|
+
return true;
|
|
1219
|
+
}
|
|
1220
|
+
|
|
1189
1221
|
if (!suppressErrors) {
|
|
1190
1222
|
console.error(
|
|
1191
1223
|
"[pi-harness] GLM quota auto-fetch skipped:",
|
|
1192
|
-
|
|
1224
|
+
errorMsg,
|
|
1193
1225
|
);
|
|
1194
1226
|
}
|
|
1195
1227
|
return false;
|
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.92",
|
|
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.92",
|
|
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",
|