pi-harness-runtime 1.1.33 → 1.1.34
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/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/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/glm-usage.d.ts.map +1 -1
- package/packages/providers/dist/glm-usage.js +15 -2
- package/packages/providers/dist/glm-usage.js.map +1 -1
- package/packages/providers/package.json +1 -1
- package/packages/providers/src/glm-usage.ts +17 -6
- 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/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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-harness/capability-registry",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.34",
|
|
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.34",
|
|
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",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glm-usage.d.ts","sourceRoot":"","sources":["../src/glm-usage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC5B,QAAQ,EAAE,KAAK,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,SAAS,EAAE,QAAQ,GAAG,gBAAgB,GAAG,YAAY,GAAG,SAAS,CAAC;IAClE,gCAAgC;IAChC,eAAe,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC9B,wDAAwD;IACxD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;CAC7C;
|
|
1
|
+
{"version":3,"file":"glm-usage.d.ts","sourceRoot":"","sources":["../src/glm-usage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC5B,QAAQ,EAAE,KAAK,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,SAAS,EAAE,QAAQ,GAAG,gBAAgB,GAAG,YAAY,GAAG,SAAS,CAAC;IAClE,gCAAgC;IAChC,eAAe,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC9B,wDAAwD;IACxD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;CAC7C;AA6CD,qBAAa,gBAAiB,SAAQ,YAAY;IACjD,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,aAAa,CAAC,CAA+B;IAErD,YAAY,MAAM,GAAE,cAAmB,EAGtC;IAED;;;OAGG;IACH,iBAAiB,IAAI,OAAO,CAE3B;IAED;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAqBtD;IAED;;OAEG;IACH,OAAO,CAAC,cAAc;IA4BtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;OAEG;IACH,YAAY,IAAI,YAAY,GAAG,IAAI,CAElC;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAEZ;IAED;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,CAatC;IAED;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAGvC;IAED;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAGpC;CACD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG"}
|
|
@@ -37,8 +37,15 @@ const GLM_QUOTA_PATTERNS = [
|
|
|
37
37
|
pattern: /ZhipuAI|GLM.*(?:exhausted|limit|quota)/i,
|
|
38
38
|
limitType: "tokens",
|
|
39
39
|
},
|
|
40
|
+
// MiniMax 429: "Usage limit reached for N hour. Your limit will reset at 2026-08-31 19:17:01"
|
|
41
|
+
{
|
|
42
|
+
pattern: /Usage limit.*reset/i,
|
|
43
|
+
limitType: "tokens",
|
|
44
|
+
},
|
|
40
45
|
];
|
|
41
46
|
const RESET_TIME_PATTERNS = [
|
|
47
|
+
// "reset at 2026-08-31 19:17:01" (MiniMax 429 format)
|
|
48
|
+
/reset\s+(?:at\s+)?(\d{4}-\d{2}-\d{2})\s+(\d{2}):(\d{2})/i,
|
|
42
49
|
/reset(?:s)?\s+(?:at|in)\s+(\d{1,2}):(\d{2})/i,
|
|
43
50
|
/(?:at|in)\s+(\d{1,2}):(\d{2})/i,
|
|
44
51
|
/retry\s+after\s+(\d{1,2}):(\d{2})/i,
|
|
@@ -85,13 +92,19 @@ export class GLMUsageProvider extends EventEmitter {
|
|
|
85
92
|
for (const pattern of RESET_TIME_PATTERNS) {
|
|
86
93
|
const match = message.match(pattern);
|
|
87
94
|
if (match) {
|
|
95
|
+
// Pattern 0: "reset at YYYY-MM-DD HH:MM" — 4 groups: date, hour, minute (+ full match = 4)
|
|
96
|
+
if (match.length === 4) {
|
|
97
|
+
const resetTime = new Date(`${match[1].trim()}T${match[2]}:${match[3]}:00.000Z`);
|
|
98
|
+
if (resetTime.getTime() > Date.now()) {
|
|
99
|
+
return resetTime.toISOString();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Patterns 1-3: HH:MM only — construct date for today or tomorrow
|
|
88
103
|
const hour = parseInt(match[1], 10);
|
|
89
104
|
const minute = parseInt(match[2], 10);
|
|
90
|
-
// Convert to ISO string for today or tomorrow
|
|
91
105
|
const now = new Date();
|
|
92
106
|
const resetTime = new Date(now);
|
|
93
107
|
resetTime.setHours(hour, minute, 0, 0);
|
|
94
|
-
// If time has passed today, assume tomorrow
|
|
95
108
|
if (resetTime <= now) {
|
|
96
109
|
resetTime.setDate(resetTime.getDate() + 1);
|
|
97
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glm-usage.js","sourceRoot":"","sources":["../src/glm-usage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAwB3C;;;GAGG;AACH,MAAM,kBAAkB,GAAG;IAC1B,sBAAsB;IACtB;QACC,OAAO,EAAE,2DAA2D;QACpE,SAAS,EAAE,gBAAyB;KACpC;IACD;QACC,OAAO,EAAE,kEAAkE;QAC3E,SAAS,EAAE,QAAiB;KAC5B;IACD,sBAAsB;IACtB;QACC,OAAO,EAAE,2CAA2C;QACpD,SAAS,EAAE,SAAkB;KAC7B;IACD;QACC,OAAO,EAAE,6CAA6C;QACtD,SAAS,EAAE,QAAiB;KAC5B;IACD,gCAAgC;IAChC;QACC,OAAO,EAAE,yCAAyC;QAClD,SAAS,EAAE,QAAiB;KAC5B;CACD,CAAC;AAEF,MAAM,mBAAmB,GAAG;IAC3B,8CAA8C;IAC9C,gCAAgC;IAChC,oCAAoC;CACpC,CAAC;AAEF,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IACzC,aAAa,GAAwB,IAAI,CAAC;IAC1C,aAAa,CAAgC;IAErD,YAAY,MAAM,GAAmB,EAAE;QACtC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACH,iBAAiB;QAChB,OAAO,IAAI,CAAC,CAAC,sCAAsC;IACpD,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,OAAe;QAChC,uCAAuC;QACvC,KAAK,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,kBAAkB,EAAE,CAAC;YACzD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAEhE,IAAI,SAAS,EAAE,CAAC;oBACf,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;oBAE/B,aAAa;oBACb,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBAE9B,uBAAuB;oBACvB,IAAI,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC;oBAEhC,OAAO,SAAS,CAAC;gBAClB,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,OAAe;QACrC,KAAK,MAAM,OAAO,IAAI,mBAAmB,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"glm-usage.js","sourceRoot":"","sources":["../src/glm-usage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAwB3C;;;GAGG;AACH,MAAM,kBAAkB,GAAG;IAC1B,sBAAsB;IACtB;QACC,OAAO,EAAE,2DAA2D;QACpE,SAAS,EAAE,gBAAyB;KACpC;IACD;QACC,OAAO,EAAE,kEAAkE;QAC3E,SAAS,EAAE,QAAiB;KAC5B;IACD,sBAAsB;IACtB;QACC,OAAO,EAAE,2CAA2C;QACpD,SAAS,EAAE,SAAkB;KAC7B;IACD;QACC,OAAO,EAAE,6CAA6C;QACtD,SAAS,EAAE,QAAiB;KAC5B;IACD,gCAAgC;IAChC;QACC,OAAO,EAAE,yCAAyC;QAClD,SAAS,EAAE,QAAiB;KAC5B;IACD,8FAA8F;IAC9F;QACC,OAAO,EAAE,qBAAqB;QAC9B,SAAS,EAAE,QAAiB;KAC5B;CACD,CAAC;AAEF,MAAM,mBAAmB,GAAG;IAC3B,sDAAsD;IACtD,0DAA0D;IAC1D,8CAA8C;IAC9C,gCAAgC;IAChC,oCAAoC;CACpC,CAAC;AAEF,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IACzC,aAAa,GAAwB,IAAI,CAAC;IAC1C,aAAa,CAAgC;IAErD,YAAY,MAAM,GAAmB,EAAE;QACtC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACH,iBAAiB;QAChB,OAAO,IAAI,CAAC,CAAC,sCAAsC;IACpD,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,OAAe;QAChC,uCAAuC;QACvC,KAAK,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,kBAAkB,EAAE,CAAC;YACzD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAEhE,IAAI,SAAS,EAAE,CAAC;oBACf,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;oBAE/B,aAAa;oBACb,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBAE9B,uBAAuB;oBACvB,IAAI,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC;oBAEhC,OAAO,SAAS,CAAC;gBAClB,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,OAAe;QACrC,KAAK,MAAM,OAAO,IAAI,mBAAmB,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,KAAK,EAAE,CAAC;gBACX,2FAA2F;gBAC3F,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxB,MAAM,SAAS,GAAG,IAAI,IAAI,CACzB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,UAAU,CACpD,CAAC;oBACF,IAAI,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;wBACtC,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;oBAChC,CAAC;gBACF,CAAC;gBACD,kEAAkE;gBAClE,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvC,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;oBACtB,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC5C,CAAC;gBACD,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;YAChC,CAAC;QACF,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,oBAAoB,CAC3B,OAAe,EACf,SAAoC;QAEpC,MAAM,QAAQ,GACb,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAErD,uCAAuC;QACvC,IAAI,OAA2B,CAAC;QAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,QAAQ,EAAE,CAAC;YACd,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,OAAO;YACN,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,OAAO;YACP,YAAY,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACvD,SAAS,EAAE,IAAI;YACf,QAAQ;YACR,SAAS;YACT,eAAe,EAAE,OAAO;SACxB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,YAAY;QACX,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK;QACJ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ;QACb,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACzB,OAAO;gBACN,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,YAAY,EAAE,GAAG;gBACjB,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,SAAS;gBACpB,eAAe,EAAE,EAAE;aACnB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC,OAAO,IAAI,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QAChB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC,SAAS,CAAC;IACxB,CAAC;CACD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG"}
|
|
@@ -61,9 +61,16 @@ const GLM_QUOTA_PATTERNS = [
|
|
|
61
61
|
pattern: /ZhipuAI|GLM.*(?:exhausted|limit|quota)/i,
|
|
62
62
|
limitType: "tokens" as const,
|
|
63
63
|
},
|
|
64
|
+
// MiniMax 429: "Usage limit reached for N hour. Your limit will reset at 2026-08-31 19:17:01"
|
|
65
|
+
{
|
|
66
|
+
pattern: /Usage limit.*reset/i,
|
|
67
|
+
limitType: "tokens" as const,
|
|
68
|
+
},
|
|
64
69
|
];
|
|
65
70
|
|
|
66
71
|
const RESET_TIME_PATTERNS = [
|
|
72
|
+
// "reset at 2026-08-31 19:17:01" (MiniMax 429 format)
|
|
73
|
+
/reset\s+(?:at\s+)?(\d{4}-\d{2}-\d{2})\s+(\d{2}):(\d{2})/i,
|
|
67
74
|
/reset(?:s)?\s+(?:at|in)\s+(\d{1,2}):(\d{2})/i,
|
|
68
75
|
/(?:at|in)\s+(\d{1,2}):(\d{2})/i,
|
|
69
76
|
/retry\s+after\s+(\d{1,2}):(\d{2})/i,
|
|
@@ -120,23 +127,27 @@ export class GLMUsageProvider extends EventEmitter {
|
|
|
120
127
|
for (const pattern of RESET_TIME_PATTERNS) {
|
|
121
128
|
const match = message.match(pattern);
|
|
122
129
|
if (match) {
|
|
130
|
+
// Pattern 0: "reset at YYYY-MM-DD HH:MM" — 4 groups: date, hour, minute (+ full match = 4)
|
|
131
|
+
if (match.length === 4) {
|
|
132
|
+
const resetTime = new Date(
|
|
133
|
+
`${match[1].trim()}T${match[2]}:${match[3]}:00.000Z`,
|
|
134
|
+
);
|
|
135
|
+
if (resetTime.getTime() > Date.now()) {
|
|
136
|
+
return resetTime.toISOString();
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
// Patterns 1-3: HH:MM only — construct date for today or tomorrow
|
|
123
140
|
const hour = parseInt(match[1], 10);
|
|
124
141
|
const minute = parseInt(match[2], 10);
|
|
125
|
-
|
|
126
|
-
// Convert to ISO string for today or tomorrow
|
|
127
142
|
const now = new Date();
|
|
128
143
|
const resetTime = new Date(now);
|
|
129
144
|
resetTime.setHours(hour, minute, 0, 0);
|
|
130
|
-
|
|
131
|
-
// If time has passed today, assume tomorrow
|
|
132
145
|
if (resetTime <= now) {
|
|
133
146
|
resetTime.setDate(resetTime.getDate() + 1);
|
|
134
147
|
}
|
|
135
|
-
|
|
136
148
|
return resetTime.toISOString();
|
|
137
149
|
}
|
|
138
150
|
}
|
|
139
|
-
|
|
140
151
|
return undefined;
|
|
141
152
|
}
|
|
142
153
|
|