@aria-cli/tools 1.0.10 → 1.0.11
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/dist-cjs/.tsbuildinfo +1 -0
- package/dist-cjs/ask-user-interaction.d.ts +10 -0
- package/dist-cjs/ask-user-interaction.js +28 -0
- package/dist-cjs/ask-user-interaction.js.map +1 -0
- package/dist-cjs/cache/web-cache.d.ts +52 -0
- package/dist-cjs/cache/web-cache.js +71 -0
- package/dist-cjs/cache/web-cache.js.map +1 -0
- package/dist-cjs/definitions/arion.d.ts +8 -0
- package/dist-cjs/definitions/arion.js +108 -0
- package/dist-cjs/definitions/arion.js.map +1 -0
- package/dist-cjs/definitions/browser/browser.d.ts +2 -0
- package/dist-cjs/definitions/browser/browser.js +422 -0
- package/dist-cjs/definitions/browser/browser.js.map +1 -0
- package/dist-cjs/definitions/browser/index.d.ts +1 -0
- package/dist-cjs/definitions/browser/index.js +9 -0
- package/dist-cjs/definitions/browser/index.js.map +1 -0
- package/dist-cjs/definitions/browser/pw-downloads.d.ts +13 -0
- package/dist-cjs/definitions/browser/pw-downloads.js +118 -0
- package/dist-cjs/definitions/browser/pw-downloads.js.map +1 -0
- package/dist-cjs/definitions/browser/pw-interactions.d.ts +78 -0
- package/dist-cjs/definitions/browser/pw-interactions.js +214 -0
- package/dist-cjs/definitions/browser/pw-interactions.js.map +1 -0
- package/dist-cjs/definitions/browser/pw-responses.d.ts +28 -0
- package/dist-cjs/definitions/browser/pw-responses.js +85 -0
- package/dist-cjs/definitions/browser/pw-responses.js.map +1 -0
- package/dist-cjs/definitions/browser/pw-session.d.ts +65 -0
- package/dist-cjs/definitions/browser/pw-session.js +327 -0
- package/dist-cjs/definitions/browser/pw-session.js.map +1 -0
- package/dist-cjs/definitions/browser/pw-shared.d.ts +22 -0
- package/dist-cjs/definitions/browser/pw-shared.js +73 -0
- package/dist-cjs/definitions/browser/pw-shared.js.map +1 -0
- package/dist-cjs/definitions/browser/pw-snapshot.d.ts +34 -0
- package/dist-cjs/definitions/browser/pw-snapshot.js +308 -0
- package/dist-cjs/definitions/browser/pw-snapshot.js.map +1 -0
- package/dist-cjs/definitions/browser/pw-state.d.ts +22 -0
- package/dist-cjs/definitions/browser/pw-state.js +71 -0
- package/dist-cjs/definitions/browser/pw-state.js.map +1 -0
- package/dist-cjs/definitions/browser/types.d.ts +277 -0
- package/dist-cjs/definitions/browser/types.js +6 -0
- package/dist-cjs/definitions/browser/types.js.map +1 -0
- package/dist-cjs/definitions/code-intelligence.d.ts +8 -0
- package/dist-cjs/definitions/code-intelligence.js +474 -0
- package/dist-cjs/definitions/code-intelligence.js.map +1 -0
- package/dist-cjs/definitions/core.d.ts +47 -0
- package/dist-cjs/definitions/core.js +134 -0
- package/dist-cjs/definitions/core.js.map +1 -0
- package/dist-cjs/definitions/delegation.d.ts +11 -0
- package/dist-cjs/definitions/delegation.js +516 -0
- package/dist-cjs/definitions/delegation.js.map +1 -0
- package/dist-cjs/definitions/deploy.d.ts +15 -0
- package/dist-cjs/definitions/deploy.js +69 -0
- package/dist-cjs/definitions/deploy.js.map +1 -0
- package/dist-cjs/definitions/filesystem.d.ts +9 -0
- package/dist-cjs/definitions/filesystem.js +200 -0
- package/dist-cjs/definitions/filesystem.js.map +1 -0
- package/dist-cjs/definitions/frg.d.ts +3 -0
- package/dist-cjs/definitions/frg.js +67 -0
- package/dist-cjs/definitions/frg.js.map +1 -0
- package/dist-cjs/definitions/index.d.ts +19 -0
- package/dist-cjs/definitions/index.js +44 -0
- package/dist-cjs/definitions/index.js.map +1 -0
- package/dist-cjs/definitions/memory.d.ts +8 -0
- package/dist-cjs/definitions/memory.js +127 -0
- package/dist-cjs/definitions/memory.js.map +1 -0
- package/dist-cjs/definitions/messaging.d.ts +11 -0
- package/dist-cjs/definitions/messaging.js +632 -0
- package/dist-cjs/definitions/messaging.js.map +1 -0
- package/dist-cjs/definitions/meta.d.ts +11 -0
- package/dist-cjs/definitions/meta.js +353 -0
- package/dist-cjs/definitions/meta.js.map +1 -0
- package/dist-cjs/definitions/network.d.ts +11 -0
- package/dist-cjs/definitions/network.js +163 -0
- package/dist-cjs/definitions/network.js.map +1 -0
- package/dist-cjs/definitions/outlook.d.ts +2 -0
- package/dist-cjs/definitions/outlook.js +281 -0
- package/dist-cjs/definitions/outlook.js.map +1 -0
- package/dist-cjs/definitions/patch/apply-patch.d.ts +11 -0
- package/dist-cjs/definitions/patch/apply-patch.js +192 -0
- package/dist-cjs/definitions/patch/apply-patch.js.map +1 -0
- package/dist-cjs/definitions/patch/fuzzy-match.d.ts +10 -0
- package/dist-cjs/definitions/patch/fuzzy-match.js +173 -0
- package/dist-cjs/definitions/patch/fuzzy-match.js.map +1 -0
- package/dist-cjs/definitions/patch/index.d.ts +1 -0
- package/dist-cjs/definitions/patch/index.js +6 -0
- package/dist-cjs/definitions/patch/index.js.map +1 -0
- package/dist-cjs/definitions/patch/patch-parser.d.ts +50 -0
- package/dist-cjs/definitions/patch/patch-parser.js +216 -0
- package/dist-cjs/definitions/patch/patch-parser.js.map +1 -0
- package/dist-cjs/definitions/patch/sandbox-paths.d.ts +18 -0
- package/dist-cjs/definitions/patch/sandbox-paths.js +114 -0
- package/dist-cjs/definitions/patch/sandbox-paths.js.map +1 -0
- package/dist-cjs/definitions/process/index.d.ts +1 -0
- package/dist-cjs/definitions/process/index.js +9 -0
- package/dist-cjs/definitions/process/index.js.map +1 -0
- package/dist-cjs/definitions/process/process-registry.d.ts +67 -0
- package/dist-cjs/definitions/process/process-registry.js +232 -0
- package/dist-cjs/definitions/process/process-registry.js.map +1 -0
- package/dist-cjs/definitions/process/process.d.ts +9 -0
- package/dist-cjs/definitions/process/process.js +390 -0
- package/dist-cjs/definitions/process/process.js.map +1 -0
- package/dist-cjs/definitions/process/pty-keys.d.ts +13 -0
- package/dist-cjs/definitions/process/pty-keys.js +260 -0
- package/dist-cjs/definitions/process/pty-keys.js.map +1 -0
- package/dist-cjs/definitions/process/session-slug.d.ts +1 -0
- package/dist-cjs/definitions/process/session-slug.js +146 -0
- package/dist-cjs/definitions/process/session-slug.js.map +1 -0
- package/dist-cjs/definitions/quip.d.ts +2 -0
- package/dist-cjs/definitions/quip.js +199 -0
- package/dist-cjs/definitions/quip.js.map +1 -0
- package/dist-cjs/definitions/search.d.ts +9 -0
- package/dist-cjs/definitions/search.js +64 -0
- package/dist-cjs/definitions/search.js.map +1 -0
- package/dist-cjs/definitions/session-history.d.ts +11 -0
- package/dist-cjs/definitions/session-history.js +73 -0
- package/dist-cjs/definitions/session-history.js.map +1 -0
- package/dist-cjs/definitions/shell.d.ts +8 -0
- package/dist-cjs/definitions/shell.js +185 -0
- package/dist-cjs/definitions/shell.js.map +1 -0
- package/dist-cjs/definitions/slack.d.ts +2 -0
- package/dist-cjs/definitions/slack.js +184 -0
- package/dist-cjs/definitions/slack.js.map +1 -0
- package/dist-cjs/definitions/web.d.ts +8 -0
- package/dist-cjs/definitions/web.js +113 -0
- package/dist-cjs/definitions/web.js.map +1 -0
- package/dist-cjs/executors/apply-patch.d.ts +51 -0
- package/dist-cjs/executors/apply-patch.js +939 -0
- package/dist-cjs/executors/apply-patch.js.map +1 -0
- package/dist-cjs/executors/arion.d.ts +50 -0
- package/dist-cjs/executors/arion.js +126 -0
- package/dist-cjs/executors/arion.js.map +1 -0
- package/dist-cjs/executors/code-intelligence.d.ts +138 -0
- package/dist-cjs/executors/code-intelligence.js +926 -0
- package/dist-cjs/executors/code-intelligence.js.map +1 -0
- package/dist-cjs/executors/deploy.d.ts +169 -0
- package/dist-cjs/executors/deploy.js +870 -0
- package/dist-cjs/executors/deploy.js.map +1 -0
- package/dist-cjs/executors/filesystem.d.ts +150 -0
- package/dist-cjs/executors/filesystem.js +1168 -0
- package/dist-cjs/executors/filesystem.js.map +1 -0
- package/dist-cjs/executors/frg-freshness.d.ts +93 -0
- package/dist-cjs/executors/frg-freshness.js +628 -0
- package/dist-cjs/executors/frg-freshness.js.map +1 -0
- package/dist-cjs/executors/frg.d.ts +27 -0
- package/dist-cjs/executors/frg.js +335 -0
- package/dist-cjs/executors/frg.js.map +1 -0
- package/dist-cjs/executors/index.d.ts +44 -0
- package/dist-cjs/executors/index.js +144 -0
- package/dist-cjs/executors/index.js.map +1 -0
- package/dist-cjs/executors/learning-meta.d.ts +87 -0
- package/dist-cjs/executors/learning-meta.js +1166 -0
- package/dist-cjs/executors/learning-meta.js.map +1 -0
- package/dist-cjs/executors/lsp-client.d.ts +38 -0
- package/dist-cjs/executors/lsp-client.js +311 -0
- package/dist-cjs/executors/lsp-client.js.map +1 -0
- package/dist-cjs/executors/memory.d.ts +203 -0
- package/dist-cjs/executors/memory.js +797 -0
- package/dist-cjs/executors/memory.js.map +1 -0
- package/dist-cjs/executors/meta.d.ts +73 -0
- package/dist-cjs/executors/meta.js +227 -0
- package/dist-cjs/executors/meta.js.map +1 -0
- package/dist-cjs/executors/process-registry.d.ts +98 -0
- package/dist-cjs/executors/process-registry.js +470 -0
- package/dist-cjs/executors/process-registry.js.map +1 -0
- package/dist-cjs/executors/pty-session-store.d.ts +14 -0
- package/dist-cjs/executors/pty-session-store.js +35 -0
- package/dist-cjs/executors/pty-session-store.js.map +1 -0
- package/dist-cjs/executors/pty.d.ts +133 -0
- package/dist-cjs/executors/pty.js +313 -0
- package/dist-cjs/executors/pty.js.map +1 -0
- package/dist-cjs/executors/restart.d.ts +13 -0
- package/dist-cjs/executors/restart.js +156 -0
- package/dist-cjs/executors/restart.js.map +1 -0
- package/dist-cjs/executors/search-freshness.d.ts +50 -0
- package/dist-cjs/executors/search-freshness.js +235 -0
- package/dist-cjs/executors/search-freshness.js.map +1 -0
- package/dist-cjs/executors/search-types.d.ts +52 -0
- package/dist-cjs/executors/search-types.js +57 -0
- package/dist-cjs/executors/search-types.js.map +1 -0
- package/dist-cjs/executors/search.d.ts +11 -0
- package/dist-cjs/executors/search.js +103 -0
- package/dist-cjs/executors/search.js.map +1 -0
- package/dist-cjs/executors/self-diagnose.d.ts +89 -0
- package/dist-cjs/executors/self-diagnose.js +435 -0
- package/dist-cjs/executors/self-diagnose.js.map +1 -0
- package/dist-cjs/executors/session-history.d.ts +75 -0
- package/dist-cjs/executors/session-history.js +321 -0
- package/dist-cjs/executors/session-history.js.map +1 -0
- package/dist-cjs/executors/shell-safety.d.ts +27 -0
- package/dist-cjs/executors/shell-safety.js +479 -0
- package/dist-cjs/executors/shell-safety.js.map +1 -0
- package/dist-cjs/executors/shell.d.ts +168 -0
- package/dist-cjs/executors/shell.js +1002 -0
- package/dist-cjs/executors/shell.js.map +1 -0
- package/dist-cjs/executors/utils.d.ts +20 -0
- package/dist-cjs/executors/utils.js +74 -0
- package/dist-cjs/executors/utils.js.map +1 -0
- package/dist-cjs/executors/web.d.ts +89 -0
- package/dist-cjs/executors/web.js +548 -0
- package/dist-cjs/executors/web.js.map +1 -0
- package/dist-cjs/extraction/content-extraction.d.ts +48 -0
- package/dist-cjs/extraction/content-extraction.js +244 -0
- package/dist-cjs/extraction/content-extraction.js.map +1 -0
- package/dist-cjs/extraction/index.d.ts +4 -0
- package/dist-cjs/extraction/index.js +9 -0
- package/dist-cjs/extraction/index.js.map +1 -0
- package/dist-cjs/headless-control-contract.d.ts +3182 -0
- package/dist-cjs/headless-control-contract.js +973 -0
- package/dist-cjs/headless-control-contract.js.map +1 -0
- package/dist-cjs/index.d.ts +62 -0
- package/dist-cjs/index.js +438 -0
- package/dist-cjs/index.js.map +1 -0
- package/dist-cjs/local-control-http-auth.d.ts +2 -0
- package/dist-cjs/local-control-http-auth.js +6 -0
- package/dist-cjs/local-control-http-auth.js.map +1 -0
- package/dist-cjs/mcp/client.d.ts +68 -0
- package/dist-cjs/mcp/client.js +186 -0
- package/dist-cjs/mcp/client.js.map +1 -0
- package/dist-cjs/mcp/connection.d.ts +54 -0
- package/dist-cjs/mcp/connection.js +485 -0
- package/dist-cjs/mcp/connection.js.map +1 -0
- package/dist-cjs/mcp/index.d.ts +10 -0
- package/dist-cjs/mcp/index.js +31 -0
- package/dist-cjs/mcp/index.js.map +1 -0
- package/dist-cjs/mcp/jsonrpc.d.ts +36 -0
- package/dist-cjs/mcp/jsonrpc.js +149 -0
- package/dist-cjs/mcp/jsonrpc.js.map +1 -0
- package/dist-cjs/mcp/types.d.ts +178 -0
- package/dist-cjs/mcp/types.js +9 -0
- package/dist-cjs/mcp/types.js.map +1 -0
- package/dist-cjs/network-control-adapter.d.ts +4 -0
- package/dist-cjs/network-control-adapter.js +78 -0
- package/dist-cjs/network-control-adapter.js.map +1 -0
- package/dist-cjs/network-runtime/address-types.d.ts +201 -0
- package/dist-cjs/network-runtime/address-types.js +169 -0
- package/dist-cjs/network-runtime/address-types.js.map +1 -0
- package/dist-cjs/network-runtime/db-owner-fencing.d.ts +43 -0
- package/dist-cjs/network-runtime/db-owner-fencing.js +77 -0
- package/dist-cjs/network-runtime/db-owner-fencing.js.map +1 -0
- package/dist-cjs/network-runtime/delivery-receipts.d.ts +117 -0
- package/dist-cjs/network-runtime/delivery-receipts.js +277 -0
- package/dist-cjs/network-runtime/delivery-receipts.js.map +1 -0
- package/dist-cjs/network-runtime/direct-endpoint-authority.d.ts +8 -0
- package/dist-cjs/network-runtime/direct-endpoint-authority.js +30 -0
- package/dist-cjs/network-runtime/direct-endpoint-authority.js.map +1 -0
- package/dist-cjs/network-runtime/index.d.ts +24 -0
- package/dist-cjs/network-runtime/index.js +173 -0
- package/dist-cjs/network-runtime/index.js.map +1 -0
- package/dist-cjs/network-runtime/local-control-contract.d.ts +758 -0
- package/dist-cjs/network-runtime/local-control-contract.js +634 -0
- package/dist-cjs/network-runtime/local-control-contract.js.map +1 -0
- package/dist-cjs/network-runtime/node-store-contract.d.ts +49 -0
- package/dist-cjs/network-runtime/node-store-contract.js +39 -0
- package/dist-cjs/network-runtime/node-store-contract.js.map +1 -0
- package/dist-cjs/network-runtime/pair-route-contract.d.ts +100 -0
- package/dist-cjs/network-runtime/pair-route-contract.js +81 -0
- package/dist-cjs/network-runtime/pair-route-contract.js.map +1 -0
- package/dist-cjs/network-runtime/peer-capabilities.d.ts +10 -0
- package/dist-cjs/network-runtime/peer-capabilities.js +38 -0
- package/dist-cjs/network-runtime/peer-capabilities.js.map +1 -0
- package/dist-cjs/network-runtime/peer-principal-ref.d.ts +9 -0
- package/dist-cjs/network-runtime/peer-principal-ref.js +16 -0
- package/dist-cjs/network-runtime/peer-principal-ref.js.map +1 -0
- package/dist-cjs/network-runtime/peer-state-machine.d.ts +70 -0
- package/dist-cjs/network-runtime/peer-state-machine.js +130 -0
- package/dist-cjs/network-runtime/peer-state-machine.js.map +1 -0
- package/dist-cjs/network-runtime/protocol-schemas.d.ts +328 -0
- package/dist-cjs/network-runtime/protocol-schemas.js +213 -0
- package/dist-cjs/network-runtime/protocol-schemas.js.map +1 -0
- package/dist-cjs/network-runtime/runtime-bootstrap-contract.d.ts +81 -0
- package/dist-cjs/network-runtime/runtime-bootstrap-contract.js +64 -0
- package/dist-cjs/network-runtime/runtime-bootstrap-contract.js.map +1 -0
- package/dist-cjs/outlook/desktop-session.d.ts +68 -0
- package/dist-cjs/outlook/desktop-session.js +319 -0
- package/dist-cjs/outlook/desktop-session.js.map +1 -0
- package/dist-cjs/package.json +3 -0
- package/dist-cjs/policy.d.ts +43 -0
- package/dist-cjs/policy.js +156 -0
- package/dist-cjs/policy.js.map +1 -0
- package/dist-cjs/providers/brave.d.ts +10 -0
- package/dist-cjs/providers/brave.js +67 -0
- package/dist-cjs/providers/brave.js.map +1 -0
- package/dist-cjs/providers/duckduckgo.d.ts +18 -0
- package/dist-cjs/providers/duckduckgo.js +181 -0
- package/dist-cjs/providers/duckduckgo.js.map +1 -0
- package/dist-cjs/providers/exa.d.ts +10 -0
- package/dist-cjs/providers/exa.js +68 -0
- package/dist-cjs/providers/exa.js.map +1 -0
- package/dist-cjs/providers/firecrawl.d.ts +10 -0
- package/dist-cjs/providers/firecrawl.js +60 -0
- package/dist-cjs/providers/firecrawl.js.map +1 -0
- package/dist-cjs/providers/index.d.ts +8 -0
- package/dist-cjs/providers/index.js +18 -0
- package/dist-cjs/providers/index.js.map +1 -0
- package/dist-cjs/providers/jina.d.ts +10 -0
- package/dist-cjs/providers/jina.js +54 -0
- package/dist-cjs/providers/jina.js.map +1 -0
- package/dist-cjs/providers/router.d.ts +21 -0
- package/dist-cjs/providers/router.js +101 -0
- package/dist-cjs/providers/router.js.map +1 -0
- package/dist-cjs/providers/search-provider.d.ts +35 -0
- package/dist-cjs/providers/search-provider.js +37 -0
- package/dist-cjs/providers/search-provider.js.map +1 -0
- package/dist-cjs/providers/tavily.d.ts +10 -0
- package/dist-cjs/providers/tavily.js +59 -0
- package/dist-cjs/providers/tavily.js.map +1 -0
- package/dist-cjs/quip/desktop-session.d.ts +69 -0
- package/dist-cjs/quip/desktop-session.js +354 -0
- package/dist-cjs/quip/desktop-session.js.map +1 -0
- package/dist-cjs/registry/index.d.ts +1 -0
- package/dist-cjs/registry/index.js +7 -0
- package/dist-cjs/registry/index.js.map +1 -0
- package/dist-cjs/registry/registry.d.ts +156 -0
- package/dist-cjs/registry/registry.js +762 -0
- package/dist-cjs/registry/registry.js.map +1 -0
- package/dist-cjs/runtime-socket-local-control-client.d.ts +10 -0
- package/dist-cjs/runtime-socket-local-control-client.js +368 -0
- package/dist-cjs/runtime-socket-local-control-client.js.map +1 -0
- package/dist-cjs/security/dns-normalization.d.ts +6 -0
- package/dist-cjs/security/dns-normalization.js +23 -0
- package/dist-cjs/security/dns-normalization.js.map +1 -0
- package/dist-cjs/security/dns-pinning.d.ts +27 -0
- package/dist-cjs/security/dns-pinning.js +161 -0
- package/dist-cjs/security/dns-pinning.js.map +1 -0
- package/dist-cjs/security/external-content.d.ts +40 -0
- package/dist-cjs/security/external-content.js +96 -0
- package/dist-cjs/security/external-content.js.map +1 -0
- package/dist-cjs/security/ssrf.d.ts +40 -0
- package/dist-cjs/security/ssrf.js +222 -0
- package/dist-cjs/security/ssrf.js.map +1 -0
- package/dist-cjs/slack/desktop-session.d.ts +69 -0
- package/dist-cjs/slack/desktop-session.js +367 -0
- package/dist-cjs/slack/desktop-session.js.map +1 -0
- package/dist-cjs/tool-factory.d.ts +46 -0
- package/dist-cjs/tool-factory.js +51 -0
- package/dist-cjs/tool-factory.js.map +1 -0
- package/dist-cjs/types.d.ts +1192 -0
- package/dist-cjs/types.js +9 -0
- package/dist-cjs/types.js.map +1 -0
- package/dist-cjs/utils/retry.d.ts +11 -0
- package/dist-cjs/utils/retry.js +170 -0
- package/dist-cjs/utils/retry.js.map +1 -0
- package/dist-cjs/utils/safe-parse-json.d.ts +26 -0
- package/dist-cjs/utils/safe-parse-json.js +165 -0
- package/dist-cjs/utils/safe-parse-json.js.map +1 -0
- package/dist-cjs/utils/url.d.ts +10 -0
- package/dist-cjs/utils/url.js +24 -0
- package/dist-cjs/utils/url.js.map +1 -0
- package/package.json +7 -6
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SearchProvider, SearchOptions, SearchResult, SearchProviderEnv } from "./search-provider.js";
|
|
2
|
+
export declare class JinaSearchProvider implements SearchProvider {
|
|
3
|
+
private readonly env;
|
|
4
|
+
readonly name = "jina";
|
|
5
|
+
readonly requiresApiKey = false;
|
|
6
|
+
readonly priority = 5;
|
|
7
|
+
constructor(env?: SearchProviderEnv | Record<string, string | undefined>);
|
|
8
|
+
isAvailable(): boolean;
|
|
9
|
+
search(query: string, options?: SearchOptions): Promise<SearchResult[]>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JinaSearchProvider = void 0;
|
|
4
|
+
const search_provider_js_1 = require("./search-provider.js");
|
|
5
|
+
class JinaSearchProvider {
|
|
6
|
+
env;
|
|
7
|
+
name = "jina";
|
|
8
|
+
requiresApiKey = false;
|
|
9
|
+
priority = 5;
|
|
10
|
+
constructor(env = process.env) {
|
|
11
|
+
this.env = env;
|
|
12
|
+
}
|
|
13
|
+
isAvailable() {
|
|
14
|
+
// Jina works without an API key (20 req/min), or with a key (200 req/min)
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
async search(query, options) {
|
|
18
|
+
const apiKey = (0, search_provider_js_1.resolveSearchProviderEnv)(this.env).JINA_API_KEY;
|
|
19
|
+
const limit = options?.limit ?? 5;
|
|
20
|
+
const url = new URL("https://s.jina.ai/");
|
|
21
|
+
url.searchParams.set("q", query);
|
|
22
|
+
const headers = {
|
|
23
|
+
Accept: "application/json",
|
|
24
|
+
};
|
|
25
|
+
if (apiKey) {
|
|
26
|
+
headers.Authorization = `Bearer ${apiKey}`;
|
|
27
|
+
}
|
|
28
|
+
const { signal, cleanup } = (0, search_provider_js_1.createProviderAbortSignal)(30_000, options?.signal);
|
|
29
|
+
try {
|
|
30
|
+
const response = await fetch(url.toString(), {
|
|
31
|
+
method: "GET",
|
|
32
|
+
headers,
|
|
33
|
+
signal,
|
|
34
|
+
});
|
|
35
|
+
if (!response.ok) {
|
|
36
|
+
throw new Error(`Jina Search API error: ${response.status} ${response.statusText}`);
|
|
37
|
+
}
|
|
38
|
+
const json = await response.json();
|
|
39
|
+
const results = (json.data || []);
|
|
40
|
+
// Apply limit client-side
|
|
41
|
+
return results.slice(0, limit).map((r) => ({
|
|
42
|
+
title: r.title,
|
|
43
|
+
url: r.url,
|
|
44
|
+
content: r.content,
|
|
45
|
+
score: r.score,
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
finally {
|
|
49
|
+
cleanup();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.JinaSearchProvider = JinaSearchProvider;
|
|
54
|
+
//# sourceMappingURL=jina.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jina.js","sourceRoot":"","sources":["../../src/providers/jina.ts"],"names":[],"mappings":";;;AAMA,6DAA2F;AAE3F,MAAa,kBAAkB;IAMV;IALV,IAAI,GAAG,MAAM,CAAC;IACd,cAAc,GAAG,KAAK,CAAC;IACvB,QAAQ,GAAG,CAAC,CAAC;IAEtB,YACmB,MAA8D,OAAO,CAAC,GAAG;QAAzE,QAAG,GAAH,GAAG,CAAsE;IACzF,CAAC;IAEJ,WAAW;QACT,0EAA0E;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,OAAuB;QACjD,MAAM,MAAM,GAAG,IAAA,6CAAwB,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC;QAC/D,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC;QAElC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAC1C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAEjC,MAAM,OAAO,GAAgB;YAC3B,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,aAAa,GAAG,UAAU,MAAM,EAAE,CAAC;QAC7C,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,8CAAyB,EAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE/E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;gBAC3C,MAAM,EAAE,KAAK;gBACb,OAAO;gBACP,MAAM;aACP,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACtF,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAK9B,CAAC;YAEH,0BAA0B;YAC1B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzC,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,KAAK,EAAE,CAAC,CAAC,KAAK;aACf,CAAC,CAAC,CAAC;QACN,CAAC;gBAAS,CAAC;YACT,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AA7DD,gDA6DC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { SearchProvider, SearchOptions, SearchResult, SearchProviderEnv } from "./search-provider.js";
|
|
2
|
+
export declare class SearchProviderRouter {
|
|
3
|
+
private _providers;
|
|
4
|
+
private readonly env;
|
|
5
|
+
constructor(_providers: SearchProvider[], env?: SearchProviderEnv | Record<string, string | undefined>);
|
|
6
|
+
/**
|
|
7
|
+
* Resolves the best available search provider.
|
|
8
|
+
* Priority:
|
|
9
|
+
* 1. Explicit override via ARIA_SEARCH_PROVIDER env var
|
|
10
|
+
* 2. Highest-priority available provider (lowest priority number)
|
|
11
|
+
* @throws {Error} if no providers are available or override is invalid
|
|
12
|
+
*/
|
|
13
|
+
resolve(): SearchProvider;
|
|
14
|
+
/**
|
|
15
|
+
* Performs a search with automatic fallback.
|
|
16
|
+
* Tries providers in priority order (resolved provider first, then others).
|
|
17
|
+
* Circuit breaker: stops at first successful response.
|
|
18
|
+
* @throws {AggregateError} if all providers fail
|
|
19
|
+
*/
|
|
20
|
+
search(query: string, options?: SearchOptions): Promise<SearchResult[]>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SearchProviderRouter = void 0;
|
|
4
|
+
const types_1 = require("@aria-cli/types");
|
|
5
|
+
const search_provider_js_1 = require("./search-provider.js");
|
|
6
|
+
class SearchProviderRouter {
|
|
7
|
+
_providers;
|
|
8
|
+
env;
|
|
9
|
+
constructor(_providers, env = process.env) {
|
|
10
|
+
this._providers = _providers;
|
|
11
|
+
this.env = env;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Resolves the best available search provider.
|
|
15
|
+
* Priority:
|
|
16
|
+
* 1. Explicit override via ARIA_SEARCH_PROVIDER env var
|
|
17
|
+
* 2. Highest-priority available provider (lowest priority number)
|
|
18
|
+
* @throws {Error} if no providers are available or override is invalid
|
|
19
|
+
*/
|
|
20
|
+
resolve() {
|
|
21
|
+
const env = (0, search_provider_js_1.resolveSearchProviderEnv)(this.env);
|
|
22
|
+
// 1. Check for explicit override
|
|
23
|
+
const override = env.ARIA_SEARCH_PROVIDER;
|
|
24
|
+
if (override) {
|
|
25
|
+
const provider = this._providers.find((p) => p.name === override);
|
|
26
|
+
if (!provider) {
|
|
27
|
+
throw new Error(`ARIA_SEARCH_PROVIDER override '${override}' not found in provider registry`);
|
|
28
|
+
}
|
|
29
|
+
// Verify the overridden provider is actually available (e.g., has API key)
|
|
30
|
+
if (!provider.isAvailable()) {
|
|
31
|
+
// Fall through to default priority-based routing
|
|
32
|
+
types_1.log.debug(`[SearchProviderRouter] ARIA_SEARCH_PROVIDER override '${override}' is not available, falling back to priority routing`);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
return provider;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// 2. Select first available provider by priority (lower number = higher priority)
|
|
39
|
+
const sorted = [...this._providers].sort((a, b) => a.priority - b.priority);
|
|
40
|
+
const available = sorted.find((p) => p.isAvailable());
|
|
41
|
+
if (!available) {
|
|
42
|
+
throw new Error("No search providers available. Set at least one API key (BRAVE_API_KEY, TAVILY_API_KEY, etc.)");
|
|
43
|
+
}
|
|
44
|
+
return available;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Performs a search with automatic fallback.
|
|
48
|
+
* Tries providers in priority order (resolved provider first, then others).
|
|
49
|
+
* Circuit breaker: stops at first successful response.
|
|
50
|
+
* @throws {AggregateError} if all providers fail
|
|
51
|
+
*/
|
|
52
|
+
async search(query, options) {
|
|
53
|
+
if (options?.signal?.aborted) {
|
|
54
|
+
throw new Error("Search aborted");
|
|
55
|
+
}
|
|
56
|
+
const env = (0, search_provider_js_1.resolveSearchProviderEnv)(this.env);
|
|
57
|
+
// Get all available providers sorted by priority
|
|
58
|
+
const availableProviders = [...this._providers]
|
|
59
|
+
.filter((p) => p.isAvailable())
|
|
60
|
+
.sort((a, b) => a.priority - b.priority);
|
|
61
|
+
if (availableProviders.length === 0) {
|
|
62
|
+
throw new Error("No search providers available");
|
|
63
|
+
}
|
|
64
|
+
// Honor ARIA_SEARCH_PROVIDER override: try the override provider first
|
|
65
|
+
const override = env.ARIA_SEARCH_PROVIDER;
|
|
66
|
+
if (override) {
|
|
67
|
+
const overrideProvider = availableProviders.find((p) => p.name === override);
|
|
68
|
+
if (overrideProvider) {
|
|
69
|
+
// Move override provider to front of the list
|
|
70
|
+
const reordered = [
|
|
71
|
+
overrideProvider,
|
|
72
|
+
...availableProviders.filter((p) => p.name !== override),
|
|
73
|
+
];
|
|
74
|
+
availableProviders.length = 0;
|
|
75
|
+
availableProviders.push(...reordered);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
const errors = [];
|
|
79
|
+
// Try each provider in order
|
|
80
|
+
for (const provider of availableProviders) {
|
|
81
|
+
if (options?.signal?.aborted) {
|
|
82
|
+
throw new Error("Search aborted");
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
const results = await provider.search(query, options);
|
|
86
|
+
return results; // Circuit breaker: return on first success
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
if (options?.signal?.aborted) {
|
|
90
|
+
throw error instanceof Error ? error : new Error("Search aborted");
|
|
91
|
+
}
|
|
92
|
+
errors.push(error instanceof Error ? error : new Error(`Unknown error from ${provider.name}`));
|
|
93
|
+
// Continue to next provider
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// All providers failed
|
|
97
|
+
throw new AggregateError(errors, `All search providers failed (tried ${availableProviders.length} providers)`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.SearchProviderRouter = SearchProviderRouter;
|
|
101
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/providers/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface SearchOptions {
|
|
2
|
+
limit?: number;
|
|
3
|
+
topic?: "general" | "news";
|
|
4
|
+
domains?: string[];
|
|
5
|
+
excludeDomains?: string[];
|
|
6
|
+
timeRange?: "day" | "week" | "month" | "year";
|
|
7
|
+
signal?: AbortSignal;
|
|
8
|
+
}
|
|
9
|
+
export interface SearchResult {
|
|
10
|
+
title: string;
|
|
11
|
+
url: string;
|
|
12
|
+
content: string;
|
|
13
|
+
score?: number;
|
|
14
|
+
publishedDate?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface SearchProviderEnv {
|
|
17
|
+
ARIA_SEARCH_PROVIDER?: string;
|
|
18
|
+
BRAVE_API_KEY?: string;
|
|
19
|
+
FIRECRAWL_API_KEY?: string;
|
|
20
|
+
EXA_API_KEY?: string;
|
|
21
|
+
TAVILY_API_KEY?: string;
|
|
22
|
+
JINA_API_KEY?: string;
|
|
23
|
+
}
|
|
24
|
+
export declare function resolveSearchProviderEnv(env?: SearchProviderEnv | Record<string, string | undefined>): SearchProviderEnv;
|
|
25
|
+
export interface SearchProvider {
|
|
26
|
+
readonly name: string;
|
|
27
|
+
readonly requiresApiKey: boolean;
|
|
28
|
+
readonly priority: number;
|
|
29
|
+
isAvailable(): boolean;
|
|
30
|
+
search(query: string, options?: SearchOptions): Promise<SearchResult[]>;
|
|
31
|
+
}
|
|
32
|
+
export declare function createProviderAbortSignal(timeoutMs: number, callerSignal?: AbortSignal): {
|
|
33
|
+
signal: AbortSignal;
|
|
34
|
+
cleanup: () => void;
|
|
35
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveSearchProviderEnv = resolveSearchProviderEnv;
|
|
4
|
+
exports.createProviderAbortSignal = createProviderAbortSignal;
|
|
5
|
+
function resolveSearchProviderEnv(env = process.env) {
|
|
6
|
+
return {
|
|
7
|
+
ARIA_SEARCH_PROVIDER: env.ARIA_SEARCH_PROVIDER,
|
|
8
|
+
BRAVE_API_KEY: env.BRAVE_API_KEY,
|
|
9
|
+
FIRECRAWL_API_KEY: env.FIRECRAWL_API_KEY,
|
|
10
|
+
EXA_API_KEY: env.EXA_API_KEY,
|
|
11
|
+
TAVILY_API_KEY: env.TAVILY_API_KEY,
|
|
12
|
+
JINA_API_KEY: env.JINA_API_KEY,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function createProviderAbortSignal(timeoutMs, callerSignal) {
|
|
16
|
+
const controller = new AbortController();
|
|
17
|
+
const onCallerAbort = () => controller.abort();
|
|
18
|
+
if (callerSignal) {
|
|
19
|
+
if (callerSignal.aborted) {
|
|
20
|
+
controller.abort();
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
callerSignal.addEventListener("abort", onCallerAbort, { once: true });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
27
|
+
return {
|
|
28
|
+
signal: controller.signal,
|
|
29
|
+
cleanup: () => {
|
|
30
|
+
clearTimeout(timeout);
|
|
31
|
+
if (callerSignal) {
|
|
32
|
+
callerSignal.removeEventListener("abort", onCallerAbort);
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=search-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-provider.js","sourceRoot":"","sources":["../../src/providers/search-provider.ts"],"names":[],"mappings":";;AA0BA,4DAWC;AAUD,8DA0BC;AA/CD,SAAgB,wBAAwB,CACtC,MAA8D,OAAO,CAAC,GAAG;IAEzE,OAAO;QACL,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;QAC9C,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;QACxC,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,YAAY,EAAE,GAAG,CAAC,YAAY;KAC/B,CAAC;AACJ,CAAC;AAUD,SAAgB,yBAAyB,CACvC,SAAiB,EACjB,YAA0B;IAE1B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAE/C,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACzB,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAEhE,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,OAAO,EAAE,GAAG,EAAE;YACZ,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SearchProvider, SearchOptions, SearchResult, SearchProviderEnv } from "./search-provider.js";
|
|
2
|
+
export declare class TavilySearchProvider implements SearchProvider {
|
|
3
|
+
private readonly env;
|
|
4
|
+
readonly name = "tavily";
|
|
5
|
+
readonly requiresApiKey = true;
|
|
6
|
+
readonly priority = 4;
|
|
7
|
+
constructor(env?: SearchProviderEnv | Record<string, string | undefined>);
|
|
8
|
+
isAvailable(): boolean;
|
|
9
|
+
search(query: string, options?: SearchOptions): Promise<SearchResult[]>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TavilySearchProvider = void 0;
|
|
4
|
+
const search_provider_js_1 = require("./search-provider.js");
|
|
5
|
+
class TavilySearchProvider {
|
|
6
|
+
env;
|
|
7
|
+
name = "tavily";
|
|
8
|
+
requiresApiKey = true;
|
|
9
|
+
priority = 4;
|
|
10
|
+
constructor(env = process.env) {
|
|
11
|
+
this.env = env;
|
|
12
|
+
}
|
|
13
|
+
isAvailable() {
|
|
14
|
+
const apiKey = (0, search_provider_js_1.resolveSearchProviderEnv)(this.env).TAVILY_API_KEY;
|
|
15
|
+
return Boolean(apiKey && apiKey.trim().length > 0);
|
|
16
|
+
}
|
|
17
|
+
async search(query, options) {
|
|
18
|
+
const apiKey = (0, search_provider_js_1.resolveSearchProviderEnv)(this.env).TAVILY_API_KEY;
|
|
19
|
+
if (!apiKey) {
|
|
20
|
+
throw new Error("TAVILY_API_KEY environment variable is not set");
|
|
21
|
+
}
|
|
22
|
+
const limit = options?.limit ?? 5;
|
|
23
|
+
const body = {
|
|
24
|
+
api_key: apiKey,
|
|
25
|
+
query,
|
|
26
|
+
max_results: limit,
|
|
27
|
+
...(options?.topic && { topic: options.topic }),
|
|
28
|
+
...(options?.domains && { include_domains: options.domains }),
|
|
29
|
+
...(options?.excludeDomains && { exclude_domains: options.excludeDomains }),
|
|
30
|
+
};
|
|
31
|
+
const { signal, cleanup } = (0, search_provider_js_1.createProviderAbortSignal)(30_000, options?.signal);
|
|
32
|
+
try {
|
|
33
|
+
const response = await fetch("https://api.tavily.com/search", {
|
|
34
|
+
method: "POST",
|
|
35
|
+
headers: {
|
|
36
|
+
"Content-Type": "application/json",
|
|
37
|
+
},
|
|
38
|
+
body: JSON.stringify(body),
|
|
39
|
+
signal,
|
|
40
|
+
});
|
|
41
|
+
if (!response.ok) {
|
|
42
|
+
throw new Error(`Tavily Search API error: ${response.status} ${response.statusText}`);
|
|
43
|
+
}
|
|
44
|
+
const json = await response.json();
|
|
45
|
+
const results = (json.results || []);
|
|
46
|
+
return results.map((r) => ({
|
|
47
|
+
title: r.title,
|
|
48
|
+
url: r.url,
|
|
49
|
+
content: r.content,
|
|
50
|
+
score: r.score,
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
finally {
|
|
54
|
+
cleanup();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.TavilySearchProvider = TavilySearchProvider;
|
|
59
|
+
//# sourceMappingURL=tavily.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tavily.js","sourceRoot":"","sources":["../../src/providers/tavily.ts"],"names":[],"mappings":";;;AAMA,6DAA2F;AAE3F,MAAa,oBAAoB;IAMZ;IALV,IAAI,GAAG,QAAQ,CAAC;IAChB,cAAc,GAAG,IAAI,CAAC;IACtB,QAAQ,GAAG,CAAC,CAAC;IAEtB,YACmB,MAA8D,OAAO,CAAC,GAAG;QAAzE,QAAG,GAAH,GAAG,CAAsE;IACzF,CAAC;IAEJ,WAAW;QACT,MAAM,MAAM,GAAG,IAAA,6CAAwB,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;QACjE,OAAO,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,OAAuB;QACjD,MAAM,MAAM,GAAG,IAAA,6CAAwB,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;QACjE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC;QAElC,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,MAAM;YACf,KAAK;YACL,WAAW,EAAE,KAAK;YAClB,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/C,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAC7D,GAAG,CAAC,OAAO,EAAE,cAAc,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;SAC5E,CAAC;QAEF,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,8CAAyB,EAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE/E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,+BAA+B,EAAE;gBAC5D,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,MAAM;aACP,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACxF,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAKjC,CAAC;YAEH,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,KAAK,EAAE,CAAC,CAAC,KAAK;aACf,CAAC,CAAC,CAAC;QACN,CAAC;gBAAS,CAAC;YACT,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AAjED,oDAiEC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export interface QuipDocumentSummary {
|
|
2
|
+
threadId: string;
|
|
3
|
+
title: string;
|
|
4
|
+
link: string;
|
|
5
|
+
updatedUsec: number;
|
|
6
|
+
createdUsec: number;
|
|
7
|
+
}
|
|
8
|
+
export interface QuipDocumentListResult {
|
|
9
|
+
documents: QuipDocumentSummary[];
|
|
10
|
+
}
|
|
11
|
+
export interface QuipDocumentDetail {
|
|
12
|
+
threadId: string;
|
|
13
|
+
title: string;
|
|
14
|
+
link: string;
|
|
15
|
+
markdown: string;
|
|
16
|
+
updatedUsec: number;
|
|
17
|
+
createdUsec: number;
|
|
18
|
+
authorId: string;
|
|
19
|
+
}
|
|
20
|
+
export interface QuipCreateResult {
|
|
21
|
+
threadId: string;
|
|
22
|
+
title: string;
|
|
23
|
+
link: string;
|
|
24
|
+
}
|
|
25
|
+
export interface QuipCommentView {
|
|
26
|
+
id: string;
|
|
27
|
+
authorId: string;
|
|
28
|
+
authorName: string;
|
|
29
|
+
text: string;
|
|
30
|
+
createdUsec: number;
|
|
31
|
+
}
|
|
32
|
+
export interface QuipCommentResult {
|
|
33
|
+
threadId: string;
|
|
34
|
+
commentId: string;
|
|
35
|
+
}
|
|
36
|
+
export interface QuipCommentListResult {
|
|
37
|
+
threadId: string;
|
|
38
|
+
comments: QuipCommentView[];
|
|
39
|
+
}
|
|
40
|
+
export interface QuipDesktopClient {
|
|
41
|
+
getUserId(): string;
|
|
42
|
+
listRecentDocuments(input: {
|
|
43
|
+
limit?: number;
|
|
44
|
+
}): Promise<QuipDocumentListResult>;
|
|
45
|
+
searchDocuments(input: {
|
|
46
|
+
query: string;
|
|
47
|
+
limit?: number;
|
|
48
|
+
}): Promise<QuipDocumentListResult>;
|
|
49
|
+
readDocument(input: {
|
|
50
|
+
threadId: string;
|
|
51
|
+
}): Promise<QuipDocumentDetail>;
|
|
52
|
+
createDocument(input: {
|
|
53
|
+
title: string;
|
|
54
|
+
content: string;
|
|
55
|
+
format?: "markdown" | "html";
|
|
56
|
+
folderId?: string;
|
|
57
|
+
}): Promise<QuipCreateResult>;
|
|
58
|
+
addComment(input: {
|
|
59
|
+
threadId: string;
|
|
60
|
+
content: string;
|
|
61
|
+
}): Promise<QuipCommentResult>;
|
|
62
|
+
listComments(input: {
|
|
63
|
+
threadId: string;
|
|
64
|
+
}): Promise<QuipCommentListResult>;
|
|
65
|
+
close(): Promise<void>;
|
|
66
|
+
}
|
|
67
|
+
export declare function createQuipDesktopClient(options?: {
|
|
68
|
+
bootstrapTimeoutMs?: number;
|
|
69
|
+
}): Promise<QuipDesktopClient>;
|