pi-harness-runtime 1.1.6 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -2
- package/packages/a2a-adapter/dist/discovery.d.ts +52 -0
- package/packages/a2a-adapter/dist/discovery.d.ts.map +1 -0
- package/packages/a2a-adapter/dist/discovery.js +76 -0
- package/packages/a2a-adapter/dist/discovery.js.map +1 -0
- package/packages/architecture-generator/dist/adr.d.ts +15 -0
- package/packages/architecture-generator/dist/adr.d.ts.map +1 -0
- package/packages/architecture-generator/dist/adr.js +42 -0
- package/packages/architecture-generator/dist/adr.js.map +1 -0
- package/packages/architecture-generator/dist/index.d.ts +9 -0
- package/packages/architecture-generator/dist/index.d.ts.map +1 -0
- package/packages/architecture-generator/dist/index.js +9 -0
- package/packages/architecture-generator/dist/index.js.map +1 -0
- package/packages/architecture-generator/dist/mermaid.d.ts +30 -0
- package/packages/architecture-generator/dist/mermaid.d.ts.map +1 -0
- package/packages/architecture-generator/dist/mermaid.js +58 -0
- package/packages/architecture-generator/dist/mermaid.js.map +1 -0
- package/packages/architecture-generator/dist/types.d.ts +30 -0
- package/packages/architecture-generator/dist/types.d.ts.map +1 -0
- package/packages/architecture-generator/dist/types.js +7 -0
- package/packages/architecture-generator/dist/types.js.map +1 -0
- package/packages/auth/dist/minimax-browser-auth.d.ts +89 -0
- package/packages/auth/dist/minimax-browser-auth.d.ts.map +1 -0
- package/packages/auth/dist/minimax-browser-auth.js +890 -0
- package/packages/auth/dist/minimax-browser-auth.js.map +1 -0
- package/packages/auth/dist/run-minimax-auth.d.ts +19 -0
- package/packages/auth/dist/run-minimax-auth.d.ts.map +1 -0
- package/packages/auth/dist/run-minimax-auth.js +112 -0
- package/packages/auth/dist/run-minimax-auth.js.map +1 -0
- package/packages/clipboard/dist/src/clipboard.d.ts +11 -0
- package/packages/clipboard/dist/src/clipboard.d.ts.map +1 -0
- package/packages/clipboard/dist/src/clipboard.js +51 -0
- package/packages/clipboard/dist/src/clipboard.js.map +1 -0
- package/packages/clipboard/dist/src/copy-sync.d.ts +27 -0
- package/packages/clipboard/dist/src/copy-sync.d.ts.map +1 -0
- package/packages/clipboard/dist/src/copy-sync.js +212 -0
- package/packages/clipboard/dist/src/copy-sync.js.map +1 -0
- package/packages/clipboard/dist/src/gist-relay.d.ts +48 -0
- package/packages/clipboard/dist/src/gist-relay.d.ts.map +1 -0
- package/packages/clipboard/dist/src/gist-relay.js +186 -0
- package/packages/clipboard/dist/src/gist-relay.js.map +1 -0
- package/packages/clipboard/dist/src/github-login.d.ts +16 -0
- package/packages/clipboard/dist/src/github-login.d.ts.map +1 -0
- package/packages/clipboard/dist/src/github-login.js +69 -0
- package/packages/clipboard/dist/src/github-login.js.map +1 -0
- package/packages/clipboard/dist/src/index.d.ts +5 -0
- package/packages/clipboard/dist/src/index.d.ts.map +1 -0
- package/packages/clipboard/dist/src/index.js +4 -0
- package/packages/clipboard/dist/src/index.js.map +1 -0
- package/packages/clipboard/dist/src/paste-bridge.d.ts +19 -0
- package/packages/clipboard/dist/src/paste-bridge.d.ts.map +1 -0
- package/packages/clipboard/dist/src/paste-bridge.js +78 -0
- package/packages/clipboard/dist/src/paste-bridge.js.map +1 -0
- package/packages/clipboard/dist/src/types.d.ts +13 -0
- package/packages/clipboard/dist/src/types.d.ts.map +1 -0
- package/packages/clipboard/dist/src/types.js +5 -0
- package/packages/clipboard/dist/src/types.js.map +1 -0
- package/packages/clipboard-plugin/dist/index.d.ts +28 -0
- package/packages/clipboard-plugin/dist/index.d.ts.map +1 -0
- package/packages/clipboard-plugin/dist/index.js +64 -0
- package/packages/clipboard-plugin/dist/index.js.map +1 -0
- package/packages/clipboard-plugin/dist/types.d.ts +30 -0
- package/packages/clipboard-plugin/dist/types.d.ts.map +1 -0
- package/packages/clipboard-plugin/dist/types.js +5 -0
- package/packages/clipboard-plugin/dist/types.js.map +1 -0
- package/packages/context-discovery/dist/src/discover.d.ts +3 -0
- package/packages/context-discovery/dist/src/discover.d.ts.map +1 -0
- package/packages/context-discovery/dist/src/discover.js +42 -0
- package/packages/context-discovery/dist/src/discover.js.map +1 -0
- package/packages/context-discovery/dist/src/discovery.d.ts +28 -0
- package/packages/context-discovery/dist/src/discovery.d.ts.map +1 -0
- package/packages/context-discovery/dist/src/discovery.js +21 -0
- package/packages/context-discovery/dist/src/discovery.js.map +1 -0
- package/packages/context-discovery/dist/src/index.d.ts +3 -0
- package/packages/context-discovery/dist/src/index.d.ts.map +1 -0
- package/packages/context-discovery/dist/src/index.js +2 -0
- package/packages/context-discovery/dist/src/index.js.map +1 -0
- package/packages/context-discovery/dist/src/types.d.ts +16 -0
- package/packages/context-discovery/dist/src/types.d.ts.map +1 -0
- package/packages/context-discovery/dist/src/types.js +2 -0
- package/packages/context-discovery/dist/src/types.js.map +1 -0
- package/packages/dependency-analyzer/dist/src/analyzer.d.ts +17 -0
- package/packages/dependency-analyzer/dist/src/analyzer.d.ts.map +1 -0
- package/packages/dependency-analyzer/dist/src/analyzer.js +119 -0
- package/packages/dependency-analyzer/dist/src/analyzer.js.map +1 -0
- package/packages/dependency-analyzer/dist/src/imports.d.ts +12 -0
- package/packages/dependency-analyzer/dist/src/imports.d.ts.map +1 -0
- package/packages/dependency-analyzer/dist/src/imports.js +73 -0
- package/packages/dependency-analyzer/dist/src/imports.js.map +1 -0
- package/packages/dependency-analyzer/dist/src/index.d.ts +4 -0
- package/packages/dependency-analyzer/dist/src/index.d.ts.map +1 -0
- package/packages/dependency-analyzer/dist/src/index.js +3 -0
- package/packages/dependency-analyzer/dist/src/index.js.map +1 -0
- package/packages/dependency-analyzer/dist/src/types.d.ts +28 -0
- package/packages/dependency-analyzer/dist/src/types.d.ts.map +1 -0
- package/packages/dependency-analyzer/dist/src/types.js +5 -0
- package/packages/dependency-analyzer/dist/src/types.js.map +1 -0
- package/packages/event-bus/dist/src/bus.d.ts +15 -0
- package/packages/event-bus/dist/src/bus.d.ts.map +1 -0
- package/packages/event-bus/dist/src/bus.js +98 -0
- package/packages/event-bus/dist/src/bus.js.map +1 -0
- package/packages/event-bus/dist/src/herdr-bus.d.ts +121 -0
- package/packages/event-bus/dist/src/herdr-bus.d.ts.map +1 -0
- package/packages/event-bus/dist/src/herdr-bus.js +324 -0
- package/packages/event-bus/dist/src/herdr-bus.js.map +1 -0
- package/packages/event-bus/dist/src/index.d.ts +6 -0
- package/packages/event-bus/dist/src/index.d.ts.map +1 -0
- package/packages/event-bus/dist/src/index.js +4 -0
- package/packages/event-bus/dist/src/index.js.map +1 -0
- package/packages/event-bus/dist/src/types.d.ts +27 -0
- package/packages/event-bus/dist/src/types.d.ts.map +1 -0
- package/packages/event-bus/dist/src/types.js +10 -0
- package/packages/event-bus/dist/src/types.js.map +1 -0
- package/packages/event-store/dist/src/index.d.ts +3 -0
- package/packages/event-store/dist/src/index.d.ts.map +1 -0
- package/packages/event-store/dist/src/index.js +2 -0
- package/packages/event-store/dist/src/index.js.map +1 -0
- package/packages/event-store/dist/src/store.d.ts +15 -0
- package/packages/event-store/dist/src/store.d.ts.map +1 -0
- package/packages/event-store/dist/src/store.js +139 -0
- package/packages/event-store/dist/src/store.js.map +1 -0
- package/packages/event-store/dist/src/types.d.ts +48 -0
- package/packages/event-store/dist/src/types.d.ts.map +1 -0
- package/packages/event-store/dist/src/types.js +5 -0
- package/packages/event-store/dist/src/types.js.map +1 -0
- package/packages/intent-analyzer/dist/src/analyzer.d.ts +13 -0
- package/packages/intent-analyzer/dist/src/analyzer.d.ts.map +1 -0
- package/packages/intent-analyzer/dist/src/analyzer.js +239 -0
- package/packages/intent-analyzer/dist/src/analyzer.js.map +1 -0
- package/packages/intent-analyzer/dist/src/index.d.ts +3 -0
- package/packages/intent-analyzer/dist/src/index.d.ts.map +1 -0
- package/packages/intent-analyzer/dist/src/index.js +2 -0
- package/packages/intent-analyzer/dist/src/index.js.map +1 -0
- package/packages/intent-analyzer/dist/src/types.d.ts +26 -0
- package/packages/intent-analyzer/dist/src/types.d.ts.map +1 -0
- package/packages/intent-analyzer/dist/src/types.js +7 -0
- package/packages/intent-analyzer/dist/src/types.js.map +1 -0
- package/packages/knowledge-graph/dist/graph-extractor.d.ts +27 -0
- package/packages/knowledge-graph/dist/graph-extractor.d.ts.map +1 -0
- package/packages/knowledge-graph/dist/graph-extractor.js +276 -0
- package/packages/knowledge-graph/dist/graph-extractor.js.map +1 -0
- package/packages/knowledge-graph/dist/index.d.ts +27 -0
- package/packages/knowledge-graph/dist/index.d.ts.map +1 -0
- package/packages/knowledge-graph/dist/index.js +27 -0
- package/packages/knowledge-graph/dist/index.js.map +1 -0
- package/packages/knowledge-graph/dist/mcp-client.d.ts +38 -0
- package/packages/knowledge-graph/dist/mcp-client.d.ts.map +1 -0
- package/packages/knowledge-graph/dist/mcp-client.js +157 -0
- package/packages/knowledge-graph/dist/mcp-client.js.map +1 -0
- package/packages/knowledge-graph/dist/provenance-linker.d.ts +19 -0
- package/packages/knowledge-graph/dist/provenance-linker.d.ts.map +1 -0
- package/packages/knowledge-graph/dist/provenance-linker.js +91 -0
- package/packages/knowledge-graph/dist/provenance-linker.js.map +1 -0
- package/packages/knowledge-graph/dist/types.d.ts +53 -0
- package/packages/knowledge-graph/dist/types.d.ts.map +1 -0
- package/packages/knowledge-graph/dist/types.js +7 -0
- package/packages/knowledge-graph/dist/types.js.map +1 -0
- package/packages/knowledge-retrieval/dist/index.d.ts +8 -0
- package/packages/knowledge-retrieval/dist/index.d.ts.map +1 -0
- package/packages/knowledge-retrieval/dist/index.js +7 -0
- package/packages/knowledge-retrieval/dist/index.js.map +1 -0
- package/packages/knowledge-retrieval/dist/mcp-client.d.ts +61 -0
- package/packages/knowledge-retrieval/dist/mcp-client.d.ts.map +1 -0
- package/packages/knowledge-retrieval/dist/mcp-client.js +132 -0
- package/packages/knowledge-retrieval/dist/mcp-client.js.map +1 -0
- package/packages/knowledge-retrieval/dist/types.d.ts +105 -0
- package/packages/knowledge-retrieval/dist/types.d.ts.map +1 -0
- package/packages/knowledge-retrieval/dist/types.js +7 -0
- package/packages/knowledge-retrieval/dist/types.js.map +1 -0
- package/packages/milestone-manager/dist/engine.d.ts +27 -0
- package/packages/milestone-manager/dist/engine.d.ts.map +1 -0
- package/packages/milestone-manager/dist/engine.js +78 -0
- package/packages/milestone-manager/dist/engine.js.map +1 -0
- package/packages/milestone-manager/dist/index.d.ts +6 -0
- package/packages/milestone-manager/dist/index.d.ts.map +1 -0
- package/packages/milestone-manager/dist/index.js +6 -0
- package/packages/milestone-manager/dist/index.js.map +1 -0
- package/packages/milestone-manager/dist/types.d.ts +25 -0
- package/packages/milestone-manager/dist/types.d.ts.map +1 -0
- package/packages/milestone-manager/dist/types.js +7 -0
- package/packages/milestone-manager/dist/types.js.map +1 -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/line-adapter.d.ts +17 -0
- package/packages/notification/dist/adapters/line-adapter.d.ts.map +1 -0
- package/packages/notification/dist/adapters/line-adapter.js +99 -0
- package/packages/notification/dist/adapters/line-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 +10 -0
- package/packages/notification/dist/index.d.ts.map +1 -0
- package/packages/notification/dist/index.js +10 -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 +232 -0
- package/packages/notification/dist/notification-center.js.map +1 -0
- package/packages/notification/dist/types.d.ts +69 -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/okf-indexer/dist/cli.d.ts +8 -0
- package/packages/okf-indexer/dist/cli.d.ts.map +1 -0
- package/packages/okf-indexer/dist/cli.js +23 -0
- package/packages/okf-indexer/dist/cli.js.map +1 -0
- package/packages/okf-indexer/dist/indexer.d.ts +55 -0
- package/packages/okf-indexer/dist/indexer.d.ts.map +1 -0
- package/packages/okf-indexer/dist/indexer.js +147 -0
- package/packages/okf-indexer/dist/indexer.js.map +1 -0
- package/packages/project-bootstrap/dist/bootstrap.d.ts +23 -0
- package/packages/project-bootstrap/dist/bootstrap.d.ts.map +1 -0
- package/packages/project-bootstrap/dist/bootstrap.js +128 -0
- package/packages/project-bootstrap/dist/bootstrap.js.map +1 -0
- package/packages/project-bootstrap/dist/frappe.d.ts +8 -0
- package/packages/project-bootstrap/dist/frappe.d.ts.map +1 -0
- package/packages/project-bootstrap/dist/frappe.js +82 -0
- package/packages/project-bootstrap/dist/frappe.js.map +1 -0
- package/packages/project-bootstrap/dist/index.d.ts +27 -0
- package/packages/project-bootstrap/dist/index.d.ts.map +1 -0
- package/packages/project-bootstrap/dist/index.js +27 -0
- package/packages/project-bootstrap/dist/index.js.map +1 -0
- package/packages/project-bootstrap/dist/minimal.d.ts +8 -0
- package/packages/project-bootstrap/dist/minimal.d.ts.map +1 -0
- package/packages/project-bootstrap/dist/minimal.js +35 -0
- package/packages/project-bootstrap/dist/minimal.js.map +1 -0
- package/packages/project-bootstrap/dist/types.d.ts +61 -0
- package/packages/project-bootstrap/dist/types.d.ts.map +1 -0
- package/packages/project-bootstrap/dist/types.js +7 -0
- package/packages/project-bootstrap/dist/types.js.map +1 -0
- package/packages/project-bootstrap/dist/typescript.d.ts +8 -0
- package/packages/project-bootstrap/dist/typescript.d.ts.map +1 -0
- package/packages/project-bootstrap/dist/typescript.js +103 -0
- package/packages/project-bootstrap/dist/typescript.js.map +1 -0
- package/packages/projection-engine/dist/src/engine.d.ts +61 -0
- package/packages/projection-engine/dist/src/engine.d.ts.map +1 -0
- package/packages/projection-engine/dist/src/engine.js +87 -0
- package/packages/projection-engine/dist/src/engine.js.map +1 -0
- package/packages/projection-engine/dist/src/index.d.ts +2 -0
- package/packages/projection-engine/dist/src/index.d.ts.map +1 -0
- package/packages/projection-engine/dist/src/index.js +2 -0
- package/packages/projection-engine/dist/src/index.js.map +1 -0
- package/packages/projection-engine/dist/src/project.d.ts +3 -0
- package/packages/projection-engine/dist/src/project.d.ts.map +1 -0
- package/packages/projection-engine/dist/src/project.js +24 -0
- package/packages/projection-engine/dist/src/project.js.map +1 -0
- package/packages/projection-engine/dist/src/types.d.ts +55 -0
- package/packages/projection-engine/dist/src/types.d.ts.map +1 -0
- package/packages/projection-engine/dist/src/types.js +5 -0
- package/packages/projection-engine/dist/src/types.js.map +1 -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 +11 -0
- package/packages/providers/dist/index.d.ts.map +1 -0
- package/packages/providers/dist/index.js +11 -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/dist/provider-id.d.ts +46 -0
- package/packages/providers/dist/provider-id.d.ts.map +1 -0
- package/packages/providers/dist/provider-id.js +113 -0
- package/packages/providers/dist/provider-id.js.map +1 -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 +268 -0
- package/packages/quota-manager/dist/tui-usage-monitor.js.map +1 -0
- 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/session-api/dist/src/api.d.ts +83 -0
- package/packages/session-api/dist/src/api.d.ts.map +1 -0
- package/packages/session-api/dist/src/api.js +49 -0
- package/packages/session-api/dist/src/api.js.map +1 -0
- package/packages/session-api/dist/src/index.d.ts +2 -0
- package/packages/session-api/dist/src/index.d.ts.map +1 -0
- package/packages/session-api/dist/src/index.js +2 -0
- package/packages/session-api/dist/src/index.js.map +1 -0
- package/packages/session-api/dist/src/types.d.ts +22 -0
- package/packages/session-api/dist/src/types.d.ts.map +1 -0
- package/packages/session-api/dist/src/types.js +5 -0
- package/packages/session-api/dist/src/types.js.map +1 -0
- package/packages/session-export/dist/src/exporter.d.ts +28 -0
- package/packages/session-export/dist/src/exporter.d.ts.map +1 -0
- package/packages/session-export/dist/src/exporter.js +42 -0
- package/packages/session-export/dist/src/exporter.js.map +1 -0
- package/packages/session-export/dist/src/index.d.ts +2 -0
- package/packages/session-export/dist/src/index.d.ts.map +1 -0
- package/packages/session-export/dist/src/index.js +2 -0
- package/packages/session-export/dist/src/index.js.map +1 -0
- package/packages/session-export/dist/src/types.d.ts +20 -0
- package/packages/session-export/dist/src/types.d.ts.map +1 -0
- package/packages/session-export/dist/src/types.js +5 -0
- package/packages/session-export/dist/src/types.js.map +1 -0
- package/packages/subscription-engine/dist/src/engine.d.ts +13 -0
- package/packages/subscription-engine/dist/src/engine.d.ts.map +1 -0
- package/packages/subscription-engine/dist/src/engine.js +40 -0
- package/packages/subscription-engine/dist/src/engine.js.map +1 -0
- package/packages/subscription-engine/dist/src/index.d.ts +2 -0
- package/packages/subscription-engine/dist/src/index.d.ts.map +1 -0
- package/packages/subscription-engine/dist/src/index.js +2 -0
- package/packages/subscription-engine/dist/src/index.js.map +1 -0
- package/packages/subscription-engine/dist/src/subscriptions.d.ts +19 -0
- package/packages/subscription-engine/dist/src/subscriptions.d.ts.map +1 -0
- package/packages/subscription-engine/dist/src/subscriptions.js +39 -0
- package/packages/subscription-engine/dist/src/subscriptions.js.map +1 -0
- package/packages/subscription-engine/dist/src/types.d.ts +24 -0
- package/packages/subscription-engine/dist/src/types.d.ts.map +1 -0
- package/packages/subscription-engine/dist/src/types.js +5 -0
- package/packages/subscription-engine/dist/src/types.js.map +1 -0
- package/packages/tencentdb-sync/dist/cli.d.ts +7 -0
- package/packages/tencentdb-sync/dist/cli.d.ts.map +1 -0
- package/packages/tencentdb-sync/dist/cli.js +311 -0
- package/packages/tencentdb-sync/dist/cli.js.map +1 -0
- package/packages/tencentdb-sync/dist/client.d.ts +141 -0
- package/packages/tencentdb-sync/dist/client.d.ts.map +1 -0
- package/packages/tencentdb-sync/dist/client.js +166 -0
- package/packages/tencentdb-sync/dist/client.js.map +1 -0
- package/packages/tencentdb-sync/dist/config.d.ts +32 -0
- package/packages/tencentdb-sync/dist/config.d.ts.map +1 -0
- package/packages/tencentdb-sync/dist/config.js +102 -0
- package/packages/tencentdb-sync/dist/config.js.map +1 -0
- package/packages/tencentdb-sync/dist/index.d.ts +9 -0
- package/packages/tencentdb-sync/dist/index.d.ts.map +1 -0
- package/packages/tencentdb-sync/dist/index.js +8 -0
- package/packages/tencentdb-sync/dist/index.js.map +1 -0
- package/packages/types/src/agent-worker-types.js +41 -0
- package/packages/types/src/ai-providers.js +66 -0
- package/packages/types/src/runtime-types.js +3 -0
- package/packages/workflow-events/dist/src/events.d.ts +38 -0
- package/packages/workflow-events/dist/src/events.d.ts.map +1 -0
- package/packages/workflow-events/dist/src/events.js +55 -0
- package/packages/workflow-events/dist/src/events.js.map +1 -0
- package/packages/workflow-events/dist/src/index.d.ts +2 -0
- package/packages/workflow-events/dist/src/index.d.ts.map +1 -0
- package/packages/workflow-events/dist/src/index.js +2 -0
- package/packages/workflow-events/dist/src/index.js.map +1 -0
- package/packages/workflow-events/dist/src/pipeline.d.ts +21 -0
- package/packages/workflow-events/dist/src/pipeline.d.ts.map +1 -0
- package/packages/workflow-events/dist/src/pipeline.js +36 -0
- package/packages/workflow-events/dist/src/pipeline.js.map +1 -0
- package/packages/workflow-events/dist/src/types.d.ts +110 -0
- package/packages/workflow-events/dist/src/types.d.ts.map +1 -0
- package/packages/workflow-events/dist/src/types.js +5 -0
- package/packages/workflow-events/dist/src/types.js.map +1 -0
- package/packages/workspace-scanner/dist/src/detect.d.ts +3 -0
- package/packages/workspace-scanner/dist/src/detect.d.ts.map +1 -0
- package/packages/workspace-scanner/dist/src/detect.js +60 -0
- package/packages/workspace-scanner/dist/src/detect.js.map +1 -0
- package/packages/workspace-scanner/dist/src/git.d.ts +7 -0
- package/packages/workspace-scanner/dist/src/git.d.ts.map +1 -0
- package/packages/workspace-scanner/dist/src/git.js +75 -0
- package/packages/workspace-scanner/dist/src/git.js.map +1 -0
- package/packages/workspace-scanner/dist/src/index.d.ts +5 -0
- package/packages/workspace-scanner/dist/src/index.d.ts.map +1 -0
- package/packages/workspace-scanner/dist/src/index.js +4 -0
- package/packages/workspace-scanner/dist/src/index.js.map +1 -0
- package/packages/workspace-scanner/dist/src/scanner.d.ts +11 -0
- package/packages/workspace-scanner/dist/src/scanner.d.ts.map +1 -0
- package/packages/workspace-scanner/dist/src/scanner.js +59 -0
- package/packages/workspace-scanner/dist/src/scanner.js.map +1 -0
- package/packages/workspace-scanner/dist/src/types.d.ts +35 -0
- package/packages/workspace-scanner/dist/src/types.d.ts.map +1 -0
- package/packages/workspace-scanner/dist/src/types.js +5 -0
- package/packages/workspace-scanner/dist/src/types.js.map +1 -0
- 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 +239 -0
- package/packages/worktree/dist/worktree.js.map +1 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gist Relay — GitHub Gist clipboard sync
|
|
3
|
+
*
|
|
4
|
+
* Stores clipboard content in a secret Gist, accessible from any device.
|
|
5
|
+
* - POST: Upload clipboard content to Gist
|
|
6
|
+
* - GET: Download latest clipboard content from Gist
|
|
7
|
+
*
|
|
8
|
+
* Security: Uses secret Gist (only accessible via API token)
|
|
9
|
+
*/
|
|
10
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
|
|
11
|
+
import { join } from "node:path";
|
|
12
|
+
import { homedir } from "node:os";
|
|
13
|
+
const HARNESS_DIR = join(homedir(), ".pi-harness-runtime");
|
|
14
|
+
const CONFIG_FILE = join(HARNESS_DIR, "gist-config.json");
|
|
15
|
+
// ─── Config ──────────────────────────────────────────────────────────────
|
|
16
|
+
function loadConfig() {
|
|
17
|
+
try {
|
|
18
|
+
if (!existsSync(CONFIG_FILE))
|
|
19
|
+
return null;
|
|
20
|
+
const raw = readFileSync(CONFIG_FILE, "utf8");
|
|
21
|
+
return JSON.parse(raw);
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function saveConfig(config) {
|
|
28
|
+
mkdirSync(HARNESS_DIR, { recursive: true });
|
|
29
|
+
writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2), "utf8");
|
|
30
|
+
}
|
|
31
|
+
// ─── API ────────────────────────────────────────────────────────────────
|
|
32
|
+
/**
|
|
33
|
+
* Check if Gist relay is configured
|
|
34
|
+
*/
|
|
35
|
+
export function isConfigured() {
|
|
36
|
+
return loadConfig() !== null;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get stored GitHub token
|
|
40
|
+
*/
|
|
41
|
+
export function getToken() {
|
|
42
|
+
return loadConfig()?.token ?? null;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Store GitHub token and Gist ID after initial setup
|
|
46
|
+
*/
|
|
47
|
+
export function saveCredentials(token, gistId, gistUrl) {
|
|
48
|
+
saveConfig({ token, gistId, gistUrl });
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Create a new secret Gist and return its ID
|
|
52
|
+
*/
|
|
53
|
+
export async function createGist(token, content) {
|
|
54
|
+
try {
|
|
55
|
+
const response = await fetch("https://api.github.com/gists", {
|
|
56
|
+
method: "POST",
|
|
57
|
+
headers: {
|
|
58
|
+
Authorization: `Bearer ${token}`,
|
|
59
|
+
"Content-Type": "application/json",
|
|
60
|
+
Accept: "application/vnd.github+json",
|
|
61
|
+
"X-GitHub-Api-Version": "2022-11-28",
|
|
62
|
+
},
|
|
63
|
+
body: JSON.stringify({
|
|
64
|
+
description: "pi-harness-runtime clipboard sync",
|
|
65
|
+
public: false,
|
|
66
|
+
files: {
|
|
67
|
+
"clipboard.txt": {
|
|
68
|
+
content: content || "(empty)",
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
}),
|
|
72
|
+
});
|
|
73
|
+
if (!response.ok) {
|
|
74
|
+
const error = await response.text();
|
|
75
|
+
console.error(`[gist-relay] Failed to create Gist: ${response.status} ${error}`);
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
const gist = (await response.json());
|
|
79
|
+
const config = {
|
|
80
|
+
token,
|
|
81
|
+
gistId: gist.id,
|
|
82
|
+
gistUrl: gist.html_url,
|
|
83
|
+
};
|
|
84
|
+
saveConfig(config);
|
|
85
|
+
return config;
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
console.error("[gist-relay] Failed to create Gist:", err);
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Update existing Gist with new clipboard content
|
|
94
|
+
*/
|
|
95
|
+
export async function updateGist(content) {
|
|
96
|
+
const config = loadConfig();
|
|
97
|
+
if (!config) {
|
|
98
|
+
console.error("[gist-relay] Not configured. Run 'bun run gist-auth' first.");
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
try {
|
|
102
|
+
const response = await fetch(`https://api.github.com/gists/${config.gistId}`, {
|
|
103
|
+
method: "PATCH",
|
|
104
|
+
headers: {
|
|
105
|
+
Authorization: `Bearer ${config.token}`,
|
|
106
|
+
"Content-Type": "application/json",
|
|
107
|
+
Accept: "application/vnd.github+json",
|
|
108
|
+
"X-GitHub-Api-Version": "2022-11-28",
|
|
109
|
+
},
|
|
110
|
+
body: JSON.stringify({
|
|
111
|
+
description: "pi-harness-runtime clipboard sync",
|
|
112
|
+
files: {
|
|
113
|
+
"clipboard.txt": {
|
|
114
|
+
content: content,
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
}),
|
|
118
|
+
});
|
|
119
|
+
if (!response.ok) {
|
|
120
|
+
const error = await response.text();
|
|
121
|
+
console.error(`[gist-relay] Failed to update Gist: ${response.status} ${error}`);
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
catch (err) {
|
|
127
|
+
console.error("[gist-relay] Failed to update Gist:", err);
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Fetch current clipboard content from Gist
|
|
133
|
+
*/
|
|
134
|
+
export async function fetchFromGist() {
|
|
135
|
+
const config = loadConfig();
|
|
136
|
+
if (!config) {
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
try {
|
|
140
|
+
const response = await fetch(`https://api.github.com/gists/${config.gistId}`, {
|
|
141
|
+
headers: {
|
|
142
|
+
Authorization: `Bearer ${config.token}`,
|
|
143
|
+
Accept: "application/vnd.github+json",
|
|
144
|
+
"X-GitHub-Api-Version": "2022-11-28",
|
|
145
|
+
},
|
|
146
|
+
});
|
|
147
|
+
if (!response.ok) {
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
const gist = (await response.json());
|
|
151
|
+
return gist.files["clipboard.txt"]?.content ?? null;
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Post clipboard content to Gist. Creates Gist on first call, updates on subsequent calls.
|
|
159
|
+
*/
|
|
160
|
+
export async function postToGist(content) {
|
|
161
|
+
const config = loadConfig();
|
|
162
|
+
if (!config) {
|
|
163
|
+
// First time — need token
|
|
164
|
+
console.error("[gist-relay] Not configured. Run 'bun run gist-auth' first.");
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
// Update existing Gist
|
|
168
|
+
const ok = await updateGist(content);
|
|
169
|
+
if (ok) {
|
|
170
|
+
console.error(`[gist-relay] Synced ${content.length} chars to Gist`);
|
|
171
|
+
}
|
|
172
|
+
return ok;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Delete stored Gist config (for reset)
|
|
176
|
+
*/
|
|
177
|
+
export function clearConfig() {
|
|
178
|
+
try {
|
|
179
|
+
const { unlinkSync } = require("node:fs");
|
|
180
|
+
unlinkSync(CONFIG_FILE);
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
// ignore
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=gist-relay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gist-relay.js","sourceRoot":"","sources":["../../src/gist-relay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub Login — /github-login slash command
|
|
3
|
+
*
|
|
4
|
+
* Registers the /github-login command that prompts for GitHub PAT
|
|
5
|
+
* and creates a secret Gist for clipboard sync.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Register /github-login command in pi-coding-agent
|
|
9
|
+
*/
|
|
10
|
+
export declare function registerGithubLoginCommand(pi: {
|
|
11
|
+
registerCommand: (name: string, options: {
|
|
12
|
+
description: string;
|
|
13
|
+
handler: (args: string, ctx: unknown) => Promise<void>;
|
|
14
|
+
}) => void;
|
|
15
|
+
}): void;
|
|
16
|
+
//# sourceMappingURL=github-login.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-login.d.ts","sourceRoot":"","sources":["../../src/github-login.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,EAAE;IAC9C,eAAe,EAAE,CAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACvD,KACG,IAAI,CAAC;CACV,GAAG,IAAI,CAsFP"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub Login — /github-login slash command
|
|
3
|
+
*
|
|
4
|
+
* Registers the /github-login command that prompts for GitHub PAT
|
|
5
|
+
* and creates a secret Gist for clipboard sync.
|
|
6
|
+
*/
|
|
7
|
+
import { createGist, isConfigured } from "./gist-relay.js";
|
|
8
|
+
/**
|
|
9
|
+
* Register /github-login command in pi-coding-agent
|
|
10
|
+
*/
|
|
11
|
+
export function registerGithubLoginCommand(pi) {
|
|
12
|
+
pi.registerCommand("github-login", {
|
|
13
|
+
description: "Connect GitHub Gist for clipboard sync across devices",
|
|
14
|
+
handler: async (_args, rawCtx) => {
|
|
15
|
+
const ctx = rawCtx;
|
|
16
|
+
// Check if already configured
|
|
17
|
+
if (isConfigured()) {
|
|
18
|
+
const reset = await ctx.ui.confirm("GitHub Gist already configured", "Reset and reconfigure?");
|
|
19
|
+
if (!reset) {
|
|
20
|
+
ctx.ui.notify("Cancelled.", "info");
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
ctx.ui.notify("Setting up GitHub Gist clipboard sync...", "info");
|
|
25
|
+
// Step 1: Ask user to create PAT
|
|
26
|
+
const instructions = [
|
|
27
|
+
"",
|
|
28
|
+
"Create a GitHub Personal Access Token:",
|
|
29
|
+
" 1. Go to https://github.com/settings/tokens",
|
|
30
|
+
" 2. Generate new token (classic)",
|
|
31
|
+
" 3. Select scope: gist",
|
|
32
|
+
" 4. Copy the token",
|
|
33
|
+
"",
|
|
34
|
+
].join("\n");
|
|
35
|
+
ctx.ui.notify(instructions, "info");
|
|
36
|
+
// Step 2: Prompt for PAT
|
|
37
|
+
const token = await ctx.ui.input("GitHub Personal Access Token", "ghp_xxxxxxxxxxxxxxxxxxxx");
|
|
38
|
+
if (!token?.trim()) {
|
|
39
|
+
ctx.ui.notify("No token provided. Cancelled.", "warning");
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
// Step 3: Create Gist
|
|
43
|
+
ctx.ui.notify("Creating secret Gist...", "info");
|
|
44
|
+
const testContent = [
|
|
45
|
+
"pi-harness-runtime clipboard sync",
|
|
46
|
+
`Connected at: ${new Date().toISOString()}`,
|
|
47
|
+
"",
|
|
48
|
+
"This Gist stores clipboard content for cross-device sync.",
|
|
49
|
+
"Polling script: see scripts/gist-poll.sh",
|
|
50
|
+
].join("\n");
|
|
51
|
+
const result = await createGist(token.trim(), testContent);
|
|
52
|
+
if (result) {
|
|
53
|
+
ctx.ui.notify([
|
|
54
|
+
"✅ GitHub Gist clipboard sync configured!",
|
|
55
|
+
"",
|
|
56
|
+
` Gist: ${result.gistUrl}`,
|
|
57
|
+
"",
|
|
58
|
+
" Polling script: scripts/gist-poll.sh",
|
|
59
|
+
" Run: bun scripts/gist-auth-poll.ts on client devices",
|
|
60
|
+
"",
|
|
61
|
+
].join("\n"), "info");
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
ctx.ui.notify("❌ Failed to create Gist. Check your PAT and try again.", "error");
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=github-login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-login.js","sourceRoot":"","sources":["../../src/github-login.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,EAQ1C;IACA,EAAE,CAAC,eAAe,CAAC,cAAc,EAAE;QAClC,WAAW,EAAE,uDAAuD;QACpE,OAAO,EAAE,KAAK,EAAE,KAAa,EAAE,MAAe,EAAE,EAAE;YACjD,MAAM,GAAG,GAAG,MASX,CAAC;YACF,8BAA8B;YAC9B,IAAI,YAAY,EAAE,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,OAAO,CACjC,gCAAgC,EAChC,wBAAwB,CACxB,CAAC;gBACF,IAAI,CAAC,KAAK,EAAE,CAAC;oBACZ,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;oBACpC,OAAO;gBACR,CAAC;YACF,CAAC;YAED,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,0CAA0C,EAAE,MAAM,CAAC,CAAC;YAElE,iCAAiC;YACjC,MAAM,YAAY,GAAG;gBACpB,EAAE;gBACF,wCAAwC;gBACxC,+CAA+C;gBAC/C,mCAAmC;gBACnC,yBAAyB;gBACzB,qBAAqB;gBACrB,EAAE;aACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YAEpC,yBAAyB;YACzB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAC/B,8BAA8B,EAC9B,0BAA0B,CAC1B,CAAC;YAEF,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;gBACpB,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,+BAA+B,EAAE,SAAS,CAAC,CAAC;gBAC1D,OAAO;YACR,CAAC;YAED,sBAAsB;YACtB,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;YAEjD,MAAM,WAAW,GAAG;gBACnB,mCAAmC;gBACnC,iBAAiB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;gBAC3C,EAAE;gBACF,2DAA2D;gBAC3D,0CAA0C;aAC1C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;YAE3D,IAAI,MAAM,EAAE,CAAC;gBACZ,GAAG,CAAC,EAAE,CAAC,MAAM,CACZ;oBACC,0CAA0C;oBAC1C,EAAE;oBACF,YAAY,MAAM,CAAC,OAAO,EAAE;oBAC5B,EAAE;oBACF,yCAAyC;oBACzC,yDAAyD;oBACzD,EAAE;iBACF,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,MAAM,CACN,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,GAAG,CAAC,EAAE,CAAC,MAAM,CACZ,wDAAwD,EACxD,OAAO,CACP,CAAC;YACH,CAAC;QACF,CAAC;KACD,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type { ClipboardContent, ClipboardOptions } from "./types.js";
|
|
2
|
+
export * from "./gist-relay.js";
|
|
3
|
+
export { registerGithubLoginCommand } from "./github-login.js";
|
|
4
|
+
export { pasteFromBridge, registerPasteShortcut } from "./paste-bridge.js";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACrE,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Paste Bridge — prefix+p shortcut for clipboard paste
|
|
3
|
+
*
|
|
4
|
+
* Reads content from the bridge file (~/.herdr-clipboard) and sends it
|
|
5
|
+
* to the terminal's active pane.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Read content from the bridge file.
|
|
9
|
+
* Returns null if the file doesn't exist or is empty.
|
|
10
|
+
*/
|
|
11
|
+
export declare function pasteFromBridge(): string | null;
|
|
12
|
+
type AnyPi = any;
|
|
13
|
+
/**
|
|
14
|
+
* Register prefix+p as the paste shortcut.
|
|
15
|
+
* Reads from bridge file and sends content to terminal.
|
|
16
|
+
*/
|
|
17
|
+
export declare function registerPasteShortcut(pi: AnyPi, Key: AnyPi): void;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=paste-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paste-bridge.d.ts","sourceRoot":"","sources":["../../src/paste-bridge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkCH;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAW/C;AAKD,KAAK,KAAK,GAAG,GAAG,CAAC;AAEjB;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI,CAoBjE"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Paste Bridge — prefix+p shortcut for clipboard paste
|
|
3
|
+
*
|
|
4
|
+
* Reads content from the bridge file (~/.herdr-clipboard) and sends it
|
|
5
|
+
* to the terminal's active pane.
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
8
|
+
import { join } from "node:path";
|
|
9
|
+
import { homedir } from "node:os";
|
|
10
|
+
// ─── Bridge file path ─────────────────────────────────────────────────────────
|
|
11
|
+
const BRIDGE_FILE = join(homedir(), ".herdr-clipboard");
|
|
12
|
+
// ─── Mojibake repair ──────────────────────────────────────────────────────────
|
|
13
|
+
/**
|
|
14
|
+
* Detect UTF-8 mojibake (double-encoding: UTF-8 → Latin-1 → UTF-8).
|
|
15
|
+
*/
|
|
16
|
+
function isMojibake(text) {
|
|
17
|
+
const moji = /[\u00e2\u00c2\u00e3\u00c3][\u0080-\u00ff]/;
|
|
18
|
+
return moji.test(text);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Repair UTF-8 mojibake.
|
|
22
|
+
*/
|
|
23
|
+
function repairMojibake(text) {
|
|
24
|
+
if (!isMojibake(text))
|
|
25
|
+
return text;
|
|
26
|
+
try {
|
|
27
|
+
return Buffer.from(text, "latin1").toString("utf8");
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return text;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// ─── Read from bridge ─────────────────────────────────────────────────────────
|
|
34
|
+
/**
|
|
35
|
+
* Read content from the bridge file.
|
|
36
|
+
* Returns null if the file doesn't exist or is empty.
|
|
37
|
+
*/
|
|
38
|
+
export function pasteFromBridge() {
|
|
39
|
+
try {
|
|
40
|
+
if (!existsSync(BRIDGE_FILE)) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
const content = readFileSync(BRIDGE_FILE, "utf8").trim();
|
|
44
|
+
if (!content)
|
|
45
|
+
return null;
|
|
46
|
+
return repairMojibake(content);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Register prefix+p as the paste shortcut.
|
|
54
|
+
* Reads from bridge file and sends content to terminal.
|
|
55
|
+
*/
|
|
56
|
+
export function registerPasteShortcut(pi, Key) {
|
|
57
|
+
try {
|
|
58
|
+
pi.registerShortcut(Key.prefix("p"), {
|
|
59
|
+
description: "Paste from clipboard bridge",
|
|
60
|
+
handler: async (rawCtx) => {
|
|
61
|
+
const content = pasteFromBridge();
|
|
62
|
+
if (!content) {
|
|
63
|
+
rawCtx.ui.notify("Clipboard bridge is empty", "warning");
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
// Send content to terminal input
|
|
67
|
+
// The ctx.sendKeys approach depends on the runtime API
|
|
68
|
+
// For now, notify success - actual paste to terminal handled by runtime
|
|
69
|
+
rawCtx.ui.notify(`Pasting ${content.length} chars from bridge`, "info");
|
|
70
|
+
// TODO: Send keys to terminal pane when runtime API is available
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
console.error("[paste-bridge] Failed to register shortcut:", err);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=paste-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paste-bridge.js","sourceRoot":"","sources":["../../src/paste-bridge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,iFAAiF;AAEjF,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,kBAAkB,CAAC,CAAC;AAExD,iFAAiF;AAEjF;;GAEG;AACH,SAAS,UAAU,CAAC,IAAY;IAC/B,MAAM,IAAI,GAAG,2CAA2C,CAAC;IACzD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,IAAY;IACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACJ,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,iFAAiF;AAEjF;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC9B,IAAI,CAAC;QACJ,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACb,CAAC;QACD,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACzD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAOD;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAS,EAAE,GAAU;IAC1D,IAAI,CAAC;QACJ,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACpC,WAAW,EAAE,6BAA6B;YAC1C,OAAO,EAAE,KAAK,EAAE,MAAa,EAAE,EAAE;gBAChC,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;gBAClC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACd,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,2BAA2B,EAAE,SAAS,CAAC,CAAC;oBACzD,OAAO;gBACR,CAAC;gBACD,iCAAiC;gBACjC,uDAAuD;gBACvD,wEAAwE;gBACxE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,OAAO,CAAC,MAAM,oBAAoB,EAAE,MAAM,CAAC,CAAC;gBACxE,iEAAiE;YAClE,CAAC;SACD,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,GAAG,CAAC,CAAC;IACnE,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clipboard — Types
|
|
3
|
+
*/
|
|
4
|
+
export interface ClipboardContent {
|
|
5
|
+
text: string;
|
|
6
|
+
html?: string;
|
|
7
|
+
source?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ClipboardOptions {
|
|
10
|
+
notify?: boolean;
|
|
11
|
+
format?: "text" | "html";
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clipboard Bridge Plugin — Main Entry
|
|
3
|
+
*
|
|
4
|
+
* Provides clipboard bridge functionality as a pi plugin.
|
|
5
|
+
* Integrates paste-from-bridge and paste shortcut registration.
|
|
6
|
+
*/
|
|
7
|
+
import type { FrameworkExtension, ToolExtension } from "@pi/framework-plugin-sdk";
|
|
8
|
+
export type { ClipboardBridgeConfig } from "./types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Create a clipboard bridge tool plugin.
|
|
11
|
+
* Provides paste-from-bridge functionality.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createClipboardBridgeTool(): ToolExtension;
|
|
14
|
+
/**
|
|
15
|
+
* Create a clipboard bridge framework extension.
|
|
16
|
+
* For framework detection compatibility.
|
|
17
|
+
*/
|
|
18
|
+
export declare function createClipboardBridgePlugin(): FrameworkExtension;
|
|
19
|
+
/**
|
|
20
|
+
* Register the paste shortcut with pi runtime.
|
|
21
|
+
* Call this during plugin activation.
|
|
22
|
+
*/
|
|
23
|
+
export declare function registerPasteShortcutHandler(pi: unknown, Key: unknown): void;
|
|
24
|
+
/**
|
|
25
|
+
* Default plugin export.
|
|
26
|
+
*/
|
|
27
|
+
export default createClipboardBridgeTool;
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGlF,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,aAAa,CAqBzD;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,kBAAkB,CAahE;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC3C,EAAE,EAAE,OAAO,EACX,GAAG,EAAE,OAAO,GACV,IAAI,CAGN;AAED;;GAEG;eACY,yBAAyB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clipboard Bridge Plugin — Main Entry
|
|
3
|
+
*
|
|
4
|
+
* Provides clipboard bridge functionality as a pi plugin.
|
|
5
|
+
* Integrates paste-from-bridge and paste shortcut registration.
|
|
6
|
+
*/
|
|
7
|
+
import { pasteFromBridge, registerPasteShortcut } from "@pi/clipboard";
|
|
8
|
+
/**
|
|
9
|
+
* Create a clipboard bridge tool plugin.
|
|
10
|
+
* Provides paste-from-bridge functionality.
|
|
11
|
+
*/
|
|
12
|
+
export function createClipboardBridgeTool() {
|
|
13
|
+
return {
|
|
14
|
+
capability: "tool",
|
|
15
|
+
name: "Clipboard Bridge",
|
|
16
|
+
tools: [
|
|
17
|
+
{
|
|
18
|
+
name: "paste-from-bridge",
|
|
19
|
+
description: "Read content from the clipboard bridge file (~/.herdr-clipboard)",
|
|
20
|
+
parameters: {
|
|
21
|
+
type: "object",
|
|
22
|
+
properties: {},
|
|
23
|
+
required: [],
|
|
24
|
+
},
|
|
25
|
+
execute: async () => {
|
|
26
|
+
const content = pasteFromBridge();
|
|
27
|
+
return { content };
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
config: {},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create a clipboard bridge framework extension.
|
|
36
|
+
* For framework detection compatibility.
|
|
37
|
+
*/
|
|
38
|
+
export function createClipboardBridgePlugin() {
|
|
39
|
+
return {
|
|
40
|
+
capability: "framework",
|
|
41
|
+
name: "Clipboard Bridge Plugin",
|
|
42
|
+
detector: {
|
|
43
|
+
detect: async () => {
|
|
44
|
+
// This plugin doesn't detect frameworks, it's a utility plugin
|
|
45
|
+
return false;
|
|
46
|
+
},
|
|
47
|
+
signals: [],
|
|
48
|
+
},
|
|
49
|
+
config: {},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Register the paste shortcut with pi runtime.
|
|
54
|
+
* Call this during plugin activation.
|
|
55
|
+
*/
|
|
56
|
+
export function registerPasteShortcutHandler(pi, Key) {
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
58
|
+
registerPasteShortcut(pi, Key);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Default plugin export.
|
|
62
|
+
*/
|
|
63
|
+
export default createClipboardBridgeTool;
|
|
64
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAIvE;;;GAGG;AACH,MAAM,UAAU,yBAAyB;IACxC,OAAO;QACN,UAAU,EAAE,MAAM;QAClB,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE;YACN;gBACC,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EAAE,kEAAkE;gBAC/E,UAAU,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,EAAE;oBACd,QAAQ,EAAE,EAAE;iBACZ;gBACD,OAAO,EAAE,KAAK,IAAI,EAAE;oBACnB,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;oBAClC,OAAO,EAAE,OAAO,EAAE,CAAC;gBACpB,CAAC;aACD;SACD;QACD,MAAM,EAAE,EAAE;KACV,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B;IAC1C,OAAO;QACN,UAAU,EAAE,WAAW;QACvB,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE;YACT,MAAM,EAAE,KAAK,IAAI,EAAE;gBAClB,+DAA+D;gBAC/D,OAAO,KAAK,CAAC;YACd,CAAC;YACD,OAAO,EAAE,EAAE;SACX;QACD,MAAM,EAAE,EAAE;KACV,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC3C,EAAW,EACX,GAAY;IAEZ,8DAA8D;IAC9D,qBAAqB,CAAC,EAAS,EAAE,GAAU,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,eAAe,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clipboard Bridge Plugin — Types
|
|
3
|
+
*/
|
|
4
|
+
import type { ToolExtension } from "@pi/framework-plugin-sdk";
|
|
5
|
+
export interface ClipboardBridgeConfig {
|
|
6
|
+
/** Enable the paste shortcut (default: true) */
|
|
7
|
+
enablePasteShortcut?: boolean;
|
|
8
|
+
/** Bridge file path (default: ~/.herdr-clipboard) */
|
|
9
|
+
bridgePath?: string;
|
|
10
|
+
/** Auto-sync to clipboard (default: true) */
|
|
11
|
+
autoSync?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface ClipboardBridgeTool extends ToolExtension {
|
|
14
|
+
capability: "tool";
|
|
15
|
+
name: "Clipboard Bridge";
|
|
16
|
+
tools: {
|
|
17
|
+
name: "paste-from-bridge";
|
|
18
|
+
description: "Read content from the clipboard bridge file and return it";
|
|
19
|
+
parameters: {
|
|
20
|
+
type: "object";
|
|
21
|
+
properties: {};
|
|
22
|
+
required: [];
|
|
23
|
+
};
|
|
24
|
+
execute: () => Promise<{
|
|
25
|
+
content: string | null;
|
|
26
|
+
}>;
|
|
27
|
+
}[];
|
|
28
|
+
config: ClipboardBridgeConfig;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,WAAW,qBAAqB;IACrC,gDAAgD;IAChD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE;QACN,IAAI,EAAE,mBAAmB,CAAC;QAC1B,WAAW,EAAE,2DAA2D,CAAC;QACzE,UAAU,EAAE;YACX,IAAI,EAAE,QAAQ,CAAC;YACf,UAAU,EAAE,EAAE,CAAC;YACf,QAAQ,EAAE,EAAE,CAAC;SACb,CAAC;QACF,OAAO,EAAE,MAAM,OAAO,CAAC;YAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC,CAAC;KACnD,EAAE,CAAC;IACJ,MAAM,EAAE,qBAAqB,CAAC;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/discover.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAoCrE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAM,GAAG,gBAAgB,EAAE,CAG9G"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { readdirSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join, extname } from "node:path";
|
|
3
|
+
const CODE_EXTS = new Set([".ts", ".tsx", ".js", ".jsx", ".py", ".go", ".rs", ".java"]);
|
|
4
|
+
function estimateTokens(text) {
|
|
5
|
+
return Math.ceil(text.length / 4);
|
|
6
|
+
}
|
|
7
|
+
function scanDir(dir, limit) {
|
|
8
|
+
const results = [];
|
|
9
|
+
try {
|
|
10
|
+
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
11
|
+
if (results.length >= limit)
|
|
12
|
+
break;
|
|
13
|
+
const full = join(dir, entry.name);
|
|
14
|
+
if (entry.isDirectory() && !entry.name.startsWith(".") && entry.name !== "node_modules") {
|
|
15
|
+
results.push(...scanDir(full, limit - results.length));
|
|
16
|
+
}
|
|
17
|
+
else if (entry.isFile() && CODE_EXTS.has(extname(entry.name))) {
|
|
18
|
+
try {
|
|
19
|
+
const content = readFileSync(full, "utf8").slice(0, 8000);
|
|
20
|
+
results.push({
|
|
21
|
+
id: full,
|
|
22
|
+
kind: "source",
|
|
23
|
+
path: full,
|
|
24
|
+
title: entry.name,
|
|
25
|
+
content,
|
|
26
|
+
tokens: estimateTokens(content),
|
|
27
|
+
trust: "high",
|
|
28
|
+
tags: [extname(entry.name).replace(".", "")],
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
catch { /* skip unreadable */ }
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
catch { /* skip inaccessible */ }
|
|
36
|
+
return results;
|
|
37
|
+
}
|
|
38
|
+
export function discoverContext(root, options = {}) {
|
|
39
|
+
const limit = options.limit ?? 50;
|
|
40
|
+
return scanDir(root, limit);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=discover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAc,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG1C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAExF,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,OAAO,CAAC,GAAW,EAAE,KAAa;IACzC,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9D,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK;gBAAE,MAAM;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBACxF,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACzD,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oBAC1D,OAAO,CAAC,IAAI,CAAC;wBACX,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,IAAI;wBACV,KAAK,EAAE,KAAK,CAAC,IAAI;wBACjB,OAAO;wBACP,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC;wBAC/B,KAAK,EAAE,MAAM;wBACb,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;qBAC7C,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,OAAO,GAAmC,EAAE;IACxF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IAClC,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC"}
|