pi-harness-runtime 0.9.4 → 0.9.5
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/CHANGELOG.md +19 -0
- package/index.ts +35 -2
- package/package.json +1 -1
- package/packages/a2a-adapter/README.md +35 -0
- package/packages/a2a-adapter/dist/agent.d.ts +27 -0
- package/packages/a2a-adapter/dist/agent.d.ts.map +1 -0
- package/packages/a2a-adapter/dist/agent.js +120 -0
- package/packages/a2a-adapter/dist/agent.js.map +1 -0
- package/packages/a2a-adapter/dist/client.d.ts +58 -0
- package/packages/a2a-adapter/dist/client.d.ts.map +1 -0
- package/packages/a2a-adapter/dist/client.js +77 -0
- package/packages/a2a-adapter/dist/client.js.map +1 -0
- package/packages/a2a-adapter/dist/index.d.ts +9 -0
- package/packages/a2a-adapter/dist/index.d.ts.map +1 -0
- package/packages/a2a-adapter/dist/index.js +8 -0
- package/packages/a2a-adapter/dist/index.js.map +1 -0
- package/packages/a2a-adapter/dist/protocol.d.ts +34 -0
- package/packages/a2a-adapter/dist/protocol.d.ts.map +1 -0
- package/packages/a2a-adapter/dist/protocol.js +40 -0
- package/packages/a2a-adapter/dist/protocol.js.map +1 -0
- package/packages/a2a-adapter/dist/transport.d.ts +55 -0
- package/packages/a2a-adapter/dist/transport.d.ts.map +1 -0
- package/packages/a2a-adapter/dist/transport.js +109 -0
- package/packages/a2a-adapter/dist/transport.js.map +1 -0
- package/packages/a2a-adapter/dist/types.d.ts +117 -0
- package/packages/a2a-adapter/dist/types.d.ts.map +1 -0
- package/packages/a2a-adapter/dist/types.js +5 -0
- package/packages/a2a-adapter/dist/types.js.map +1 -0
- package/packages/a2a-adapter/package.json +21 -0
- package/packages/a2a-adapter/src/agent.ts +139 -0
- package/packages/a2a-adapter/src/client.ts +107 -0
- package/packages/a2a-adapter/src/index.ts +30 -0
- package/packages/a2a-adapter/src/protocol.ts +46 -0
- package/packages/a2a-adapter/src/transport.ts +142 -0
- package/packages/a2a-adapter/src/types.ts +117 -0
- package/packages/a2a-adapter/test/a2a.test.ts +151 -0
- package/packages/a2a-adapter/tsconfig.json +5 -0
- package/packages/auth/package.json +22 -0
- package/packages/auth/test/auth.test.ts +238 -0
- package/packages/autonomous-refactor/dist/detector.d.ts +11 -0
- package/packages/autonomous-refactor/dist/detector.d.ts.map +1 -0
- package/packages/autonomous-refactor/dist/detector.js +175 -0
- package/packages/autonomous-refactor/dist/detector.js.map +1 -0
- package/packages/autonomous-refactor/dist/index.d.ts +7 -0
- package/packages/autonomous-refactor/dist/index.d.ts.map +1 -0
- package/packages/autonomous-refactor/dist/index.js +6 -0
- package/packages/autonomous-refactor/dist/index.js.map +1 -0
- package/packages/autonomous-refactor/dist/planner.d.ts +9 -0
- package/packages/autonomous-refactor/dist/planner.d.ts.map +1 -0
- package/packages/autonomous-refactor/dist/planner.js +71 -0
- package/packages/autonomous-refactor/dist/planner.js.map +1 -0
- package/packages/autonomous-refactor/dist/types.d.ts +39 -0
- package/packages/autonomous-refactor/dist/types.d.ts.map +1 -0
- package/packages/autonomous-refactor/dist/types.js +11 -0
- package/packages/autonomous-refactor/dist/types.js.map +1 -0
- package/packages/autonomous-refactor/package.json +21 -0
- package/packages/autonomous-refactor/src/detector.ts +219 -0
- package/packages/autonomous-refactor/src/index.ts +16 -0
- package/packages/autonomous-refactor/src/planner.ts +99 -0
- package/packages/autonomous-refactor/src/types.ts +57 -0
- package/packages/autonomous-refactor/test/refactor.test.ts +202 -0
- package/packages/autonomous-refactor/tsconfig.json +5 -0
- package/packages/cache-strategy/dist/cache.d.ts +31 -0
- package/packages/cache-strategy/dist/cache.d.ts.map +1 -0
- package/packages/cache-strategy/dist/cache.js +195 -0
- package/packages/cache-strategy/dist/cache.js.map +1 -0
- package/packages/cache-strategy/dist/index.d.ts +6 -0
- package/packages/cache-strategy/dist/index.d.ts.map +1 -0
- package/packages/cache-strategy/dist/index.js +5 -0
- package/packages/cache-strategy/dist/index.js.map +1 -0
- package/packages/cache-strategy/dist/types.d.ts +35 -0
- package/packages/cache-strategy/dist/types.d.ts.map +1 -0
- package/packages/cache-strategy/dist/types.js +5 -0
- package/packages/cache-strategy/dist/types.js.map +1 -0
- package/packages/cache-strategy/package.json +21 -0
- package/packages/cache-strategy/src/cache.ts +213 -0
- package/packages/cache-strategy/src/index.ts +6 -0
- package/packages/cache-strategy/src/types.ts +40 -0
- package/packages/cache-strategy/test/cache.test.ts +137 -0
- package/packages/cache-strategy/tsconfig.json +5 -0
- package/packages/capability-registry/package.json +1 -1
- package/packages/checkpoint/package.json +1 -1
- package/packages/cli-plugin-sdk/README.md +48 -0
- package/packages/cli-plugin-sdk/dist/index.d.ts +30 -0
- package/packages/cli-plugin-sdk/dist/index.d.ts.map +1 -0
- package/packages/cli-plugin-sdk/dist/index.js +128 -0
- package/packages/cli-plugin-sdk/dist/index.js.map +1 -0
- package/packages/cli-plugin-sdk/dist/plugin-fs.d.ts +21 -0
- package/packages/cli-plugin-sdk/dist/plugin-fs.d.ts.map +1 -0
- package/packages/cli-plugin-sdk/dist/plugin-fs.js +80 -0
- package/packages/cli-plugin-sdk/dist/plugin-fs.js.map +1 -0
- package/packages/cli-plugin-sdk/dist/registry.d.ts +16 -0
- package/packages/cli-plugin-sdk/dist/registry.d.ts.map +1 -0
- package/packages/cli-plugin-sdk/dist/registry.js +45 -0
- package/packages/cli-plugin-sdk/dist/registry.js.map +1 -0
- package/packages/cli-plugin-sdk/dist/types.d.ts +28 -0
- package/packages/cli-plugin-sdk/dist/types.d.ts.map +1 -0
- package/packages/cli-plugin-sdk/dist/types.js +5 -0
- package/packages/cli-plugin-sdk/dist/types.js.map +1 -0
- package/packages/cli-plugin-sdk/package.json +24 -0
- package/packages/cli-plugin-sdk/src/index.ts +169 -0
- package/packages/cli-plugin-sdk/src/plugin-fs.ts +91 -0
- package/packages/cli-plugin-sdk/src/registry.ts +55 -0
- package/packages/cli-plugin-sdk/src/types.ts +32 -0
- package/packages/cli-plugin-sdk/test/cli.test.ts +45 -0
- package/packages/cli-plugin-sdk/tsconfig.json +11 -0
- package/packages/code-generation/package.json +1 -1
- package/packages/code-review/package.json +1 -1
- package/packages/codex-adapter/dist/executor.d.ts +14 -0
- package/packages/codex-adapter/dist/executor.d.ts.map +1 -0
- package/packages/codex-adapter/dist/executor.js +69 -0
- package/packages/codex-adapter/dist/executor.js.map +1 -0
- package/packages/codex-adapter/dist/index.d.ts +8 -0
- package/packages/codex-adapter/dist/index.d.ts.map +1 -0
- package/packages/codex-adapter/dist/index.js +7 -0
- package/packages/codex-adapter/dist/index.js.map +1 -0
- package/packages/codex-adapter/dist/provider.d.ts +26 -0
- package/packages/codex-adapter/dist/provider.d.ts.map +1 -0
- package/packages/codex-adapter/dist/provider.js +170 -0
- package/packages/codex-adapter/dist/provider.js.map +1 -0
- package/packages/codex-adapter/dist/types.d.ts +52 -0
- package/packages/codex-adapter/dist/types.d.ts.map +1 -0
- package/packages/codex-adapter/dist/types.js +64 -0
- package/packages/codex-adapter/dist/types.js.map +1 -0
- package/packages/codex-adapter/package.json +24 -0
- package/packages/codex-adapter/src/executor.ts +83 -0
- package/packages/codex-adapter/src/index.ts +16 -0
- package/packages/codex-adapter/src/provider.ts +213 -0
- package/packages/codex-adapter/src/types.ts +118 -0
- package/packages/codex-adapter/test/provider.test.ts +142 -0
- package/packages/codex-adapter/tsconfig.json +5 -0
- package/packages/context-compiler/package.json +1 -1
- package/packages/context-manager/dist/compaction.d.ts +11 -0
- package/packages/context-manager/dist/compaction.d.ts.map +1 -0
- package/packages/context-manager/dist/compaction.js +110 -0
- package/packages/context-manager/dist/compaction.js.map +1 -0
- package/packages/context-manager/dist/core.d.ts +24 -0
- package/packages/context-manager/dist/core.d.ts.map +1 -0
- package/packages/context-manager/dist/core.js +62 -0
- package/packages/context-manager/dist/core.js.map +1 -0
- package/packages/context-manager/dist/index.d.ts +7 -0
- package/packages/context-manager/dist/index.d.ts.map +1 -0
- package/packages/context-manager/dist/index.js +6 -0
- package/packages/context-manager/dist/index.js.map +1 -0
- package/packages/context-manager/dist/types.d.ts +39 -0
- package/packages/context-manager/dist/types.d.ts.map +1 -0
- package/packages/context-manager/dist/types.js +5 -0
- package/packages/context-manager/dist/types.js.map +1 -0
- package/packages/context-manager/package.json +21 -0
- package/packages/context-manager/src/compaction.ts +139 -0
- package/packages/context-manager/src/core.ts +85 -0
- package/packages/context-manager/src/index.ts +22 -0
- package/packages/context-manager/src/types.ts +44 -0
- package/packages/context-manager/test/context.test.ts +198 -0
- package/packages/context-manager/tsconfig.json +6 -0
- package/packages/cost-optimizer/package.json +1 -1
- package/packages/django-plugin/README.md +1 -0
- package/packages/django-plugin/dist/analyzer.d.ts +8 -0
- package/packages/django-plugin/dist/analyzer.d.ts.map +1 -0
- package/packages/django-plugin/dist/analyzer.js +249 -0
- package/packages/django-plugin/dist/analyzer.js.map +1 -0
- package/packages/django-plugin/dist/index.d.ts +8 -0
- package/packages/django-plugin/dist/index.d.ts.map +1 -0
- package/packages/django-plugin/dist/index.js +30 -0
- package/packages/django-plugin/dist/index.js.map +1 -0
- package/packages/django-plugin/dist/types.d.ts +32 -0
- package/packages/django-plugin/dist/types.d.ts.map +1 -0
- package/packages/django-plugin/dist/types.js +5 -0
- package/packages/django-plugin/dist/types.js.map +1 -0
- package/packages/django-plugin/package.json +20 -0
- package/packages/django-plugin/src/analyzer.ts +284 -0
- package/packages/django-plugin/src/index.ts +39 -0
- package/packages/django-plugin/src/types.ts +35 -0
- package/packages/django-plugin/test/analyzer.test.ts +195 -0
- package/packages/django-plugin/tsconfig.json +12 -0
- package/packages/doc-generator/dist/detector.d.ts +9 -0
- package/packages/doc-generator/dist/detector.d.ts.map +1 -0
- package/packages/doc-generator/dist/detector.js +98 -0
- package/packages/doc-generator/dist/detector.js.map +1 -0
- package/packages/doc-generator/dist/docs.d.ts +9 -0
- package/packages/doc-generator/dist/docs.d.ts.map +1 -0
- package/packages/doc-generator/dist/docs.js +132 -0
- package/packages/doc-generator/dist/docs.js.map +1 -0
- package/packages/doc-generator/dist/index.d.ts +7 -0
- package/packages/doc-generator/dist/index.d.ts.map +1 -0
- package/packages/doc-generator/dist/index.js +6 -0
- package/packages/doc-generator/dist/index.js.map +1 -0
- package/packages/doc-generator/dist/types.d.ts +37 -0
- package/packages/doc-generator/dist/types.d.ts.map +1 -0
- package/packages/doc-generator/dist/types.js +5 -0
- package/packages/doc-generator/dist/types.js.map +1 -0
- package/packages/doc-generator/package.json +21 -0
- package/packages/doc-generator/src/detector.ts +113 -0
- package/packages/doc-generator/src/docs.ts +158 -0
- package/packages/doc-generator/src/index.ts +7 -0
- package/packages/doc-generator/src/types.ts +58 -0
- package/packages/doc-generator/test/docs.test.ts +168 -0
- package/packages/doc-generator/tsconfig.json +6 -0
- package/packages/evaluation-engine/package.json +1 -1
- package/packages/evaluation-runner/dist/index.d.ts +6 -0
- package/packages/evaluation-runner/dist/index.d.ts.map +1 -0
- package/packages/evaluation-runner/dist/index.js +5 -0
- package/packages/evaluation-runner/dist/index.js.map +1 -0
- package/packages/evaluation-runner/dist/runner.d.ts +17 -0
- package/packages/evaluation-runner/dist/runner.d.ts.map +1 -0
- package/packages/evaluation-runner/dist/runner.js +153 -0
- package/packages/evaluation-runner/dist/runner.js.map +1 -0
- package/packages/evaluation-runner/dist/types.d.ts +48 -0
- package/packages/evaluation-runner/dist/types.d.ts.map +1 -0
- package/packages/evaluation-runner/dist/types.js +5 -0
- package/packages/evaluation-runner/dist/types.js.map +1 -0
- package/packages/evaluation-runner/package.json +21 -0
- package/packages/evaluation-runner/src/index.ts +6 -0
- package/packages/evaluation-runner/src/runner.ts +182 -0
- package/packages/evaluation-runner/src/types.ts +51 -0
- package/packages/evaluation-runner/test/runner.test.ts +168 -0
- package/packages/evaluation-runner/tsconfig.json +5 -0
- package/packages/experience-replay/package.json +1 -1
- package/packages/feedback-collector/dist/collector.d.ts +20 -0
- package/packages/feedback-collector/dist/collector.d.ts.map +1 -0
- package/packages/feedback-collector/dist/collector.js +145 -0
- package/packages/feedback-collector/dist/collector.js.map +1 -0
- package/packages/feedback-collector/dist/index.d.ts +6 -0
- package/packages/feedback-collector/dist/index.d.ts.map +1 -0
- package/packages/feedback-collector/dist/index.js +5 -0
- package/packages/feedback-collector/dist/index.js.map +1 -0
- package/packages/feedback-collector/dist/types.d.ts +46 -0
- package/packages/feedback-collector/dist/types.d.ts.map +1 -0
- package/packages/feedback-collector/dist/types.js +5 -0
- package/packages/feedback-collector/dist/types.js.map +1 -0
- package/packages/feedback-collector/package.json +21 -0
- package/packages/feedback-collector/src/collector.ts +160 -0
- package/packages/feedback-collector/src/index.ts +6 -0
- package/packages/feedback-collector/src/types.ts +51 -0
- package/packages/feedback-collector/test/collector.test.ts +142 -0
- package/packages/feedback-collector/tsconfig.json +5 -0
- package/packages/framework-detector/package.json +1 -1
- package/packages/framework-plugin-sdk/package.json +1 -1
- package/packages/frappe-plugin/dist/analyzer.d.ts +15 -0
- package/packages/frappe-plugin/dist/analyzer.d.ts.map +1 -0
- package/packages/frappe-plugin/dist/analyzer.js +368 -0
- package/packages/frappe-plugin/dist/analyzer.js.map +1 -0
- package/packages/frappe-plugin/dist/index.d.ts +27 -0
- package/packages/frappe-plugin/dist/index.d.ts.map +1 -0
- package/packages/frappe-plugin/dist/index.js +52 -0
- package/packages/frappe-plugin/dist/index.js.map +1 -0
- package/packages/frappe-plugin/dist/types.d.ts +91 -0
- package/packages/frappe-plugin/dist/types.d.ts.map +1 -0
- package/packages/frappe-plugin/dist/types.js +13 -0
- package/packages/frappe-plugin/dist/types.js.map +1 -0
- package/packages/frappe-plugin/package.json +20 -0
- package/packages/frappe-plugin/src/analyzer.ts +454 -0
- package/packages/frappe-plugin/src/index.ts +72 -0
- package/packages/frappe-plugin/src/types.ts +135 -0
- package/packages/frappe-plugin/test/analyzer.test.ts +250 -0
- package/packages/frappe-plugin/tsconfig.json +12 -0
- package/packages/generic-web-plugin/dist/analyzer.d.ts +15 -0
- package/packages/generic-web-plugin/dist/analyzer.d.ts.map +1 -0
- package/packages/generic-web-plugin/dist/analyzer.js +310 -0
- package/packages/generic-web-plugin/dist/analyzer.js.map +1 -0
- package/packages/generic-web-plugin/dist/index.d.ts +20 -0
- package/packages/generic-web-plugin/dist/index.d.ts.map +1 -0
- package/packages/generic-web-plugin/dist/index.js +47 -0
- package/packages/generic-web-plugin/dist/index.js.map +1 -0
- package/packages/generic-web-plugin/dist/types.d.ts +21 -0
- package/packages/generic-web-plugin/dist/types.d.ts.map +1 -0
- package/packages/generic-web-plugin/dist/types.js +5 -0
- package/packages/generic-web-plugin/dist/types.js.map +1 -0
- package/packages/generic-web-plugin/package.json +20 -0
- package/packages/generic-web-plugin/src/analyzer.ts +347 -0
- package/packages/generic-web-plugin/src/index.ts +61 -0
- package/packages/generic-web-plugin/src/types.ts +41 -0
- package/packages/generic-web-plugin/test/analyzer.test.ts +134 -0
- package/packages/generic-web-plugin/tsconfig.json +12 -0
- package/packages/health-monitor/dist/index.d.ts +6 -0
- package/packages/health-monitor/dist/index.d.ts.map +1 -0
- package/packages/health-monitor/dist/index.js +5 -0
- package/packages/health-monitor/dist/index.js.map +1 -0
- package/packages/health-monitor/dist/monitor.d.ts +39 -0
- package/packages/health-monitor/dist/monitor.d.ts.map +1 -0
- package/packages/health-monitor/dist/monitor.js +155 -0
- package/packages/health-monitor/dist/monitor.js.map +1 -0
- package/packages/health-monitor/dist/types.d.ts +33 -0
- package/packages/health-monitor/dist/types.d.ts.map +1 -0
- package/packages/health-monitor/dist/types.js +5 -0
- package/packages/health-monitor/dist/types.js.map +1 -0
- package/packages/health-monitor/package.json +21 -0
- package/packages/health-monitor/src/index.ts +16 -0
- package/packages/health-monitor/src/monitor.ts +216 -0
- package/packages/health-monitor/src/types.ts +45 -0
- package/packages/health-monitor/test/health.test.ts +231 -0
- package/packages/health-monitor/tsconfig.json +5 -0
- package/packages/laravel-plugin/README.md +1 -0
- package/packages/laravel-plugin/dist/analyzer.d.ts +8 -0
- package/packages/laravel-plugin/dist/analyzer.d.ts.map +1 -0
- package/packages/laravel-plugin/dist/analyzer.js +297 -0
- package/packages/laravel-plugin/dist/analyzer.js.map +1 -0
- package/packages/laravel-plugin/dist/index.d.ts +8 -0
- package/packages/laravel-plugin/dist/index.d.ts.map +1 -0
- package/packages/laravel-plugin/dist/index.js +31 -0
- package/packages/laravel-plugin/dist/index.js.map +1 -0
- package/packages/laravel-plugin/dist/types.d.ts +23 -0
- package/packages/laravel-plugin/dist/types.d.ts.map +1 -0
- package/packages/laravel-plugin/dist/types.js +5 -0
- package/packages/laravel-plugin/dist/types.js.map +1 -0
- package/packages/laravel-plugin/package.json +20 -0
- package/packages/laravel-plugin/src/analyzer.ts +323 -0
- package/packages/laravel-plugin/src/index.ts +40 -0
- package/packages/laravel-plugin/src/types.ts +24 -0
- package/packages/laravel-plugin/test/analyzer.test.ts +220 -0
- package/packages/laravel-plugin/tsconfig.json +12 -0
- package/packages/learning-engine/package.json +1 -1
- package/packages/mcp-adapter/README.md +47 -0
- package/packages/mcp-adapter/dist/index.d.ts +8 -0
- package/packages/mcp-adapter/dist/index.d.ts.map +1 -0
- package/packages/mcp-adapter/dist/index.js +7 -0
- package/packages/mcp-adapter/dist/index.js.map +1 -0
- package/packages/mcp-adapter/dist/server.d.ts +9 -0
- package/packages/mcp-adapter/dist/server.d.ts.map +1 -0
- package/packages/mcp-adapter/dist/server.js +228 -0
- package/packages/mcp-adapter/dist/server.js.map +1 -0
- package/packages/mcp-adapter/dist/tools.d.ts +12 -0
- package/packages/mcp-adapter/dist/tools.d.ts.map +1 -0
- package/packages/mcp-adapter/dist/tools.js +178 -0
- package/packages/mcp-adapter/dist/tools.js.map +1 -0
- package/packages/mcp-adapter/dist/types.d.ts +80 -0
- package/packages/mcp-adapter/dist/types.d.ts.map +1 -0
- package/packages/mcp-adapter/dist/types.js +5 -0
- package/packages/mcp-adapter/dist/types.js.map +1 -0
- package/packages/mcp-adapter/package.json +21 -0
- package/packages/mcp-adapter/src/index.ts +20 -0
- package/packages/mcp-adapter/src/server.ts +273 -0
- package/packages/mcp-adapter/src/tools.ts +220 -0
- package/packages/mcp-adapter/src/types.ts +79 -0
- package/packages/mcp-adapter/test/server.test.ts +91 -0
- package/packages/mcp-adapter/tsconfig.json +8 -0
- package/packages/memory-engine/package.json +1 -1
- package/packages/model-registry/package.json +1 -1
- package/packages/nextjs-plugin/README.md +1 -0
- package/packages/nextjs-plugin/dist/analyzer.d.ts +12 -0
- package/packages/nextjs-plugin/dist/analyzer.d.ts.map +1 -0
- package/packages/nextjs-plugin/dist/analyzer.js +217 -0
- package/packages/nextjs-plugin/dist/analyzer.js.map +1 -0
- package/packages/nextjs-plugin/dist/index.d.ts +8 -0
- package/packages/nextjs-plugin/dist/index.d.ts.map +1 -0
- package/packages/nextjs-plugin/dist/index.js +32 -0
- package/packages/nextjs-plugin/dist/index.js.map +1 -0
- package/packages/nextjs-plugin/dist/types.d.ts +33 -0
- package/packages/nextjs-plugin/dist/types.d.ts.map +1 -0
- package/packages/nextjs-plugin/dist/types.js +5 -0
- package/packages/nextjs-plugin/dist/types.js.map +1 -0
- package/packages/nextjs-plugin/package.json +30 -0
- package/packages/nextjs-plugin/src/analyzer.ts +247 -0
- package/packages/nextjs-plugin/src/index.ts +41 -0
- package/packages/nextjs-plugin/src/types.ts +36 -0
- package/packages/nextjs-plugin/test/analyzer.test.ts +149 -0
- package/packages/nextjs-plugin/tsconfig.json +12 -0
- package/packages/notification/dist/adapters/email-adapter.d.ts +17 -0
- package/packages/notification/dist/adapters/email-adapter.d.ts.map +1 -0
- package/packages/notification/dist/adapters/email-adapter.js +89 -0
- package/packages/notification/dist/adapters/email-adapter.js.map +1 -0
- package/packages/notification/dist/adapters/ntfy-adapter.d.ts +17 -0
- package/packages/notification/dist/adapters/ntfy-adapter.d.ts.map +1 -0
- package/packages/notification/dist/adapters/ntfy-adapter.js +84 -0
- package/packages/notification/dist/adapters/ntfy-adapter.js.map +1 -0
- package/packages/notification/dist/adapters/telegram-adapter.d.ts +17 -0
- package/packages/notification/dist/adapters/telegram-adapter.d.ts.map +1 -0
- package/packages/notification/dist/adapters/telegram-adapter.js +88 -0
- package/packages/notification/dist/adapters/telegram-adapter.js.map +1 -0
- package/packages/notification/dist/adapters/webhook-adapter.d.ts +15 -0
- package/packages/notification/dist/adapters/webhook-adapter.d.ts.map +1 -0
- package/packages/notification/dist/adapters/webhook-adapter.js +64 -0
- package/packages/notification/dist/adapters/webhook-adapter.js.map +1 -0
- package/packages/notification/dist/base-adapter.d.ts +36 -0
- package/packages/notification/dist/base-adapter.d.ts.map +1 -0
- package/packages/notification/dist/base-adapter.js +39 -0
- package/packages/notification/dist/base-adapter.js.map +1 -0
- package/packages/notification/dist/index.d.ts +9 -0
- package/packages/notification/dist/index.d.ts.map +1 -0
- package/packages/notification/dist/index.js +9 -0
- package/packages/notification/dist/index.js.map +1 -0
- package/packages/notification/dist/notification-center.d.ts +46 -0
- package/packages/notification/dist/notification-center.d.ts.map +1 -0
- package/packages/notification/dist/notification-center.js +228 -0
- package/packages/notification/dist/notification-center.js.map +1 -0
- package/packages/notification/dist/types.d.ts +65 -0
- package/packages/notification/dist/types.d.ts.map +1 -0
- package/packages/notification/dist/types.js +7 -0
- package/packages/notification/dist/types.js.map +1 -0
- package/packages/notification/package.json +22 -0
- package/packages/notification/src/adapters/email-adapter.ts +126 -0
- package/packages/notification/src/adapters/ntfy-adapter.ts +100 -0
- package/packages/notification/src/adapters/telegram-adapter.ts +107 -0
- package/packages/notification/src/adapters/webhook-adapter.ts +75 -0
- package/packages/notification/src/base-adapter.ts +75 -0
- package/packages/notification/src/index.ts +9 -0
- package/packages/notification/src/notification-center.ts +286 -0
- package/packages/notification/src/types.ts +89 -0
- package/packages/notification/test/notification.test.ts +372 -0
- package/packages/notification/tsconfig.json +8 -0
- package/packages/observability/package.json +1 -1
- package/packages/observability/test/observability.test.ts +1331 -26
- package/packages/performance-optimizer/package.json +1 -1
- package/packages/project-analyzer/package.json +1 -1
- package/packages/project-analyzer/test/index.test.ts +1614 -124
- package/packages/prompt-compiler/package.json +1 -1
- package/packages/prompt-versioning/dist/index.d.ts +6 -0
- package/packages/prompt-versioning/dist/index.d.ts.map +1 -0
- package/packages/prompt-versioning/dist/index.js +5 -0
- package/packages/prompt-versioning/dist/index.js.map +1 -0
- package/packages/prompt-versioning/dist/types.d.ts +37 -0
- package/packages/prompt-versioning/dist/types.d.ts.map +1 -0
- package/packages/prompt-versioning/dist/types.js +5 -0
- package/packages/prompt-versioning/dist/types.js.map +1 -0
- package/packages/prompt-versioning/dist/versioning.d.ts +26 -0
- package/packages/prompt-versioning/dist/versioning.d.ts.map +1 -0
- package/packages/prompt-versioning/dist/versioning.js +130 -0
- package/packages/prompt-versioning/dist/versioning.js.map +1 -0
- package/packages/prompt-versioning/package.json +21 -0
- package/packages/prompt-versioning/src/index.ts +6 -0
- package/packages/prompt-versioning/src/types.ts +41 -0
- package/packages/prompt-versioning/src/versioning.ts +149 -0
- package/packages/prompt-versioning/test/versioning.test.ts +112 -0
- package/packages/prompt-versioning/tsconfig.json +5 -0
- package/packages/provider-adapter-sdk/package.json +1 -1
- package/packages/provider-router/package.json +1 -1
- package/packages/provider-selector/dist/index.d.ts +6 -0
- package/packages/provider-selector/dist/index.d.ts.map +1 -0
- package/packages/provider-selector/dist/index.js +5 -0
- package/packages/provider-selector/dist/index.js.map +1 -0
- package/packages/provider-selector/dist/selector.d.ts +17 -0
- package/packages/provider-selector/dist/selector.d.ts.map +1 -0
- package/packages/provider-selector/dist/selector.js +93 -0
- package/packages/provider-selector/dist/selector.js.map +1 -0
- package/packages/provider-selector/dist/types.d.ts +26 -0
- package/packages/provider-selector/dist/types.d.ts.map +1 -0
- package/packages/provider-selector/dist/types.js +5 -0
- package/packages/provider-selector/dist/types.js.map +1 -0
- package/packages/provider-selector/package.json +21 -0
- package/packages/provider-selector/src/index.ts +13 -0
- package/packages/provider-selector/src/selector.ts +120 -0
- package/packages/provider-selector/src/types.ts +33 -0
- package/packages/provider-selector/test/selector.test.ts +192 -0
- package/packages/provider-selector/tsconfig.json +6 -0
- package/packages/providers/dist/adapters.d.ts +133 -0
- package/packages/providers/dist/adapters.d.ts.map +1 -0
- package/packages/providers/dist/adapters.js +236 -0
- package/packages/providers/dist/adapters.js.map +1 -0
- package/packages/providers/dist/deepagents-adapter.d.ts +78 -0
- package/packages/providers/dist/deepagents-adapter.d.ts.map +1 -0
- package/packages/providers/dist/deepagents-adapter.js +323 -0
- package/packages/providers/dist/deepagents-adapter.js.map +1 -0
- package/packages/providers/dist/glm-usage.d.ts +102 -0
- package/packages/providers/dist/glm-usage.d.ts.map +1 -0
- package/packages/providers/dist/glm-usage.js +197 -0
- package/packages/providers/dist/glm-usage.js.map +1 -0
- package/packages/providers/dist/index.d.ts +10 -0
- package/packages/providers/dist/index.d.ts.map +1 -0
- package/packages/providers/dist/index.js +10 -0
- package/packages/providers/dist/index.js.map +1 -0
- package/packages/providers/dist/openai-usage.d.ts +103 -0
- package/packages/providers/dist/openai-usage.d.ts.map +1 -0
- package/packages/providers/dist/openai-usage.js +208 -0
- package/packages/providers/dist/openai-usage.js.map +1 -0
- package/packages/providers/package.json +22 -0
- package/packages/providers/src/adapters.ts +362 -0
- package/packages/providers/src/deepagents-adapter.ts +458 -0
- package/packages/providers/src/glm-usage.ts +248 -0
- package/packages/providers/src/index.ts +10 -0
- package/packages/providers/src/openai-usage.ts +263 -0
- package/packages/providers/test/providers.test.ts +225 -0
- package/packages/providers/tsconfig.json +8 -0
- package/packages/quota-manager/dist/examples/tui-usage-integration.d.ts +35 -0
- package/packages/quota-manager/dist/examples/tui-usage-integration.d.ts.map +1 -0
- package/packages/quota-manager/dist/examples/tui-usage-integration.js +73 -0
- package/packages/quota-manager/dist/examples/tui-usage-integration.js.map +1 -0
- package/packages/quota-manager/dist/index.d.ts +8 -0
- package/packages/quota-manager/dist/index.d.ts.map +1 -0
- package/packages/quota-manager/dist/index.js +8 -0
- package/packages/quota-manager/dist/index.js.map +1 -0
- package/packages/quota-manager/dist/quota-manager.d.ts +70 -0
- package/packages/quota-manager/dist/quota-manager.d.ts.map +1 -0
- package/packages/quota-manager/dist/quota-manager.js +260 -0
- package/packages/quota-manager/dist/quota-manager.js.map +1 -0
- package/packages/quota-manager/dist/tui-usage-monitor.d.ts +96 -0
- package/packages/quota-manager/dist/tui-usage-monitor.d.ts.map +1 -0
- package/packages/quota-manager/dist/tui-usage-monitor.js +269 -0
- package/packages/quota-manager/dist/tui-usage-monitor.js.map +1 -0
- package/packages/quota-manager/package.json +22 -0
- package/packages/quota-manager/src/examples/tui-usage-integration.ts +72 -0
- package/packages/quota-manager/src/index.ts +8 -0
- package/packages/quota-manager/src/quota-manager.ts +339 -0
- package/packages/quota-manager/src/tui-usage-monitor.ts +355 -0
- package/packages/quota-manager/test/quota.test.ts +432 -0
- package/packages/quota-manager/tsconfig.json +8 -0
- package/packages/rate-limiter/dist/index.d.ts +6 -0
- package/packages/rate-limiter/dist/index.d.ts.map +1 -0
- package/packages/rate-limiter/dist/index.js +5 -0
- package/packages/rate-limiter/dist/index.js.map +1 -0
- package/packages/rate-limiter/dist/limiter.d.ts +20 -0
- package/packages/rate-limiter/dist/limiter.d.ts.map +1 -0
- package/packages/rate-limiter/dist/limiter.js +101 -0
- package/packages/rate-limiter/dist/limiter.js.map +1 -0
- package/packages/rate-limiter/dist/types.d.ts +36 -0
- package/packages/rate-limiter/dist/types.d.ts.map +1 -0
- package/packages/rate-limiter/dist/types.js +5 -0
- package/packages/rate-limiter/dist/types.js.map +1 -0
- package/packages/rate-limiter/package.json +21 -0
- package/packages/rate-limiter/src/index.ts +6 -0
- package/packages/rate-limiter/src/limiter.ts +122 -0
- package/packages/rate-limiter/src/types.ts +41 -0
- package/packages/rate-limiter/test/limiter.test.ts +128 -0
- package/packages/rate-limiter/tsconfig.json +5 -0
- package/packages/react-vite-plugin/README.md +1 -0
- package/packages/react-vite-plugin/dist/analyzer.d.ts +8 -0
- package/packages/react-vite-plugin/dist/analyzer.d.ts.map +1 -0
- package/packages/react-vite-plugin/dist/analyzer.js +193 -0
- package/packages/react-vite-plugin/dist/analyzer.js.map +1 -0
- package/packages/react-vite-plugin/dist/index.d.ts +8 -0
- package/packages/react-vite-plugin/dist/index.d.ts.map +1 -0
- package/packages/react-vite-plugin/dist/index.js +30 -0
- package/packages/react-vite-plugin/dist/index.js.map +1 -0
- package/packages/react-vite-plugin/dist/types.d.ts +26 -0
- package/packages/react-vite-plugin/dist/types.d.ts.map +1 -0
- package/packages/react-vite-plugin/dist/types.js +5 -0
- package/packages/react-vite-plugin/dist/types.js.map +1 -0
- package/packages/react-vite-plugin/package.json +20 -0
- package/packages/react-vite-plugin/src/analyzer.ts +226 -0
- package/packages/react-vite-plugin/src/index.ts +39 -0
- package/packages/react-vite-plugin/src/types.ts +28 -0
- package/packages/react-vite-plugin/test/analyzer.test.ts +139 -0
- package/packages/react-vite-plugin/tsconfig.json +12 -0
- package/packages/release-manager/dist/changelog.d.ts +14 -0
- package/packages/release-manager/dist/changelog.d.ts.map +1 -0
- package/packages/release-manager/dist/changelog.js +126 -0
- package/packages/release-manager/dist/changelog.js.map +1 -0
- package/packages/release-manager/dist/index.d.ts +7 -0
- package/packages/release-manager/dist/index.d.ts.map +1 -0
- package/packages/release-manager/dist/index.js +6 -0
- package/packages/release-manager/dist/index.js.map +1 -0
- package/packages/release-manager/dist/types.d.ts +36 -0
- package/packages/release-manager/dist/types.d.ts.map +1 -0
- package/packages/release-manager/dist/types.js +5 -0
- package/packages/release-manager/dist/types.js.map +1 -0
- package/packages/release-manager/dist/version.d.ts +10 -0
- package/packages/release-manager/dist/version.d.ts.map +1 -0
- package/packages/release-manager/dist/version.js +53 -0
- package/packages/release-manager/dist/version.js.map +1 -0
- package/packages/release-manager/package.json +21 -0
- package/packages/release-manager/src/changelog.ts +148 -0
- package/packages/release-manager/src/index.ts +21 -0
- package/packages/release-manager/src/types.ts +50 -0
- package/packages/release-manager/src/version.ts +52 -0
- package/packages/release-manager/test/release.test.ts +215 -0
- package/packages/release-manager/tsconfig.json +5 -0
- package/packages/requirement-compiler/package.json +1 -1
- package/packages/runtime/dist/command-executor.d.ts +129 -0
- package/packages/runtime/dist/command-executor.d.ts.map +1 -0
- package/packages/runtime/dist/command-executor.js +383 -0
- package/packages/runtime/dist/command-executor.js.map +1 -0
- package/packages/runtime/dist/index.d.ts +11 -0
- package/packages/runtime/dist/index.d.ts.map +1 -0
- package/packages/runtime/dist/index.js +11 -0
- package/packages/runtime/dist/index.js.map +1 -0
- package/packages/runtime/dist/local-runtime-agent.d.ts +111 -0
- package/packages/runtime/dist/local-runtime-agent.d.ts.map +1 -0
- package/packages/runtime/dist/local-runtime-agent.js +356 -0
- package/packages/runtime/dist/local-runtime-agent.js.map +1 -0
- package/packages/runtime/dist/policy-engine.d.ts +203 -0
- package/packages/runtime/dist/policy-engine.d.ts.map +1 -0
- package/packages/runtime/dist/policy-engine.js +592 -0
- package/packages/runtime/dist/policy-engine.js.map +1 -0
- package/packages/runtime/dist/runtime-api.d.ts +137 -0
- package/packages/runtime/dist/runtime-api.d.ts.map +1 -0
- package/packages/runtime/dist/runtime-api.js +454 -0
- package/packages/runtime/dist/runtime-api.js.map +1 -0
- package/packages/runtime/dist/workspace-manager.d.ts +162 -0
- package/packages/runtime/dist/workspace-manager.d.ts.map +1 -0
- package/packages/runtime/dist/workspace-manager.js +451 -0
- package/packages/runtime/dist/workspace-manager.js.map +1 -0
- package/packages/runtime/package.json +22 -0
- package/packages/runtime/src/command-executor.ts +523 -0
- package/packages/runtime/src/index.ts +11 -0
- package/packages/runtime/src/local-runtime-agent.ts +480 -0
- package/packages/runtime/src/policy-engine.ts +813 -0
- package/packages/runtime/src/runtime-api.ts +665 -0
- package/packages/runtime/src/workspace-manager.ts +591 -0
- package/packages/runtime/test/runtime.test.ts +297 -0
- package/packages/runtime/tsconfig.json +8 -0
- package/packages/scheduler/package.json +22 -0
- package/packages/scheduler/test/scheduler.test.ts +125 -0
- package/packages/session/package.json +1 -1
- package/packages/shared-context/package.json +22 -0
- package/packages/shared-context/src/index.ts +7 -0
- package/packages/shared-context/test/shared-context.test.ts +114 -0
- package/packages/skill-registry/package.json +1 -1
- package/packages/sprint-planner/dist/decomposer.d.ts +13 -0
- package/packages/sprint-planner/dist/decomposer.d.ts.map +1 -0
- package/packages/sprint-planner/dist/decomposer.js +38 -0
- package/packages/sprint-planner/dist/decomposer.js.map +1 -0
- package/packages/sprint-planner/dist/index.d.ts +7 -0
- package/packages/sprint-planner/dist/index.d.ts.map +1 -0
- package/packages/sprint-planner/dist/index.js +6 -0
- package/packages/sprint-planner/dist/index.js.map +1 -0
- package/packages/sprint-planner/dist/planner.d.ts +9 -0
- package/packages/sprint-planner/dist/planner.d.ts.map +1 -0
- package/packages/sprint-planner/dist/planner.js +114 -0
- package/packages/sprint-planner/dist/planner.js.map +1 -0
- package/packages/sprint-planner/dist/types.d.ts +51 -0
- package/packages/sprint-planner/dist/types.d.ts.map +1 -0
- package/packages/sprint-planner/dist/types.js +5 -0
- package/packages/sprint-planner/dist/types.js.map +1 -0
- package/packages/sprint-planner/package.json +21 -0
- package/packages/sprint-planner/src/decomposer.ts +57 -0
- package/packages/sprint-planner/src/index.ts +16 -0
- package/packages/sprint-planner/src/planner.ts +150 -0
- package/packages/sprint-planner/src/types.ts +59 -0
- package/packages/sprint-planner/test/planner.test.ts +187 -0
- package/packages/sprint-planner/tsconfig.json +5 -0
- package/packages/task-compiler/package.json +1 -1
- package/packages/test-data-generator/package.json +1 -1
- package/packages/test-generator/dist/generator.d.ts +13 -0
- package/packages/test-generator/dist/generator.d.ts.map +1 -0
- package/packages/test-generator/dist/generator.js +116 -0
- package/packages/test-generator/dist/generator.js.map +1 -0
- package/packages/test-generator/dist/index.d.ts +6 -0
- package/packages/test-generator/dist/index.d.ts.map +1 -0
- package/packages/test-generator/dist/index.js +5 -0
- package/packages/test-generator/dist/index.js.map +1 -0
- package/packages/test-generator/dist/types.d.ts +34 -0
- package/packages/test-generator/dist/types.d.ts.map +1 -0
- package/packages/test-generator/dist/types.js +5 -0
- package/packages/test-generator/dist/types.js.map +1 -0
- package/packages/test-generator/package.json +21 -0
- package/packages/test-generator/src/generator.ts +144 -0
- package/packages/test-generator/src/index.ts +11 -0
- package/packages/test-generator/src/types.ts +39 -0
- package/packages/test-generator/test/generator.test.ts +156 -0
- package/packages/test-generator/tsconfig.json +6 -0
- package/packages/token-estimation/package.json +22 -0
- package/packages/token-estimation/test/token-estimation.test.ts +207 -0
- package/packages/token-optimizer/dist/index.d.ts +6 -0
- package/packages/token-optimizer/dist/index.d.ts.map +1 -0
- package/packages/token-optimizer/dist/index.js +5 -0
- package/packages/token-optimizer/dist/index.js.map +1 -0
- package/packages/token-optimizer/dist/optimizer.d.ts +29 -0
- package/packages/token-optimizer/dist/optimizer.d.ts.map +1 -0
- package/packages/token-optimizer/dist/optimizer.js +106 -0
- package/packages/token-optimizer/dist/optimizer.js.map +1 -0
- package/packages/token-optimizer/dist/types.d.ts +36 -0
- package/packages/token-optimizer/dist/types.d.ts.map +1 -0
- package/packages/token-optimizer/dist/types.js +5 -0
- package/packages/token-optimizer/dist/types.js.map +1 -0
- package/packages/token-optimizer/package.json +21 -0
- package/packages/token-optimizer/src/index.ts +15 -0
- package/packages/token-optimizer/src/optimizer.ts +150 -0
- package/packages/token-optimizer/src/types.ts +47 -0
- package/packages/token-optimizer/test/optimizer.test.ts +141 -0
- package/packages/token-optimizer/tsconfig.json +6 -0
- package/packages/tui/package.json +22 -0
- package/packages/tui/tsconfig.json +8 -0
- package/packages/types/package.json +1 -1
- package/packages/worktree/dist/index.d.ts +7 -0
- package/packages/worktree/dist/index.d.ts.map +1 -0
- package/packages/worktree/dist/index.js +7 -0
- package/packages/worktree/dist/index.js.map +1 -0
- package/packages/worktree/dist/worktree.d.ts +88 -0
- package/packages/worktree/dist/worktree.d.ts.map +1 -0
- package/packages/worktree/dist/worktree.js +242 -0
- package/packages/worktree/dist/worktree.js.map +1 -0
- package/packages/worktree/package.json +22 -0
- package/packages/worktree/src/index.ts +7 -0
- package/packages/worktree/src/worktree.ts +293 -0
- package/packages/worktree/test/worktree.test.ts +163 -0
- package/packages/worktree/tsconfig.json +8 -0
- package/proactive-compact.ts +53 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [0.9.5](https://github.com/ManotLuijiu/pi-harness-runtime/compare/v0.9.4...v0.9.5) (2026-07-15)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add 15 packages from subagent batch + test expansions ([c82d898](https://github.com/ManotLuijiu/pi-harness-runtime/commit/c82d898277779886cdd1f7f42087698762becde3))
|
|
11
|
+
* add 4 adapter packages for Day 3 (RFC-0067-0070) ([f1e3a6f](https://github.com/ManotLuijiu/pi-harness-runtime/commit/f1e3a6f1c8b4e1bdaeeb1de0ec4b4353baf48012))
|
|
12
|
+
* add 4 packages for Day 4 (RFC-0074, 0078, 0079, 0092) ([c252195](https://github.com/ManotLuijiu/pi-harness-runtime/commit/c252195728141dfea9767caea0de95ed425857c3))
|
|
13
|
+
* add 5 new packages (RFC-0010-0014) + test expansions ([b552c6f](https://github.com/ManotLuijiu/pi-harness-runtime/commit/b552c6fa0bd03c231e3afe8e4f59c29b3f8a6d99))
|
|
14
|
+
* add 5 packages for RFCs 0019-0023 ([30da266](https://github.com/ManotLuijiu/pi-harness-runtime/commit/30da266f5bf247eb3c9cad85ee8653e6e88ff844))
|
|
15
|
+
* add 6 framework plugins (RFC-0061-0066) ([51b7a79](https://github.com/ManotLuijiu/pi-harness-runtime/commit/51b7a79e576a5d9f5782dd2cd66d1509c0d14485))
|
|
16
|
+
* add package metadata for auth, scheduler, shared-context, token-estimation ([67e2621](https://github.com/ManotLuijiu/pi-harness-runtime/commit/67e26211633f01de4f0d5eca76abc4d40d1ee0ea))
|
|
17
|
+
* flesh out RFC 71-75 specs + fix codex-adapter LSP types ([38b8643](https://github.com/ManotLuijiu/pi-harness-runtime/commit/38b86438ef45f75d1c34caf5b4f401d29c76d44d))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* auto-resume after compaction and output limits ([0cff2bc](https://github.com/ManotLuijiu/pi-harness-runtime/commit/0cff2bcf9035a699496e2726b74a1576863cf82e))
|
|
23
|
+
|
|
5
24
|
### [0.9.4](https://github.com/ManotLuijiu/pi-harness-runtime/compare/v0.5.0-beta.1...v0.9.4) (2026-07-14)
|
|
6
25
|
|
|
7
26
|
|
package/index.ts
CHANGED
|
@@ -25,7 +25,10 @@ import { MiniMaxQuotaScraper } from "./harness/e2e/minimax-quota-scraper.js";
|
|
|
25
25
|
import { parseMiniMaxQuotaText } from "./harness/e2e/minimax-quota-parser.js";
|
|
26
26
|
import { buildFooterStatusValue } from "./footer-status.ts";
|
|
27
27
|
import {
|
|
28
|
+
OUTPUT_LIMIT_RESUME_PROMPT,
|
|
28
29
|
PROACTIVE_COMPACT_COOLDOWN_MS,
|
|
30
|
+
shouldQueueOutputLimitResume,
|
|
31
|
+
shouldQueuePostCompactionResume,
|
|
29
32
|
shouldTriggerProactiveCompact,
|
|
30
33
|
} from "./proactive-compact.ts";
|
|
31
34
|
import { aggregateWindows } from "./windows.ts";
|
|
@@ -86,6 +89,9 @@ export default function (pi: ExtensionAPI) {
|
|
|
86
89
|
pi.on("message_end", async (event, ctx) => {
|
|
87
90
|
if (event.message.role !== "assistant") return;
|
|
88
91
|
const m = event.message as {
|
|
92
|
+
role?: string;
|
|
93
|
+
stopReason?: unknown;
|
|
94
|
+
errorMessage?: unknown;
|
|
89
95
|
usage?: {
|
|
90
96
|
input?: number;
|
|
91
97
|
output?: number;
|
|
@@ -94,6 +100,20 @@ export default function (pi: ExtensionAPI) {
|
|
|
94
100
|
cost?: { total?: number };
|
|
95
101
|
};
|
|
96
102
|
};
|
|
103
|
+
|
|
104
|
+
if (
|
|
105
|
+
shouldQueueOutputLimitResume(
|
|
106
|
+
m,
|
|
107
|
+
outputLimitResumeAttempts,
|
|
108
|
+
ctx.hasPendingMessages(),
|
|
109
|
+
)
|
|
110
|
+
) {
|
|
111
|
+
outputLimitResumeAttempts += 1;
|
|
112
|
+
queueAutoResume("output-limit", OUTPUT_LIMIT_RESUME_PROMPT);
|
|
113
|
+
} else if (m.stopReason === "stop") {
|
|
114
|
+
outputLimitResumeAttempts = 0;
|
|
115
|
+
}
|
|
116
|
+
|
|
97
117
|
if (!m.usage) return;
|
|
98
118
|
tracker.append({
|
|
99
119
|
ts: Date.now(),
|
|
@@ -121,6 +141,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
121
141
|
let quotaAutoFetchInFlight = false;
|
|
122
142
|
let proactiveCompactInFlight = false;
|
|
123
143
|
let lastProactiveCompactAt = 0;
|
|
144
|
+
let outputLimitResumeAttempts = 0;
|
|
124
145
|
|
|
125
146
|
function writeMirrorRecord(record: MirrorRecord): void {
|
|
126
147
|
mirrorStore.write(record);
|
|
@@ -661,16 +682,28 @@ export default function (pi: ExtensionAPI) {
|
|
|
661
682
|
footerStatusCtx = ctx;
|
|
662
683
|
proactiveCompactInFlight = false;
|
|
663
684
|
lastProactiveCompactAt = Date.now();
|
|
685
|
+
outputLimitResumeAttempts = 0;
|
|
664
686
|
refreshFooterStatus(ctx, tracker, mirrorStore);
|
|
665
687
|
|
|
666
|
-
if (event
|
|
688
|
+
if (!shouldQueuePostCompactionResume(event, ctx.hasPendingMessages())) {
|
|
667
689
|
return;
|
|
668
690
|
}
|
|
669
691
|
|
|
670
692
|
// pi.dev expects the literal "resume" command to continue after compaction.
|
|
671
|
-
|
|
693
|
+
queueAutoResume("post-compact", "resume");
|
|
672
694
|
});
|
|
673
695
|
|
|
696
|
+
function queueAutoResume(reason: string, content: string): void {
|
|
697
|
+
try {
|
|
698
|
+
pi.sendUserMessage(content, { deliverAs: "followUp" });
|
|
699
|
+
} catch (error) {
|
|
700
|
+
console.error(
|
|
701
|
+
`[pi-harness] Failed to queue ${reason} auto-resume:`,
|
|
702
|
+
error instanceof Error ? error.message : String(error),
|
|
703
|
+
);
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
|
|
674
707
|
function maybeTriggerProactiveCompact(ctx: ExtensionContext): void {
|
|
675
708
|
if (proactiveCompactInFlight) {
|
|
676
709
|
return;
|
package/package.json
CHANGED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# @pi/a2a-adapter
|
|
2
|
+
|
|
3
|
+
Google Agent-to-Agent (A2A) protocol adapter for pi-harness.
|
|
4
|
+
|
|
5
|
+
## Protocol
|
|
6
|
+
|
|
7
|
+
Implements [Google A2A Protocol v1.0](https://google.github.io/A2A/).
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
### Expose as A2A Agent
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { createAgentCard, routeTask, getTask } from "@pi/a2a-adapter";
|
|
15
|
+
|
|
16
|
+
const card = createAgentCard({
|
|
17
|
+
name: "pi-harness",
|
|
18
|
+
description: "AI coding harness",
|
|
19
|
+
url: "http://localhost:3000",
|
|
20
|
+
version: "0.9.4",
|
|
21
|
+
});
|
|
22
|
+
// Serve card at /.well-known/agent.json
|
|
23
|
+
|
|
24
|
+
const task = await routeTask({ role: "user", content: "Analyze code" });
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Delegate to Remote Agent
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import { A2AClient } from "@pi/a2a-adapter";
|
|
31
|
+
|
|
32
|
+
const client = new A2AClient("http://remote-agent:3000");
|
|
33
|
+
const agentCard = await client.discoverAgent();
|
|
34
|
+
const handle = await client.sendTask("Analyze my codebase");
|
|
35
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A Adapter — A2A Agent (RFC-0069)
|
|
3
|
+
*
|
|
4
|
+
* Expose this harness agent as an A2A-compatible agent.
|
|
5
|
+
*/
|
|
6
|
+
import type { AgentCard, A2AAgentConfig, Task, TaskMessage } from "./types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Create an AgentCard for this harness agent
|
|
9
|
+
*/
|
|
10
|
+
export declare function createAgentCard(config: A2AAgentConfig): AgentCard;
|
|
11
|
+
/**
|
|
12
|
+
* Route incoming A2A task to harness skill-registry
|
|
13
|
+
*/
|
|
14
|
+
export declare function routeTask(message: TaskMessage): Promise<Task>;
|
|
15
|
+
/**
|
|
16
|
+
* Get task by ID
|
|
17
|
+
*/
|
|
18
|
+
export declare function getTask(taskId: string): Task | null;
|
|
19
|
+
/**
|
|
20
|
+
* Cancel a task
|
|
21
|
+
*/
|
|
22
|
+
export declare function cancelTask(taskId: string): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Generate task status update SSE
|
|
25
|
+
*/
|
|
26
|
+
export declare function taskStatusUpdateSSE(taskId: string): string;
|
|
27
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACX,SAAS,EACT,cAAc,EACd,IAAI,EACJ,WAAW,EAGX,MAAM,YAAY,CAAC;AAUpB;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,CAiCjE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BnE;AASD;;GAEG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEnD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAMlD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAgB1D"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A Adapter — A2A Agent (RFC-0069)
|
|
3
|
+
*
|
|
4
|
+
* Expose this harness agent as an A2A-compatible agent.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Task store — in-memory for now
|
|
8
|
+
*/
|
|
9
|
+
const taskStore = new Map();
|
|
10
|
+
let taskCounter = 0;
|
|
11
|
+
/**
|
|
12
|
+
* Create an AgentCard for this harness agent
|
|
13
|
+
*/
|
|
14
|
+
export function createAgentCard(config) {
|
|
15
|
+
return {
|
|
16
|
+
name: config.name,
|
|
17
|
+
description: config.description,
|
|
18
|
+
url: config.url,
|
|
19
|
+
version: config.version,
|
|
20
|
+
capabilities: {
|
|
21
|
+
streaming: true,
|
|
22
|
+
pushNotifications: false,
|
|
23
|
+
stateTransitionHistory: false,
|
|
24
|
+
...config.capabilities,
|
|
25
|
+
},
|
|
26
|
+
skills: config.skills ?? [
|
|
27
|
+
{
|
|
28
|
+
id: "code-analysis",
|
|
29
|
+
name: "Code Analysis",
|
|
30
|
+
description: "Analyze code structure, dependencies, and quality",
|
|
31
|
+
tags: ["code", "analysis", "static-analysis"],
|
|
32
|
+
inputModes: ["text"],
|
|
33
|
+
outputModes: ["text"],
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
id: "code-generation",
|
|
37
|
+
name: "Code Generation",
|
|
38
|
+
description: "Generate code from specifications",
|
|
39
|
+
tags: ["code", "generation", "scaffolding"],
|
|
40
|
+
inputModes: ["text"],
|
|
41
|
+
outputModes: ["text"],
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
defaultInputModes: ["text"],
|
|
45
|
+
defaultOutputModes: ["text"],
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Route incoming A2A task to harness skill-registry
|
|
50
|
+
*/
|
|
51
|
+
export async function routeTask(message) {
|
|
52
|
+
const taskId = `task-${++taskCounter}-${Date.now()}`;
|
|
53
|
+
const task = {
|
|
54
|
+
id: taskId,
|
|
55
|
+
status: "working",
|
|
56
|
+
kind: "message",
|
|
57
|
+
artifacts: [],
|
|
58
|
+
};
|
|
59
|
+
taskStore.set(taskId, task);
|
|
60
|
+
try {
|
|
61
|
+
const response = await processMessage(message);
|
|
62
|
+
task.artifacts = [
|
|
63
|
+
{
|
|
64
|
+
name: "response",
|
|
65
|
+
description: "Agent response",
|
|
66
|
+
parts: [{ type: "text", text: response }],
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
task.status = "completed";
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
task.status = "failed";
|
|
73
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
74
|
+
task.artifacts = [{ parts: [{ type: "text", text: `Error: ${msg}` }] }];
|
|
75
|
+
}
|
|
76
|
+
taskStore.set(taskId, task);
|
|
77
|
+
return task;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Process message — stub for harness integration
|
|
81
|
+
*/
|
|
82
|
+
async function processMessage(message) {
|
|
83
|
+
return `[A2A Stub] Received: ${message.content}. This would be processed by the harness skill-registry.`;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get task by ID
|
|
87
|
+
*/
|
|
88
|
+
export function getTask(taskId) {
|
|
89
|
+
return taskStore.get(taskId) ?? null;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Cancel a task
|
|
93
|
+
*/
|
|
94
|
+
export function cancelTask(taskId) {
|
|
95
|
+
const task = taskStore.get(taskId);
|
|
96
|
+
if (!task)
|
|
97
|
+
return false;
|
|
98
|
+
task.status = "canceled";
|
|
99
|
+
taskStore.set(taskId, task);
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Generate task status update SSE
|
|
104
|
+
*/
|
|
105
|
+
export function taskStatusUpdateSSE(taskId) {
|
|
106
|
+
const task = taskStore.get(taskId);
|
|
107
|
+
if (!task)
|
|
108
|
+
return "";
|
|
109
|
+
// Inline SSE formatting to avoid dynamic require at module level
|
|
110
|
+
return (`event: task_status_update\ndata: ` +
|
|
111
|
+
JSON.stringify({
|
|
112
|
+
taskId: task.id,
|
|
113
|
+
status: task.status,
|
|
114
|
+
final: task.status === "completed" ||
|
|
115
|
+
task.status === "failed" ||
|
|
116
|
+
task.status === "canceled",
|
|
117
|
+
}) +
|
|
118
|
+
"\n\n");
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH;;GAEG;AACH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAgB,CAAC;AAE1C,IAAI,WAAW,GAAG,CAAC,CAAC;AAEpB;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAsB;IACrD,OAAO;QACN,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,YAAY,EAAE;YACb,SAAS,EAAE,IAAI;YACf,iBAAiB,EAAE,KAAK;YACxB,sBAAsB,EAAE,KAAK;YAC7B,GAAG,MAAM,CAAC,YAAY;SACtB;QACD,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI;YACxB;gBACC,EAAE,EAAE,eAAe;gBACnB,IAAI,EAAE,eAAe;gBACrB,WAAW,EAAE,mDAAmD;gBAChE,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,iBAAiB,CAAC;gBAC7C,UAAU,EAAE,CAAC,MAAM,CAAC;gBACpB,WAAW,EAAE,CAAC,MAAM,CAAC;aACrB;YACD;gBACC,EAAE,EAAE,iBAAiB;gBACrB,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EAAE,mCAAmC;gBAChD,IAAI,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,CAAC;gBAC3C,UAAU,EAAE,CAAC,MAAM,CAAC;gBACpB,WAAW,EAAE,CAAC,MAAM,CAAC;aACrB;SACD;QACD,iBAAiB,EAAE,CAAC,MAAM,CAAC;QAC3B,kBAAkB,EAAE,CAAC,MAAM,CAAC;KAC5B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAoB;IACnD,MAAM,MAAM,GAAG,QAAQ,EAAE,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IACrD,MAAM,IAAI,GAAS;QAClB,EAAE,EAAE,MAAM;QACV,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,EAAE;KACb,CAAC;IACF,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE5B,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG;YAChB;gBACC,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,gBAAgB;gBAC7B,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;aACzC;SACD,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,OAAoB;IACjD,OAAO,wBAAwB,OAAO,CAAC,OAAO,0DAA0D,CAAC;AAC1G,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,MAAc;IACrC,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc;IACxC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;IACzB,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IACjD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,iEAAiE;IACjE,OAAO,CACN,mCAAmC;QACnC,IAAI,CAAC,SAAS,CAAC;YACd,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EACJ,IAAI,CAAC,MAAM,KAAK,WAAW;gBAC3B,IAAI,CAAC,MAAM,KAAK,QAAQ;gBACxB,IAAI,CAAC,MAAM,KAAK,UAAU;SAC3B,CAAC;QACF,MAAM,CACN,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A Adapter — A2A Client (RFC-0069)
|
|
3
|
+
*
|
|
4
|
+
* Discover and delegate to remote A2A agents.
|
|
5
|
+
*/
|
|
6
|
+
import type { AgentCard, A2AClientConfig, TaskHandle, Task } from "./types.js";
|
|
7
|
+
export { A2ATransport } from "./transport.js";
|
|
8
|
+
export interface AgentSearchCriteria {
|
|
9
|
+
skill?: string;
|
|
10
|
+
capability?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A2A Client — discover and delegate to remote agents
|
|
14
|
+
*/
|
|
15
|
+
export declare class A2AClient {
|
|
16
|
+
private transport;
|
|
17
|
+
constructor(baseUrl: string, config?: A2AClientConfig);
|
|
18
|
+
/**
|
|
19
|
+
* Discover agent via URL
|
|
20
|
+
*/
|
|
21
|
+
discoverAgent(url?: string): Promise<AgentCard>;
|
|
22
|
+
/**
|
|
23
|
+
* List agents (if target supports agent listing)
|
|
24
|
+
*/
|
|
25
|
+
listAgents(_filter?: Record<string, string>): Promise<AgentCard[]>;
|
|
26
|
+
/**
|
|
27
|
+
* Find agents by skill/capability
|
|
28
|
+
* Note: This requires a registry or directory service
|
|
29
|
+
*/
|
|
30
|
+
findAgents(_criteria: AgentSearchCriteria): Promise<AgentCard[]>;
|
|
31
|
+
/**
|
|
32
|
+
* Send task to agent
|
|
33
|
+
*/
|
|
34
|
+
sendTask(message: string, options?: {
|
|
35
|
+
taskId?: string;
|
|
36
|
+
sessionId?: string;
|
|
37
|
+
}): Promise<TaskHandle>;
|
|
38
|
+
/**
|
|
39
|
+
* Send task with streaming updates
|
|
40
|
+
*/
|
|
41
|
+
sendTaskSubscribe(message: string, options?: {
|
|
42
|
+
taskId?: string;
|
|
43
|
+
sessionId?: string;
|
|
44
|
+
}): Promise<TaskHandle>;
|
|
45
|
+
/**
|
|
46
|
+
* Get task result
|
|
47
|
+
*/
|
|
48
|
+
getTaskResult(taskId: string): Promise<Task>;
|
|
49
|
+
/**
|
|
50
|
+
* Cancel task
|
|
51
|
+
*/
|
|
52
|
+
cancelTask(taskId: string): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Subscribe to task updates via SSE
|
|
55
|
+
*/
|
|
56
|
+
subscribeToTask(taskId: string): AsyncGenerator<unknown>;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACX,SAAS,EACT,eAAe,EACf,UAAU,EAEV,IAAI,EAEJ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,WAAW,mBAAmB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,SAAS;IACrB,OAAO,CAAC,SAAS,CAAe;IAEhC,YAAY,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,EAEpD;IAED;;OAEG;IACG,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAIpD;IAED;;OAEG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAEvE;IAED;;;OAGG;IACG,UAAU,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAErE;IAED;;OAEG;IACG,QAAQ,CACb,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GACnD,OAAO,CAAC,UAAU,CAAC,CAMrB;IAED;;OAEG;IACG,iBAAiB,CACtB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GACnD,OAAO,CAAC,UAAU,CAAC,CAMrB;IAED;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjD;IAED;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9C;IAED;;OAEG;IACI,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAE9D;CACD"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A Adapter — A2A Client (RFC-0069)
|
|
3
|
+
*
|
|
4
|
+
* Discover and delegate to remote A2A agents.
|
|
5
|
+
*/
|
|
6
|
+
import { A2ATransport } from "./transport.js";
|
|
7
|
+
import { wellKnownAgentUrl } from "./protocol.js";
|
|
8
|
+
export { A2ATransport } from "./transport.js";
|
|
9
|
+
/**
|
|
10
|
+
* A2A Client — discover and delegate to remote agents
|
|
11
|
+
*/
|
|
12
|
+
export class A2AClient {
|
|
13
|
+
transport;
|
|
14
|
+
constructor(baseUrl, config) {
|
|
15
|
+
this.transport = new A2ATransport(baseUrl, config);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Discover agent via URL
|
|
19
|
+
*/
|
|
20
|
+
async discoverAgent(url) {
|
|
21
|
+
const agentUrl = url ?? wellKnownAgentUrl(this.transport["baseUrl"]);
|
|
22
|
+
const transport = new A2ATransport(agentUrl);
|
|
23
|
+
return transport.getAgentCard();
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* List agents (if target supports agent listing)
|
|
27
|
+
*/
|
|
28
|
+
async listAgents(_filter) {
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Find agents by skill/capability
|
|
33
|
+
* Note: This requires a registry or directory service
|
|
34
|
+
*/
|
|
35
|
+
async findAgents(_criteria) {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Send task to agent
|
|
40
|
+
*/
|
|
41
|
+
async sendTask(message, options = {}) {
|
|
42
|
+
const taskMessage = {
|
|
43
|
+
role: "user",
|
|
44
|
+
content: message,
|
|
45
|
+
};
|
|
46
|
+
return this.transport.sendTask({ ...options, message: taskMessage });
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Send task with streaming updates
|
|
50
|
+
*/
|
|
51
|
+
async sendTaskSubscribe(message, options = {}) {
|
|
52
|
+
const taskMessage = { role: "user", content: message };
|
|
53
|
+
return this.transport.sendTaskSubscribe({
|
|
54
|
+
...options,
|
|
55
|
+
message: taskMessage,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get task result
|
|
60
|
+
*/
|
|
61
|
+
async getTaskResult(taskId) {
|
|
62
|
+
return this.transport.getTask(taskId);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Cancel task
|
|
66
|
+
*/
|
|
67
|
+
async cancelTask(taskId) {
|
|
68
|
+
await this.transport.cancelTask(taskId);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Subscribe to task updates via SSE
|
|
72
|
+
*/
|
|
73
|
+
async *subscribeToTask(taskId) {
|
|
74
|
+
yield* this.transport.streamTaskUpdates(taskId);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAUlD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO9C;;GAEG;AACH,MAAM,OAAO,SAAS;IACb,SAAS,CAAe;IAEhC,YAAY,OAAe,EAAE,MAAwB;QACpD,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,GAAY;QAC/B,MAAM,QAAQ,GAAG,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC7C,OAAO,SAAS,CAAC,YAAY,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,OAAgC;QAChD,OAAO,EAAE,CAAC;IACX,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,SAA8B;QAC9C,OAAO,EAAE,CAAC;IACX,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CACb,OAAe,EACf,OAAO,GAA4C,EAAE;QAErD,MAAM,WAAW,GAAgB;YAChC,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,OAAO;SAChB,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACtB,OAAe,EACf,OAAO,GAA4C,EAAE;QAErD,MAAM,WAAW,GAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;YACvC,GAAG,OAAO;YACV,OAAO,EAAE,WAAW;SACpB,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,MAAc;QACjC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAkB,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,MAAc;QAC9B,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAC,eAAe,CAAC,MAAc;QACpC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;CACD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A Adapter — Main Entry (RFC-0069)
|
|
3
|
+
*/
|
|
4
|
+
export { A2AClient, type AgentSearchCriteria } from "./client.js";
|
|
5
|
+
export { A2ATransport } from "./transport.js";
|
|
6
|
+
export { createAgentCard, routeTask, getTask, cancelTask, taskStatusUpdateSSE, } from "./agent.js";
|
|
7
|
+
export type { AgentCard, AgentCapabilities, Skill, Authentication, Task, TaskStatus, TaskStatusUpdateEvent, TaskMessage, Artifact, A2ARequest, A2AResponse, A2AClientConfig, TaskHandle, A2AAgentConfig, } from "./types.js";
|
|
8
|
+
export { A2A_PROTOCOL_VERSION, WELL_KNOWN_AGENT_PATH } from "./protocol.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACN,eAAe,EACf,SAAS,EACT,OAAO,EACP,UAAU,EACV,mBAAmB,GACnB,MAAM,YAAY,CAAC;AACpB,YAAY,EACX,SAAS,EACT,iBAAiB,EACjB,KAAK,EACL,cAAc,EACd,IAAI,EACJ,UAAU,EACV,qBAAqB,EACrB,WAAW,EACX,QAAQ,EACR,UAAU,EACV,WAAW,EACX,eAAe,EACf,UAAU,EACV,cAAc,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A Adapter — Main Entry (RFC-0069)
|
|
3
|
+
*/
|
|
4
|
+
export { A2AClient } from "./client.js";
|
|
5
|
+
export { A2ATransport } from "./transport.js";
|
|
6
|
+
export { createAgentCard, routeTask, getTask, cancelTask, taskStatusUpdateSSE, } from "./agent.js";
|
|
7
|
+
export { A2A_PROTOCOL_VERSION, WELL_KNOWN_AGENT_PATH } from "./protocol.js";
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAA4B,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACN,eAAe,EACf,SAAS,EACT,OAAO,EACP,UAAU,EACV,mBAAmB,GACnB,MAAM,YAAY,CAAC;AAiBpB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A Adapter — Protocol Constants (RFC-0069)
|
|
3
|
+
*/
|
|
4
|
+
export declare const A2A_PROTOCOL_VERSION = "1.0.0";
|
|
5
|
+
export declare const A2A_CONTENT_TYPE = "application/json";
|
|
6
|
+
export declare const HTTP_METHODS: {
|
|
7
|
+
readonly GET: "GET";
|
|
8
|
+
readonly POST: "POST";
|
|
9
|
+
};
|
|
10
|
+
export declare const WELL_KNOWN_AGENT_PATH = "/.well-known/agent.json";
|
|
11
|
+
export declare const STATUS: {
|
|
12
|
+
readonly SUBMITTED: "submitted";
|
|
13
|
+
readonly WORKING: "working";
|
|
14
|
+
readonly COMPLETED: "completed";
|
|
15
|
+
readonly CANCELED: "canceled";
|
|
16
|
+
readonly FAILED: "failed";
|
|
17
|
+
};
|
|
18
|
+
export declare const ERROR_CODES: {
|
|
19
|
+
readonly INVALID_REQUEST: -32600;
|
|
20
|
+
readonly METHOD_NOT_FOUND: -32601;
|
|
21
|
+
readonly INVALID_PARAMS: -32602;
|
|
22
|
+
readonly INTERNAL_ERROR: -32603;
|
|
23
|
+
readonly TASK_NOT_FOUND: 40401;
|
|
24
|
+
readonly TASK_STATE: 40402;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Serialize task as SSE event
|
|
28
|
+
*/
|
|
29
|
+
export declare function formatSSETaskEvent(event: string, data: unknown): string;
|
|
30
|
+
/**
|
|
31
|
+
* Parse agent card from well-known URL
|
|
32
|
+
*/
|
|
33
|
+
export declare function wellKnownAgentUrl(baseUrl: string): string;
|
|
34
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAC5C,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD,eAAO,MAAM,YAAY;aACxB,GAAG,EAAE,KAAK;aACV,IAAI,EAAE,MAAM;CACH,CAAC;AAEX,eAAO,MAAM,qBAAqB,4BAA4B,CAAC;AAG/D,eAAO,MAAM,MAAM;aAClB,SAAS,EAAE,WAAW;aACtB,OAAO,EAAE,SAAS;aAClB,SAAS,EAAE,WAAW;aACtB,QAAQ,EAAE,UAAU;aACpB,MAAM,EAAE,QAAQ;CACP,CAAC;AAGX,eAAO,MAAM,WAAW;aACvB,eAAe,EAAE,CAAC,KAAK;aACvB,gBAAgB,EAAE,CAAC,KAAK;aACxB,cAAc,EAAE,CAAC,KAAK;aACtB,cAAc,EAAE,CAAC,KAAK;aACtB,cAAc,EAAE,KAAK;aACrB,UAAU,EAAE,KAAK;CACR,CAAC;AAEX;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAEvE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzD"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A Adapter — Protocol Constants (RFC-0069)
|
|
3
|
+
*/
|
|
4
|
+
export const A2A_PROTOCOL_VERSION = "1.0.0";
|
|
5
|
+
export const A2A_CONTENT_TYPE = "application/json";
|
|
6
|
+
export const HTTP_METHODS = {
|
|
7
|
+
GET: "GET",
|
|
8
|
+
POST: "POST",
|
|
9
|
+
};
|
|
10
|
+
export const WELL_KNOWN_AGENT_PATH = "/.well-known/agent.json";
|
|
11
|
+
// Status codes
|
|
12
|
+
export const STATUS = {
|
|
13
|
+
SUBMITTED: "submitted",
|
|
14
|
+
WORKING: "working",
|
|
15
|
+
COMPLETED: "completed",
|
|
16
|
+
CANCELED: "canceled",
|
|
17
|
+
FAILED: "failed",
|
|
18
|
+
};
|
|
19
|
+
// Error codes
|
|
20
|
+
export const ERROR_CODES = {
|
|
21
|
+
INVALID_REQUEST: -32600,
|
|
22
|
+
METHOD_NOT_FOUND: -32601,
|
|
23
|
+
INVALID_PARAMS: -32602,
|
|
24
|
+
INTERNAL_ERROR: -32603,
|
|
25
|
+
TASK_NOT_FOUND: 40401,
|
|
26
|
+
TASK_STATE: 40402,
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Serialize task as SSE event
|
|
30
|
+
*/
|
|
31
|
+
export function formatSSETaskEvent(event, data) {
|
|
32
|
+
return `event: ${event}\ndata: ${JSON.stringify(data)}\n\n`;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Parse agent card from well-known URL
|
|
36
|
+
*/
|
|
37
|
+
export function wellKnownAgentUrl(baseUrl) {
|
|
38
|
+
return `${baseUrl.replace(/\/$/, "")}${WELL_KNOWN_AGENT_PATH}`;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAEnD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;CACH,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAG,yBAAyB,CAAC;AAE/D,eAAe;AACf,MAAM,CAAC,MAAM,MAAM,GAAG;IACrB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;CACP,CAAC;AAEX,cAAc;AACd,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,eAAe,EAAE,CAAC,KAAK;IACvB,gBAAgB,EAAE,CAAC,KAAK;IACxB,cAAc,EAAE,CAAC,KAAK;IACtB,cAAc,EAAE,CAAC,KAAK;IACtB,cAAc,EAAE,KAAK;IACrB,UAAU,EAAE,KAAK;CACR,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa,EAAE,IAAa;IAC9D,OAAO,UAAU,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAChD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,qBAAqB,EAAE,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A Adapter — HTTP Transport (RFC-0069)
|
|
3
|
+
*/
|
|
4
|
+
import type { AgentCard, A2AClientConfig, TaskHandle } from "./types.js";
|
|
5
|
+
/**
|
|
6
|
+
* HTTP client for A2A protocol
|
|
7
|
+
*/
|
|
8
|
+
export declare class A2ATransport {
|
|
9
|
+
private baseUrl;
|
|
10
|
+
private config;
|
|
11
|
+
constructor(baseUrl: string, config?: A2AClientConfig);
|
|
12
|
+
private request;
|
|
13
|
+
/**
|
|
14
|
+
* Fetch agent card from well-known endpoint
|
|
15
|
+
*/
|
|
16
|
+
getAgentCard(): Promise<AgentCard>;
|
|
17
|
+
/**
|
|
18
|
+
* Send a task message to an agent
|
|
19
|
+
*/
|
|
20
|
+
sendTask(params: {
|
|
21
|
+
taskId?: string;
|
|
22
|
+
sessionId?: string;
|
|
23
|
+
message: {
|
|
24
|
+
role: string;
|
|
25
|
+
content: string;
|
|
26
|
+
};
|
|
27
|
+
}): Promise<TaskHandle>;
|
|
28
|
+
/**
|
|
29
|
+
* Send task with streaming subscription
|
|
30
|
+
*/
|
|
31
|
+
sendTaskSubscribe(params: {
|
|
32
|
+
taskId?: string;
|
|
33
|
+
sessionId?: string;
|
|
34
|
+
message: {
|
|
35
|
+
role: string;
|
|
36
|
+
content: string;
|
|
37
|
+
};
|
|
38
|
+
}): Promise<TaskHandle>;
|
|
39
|
+
/**
|
|
40
|
+
* Get task status
|
|
41
|
+
*/
|
|
42
|
+
getTask(taskId: string): Promise<unknown>;
|
|
43
|
+
/**
|
|
44
|
+
* Cancel a task
|
|
45
|
+
*/
|
|
46
|
+
cancelTask(taskId: string): Promise<{
|
|
47
|
+
taskId: string;
|
|
48
|
+
status: string;
|
|
49
|
+
}>;
|
|
50
|
+
/**
|
|
51
|
+
* SSE stream for task updates
|
|
52
|
+
*/
|
|
53
|
+
streamTaskUpdates(taskId: string): AsyncGenerator<unknown>;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEzE;;GAEG;AACH,qBAAa,YAAY;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAkB;IAEhC,YAAY,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,eAAoB,EAGxD;YAEa,OAAO;IA4BrB;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC,CAEvC;IAED;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3C,GAAG,OAAO,CAAC,UAAU,CAAC,CAMtB;IAED;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE;QAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3C,GAAG,OAAO,CAAC,UAAU,CAAC,CAMtB;IAED;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE9C;IAED;;OAEG;IACG,UAAU,CACf,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAE7C;IAED;;OAEG;IACI,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAqChE;CACD"}
|