pi-harness-runtime 1.1.0 → 1.1.2
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/.pi/plugins/herdr-clipboard/herdr-plugin.toml +22 -0
- package/.pi/plugins/herdr-clipboard/start-bridge.sh +29 -0
- package/.pi/plugins/herdr-clipboard/tmux-watch.sh +39 -0
- package/CHANGELOG.md +175 -13
- package/README.md +87 -1
- package/config.toml.example +35 -0
- package/harness/autonomous-review.ts +5 -2
- package/harness/e2e/chatgpt-quota-scraper.ts +478 -0
- package/harness/e2e/glm-quota-scraper.ts +449 -0
- package/harness/herdr-agents.ts +6 -2
- package/harness/loop-code-agent.ts +4 -1
- package/harness/loop-review-agent.ts +5 -6
- package/harness/notification-events.ts +2 -2
- package/harness/task-graph.d.ts +51 -0
- package/index.ts +147 -2
- package/package.json +17 -16
- package/packages/a2a-adapter/dist/index.d.ts +1 -0
- package/packages/a2a-adapter/dist/index.d.ts.map +1 -1
- package/packages/a2a-adapter/dist/index.js +1 -0
- package/packages/a2a-adapter/dist/index.js.map +1 -1
- package/packages/a2a-adapter/package.json +1 -1
- package/packages/a2a-adapter/src/discovery.ts +106 -0
- package/packages/a2a-adapter/src/index.ts +8 -0
- package/packages/architecture-generator/package.json +21 -0
- package/packages/architecture-generator/src/adr.ts +51 -0
- package/packages/architecture-generator/src/index.ts +9 -0
- package/packages/architecture-generator/src/mermaid.ts +76 -0
- package/packages/architecture-generator/src/types.ts +30 -0
- 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 +2 -2
- package/packages/clipboard/package.json +1 -1
- package/packages/clipboard/src/copy-sync.ts +52 -3
- package/packages/clipboard/src/index.ts +1 -0
- package/packages/clipboard/src/paste-bridge.ts +86 -0
- package/packages/clipboard-plugin/package.json +17 -0
- package/packages/clipboard-plugin/src/index.ts +74 -0
- package/packages/clipboard-plugin/src/types.ts +30 -0
- package/packages/code-generation/package.json +1 -1
- package/packages/code-review/package.json +1 -1
- package/packages/codex-adapter/package.json +2 -2
- package/packages/config-capture/package.json +23 -0
- package/packages/config-capture/src/index.ts +357 -0
- 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-bus/src/herdr-bus.ts +4 -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 +17 -0
- package/packages/file-copy-helper/src/extension.debug.ts +226 -0
- package/packages/file-copy-helper/src/extension.ts +226 -0
- package/packages/file-copy-helper/src/index.ts +1 -0
- 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 +24 -0
- package/packages/knowledge-graph/src/graph-extractor.ts +338 -0
- package/packages/knowledge-graph/src/index.ts +27 -0
- package/packages/knowledge-graph/src/mcp-client.ts +237 -0
- package/packages/knowledge-graph/src/provenance-linker.ts +101 -0
- package/packages/knowledge-graph/src/types.ts +86 -0
- package/packages/knowledge-retrieval/package.json +25 -0
- package/packages/knowledge-retrieval/src/index.ts +18 -0
- package/packages/knowledge-retrieval/src/mcp-client.ts +212 -0
- package/packages/knowledge-retrieval/src/types.ts +112 -0
- 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 +21 -0
- package/packages/milestone-manager/src/engine.ts +105 -0
- package/packages/milestone-manager/src/index.ts +6 -0
- package/packages/milestone-manager/src/types.ts +28 -0
- 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/notification/src/adapters/line-adapter.ts +119 -0
- package/packages/notification/src/index.ts +1 -0
- package/packages/notification/src/notification-center.ts +6 -0
- package/packages/notification/src/types.ts +7 -2
- package/packages/observability/package.json +1 -1
- package/packages/okf-indexer/package.json +12 -0
- package/packages/okf-indexer/src/cli.ts +25 -0
- package/packages/okf-indexer/src/indexer.ts +186 -0
- 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 +24 -0
- package/packages/project-bootstrap/src/bootstrap.ts +166 -0
- package/packages/project-bootstrap/src/frappe.ts +97 -0
- package/packages/project-bootstrap/src/index.ts +27 -0
- package/packages/project-bootstrap/src/minimal.ts +45 -0
- package/packages/project-bootstrap/src/types.ts +66 -0
- package/packages/project-bootstrap/src/typescript.ts +114 -0
- 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/dist/src/types.js +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/providers/src/adapters.ts +1 -1
- package/packages/providers/src/deepagents-adapter.ts +2 -2
- package/packages/quota-manager/package.json +1 -1
- package/packages/quota-manager/src/quota-manager.ts +1 -4
- 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/runtime/src/runtime-api.ts +16 -16
- package/packages/scheduler/package.json +1 -1
- package/packages/scheduler-adapter/package.json +1 -1
- package/packages/session/dist/manager.d.ts.map +1 -1
- package/packages/session/dist/manager.js +3 -1
- package/packages/session/dist/manager.js.map +1 -1
- package/packages/session/package.json +1 -1
- package/packages/session/src/manager.ts +4 -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-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 +23 -0
- package/packages/tencentdb-memory/src/client.ts +130 -0
- package/packages/tencentdb-memory/src/index.ts +32 -0
- package/packages/tencentdb-memory/src/loader.ts +150 -0
- package/packages/tencentdb-memory/src/mcp-tools.ts +213 -0
- package/packages/tencentdb-memory/src/types.ts +101 -0
- package/packages/tencentdb-sync/package.json +26 -0
- package/packages/tencentdb-sync/src/cli.ts +363 -0
- package/packages/tencentdb-sync/src/client.ts +268 -0
- package/packages/tencentdb-sync/src/config.ts +139 -0
- package/packages/tencentdb-sync/src/index.ts +15 -0
- 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/todo-bd-sync/src/detector.ts +25 -4
- package/packages/todo-bd-sync/src/extension.ts +8 -86
- package/packages/todo-bd-sync/src/task-analyzer.ts +314 -0
- 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/types/src/agent-worker-types.d.ts +206 -0
- package/packages/types/src/ai-providers.d.ts +36 -0
- package/packages/types/src/runtime-types.d.ts +6 -0
- 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/worktree/src/worktree.ts +1 -4
- package/packages/write-review/package.json +22 -0
- package/packages/write-review/src/blackboard.ts +249 -0
- package/packages/write-review/src/gate.ts +169 -0
- package/packages/write-review/src/index.ts +65 -0
- package/packages/write-review/src/injection.ts +190 -0
- package/packages/write-review/src/review.ts +206 -0
- package/packages/write-review/src/trigger.ts +133 -0
- package/packages/write-review/src/types.ts +90 -0
- package/prompts/agents/reviewer.md +57 -0
- package/prompts/agents/writer.md +42 -0
- package/prompts/slash-commands.md +40 -0
- package/prompts/tencentdb-connect.md +35 -0
- package/prompts/tencentdb-setup.md +101 -0
- package/prompts/tencentdb.md +88 -0
- package/prompts/write-review.md +50 -0
- package/scripts/check-version-sync.ts +80 -0
- package/scripts/convert-skills-to-okf.ts +168 -0
- package/scripts/copy-plugins.js +56 -0
- package/scripts/gist-auth.ts +64 -0
- package/scripts/gist-poll.sh +127 -0
- package/scripts/release/actions-monitor.ts +357 -0
- package/scripts/release/adapters/base.ts +95 -0
- package/scripts/release/adapters/detector.ts +181 -0
- package/scripts/release/adapters/node-workspace.ts +230 -0
- package/scripts/release/adapters/python.ts +236 -0
- package/scripts/release/adapters/rust.ts +129 -0
- package/scripts/release/adapters/tauri.ts +298 -0
- package/scripts/release/orchestrator.ts +278 -0
- package/scripts/release-all.ts +211 -0
- package/scripts/scan-secrets.sh +68 -0
- package/scripts/skills-sync.ts +487 -0
- package/packages/a2a-adapter/tsconfig.json +0 -5
- package/packages/auth/dist/minimax-browser-auth.d.ts +0 -89
- package/packages/auth/dist/minimax-browser-auth.d.ts.map +0 -1
- package/packages/auth/dist/minimax-browser-auth.js +0 -890
- package/packages/auth/dist/minimax-browser-auth.js.map +0 -1
- package/packages/auth/dist/run-minimax-auth.d.ts +0 -19
- package/packages/auth/dist/run-minimax-auth.d.ts.map +0 -1
- package/packages/auth/dist/run-minimax-auth.js +0 -112
- package/packages/auth/dist/run-minimax-auth.js.map +0 -1
- package/packages/auth/tsconfig.json +0 -9
- package/packages/autonomous-refactor/tsconfig.json +0 -5
- package/packages/autonomous-runtime/test/inbox.test.mjs +0 -266
- package/packages/autonomous-runtime/tsconfig.json +0 -22
- package/packages/autonomous-runtime/tsconfig.tsbuildinfo +0 -1
- package/packages/cache-strategy/tsconfig.json +0 -5
- package/packages/capability-registry/src/types.d.ts.map +0 -1
- package/packages/capability-registry/src/types.js +0 -10
- package/packages/capability-registry/src/types.js.map +0 -1
- package/packages/capability-registry/tsconfig.json +0 -22
- package/packages/checkpoint/tsconfig.json +0 -33
- package/packages/checkpoint/tsconfig.tsbuildinfo +0 -1
- package/packages/cli-plugin-sdk/tsconfig.json +0 -11
- package/packages/clipboard/dist/src/clipboard.d.ts +0 -11
- package/packages/clipboard/dist/src/clipboard.d.ts.map +0 -1
- package/packages/clipboard/dist/src/clipboard.js +0 -51
- package/packages/clipboard/dist/src/clipboard.js.map +0 -1
- package/packages/clipboard/dist/src/copy-sync.d.ts +0 -27
- package/packages/clipboard/dist/src/copy-sync.d.ts.map +0 -1
- package/packages/clipboard/dist/src/copy-sync.js +0 -170
- package/packages/clipboard/dist/src/copy-sync.js.map +0 -1
- package/packages/clipboard/dist/src/gist-relay.d.ts +0 -48
- package/packages/clipboard/dist/src/gist-relay.d.ts.map +0 -1
- package/packages/clipboard/dist/src/gist-relay.js +0 -186
- package/packages/clipboard/dist/src/gist-relay.js.map +0 -1
- package/packages/clipboard/dist/src/github-login.d.ts +0 -16
- package/packages/clipboard/dist/src/github-login.d.ts.map +0 -1
- package/packages/clipboard/dist/src/github-login.js +0 -69
- package/packages/clipboard/dist/src/github-login.js.map +0 -1
- package/packages/clipboard/dist/src/index.d.ts +0 -4
- package/packages/clipboard/dist/src/index.d.ts.map +0 -1
- package/packages/clipboard/dist/src/index.js +0 -3
- package/packages/clipboard/dist/src/index.js.map +0 -1
- package/packages/clipboard/dist/src/types.d.ts +0 -13
- package/packages/clipboard/dist/src/types.d.ts.map +0 -1
- package/packages/clipboard/dist/src/types.js +0 -5
- package/packages/clipboard/dist/src/types.js.map +0 -1
- package/packages/clipboard/test/mojibake.test.mjs +0 -143
- package/packages/clipboard/tsconfig.json +0 -10
- package/packages/code-generation/tsconfig.json +0 -33
- package/packages/code-generation/tsconfig.tsbuildinfo +0 -1
- package/packages/code-review/tsconfig.json +0 -33
- package/packages/code-review/tsconfig.tsbuildinfo +0 -1
- package/packages/codex-adapter/tsconfig.json +0 -5
- package/packages/context-compiler/tsconfig.json +0 -17
- package/packages/context-discovery/dist/src/discover.d.ts +0 -3
- package/packages/context-discovery/dist/src/discover.d.ts.map +0 -1
- package/packages/context-discovery/dist/src/discover.js +0 -42
- package/packages/context-discovery/dist/src/discover.js.map +0 -1
- package/packages/context-discovery/dist/src/discovery.d.ts +0 -28
- package/packages/context-discovery/dist/src/discovery.d.ts.map +0 -1
- package/packages/context-discovery/dist/src/discovery.js +0 -21
- package/packages/context-discovery/dist/src/discovery.js.map +0 -1
- package/packages/context-discovery/dist/src/index.d.ts +0 -3
- package/packages/context-discovery/dist/src/index.d.ts.map +0 -1
- package/packages/context-discovery/dist/src/index.js +0 -2
- package/packages/context-discovery/dist/src/index.js.map +0 -1
- package/packages/context-discovery/dist/src/types.d.ts +0 -16
- package/packages/context-discovery/dist/src/types.d.ts.map +0 -1
- package/packages/context-discovery/dist/src/types.js +0 -2
- package/packages/context-discovery/dist/src/types.js.map +0 -1
- package/packages/context-discovery/tsconfig.json +0 -10
- package/packages/context-manager/tsconfig.json +0 -6
- package/packages/cookie-sanitizer/tsconfig.json +0 -8
- package/packages/cost-optimizer/tsconfig.json +0 -22
- package/packages/dependency-analyzer/dist/src/analyzer.d.ts +0 -17
- package/packages/dependency-analyzer/dist/src/analyzer.d.ts.map +0 -1
- package/packages/dependency-analyzer/dist/src/analyzer.js +0 -119
- package/packages/dependency-analyzer/dist/src/analyzer.js.map +0 -1
- package/packages/dependency-analyzer/dist/src/imports.d.ts +0 -12
- package/packages/dependency-analyzer/dist/src/imports.d.ts.map +0 -1
- package/packages/dependency-analyzer/dist/src/imports.js +0 -73
- package/packages/dependency-analyzer/dist/src/imports.js.map +0 -1
- package/packages/dependency-analyzer/dist/src/index.d.ts +0 -4
- package/packages/dependency-analyzer/dist/src/index.d.ts.map +0 -1
- package/packages/dependency-analyzer/dist/src/index.js +0 -3
- package/packages/dependency-analyzer/dist/src/index.js.map +0 -1
- package/packages/dependency-analyzer/dist/src/types.d.ts +0 -28
- package/packages/dependency-analyzer/dist/src/types.d.ts.map +0 -1
- package/packages/dependency-analyzer/dist/src/types.js +0 -5
- package/packages/dependency-analyzer/dist/src/types.js.map +0 -1
- package/packages/dependency-analyzer/test/analyzer.test.js +0 -37
- package/packages/dependency-analyzer/tsconfig.json +0 -10
- package/packages/django-plugin/tsconfig.json +0 -12
- package/packages/doc-generator/tsconfig.json +0 -6
- package/packages/evaluation-engine/tsconfig.json +0 -8
- package/packages/evaluation-runner/tsconfig.json +0 -5
- package/packages/event-bus/dist/src/bus.d.ts +0 -15
- package/packages/event-bus/dist/src/bus.d.ts.map +0 -1
- package/packages/event-bus/dist/src/bus.js +0 -98
- package/packages/event-bus/dist/src/bus.js.map +0 -1
- package/packages/event-bus/dist/src/herdr-bus.d.ts +0 -121
- package/packages/event-bus/dist/src/herdr-bus.d.ts.map +0 -1
- package/packages/event-bus/dist/src/herdr-bus.js +0 -322
- package/packages/event-bus/dist/src/herdr-bus.js.map +0 -1
- package/packages/event-bus/dist/src/index.d.ts +0 -6
- package/packages/event-bus/dist/src/index.d.ts.map +0 -1
- package/packages/event-bus/dist/src/index.js +0 -4
- package/packages/event-bus/dist/src/index.js.map +0 -1
- package/packages/event-bus/dist/src/types.d.ts +0 -27
- package/packages/event-bus/dist/src/types.d.ts.map +0 -1
- package/packages/event-bus/dist/src/types.js +0 -10
- package/packages/event-bus/dist/src/types.js.map +0 -1
- package/packages/event-bus/tsconfig.json +0 -10
- package/packages/event-store/dist/src/index.d.ts +0 -3
- package/packages/event-store/dist/src/index.d.ts.map +0 -1
- package/packages/event-store/dist/src/index.js +0 -2
- package/packages/event-store/dist/src/index.js.map +0 -1
- package/packages/event-store/dist/src/store.d.ts +0 -15
- package/packages/event-store/dist/src/store.d.ts.map +0 -1
- package/packages/event-store/dist/src/store.js +0 -139
- package/packages/event-store/dist/src/store.js.map +0 -1
- package/packages/event-store/dist/src/types.d.ts +0 -48
- package/packages/event-store/dist/src/types.d.ts.map +0 -1
- package/packages/event-store/dist/src/types.js +0 -5
- package/packages/event-store/dist/src/types.js.map +0 -1
- package/packages/event-store/src/types.d.ts.map +0 -1
- package/packages/event-store/src/types.js +0 -5
- package/packages/event-store/src/types.js.map +0 -1
- package/packages/event-store/tsconfig.json +0 -10
- package/packages/experience-replay/tsconfig.json +0 -8
- package/packages/feedback-collector/tsconfig.json +0 -5
- package/packages/framework-detector/tsconfig.json +0 -33
- package/packages/framework-detector/tsconfig.tsbuildinfo +0 -1
- package/packages/framework-plugin-sdk/tsconfig.json +0 -33
- package/packages/framework-plugin-sdk/tsconfig.tsbuildinfo +0 -1
- package/packages/frappe-plugin/tsconfig.json +0 -12
- package/packages/generic-web-plugin/tsconfig.json +0 -12
- package/packages/health-monitor/tsconfig.json +0 -5
- package/packages/intent-analyzer/dist/src/analyzer.d.ts +0 -13
- package/packages/intent-analyzer/dist/src/analyzer.d.ts.map +0 -1
- package/packages/intent-analyzer/dist/src/analyzer.js +0 -239
- package/packages/intent-analyzer/dist/src/analyzer.js.map +0 -1
- package/packages/intent-analyzer/dist/src/index.d.ts +0 -3
- package/packages/intent-analyzer/dist/src/index.d.ts.map +0 -1
- package/packages/intent-analyzer/dist/src/index.js +0 -2
- package/packages/intent-analyzer/dist/src/index.js.map +0 -1
- package/packages/intent-analyzer/dist/src/types.d.ts +0 -26
- package/packages/intent-analyzer/dist/src/types.d.ts.map +0 -1
- package/packages/intent-analyzer/dist/src/types.js +0 -7
- package/packages/intent-analyzer/dist/src/types.js.map +0 -1
- package/packages/intent-analyzer/tsconfig.json +0 -10
- package/packages/laravel-plugin/tsconfig.json +0 -12
- package/packages/learning-engine/tsconfig.json +0 -8
- package/packages/mcp-adapter/tsconfig.json +0 -8
- package/packages/memory-engine/tsconfig.json +0 -8
- package/packages/model-registry/src/types.d.ts.map +0 -1
- package/packages/model-registry/src/types.js +0 -5
- package/packages/model-registry/src/types.js.map +0 -1
- package/packages/model-registry/tsconfig.json +0 -22
- package/packages/nextjs-plugin/tsconfig.json +0 -12
- package/packages/notification/dist/adapters/email-adapter.d.ts +0 -17
- package/packages/notification/dist/adapters/email-adapter.d.ts.map +0 -1
- package/packages/notification/dist/adapters/email-adapter.js +0 -89
- package/packages/notification/dist/adapters/email-adapter.js.map +0 -1
- package/packages/notification/dist/adapters/ntfy-adapter.d.ts +0 -17
- package/packages/notification/dist/adapters/ntfy-adapter.d.ts.map +0 -1
- package/packages/notification/dist/adapters/ntfy-adapter.js +0 -84
- package/packages/notification/dist/adapters/ntfy-adapter.js.map +0 -1
- package/packages/notification/dist/adapters/telegram-adapter.d.ts +0 -17
- package/packages/notification/dist/adapters/telegram-adapter.d.ts.map +0 -1
- package/packages/notification/dist/adapters/telegram-adapter.js +0 -88
- package/packages/notification/dist/adapters/telegram-adapter.js.map +0 -1
- package/packages/notification/dist/adapters/webhook-adapter.d.ts +0 -15
- package/packages/notification/dist/adapters/webhook-adapter.d.ts.map +0 -1
- package/packages/notification/dist/adapters/webhook-adapter.js +0 -64
- package/packages/notification/dist/adapters/webhook-adapter.js.map +0 -1
- package/packages/notification/dist/base-adapter.d.ts +0 -36
- package/packages/notification/dist/base-adapter.d.ts.map +0 -1
- package/packages/notification/dist/base-adapter.js +0 -39
- package/packages/notification/dist/base-adapter.js.map +0 -1
- package/packages/notification/dist/index.d.ts +0 -9
- package/packages/notification/dist/index.d.ts.map +0 -1
- package/packages/notification/dist/index.js +0 -9
- package/packages/notification/dist/index.js.map +0 -1
- package/packages/notification/dist/notification-center.d.ts +0 -46
- package/packages/notification/dist/notification-center.d.ts.map +0 -1
- package/packages/notification/dist/notification-center.js +0 -228
- package/packages/notification/dist/notification-center.js.map +0 -1
- package/packages/notification/dist/types.d.ts +0 -65
- package/packages/notification/dist/types.d.ts.map +0 -1
- package/packages/notification/dist/types.js +0 -7
- package/packages/notification/dist/types.js.map +0 -1
- package/packages/notification/tsconfig.json +0 -8
- package/packages/observability/tsconfig.json +0 -33
- package/packages/observability/tsconfig.tsbuildinfo +0 -1
- package/packages/performance-optimizer/tsconfig.json +0 -8
- package/packages/privilege-broker/config/privileges.yaml.example +0 -172
- package/packages/privilege-broker/tsconfig.json +0 -22
- package/packages/privilege-broker/tsconfig.tsbuildinfo +0 -1
- package/packages/project-analyzer/tsconfig.json +0 -33
- package/packages/project-analyzer/tsconfig.tsbuildinfo +0 -1
- package/packages/projection-engine/dist/src/engine.d.ts +0 -61
- package/packages/projection-engine/dist/src/engine.d.ts.map +0 -1
- package/packages/projection-engine/dist/src/engine.js +0 -87
- package/packages/projection-engine/dist/src/engine.js.map +0 -1
- package/packages/projection-engine/dist/src/index.d.ts +0 -2
- package/packages/projection-engine/dist/src/index.d.ts.map +0 -1
- package/packages/projection-engine/dist/src/index.js +0 -2
- package/packages/projection-engine/dist/src/index.js.map +0 -1
- package/packages/projection-engine/dist/src/project.d.ts +0 -3
- package/packages/projection-engine/dist/src/project.d.ts.map +0 -1
- package/packages/projection-engine/dist/src/project.js +0 -24
- package/packages/projection-engine/dist/src/project.js.map +0 -1
- package/packages/projection-engine/dist/src/types.d.ts +0 -55
- package/packages/projection-engine/dist/src/types.d.ts.map +0 -1
- package/packages/projection-engine/dist/src/types.js +0 -5
- package/packages/projection-engine/dist/src/types.js.map +0 -1
- package/packages/projection-engine/src/types.d.ts.map +0 -1
- package/packages/projection-engine/src/types.js +0 -5
- package/packages/projection-engine/src/types.js.map +0 -1
- package/packages/projection-engine/tsconfig.json +0 -10
- package/packages/prompt-compiler/tsconfig.json +0 -19
- package/packages/prompt-versioning/tsconfig.json +0 -5
- package/packages/provider-adapter-sdk/dist/tsconfig.tsbuildinfo +0 -1
- package/packages/provider-adapter-sdk/tsconfig.json +0 -34
- package/packages/provider-adapter-sdk/tsconfig.tsbuildinfo +0 -1
- package/packages/provider-router/tsconfig.json +0 -20
- package/packages/provider-selector/tsconfig.json +0 -6
- package/packages/providers/dist/adapters.d.ts +0 -133
- package/packages/providers/dist/adapters.d.ts.map +0 -1
- package/packages/providers/dist/adapters.js +0 -236
- package/packages/providers/dist/adapters.js.map +0 -1
- package/packages/providers/dist/deepagents-adapter.d.ts +0 -78
- package/packages/providers/dist/deepagents-adapter.d.ts.map +0 -1
- package/packages/providers/dist/deepagents-adapter.js +0 -323
- package/packages/providers/dist/deepagents-adapter.js.map +0 -1
- package/packages/providers/dist/glm-usage.d.ts +0 -102
- package/packages/providers/dist/glm-usage.d.ts.map +0 -1
- package/packages/providers/dist/glm-usage.js +0 -197
- package/packages/providers/dist/glm-usage.js.map +0 -1
- package/packages/providers/dist/index.d.ts +0 -11
- package/packages/providers/dist/index.d.ts.map +0 -1
- package/packages/providers/dist/index.js +0 -11
- package/packages/providers/dist/index.js.map +0 -1
- package/packages/providers/dist/openai-usage.d.ts +0 -103
- package/packages/providers/dist/openai-usage.d.ts.map +0 -1
- package/packages/providers/dist/openai-usage.js +0 -208
- package/packages/providers/dist/openai-usage.js.map +0 -1
- package/packages/providers/dist/provider-id.d.ts +0 -46
- package/packages/providers/dist/provider-id.d.ts.map +0 -1
- package/packages/providers/dist/provider-id.js +0 -113
- package/packages/providers/dist/provider-id.js.map +0 -1
- package/packages/providers/tsconfig.json +0 -8
- package/packages/quota-manager/dist/examples/tui-usage-integration.d.ts +0 -35
- package/packages/quota-manager/dist/examples/tui-usage-integration.d.ts.map +0 -1
- package/packages/quota-manager/dist/examples/tui-usage-integration.js +0 -73
- package/packages/quota-manager/dist/examples/tui-usage-integration.js.map +0 -1
- package/packages/quota-manager/dist/index.d.ts +0 -8
- package/packages/quota-manager/dist/index.d.ts.map +0 -1
- package/packages/quota-manager/dist/index.js +0 -8
- package/packages/quota-manager/dist/index.js.map +0 -1
- package/packages/quota-manager/dist/quota-manager.d.ts +0 -70
- package/packages/quota-manager/dist/quota-manager.d.ts.map +0 -1
- package/packages/quota-manager/dist/quota-manager.js +0 -260
- package/packages/quota-manager/dist/quota-manager.js.map +0 -1
- package/packages/quota-manager/dist/tui-usage-monitor.d.ts +0 -96
- package/packages/quota-manager/dist/tui-usage-monitor.d.ts.map +0 -1
- package/packages/quota-manager/dist/tui-usage-monitor.js +0 -268
- package/packages/quota-manager/dist/tui-usage-monitor.js.map +0 -1
- package/packages/quota-manager/tsconfig.json +0 -8
- package/packages/rate-limiter/tsconfig.json +0 -5
- package/packages/react-vite-plugin/tsconfig.json +0 -12
- package/packages/release-manager/tsconfig.json +0 -5
- package/packages/requirement-compiler/tsconfig.json +0 -22
- package/packages/runtime/dist/command-executor.d.ts +0 -129
- package/packages/runtime/dist/command-executor.d.ts.map +0 -1
- package/packages/runtime/dist/command-executor.js +0 -383
- package/packages/runtime/dist/command-executor.js.map +0 -1
- package/packages/runtime/dist/index.d.ts +0 -11
- package/packages/runtime/dist/index.d.ts.map +0 -1
- package/packages/runtime/dist/index.js +0 -11
- package/packages/runtime/dist/index.js.map +0 -1
- package/packages/runtime/dist/local-runtime-agent.d.ts +0 -111
- package/packages/runtime/dist/local-runtime-agent.d.ts.map +0 -1
- package/packages/runtime/dist/local-runtime-agent.js +0 -356
- package/packages/runtime/dist/local-runtime-agent.js.map +0 -1
- package/packages/runtime/dist/policy-engine.d.ts +0 -203
- package/packages/runtime/dist/policy-engine.d.ts.map +0 -1
- package/packages/runtime/dist/policy-engine.js +0 -592
- package/packages/runtime/dist/policy-engine.js.map +0 -1
- package/packages/runtime/dist/runtime-api.d.ts +0 -137
- package/packages/runtime/dist/runtime-api.d.ts.map +0 -1
- package/packages/runtime/dist/runtime-api.js +0 -454
- package/packages/runtime/dist/runtime-api.js.map +0 -1
- package/packages/runtime/dist/workspace-manager.d.ts +0 -162
- package/packages/runtime/dist/workspace-manager.d.ts.map +0 -1
- package/packages/runtime/dist/workspace-manager.js +0 -451
- package/packages/runtime/dist/workspace-manager.js.map +0 -1
- package/packages/runtime/tsconfig.json +0 -8
- package/packages/scheduler-adapter/tsconfig.json +0 -22
- package/packages/scheduler-adapter/tsconfig.tsbuildinfo +0 -1
- package/packages/session/tsconfig.json +0 -33
- package/packages/session/tsconfig.tsbuildinfo +0 -1
- package/packages/session-api/dist/src/api.d.ts +0 -83
- package/packages/session-api/dist/src/api.d.ts.map +0 -1
- package/packages/session-api/dist/src/api.js +0 -49
- package/packages/session-api/dist/src/api.js.map +0 -1
- package/packages/session-api/dist/src/index.d.ts +0 -2
- package/packages/session-api/dist/src/index.d.ts.map +0 -1
- package/packages/session-api/dist/src/index.js +0 -2
- package/packages/session-api/dist/src/index.js.map +0 -1
- package/packages/session-api/dist/src/types.d.ts +0 -22
- package/packages/session-api/dist/src/types.d.ts.map +0 -1
- package/packages/session-api/dist/src/types.js +0 -5
- package/packages/session-api/dist/src/types.js.map +0 -1
- package/packages/session-api/tsconfig.json +0 -10
- package/packages/session-export/dist/src/exporter.d.ts +0 -28
- package/packages/session-export/dist/src/exporter.d.ts.map +0 -1
- package/packages/session-export/dist/src/exporter.js +0 -42
- package/packages/session-export/dist/src/exporter.js.map +0 -1
- package/packages/session-export/dist/src/index.d.ts +0 -2
- package/packages/session-export/dist/src/index.d.ts.map +0 -1
- package/packages/session-export/dist/src/index.js +0 -2
- package/packages/session-export/dist/src/index.js.map +0 -1
- package/packages/session-export/dist/src/types.d.ts +0 -20
- package/packages/session-export/dist/src/types.d.ts.map +0 -1
- package/packages/session-export/dist/src/types.js +0 -5
- package/packages/session-export/dist/src/types.js.map +0 -1
- package/packages/session-export/tsconfig.json +0 -10
- package/packages/skill-registry/tsconfig.json +0 -22
- package/packages/sprint-planner/tsconfig.json +0 -5
- package/packages/subscription-engine/dist/src/engine.d.ts +0 -13
- package/packages/subscription-engine/dist/src/engine.d.ts.map +0 -1
- package/packages/subscription-engine/dist/src/engine.js +0 -40
- package/packages/subscription-engine/dist/src/engine.js.map +0 -1
- package/packages/subscription-engine/dist/src/index.d.ts +0 -2
- package/packages/subscription-engine/dist/src/index.d.ts.map +0 -1
- package/packages/subscription-engine/dist/src/index.js +0 -2
- package/packages/subscription-engine/dist/src/index.js.map +0 -1
- package/packages/subscription-engine/dist/src/subscriptions.d.ts +0 -19
- package/packages/subscription-engine/dist/src/subscriptions.d.ts.map +0 -1
- package/packages/subscription-engine/dist/src/subscriptions.js +0 -39
- package/packages/subscription-engine/dist/src/subscriptions.js.map +0 -1
- package/packages/subscription-engine/dist/src/types.d.ts +0 -24
- package/packages/subscription-engine/dist/src/types.d.ts.map +0 -1
- package/packages/subscription-engine/dist/src/types.js +0 -5
- package/packages/subscription-engine/dist/src/types.js.map +0 -1
- package/packages/subscription-engine/tsconfig.json +0 -10
- package/packages/task-compiler/tsconfig.json +0 -24
- package/packages/test-data-generator/tsconfig.json +0 -33
- package/packages/test-data-generator/tsconfig.tsbuildinfo +0 -1
- package/packages/test-generator/tsconfig.json +0 -6
- package/packages/token-optimizer/tsconfig.json +0 -6
- package/packages/tui/tsconfig.json +0 -8
- package/packages/types/src/runtime-types.d.ts.map +0 -1
- package/packages/types/src/runtime-types.js +0 -2
- package/packages/types/src/runtime-types.js.map +0 -1
- package/packages/types/tsconfig.json +0 -21
- package/packages/types/tsconfig.tsbuildinfo +0 -1
- package/packages/workflow-events/dist/src/events.d.ts +0 -38
- package/packages/workflow-events/dist/src/events.d.ts.map +0 -1
- package/packages/workflow-events/dist/src/events.js +0 -55
- package/packages/workflow-events/dist/src/events.js.map +0 -1
- package/packages/workflow-events/dist/src/index.d.ts +0 -2
- package/packages/workflow-events/dist/src/index.d.ts.map +0 -1
- package/packages/workflow-events/dist/src/index.js +0 -2
- package/packages/workflow-events/dist/src/index.js.map +0 -1
- package/packages/workflow-events/dist/src/pipeline.d.ts +0 -21
- package/packages/workflow-events/dist/src/pipeline.d.ts.map +0 -1
- package/packages/workflow-events/dist/src/pipeline.js +0 -36
- package/packages/workflow-events/dist/src/pipeline.js.map +0 -1
- package/packages/workflow-events/dist/src/types.d.ts +0 -110
- package/packages/workflow-events/dist/src/types.d.ts.map +0 -1
- package/packages/workflow-events/dist/src/types.js +0 -5
- package/packages/workflow-events/dist/src/types.js.map +0 -1
- package/packages/workflow-events/src/types.d.ts.map +0 -1
- package/packages/workflow-events/src/types.js +0 -5
- package/packages/workflow-events/src/types.js.map +0 -1
- package/packages/workflow-events/tsconfig.json +0 -10
- package/packages/workspace-scanner/dist/src/detect.d.ts +0 -3
- package/packages/workspace-scanner/dist/src/detect.d.ts.map +0 -1
- package/packages/workspace-scanner/dist/src/detect.js +0 -60
- package/packages/workspace-scanner/dist/src/detect.js.map +0 -1
- package/packages/workspace-scanner/dist/src/git.d.ts +0 -7
- package/packages/workspace-scanner/dist/src/git.d.ts.map +0 -1
- package/packages/workspace-scanner/dist/src/git.js +0 -75
- package/packages/workspace-scanner/dist/src/git.js.map +0 -1
- package/packages/workspace-scanner/dist/src/index.d.ts +0 -5
- package/packages/workspace-scanner/dist/src/index.d.ts.map +0 -1
- package/packages/workspace-scanner/dist/src/index.js +0 -4
- package/packages/workspace-scanner/dist/src/index.js.map +0 -1
- package/packages/workspace-scanner/dist/src/scanner.d.ts +0 -11
- package/packages/workspace-scanner/dist/src/scanner.d.ts.map +0 -1
- package/packages/workspace-scanner/dist/src/scanner.js +0 -59
- package/packages/workspace-scanner/dist/src/scanner.js.map +0 -1
- package/packages/workspace-scanner/dist/src/types.d.ts +0 -35
- package/packages/workspace-scanner/dist/src/types.d.ts.map +0 -1
- package/packages/workspace-scanner/dist/src/types.js +0 -5
- package/packages/workspace-scanner/dist/src/types.js.map +0 -1
- package/packages/workspace-scanner/test/scanner.test.js +0 -31
- package/packages/workspace-scanner/tsconfig.json +0 -10
- package/packages/worktree/dist/index.d.ts +0 -7
- package/packages/worktree/dist/index.d.ts.map +0 -1
- package/packages/worktree/dist/index.js +0 -7
- package/packages/worktree/dist/index.js.map +0 -1
- package/packages/worktree/dist/worktree.d.ts +0 -88
- package/packages/worktree/dist/worktree.d.ts.map +0 -1
- package/packages/worktree/dist/worktree.js +0 -242
- package/packages/worktree/dist/worktree.js.map +0 -1
- package/packages/worktree/tsconfig.json +0 -8
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OpenAI Usage Parser — TUI Message Parsing
|
|
3
|
-
*
|
|
4
|
-
* OpenAI (GPT) reports quota exhaustion via TUI in pi.dev.
|
|
5
|
-
* When tokens run out or context window is full, pi shows:
|
|
6
|
-
* - Exact reset time
|
|
7
|
-
* - Which limit was hit
|
|
8
|
-
*
|
|
9
|
-
* This module hooks into TUI messages to capture quota signals.
|
|
10
|
-
* No API key needed - uses the same method as GLM.
|
|
11
|
-
*/
|
|
12
|
-
import { EventEmitter } from "node:events";
|
|
13
|
-
export interface OpenAIUsageData {
|
|
14
|
-
provider: "openai";
|
|
15
|
-
timestamp: string;
|
|
16
|
-
/** Usage percentage (0-100), if available */
|
|
17
|
-
usedPct?: number;
|
|
18
|
-
/** Remaining percentage (0-100) */
|
|
19
|
-
remainingPct: number;
|
|
20
|
-
/** If exhausted */
|
|
21
|
-
exhausted: boolean;
|
|
22
|
-
/** Reset time */
|
|
23
|
-
resetsAt: string;
|
|
24
|
-
/** Which limit was hit */
|
|
25
|
-
limitType: "tokens" | "context_window" | "rate_limit" | "unknown";
|
|
26
|
-
/** Original message from TUI */
|
|
27
|
-
originalMessage: string;
|
|
28
|
-
}
|
|
29
|
-
export interface OpenAIUsageConfig {
|
|
30
|
-
/** Called when OpenAI quota signal is detected from TUI */
|
|
31
|
-
onQuotaSignal?: (data: OpenAIUsageData) => void;
|
|
32
|
-
}
|
|
33
|
-
export declare class OpenAIUsageProvider extends EventEmitter {
|
|
34
|
-
private lastUsageData;
|
|
35
|
-
private onQuotaSignal?;
|
|
36
|
-
constructor(config?: OpenAIUsageConfig);
|
|
37
|
-
/**
|
|
38
|
-
* Check if auto-fetch is possible via TUI
|
|
39
|
-
* OpenAI reports quota via TUI, so this is always true when hooked
|
|
40
|
-
*/
|
|
41
|
-
supportsAutoFetch(): boolean;
|
|
42
|
-
/**
|
|
43
|
-
* Process a TUI message and extract OpenAI quota data
|
|
44
|
-
* Call this when receiving error/status messages from pi
|
|
45
|
-
*/
|
|
46
|
-
processTUIMessage(message: string): OpenAIUsageData | null;
|
|
47
|
-
/**
|
|
48
|
-
* Parse reset time from message
|
|
49
|
-
*/
|
|
50
|
-
private parseResetTime;
|
|
51
|
-
/**
|
|
52
|
-
* Parse the OpenAI quota message
|
|
53
|
-
*/
|
|
54
|
-
private parseOpenAIQuotaMessage;
|
|
55
|
-
/**
|
|
56
|
-
* Get the last captured usage data
|
|
57
|
-
*/
|
|
58
|
-
getLastUsage(): OpenAIUsageData | null;
|
|
59
|
-
/**
|
|
60
|
-
* Clear stored usage data
|
|
61
|
-
*/
|
|
62
|
-
clear(): void;
|
|
63
|
-
/**
|
|
64
|
-
* For QuotaManager integration
|
|
65
|
-
* Returns current state (from last TUI message)
|
|
66
|
-
*/
|
|
67
|
-
getUsage(): Promise<OpenAIUsageData>;
|
|
68
|
-
/**
|
|
69
|
-
* Get usage as percentage
|
|
70
|
-
*/
|
|
71
|
-
getUsagePercent(): Promise<number>;
|
|
72
|
-
/**
|
|
73
|
-
* Check if quota is exhausted
|
|
74
|
-
*/
|
|
75
|
-
isExhausted(): Promise<boolean>;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Integration helper: Hook OpenAI usage provider into pi extension
|
|
79
|
-
*
|
|
80
|
-
* Usage:
|
|
81
|
-
* ```typescript
|
|
82
|
-
* const openaiUsage = new OpenAIUsageProvider({
|
|
83
|
-
* onQuotaSignal: (data) => {
|
|
84
|
-
* quotaManager.recordSignal({
|
|
85
|
-
* provider: "openai",
|
|
86
|
-
* source: "tui_message",
|
|
87
|
-
* windowType: data.limitType === "context_window" ? "daily" : "5h",
|
|
88
|
-
* exhausted: data.exhausted,
|
|
89
|
-
* resetsAt: data.resetsAt,
|
|
90
|
-
* });
|
|
91
|
-
* }
|
|
92
|
-
* });
|
|
93
|
-
*
|
|
94
|
-
* pi.on("error", (event) => {
|
|
95
|
-
* openaiUsage.processTUIMessage(event.message);
|
|
96
|
-
* });
|
|
97
|
-
*
|
|
98
|
-
* pi.on("message", (event) => {
|
|
99
|
-
* openaiUsage.processTUIMessage(event.message);
|
|
100
|
-
* });
|
|
101
|
-
* ```
|
|
102
|
-
*/
|
|
103
|
-
//# sourceMappingURL=openai-usage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-usage.d.ts","sourceRoot":"","sources":["../src/openai-usage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,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,iBAAiB;IACjC,2DAA2D;IAC3D,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;CAChD;AAyCD,qBAAa,mBAAoB,SAAQ,YAAY;IACpD,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,aAAa,CAAC,CAAkC;IAExD,YAAY,MAAM,GAAE,iBAAsB,EAGzC;IAED;;;OAGG;IACH,iBAAiB,IAAI,OAAO,CAE3B;IAED;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAqBzD;IAED;;OAEG;IACH,OAAO,CAAC,cAAc;IAmCtB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA2B/B;;OAEG;IACH,YAAY,IAAI,eAAe,GAAG,IAAI,CAErC;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAEZ;IAED;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC,CAazC;IAED;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAGvC;IAED;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAGpC;CACD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG"}
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OpenAI Usage Parser — TUI Message Parsing
|
|
3
|
-
*
|
|
4
|
-
* OpenAI (GPT) reports quota exhaustion via TUI in pi.dev.
|
|
5
|
-
* When tokens run out or context window is full, pi shows:
|
|
6
|
-
* - Exact reset time
|
|
7
|
-
* - Which limit was hit
|
|
8
|
-
*
|
|
9
|
-
* This module hooks into TUI messages to capture quota signals.
|
|
10
|
-
* No API key needed - uses the same method as GLM.
|
|
11
|
-
*/
|
|
12
|
-
import { EventEmitter } from "node:events";
|
|
13
|
-
/**
|
|
14
|
-
* OpenAI quota message patterns from TUI
|
|
15
|
-
* These patterns match the messages pi displays when OpenAI hits limits
|
|
16
|
-
*/
|
|
17
|
-
const OPENAI_QUOTA_PATTERNS = [
|
|
18
|
-
// Context window full
|
|
19
|
-
{
|
|
20
|
-
pattern: /OpenAI|GPT|context.*(?:window|length).*(?:full|exceeded|limit)/i,
|
|
21
|
-
limitType: "context_window",
|
|
22
|
-
},
|
|
23
|
-
// Tokens exhausted
|
|
24
|
-
{
|
|
25
|
-
pattern: /openai.*(?:quota|limit|exhausted|tokens?.*(?:ran out|exceeded))/i,
|
|
26
|
-
limitType: "tokens",
|
|
27
|
-
},
|
|
28
|
-
// Rate limit
|
|
29
|
-
{
|
|
30
|
-
pattern: /openai.*rate.?limit|429/i,
|
|
31
|
-
limitType: "rate_limit",
|
|
32
|
-
},
|
|
33
|
-
// Reset time patterns
|
|
34
|
-
{
|
|
35
|
-
pattern: /openai.*reset.*(?:at|in).*(\d{1,2}):(\d{2})/i,
|
|
36
|
-
limitType: "unknown",
|
|
37
|
-
},
|
|
38
|
-
// Error codes
|
|
39
|
-
{
|
|
40
|
-
pattern: /insufficient_quota|context_length_exceeded/i,
|
|
41
|
-
limitType: "tokens",
|
|
42
|
-
},
|
|
43
|
-
];
|
|
44
|
-
const RESET_TIME_PATTERNS = [
|
|
45
|
-
/reset(?:s)?\s+(?:at|in)\s+(\d{1,2}):(\d{2})/i,
|
|
46
|
-
/(?:at|in)\s+(\d{1,2}):(\d{2})/i,
|
|
47
|
-
/retry\s+after\s+(\d{1,2}):(\d{2})/i,
|
|
48
|
-
/(\d{1,2}):(\d{2})\s*(?:am|pm)/i,
|
|
49
|
-
];
|
|
50
|
-
export class OpenAIUsageProvider extends EventEmitter {
|
|
51
|
-
lastUsageData = null;
|
|
52
|
-
onQuotaSignal;
|
|
53
|
-
constructor(config = {}) {
|
|
54
|
-
super();
|
|
55
|
-
this.onQuotaSignal = config.onQuotaSignal;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Check if auto-fetch is possible via TUI
|
|
59
|
-
* OpenAI reports quota via TUI, so this is always true when hooked
|
|
60
|
-
*/
|
|
61
|
-
supportsAutoFetch() {
|
|
62
|
-
return true; // TUI integration is always available
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Process a TUI message and extract OpenAI quota data
|
|
66
|
-
* Call this when receiving error/status messages from pi
|
|
67
|
-
*/
|
|
68
|
-
processTUIMessage(message) {
|
|
69
|
-
// Check if this is an OpenAI quota message
|
|
70
|
-
for (const { pattern, limitType } of OPENAI_QUOTA_PATTERNS) {
|
|
71
|
-
if (pattern.test(message)) {
|
|
72
|
-
const usageData = this.parseOpenAIQuotaMessage(message, limitType);
|
|
73
|
-
if (usageData) {
|
|
74
|
-
this.lastUsageData = usageData;
|
|
75
|
-
// Emit event
|
|
76
|
-
this.emit("quota", usageData);
|
|
77
|
-
// Call callback if set
|
|
78
|
-
this.onQuotaSignal?.(usageData);
|
|
79
|
-
return usageData;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return null;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Parse reset time from message
|
|
87
|
-
*/
|
|
88
|
-
parseResetTime(message) {
|
|
89
|
-
for (const pattern of RESET_TIME_PATTERNS) {
|
|
90
|
-
const match = message.match(pattern);
|
|
91
|
-
if (match) {
|
|
92
|
-
let hour = parseInt(match[1], 10);
|
|
93
|
-
const minute = parseInt(match[2], 10);
|
|
94
|
-
// Handle AM/PM
|
|
95
|
-
const isPM = /pm/i.test(message.slice(match.index ?? 0, (match.index ?? 0) + 10));
|
|
96
|
-
const isAM = /am/i.test(message.slice(match.index ?? 0, (match.index ?? 0) + 10));
|
|
97
|
-
if (isPM && hour < 12)
|
|
98
|
-
hour += 12;
|
|
99
|
-
if (isAM && hour === 12)
|
|
100
|
-
hour = 0;
|
|
101
|
-
// Convert to ISO string for today or tomorrow
|
|
102
|
-
const now = new Date();
|
|
103
|
-
const resetTime = new Date(now);
|
|
104
|
-
resetTime.setHours(hour, minute, 0, 0);
|
|
105
|
-
// If time has passed today, assume tomorrow
|
|
106
|
-
if (resetTime <= now) {
|
|
107
|
-
resetTime.setDate(resetTime.getDate() + 1);
|
|
108
|
-
}
|
|
109
|
-
return resetTime.toISOString();
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
return undefined;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Parse the OpenAI quota message
|
|
116
|
-
*/
|
|
117
|
-
parseOpenAIQuotaMessage(message, limitType) {
|
|
118
|
-
const resetsAt = this.parseResetTime(message) ??
|
|
119
|
-
new Date(Date.now() + 60 * 60 * 1000).toISOString();
|
|
120
|
-
// Try to extract percentage if present
|
|
121
|
-
let usedPct;
|
|
122
|
-
const pctMatch = message.match(/(\d+)%/);
|
|
123
|
-
if (pctMatch) {
|
|
124
|
-
usedPct = parseInt(pctMatch[1], 10);
|
|
125
|
-
}
|
|
126
|
-
return {
|
|
127
|
-
provider: "openai",
|
|
128
|
-
timestamp: new Date().toISOString(),
|
|
129
|
-
usedPct,
|
|
130
|
-
remainingPct: usedPct !== undefined ? 100 - usedPct : 0,
|
|
131
|
-
exhausted: true,
|
|
132
|
-
resetsAt,
|
|
133
|
-
limitType,
|
|
134
|
-
originalMessage: message,
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Get the last captured usage data
|
|
139
|
-
*/
|
|
140
|
-
getLastUsage() {
|
|
141
|
-
return this.lastUsageData;
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Clear stored usage data
|
|
145
|
-
*/
|
|
146
|
-
clear() {
|
|
147
|
-
this.lastUsageData = null;
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* For QuotaManager integration
|
|
151
|
-
* Returns current state (from last TUI message)
|
|
152
|
-
*/
|
|
153
|
-
async getUsage() {
|
|
154
|
-
if (!this.lastUsageData) {
|
|
155
|
-
return {
|
|
156
|
-
provider: "openai",
|
|
157
|
-
timestamp: new Date().toISOString(),
|
|
158
|
-
remainingPct: 100,
|
|
159
|
-
exhausted: false,
|
|
160
|
-
resetsAt: "",
|
|
161
|
-
limitType: "unknown",
|
|
162
|
-
originalMessage: "",
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
return this.lastUsageData;
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Get usage as percentage
|
|
169
|
-
*/
|
|
170
|
-
async getUsagePercent() {
|
|
171
|
-
const usage = await this.getUsage();
|
|
172
|
-
return usage.usedPct ?? 100 - usage.remainingPct;
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Check if quota is exhausted
|
|
176
|
-
*/
|
|
177
|
-
async isExhausted() {
|
|
178
|
-
const usage = await this.getUsage();
|
|
179
|
-
return usage.exhausted;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Integration helper: Hook OpenAI usage provider into pi extension
|
|
184
|
-
*
|
|
185
|
-
* Usage:
|
|
186
|
-
* ```typescript
|
|
187
|
-
* const openaiUsage = new OpenAIUsageProvider({
|
|
188
|
-
* onQuotaSignal: (data) => {
|
|
189
|
-
* quotaManager.recordSignal({
|
|
190
|
-
* provider: "openai",
|
|
191
|
-
* source: "tui_message",
|
|
192
|
-
* windowType: data.limitType === "context_window" ? "daily" : "5h",
|
|
193
|
-
* exhausted: data.exhausted,
|
|
194
|
-
* resetsAt: data.resetsAt,
|
|
195
|
-
* });
|
|
196
|
-
* }
|
|
197
|
-
* });
|
|
198
|
-
*
|
|
199
|
-
* pi.on("error", (event) => {
|
|
200
|
-
* openaiUsage.processTUIMessage(event.message);
|
|
201
|
-
* });
|
|
202
|
-
*
|
|
203
|
-
* pi.on("message", (event) => {
|
|
204
|
-
* openaiUsage.processTUIMessage(event.message);
|
|
205
|
-
* });
|
|
206
|
-
* ```
|
|
207
|
-
*/
|
|
208
|
-
//# sourceMappingURL=openai-usage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-usage.js","sourceRoot":"","sources":["../src/openai-usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Provider ID — single source of truth for "which provider does this model id belong to".
|
|
3
|
-
*
|
|
4
|
-
* Used by:
|
|
5
|
-
* - `index.ts` to gate fetcher calls (replaces the old `isMiniMaxModel` check)
|
|
6
|
-
* - `mirror.ts` to key per-provider records
|
|
7
|
-
* - the footer renderer to label lines correctly
|
|
8
|
-
* - the cookie sanitizer and quota manager
|
|
9
|
-
*
|
|
10
|
-
* Provider boundaries (model-id prefix → provider id):
|
|
11
|
-
*
|
|
12
|
-
* | Model id prefix | Provider | Notes |
|
|
13
|
-
* |-----------------|----------------|--------------------------------------|
|
|
14
|
-
* | `minimax/` | minimax | Playwright scrape path |
|
|
15
|
-
* | `openai/` | openai | TUI signal path |
|
|
16
|
-
* | `openai-codex/` | openai-codex | OAuth (different auth shape) |
|
|
17
|
-
* | `zai/` | glm | Z.ai / Zhipu |
|
|
18
|
-
* | `zhipu/` | glm | alt alias |
|
|
19
|
-
* | `anthropic/` | anthropic | TUI signal path |
|
|
20
|
-
* | `openrouter/` | openrouter | TUI signal path |
|
|
21
|
-
* | other | null | unknown — caller decides default |
|
|
22
|
-
*
|
|
23
|
-
* Match is case-insensitive on the prefix portion.
|
|
24
|
-
*
|
|
25
|
-
* The set is intentionally small and explicit. To add a provider: add
|
|
26
|
-
* a row to MODEL_PREFIXES and to the sanitization doc in
|
|
27
|
-
* wiki/bugs/multi-provider-usage-status.md.
|
|
28
|
-
*/
|
|
29
|
-
export type KnownProvider = "minimax" | "openai" | "openai-codex" | "glm" | "anthropic" | "openrouter";
|
|
30
|
-
/** True if the given string is a known, canonical provider id. */
|
|
31
|
-
export declare function isKnownAiProvider(value: string): value is KnownProvider;
|
|
32
|
-
export type ProviderId = KnownProvider | (string & {});
|
|
33
|
-
/** Return the provider id for a model id, or null if unknown. */
|
|
34
|
-
export declare function providerFromModelId(modelId: string | null | undefined): ProviderId | null;
|
|
35
|
-
/** Display name for the provider (used in the footer label). */
|
|
36
|
-
export declare function providerDisplayName(provider: ProviderId): string;
|
|
37
|
-
/** True if this provider has a continuous scrape path today (only MiniMax). */
|
|
38
|
-
/**
|
|
39
|
-
* Providers with continuous quota scraping via browser/API.
|
|
40
|
-
* - minimax: has both 5h and weekly windows
|
|
41
|
-
* - openai: has weekly-only window (no 5h limit since 2026)
|
|
42
|
-
*/
|
|
43
|
-
export declare function providerHasContinuousScrape(provider: ProviderId): boolean;
|
|
44
|
-
/** True if this provider has a TUI-driven signal path today. */
|
|
45
|
-
export declare function providerHasTUISignal(provider: ProviderId): boolean;
|
|
46
|
-
//# sourceMappingURL=provider-id.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-id.d.ts","sourceRoot":"","sources":["../src/provider-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,MAAM,aAAa,GACtB,SAAS,GACT,QAAQ,GACR,cAAc,GACd,KAAK,GACL,WAAW,GACX,YAAY,CAAC;AAEhB,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,aAAa,CASvE;AAED,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAYvD,iEAAiE;AACjE,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAChC,UAAU,GAAG,IAAI,CAuBnB;AAED,gEAAgE;AAChE,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAiBhE;AAED,+EAA+E;AAC/E;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAEzE;AAED,gEAAgE;AAChE,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAQlE"}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Provider ID — single source of truth for "which provider does this model id belong to".
|
|
3
|
-
*
|
|
4
|
-
* Used by:
|
|
5
|
-
* - `index.ts` to gate fetcher calls (replaces the old `isMiniMaxModel` check)
|
|
6
|
-
* - `mirror.ts` to key per-provider records
|
|
7
|
-
* - the footer renderer to label lines correctly
|
|
8
|
-
* - the cookie sanitizer and quota manager
|
|
9
|
-
*
|
|
10
|
-
* Provider boundaries (model-id prefix → provider id):
|
|
11
|
-
*
|
|
12
|
-
* | Model id prefix | Provider | Notes |
|
|
13
|
-
* |-----------------|----------------|--------------------------------------|
|
|
14
|
-
* | `minimax/` | minimax | Playwright scrape path |
|
|
15
|
-
* | `openai/` | openai | TUI signal path |
|
|
16
|
-
* | `openai-codex/` | openai-codex | OAuth (different auth shape) |
|
|
17
|
-
* | `zai/` | glm | Z.ai / Zhipu |
|
|
18
|
-
* | `zhipu/` | glm | alt alias |
|
|
19
|
-
* | `anthropic/` | anthropic | TUI signal path |
|
|
20
|
-
* | `openrouter/` | openrouter | TUI signal path |
|
|
21
|
-
* | other | null | unknown — caller decides default |
|
|
22
|
-
*
|
|
23
|
-
* Match is case-insensitive on the prefix portion.
|
|
24
|
-
*
|
|
25
|
-
* The set is intentionally small and explicit. To add a provider: add
|
|
26
|
-
* a row to MODEL_PREFIXES and to the sanitization doc in
|
|
27
|
-
* wiki/bugs/multi-provider-usage-status.md.
|
|
28
|
-
*/
|
|
29
|
-
/** True if the given string is a known, canonical provider id. */
|
|
30
|
-
export function isKnownAiProvider(value) {
|
|
31
|
-
return (value === "minimax" ||
|
|
32
|
-
value === "openai" ||
|
|
33
|
-
value === "openai-codex" ||
|
|
34
|
-
value === "glm" ||
|
|
35
|
-
value === "anthropic" ||
|
|
36
|
-
value === "openrouter");
|
|
37
|
-
}
|
|
38
|
-
const MODEL_PREFIXES = [
|
|
39
|
-
{ prefix: "minimax/", provider: "minimax" },
|
|
40
|
-
{ prefix: "openai-codex/", provider: "openai-codex" },
|
|
41
|
-
{ prefix: "openai/", provider: "openai" },
|
|
42
|
-
{ prefix: "anthropic/", provider: "anthropic" },
|
|
43
|
-
{ prefix: "openrouter/", provider: "openrouter" },
|
|
44
|
-
{ prefix: "zai/", provider: "glm" },
|
|
45
|
-
{ prefix: "zhipu/", provider: "glm" },
|
|
46
|
-
];
|
|
47
|
-
/** Return the provider id for a model id, or null if unknown. */
|
|
48
|
-
export function providerFromModelId(modelId) {
|
|
49
|
-
if (!modelId || typeof modelId !== "string")
|
|
50
|
-
return null;
|
|
51
|
-
const lower = modelId.toLowerCase();
|
|
52
|
-
for (const { prefix, provider } of MODEL_PREFIXES) {
|
|
53
|
-
if (lower.startsWith(prefix))
|
|
54
|
-
return provider;
|
|
55
|
-
}
|
|
56
|
-
// Some model ids may be just the provider name (no `/` separator) —
|
|
57
|
-
// common when the user picks via a friendly picker.
|
|
58
|
-
if (lower.startsWith("minimax"))
|
|
59
|
-
return "minimax";
|
|
60
|
-
if (lower.startsWith("openai-codex"))
|
|
61
|
-
return "openai-codex";
|
|
62
|
-
if (lower.startsWith("openai"))
|
|
63
|
-
return "openai";
|
|
64
|
-
if (lower.startsWith("anthropic") || lower.startsWith("claude"))
|
|
65
|
-
return "anthropic";
|
|
66
|
-
if (lower.startsWith("openrouter"))
|
|
67
|
-
return "openrouter";
|
|
68
|
-
if (lower.startsWith("zai") ||
|
|
69
|
-
lower.startsWith("zhipu") ||
|
|
70
|
-
lower.startsWith("glm"))
|
|
71
|
-
return "glm";
|
|
72
|
-
// Fallback for bare model names (no provider prefix)
|
|
73
|
-
if (lower.startsWith("gpt"))
|
|
74
|
-
return "openai"; // e.g., "gpt-5.4" → openai
|
|
75
|
-
return null;
|
|
76
|
-
}
|
|
77
|
-
/** Display name for the provider (used in the footer label). */
|
|
78
|
-
export function providerDisplayName(provider) {
|
|
79
|
-
switch (provider) {
|
|
80
|
-
case "minimax":
|
|
81
|
-
return "MiniMax";
|
|
82
|
-
case "openai":
|
|
83
|
-
return "OpenAI";
|
|
84
|
-
case "openai-codex":
|
|
85
|
-
return "OpenAI Codex";
|
|
86
|
-
case "glm":
|
|
87
|
-
return "GLM";
|
|
88
|
-
case "anthropic":
|
|
89
|
-
return "Anthropic";
|
|
90
|
-
case "openrouter":
|
|
91
|
-
return "OpenRouter";
|
|
92
|
-
default:
|
|
93
|
-
return provider;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
/** True if this provider has a continuous scrape path today (only MiniMax). */
|
|
97
|
-
/**
|
|
98
|
-
* Providers with continuous quota scraping via browser/API.
|
|
99
|
-
* - minimax: has both 5h and weekly windows
|
|
100
|
-
* - openai: has weekly-only window (no 5h limit since 2026)
|
|
101
|
-
*/
|
|
102
|
-
export function providerHasContinuousScrape(provider) {
|
|
103
|
-
return provider === "minimax" || provider === "openai";
|
|
104
|
-
}
|
|
105
|
-
/** True if this provider has a TUI-driven signal path today. */
|
|
106
|
-
export function providerHasTUISignal(provider) {
|
|
107
|
-
return (provider === "openai" ||
|
|
108
|
-
provider === "openai-codex" ||
|
|
109
|
-
provider === "glm" ||
|
|
110
|
-
provider === "anthropic" ||
|
|
111
|
-
provider === "openrouter");
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=provider-id.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-id.js","sourceRoot":"","sources":["../src/provider-id.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TUI Usage Integration Example
|
|
3
|
-
*
|
|
4
|
-
* Shows how to integrate TUIUsageMonitor with the pi extension.
|
|
5
|
-
*
|
|
6
|
-
* Usage:
|
|
7
|
-
* ```typescript
|
|
8
|
-
* import { QuotaManager, TUIUsageMonitor } from "@pi-harness/quota-manager";
|
|
9
|
-
*
|
|
10
|
-
* // In your extension setup:
|
|
11
|
-
* const quotaManager = new QuotaManager();
|
|
12
|
-
*
|
|
13
|
-
* const monitor = new TUIUsageMonitor({
|
|
14
|
-
* quotaManager,
|
|
15
|
-
* debug: true,
|
|
16
|
-
* });
|
|
17
|
-
*
|
|
18
|
-
* // Hook into pi events
|
|
19
|
-
* pi.on("error", (event) => {
|
|
20
|
-
* monitor.processMessage(event.message);
|
|
21
|
-
* });
|
|
22
|
-
*
|
|
23
|
-
* pi.on("message", (event) => {
|
|
24
|
-
* monitor.processMessage(event.message);
|
|
25
|
-
* });
|
|
26
|
-
*
|
|
27
|
-
* // Now QuotaManager automatically receives signals from all providers
|
|
28
|
-
* // Check provider availability:
|
|
29
|
-
* if (!quotaManager.isAvailable("openai")) {
|
|
30
|
-
* console.log("OpenAI exhausted, waiting for:", quotaManager.getWaitTime("openai"));
|
|
31
|
-
* }
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
export {};
|
|
35
|
-
//# sourceMappingURL=tui-usage-integration.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tui-usage-integration.d.ts","sourceRoot":"","sources":["../../src/examples/tui-usage-integration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TUI Usage Integration Example
|
|
3
|
-
*
|
|
4
|
-
* Shows how to integrate TUIUsageMonitor with the pi extension.
|
|
5
|
-
*
|
|
6
|
-
* Usage:
|
|
7
|
-
* ```typescript
|
|
8
|
-
* import { QuotaManager, TUIUsageMonitor } from "@pi-harness/quota-manager";
|
|
9
|
-
*
|
|
10
|
-
* // In your extension setup:
|
|
11
|
-
* const quotaManager = new QuotaManager();
|
|
12
|
-
*
|
|
13
|
-
* const monitor = new TUIUsageMonitor({
|
|
14
|
-
* quotaManager,
|
|
15
|
-
* debug: true,
|
|
16
|
-
* });
|
|
17
|
-
*
|
|
18
|
-
* // Hook into pi events
|
|
19
|
-
* pi.on("error", (event) => {
|
|
20
|
-
* monitor.processMessage(event.message);
|
|
21
|
-
* });
|
|
22
|
-
*
|
|
23
|
-
* pi.on("message", (event) => {
|
|
24
|
-
* monitor.processMessage(event.message);
|
|
25
|
-
* });
|
|
26
|
-
*
|
|
27
|
-
* // Now QuotaManager automatically receives signals from all providers
|
|
28
|
-
* // Check provider availability:
|
|
29
|
-
* if (!quotaManager.isAvailable("openai")) {
|
|
30
|
-
* console.log("OpenAI exhausted, waiting for:", quotaManager.getWaitTime("openai"));
|
|
31
|
-
* }
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
export {};
|
|
35
|
-
// Example standalone usage
|
|
36
|
-
/*
|
|
37
|
-
import { QuotaManager, TUIUsageMonitor } from "./index.js";
|
|
38
|
-
|
|
39
|
-
// Create quota manager
|
|
40
|
-
const quotaManager = new QuotaManager();
|
|
41
|
-
|
|
42
|
-
// Create TUI monitor
|
|
43
|
-
const monitor = new TUIUsageMonitor({
|
|
44
|
-
quotaManager,
|
|
45
|
-
debug: true,
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
// Process some example messages
|
|
49
|
-
const messages = [
|
|
50
|
-
"OpenAI: Quota exhausted. Reset at 14:30",
|
|
51
|
-
"GLM context window full. Retry in 30 minutes",
|
|
52
|
-
"Anthropic Claude rate limit hit. 429 error",
|
|
53
|
-
"OpenRouter tokens running out",
|
|
54
|
-
];
|
|
55
|
-
|
|
56
|
-
for (const msg of messages) {
|
|
57
|
-
const signal = monitor.processMessage(msg);
|
|
58
|
-
if (signal) {
|
|
59
|
-
console.log(`Detected: ${signal.provider} - ${signal.limitType}`);
|
|
60
|
-
console.log(` Exhausted: ${signal.exhausted}`);
|
|
61
|
-
console.log(` Resets at: ${signal.resetsAt}`);
|
|
62
|
-
console.log("");
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// Check quota state
|
|
67
|
-
console.log("=== Quota State ===");
|
|
68
|
-
for (const provider of ["openai", "glm", "anthropic", "openrouter"]) {
|
|
69
|
-
const state = quotaManager.getProviderState(provider);
|
|
70
|
-
console.log(`${provider}: ${state.exhausted ? "EXHAUSTED" : state.limited ? "LIMITED" : "AVAILABLE"}`);
|
|
71
|
-
}
|
|
72
|
-
*/
|
|
73
|
-
//# sourceMappingURL=tui-usage-integration.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tui-usage-integration.js","sourceRoot":"","sources":["../../src/examples/tui-usage-integration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;;AAEH,2BAA2B;AAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC"}
|