@amaster.ai/pi-web-access 0.1.1

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.
Files changed (76) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +164 -0
  3. package/dist/config.d.ts +19 -0
  4. package/dist/config.d.ts.map +1 -0
  5. package/dist/config.js +129 -0
  6. package/dist/config.js.map +1 -0
  7. package/dist/fetch.d.ts +8 -0
  8. package/dist/fetch.d.ts.map +1 -0
  9. package/dist/fetch.js +67 -0
  10. package/dist/fetch.js.map +1 -0
  11. package/dist/index.d.ts +8 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +179 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/providers/anthropic.d.ts +8 -0
  16. package/dist/providers/anthropic.d.ts.map +1 -0
  17. package/dist/providers/anthropic.js +100 -0
  18. package/dist/providers/anthropic.js.map +1 -0
  19. package/dist/providers/base.d.ts +44 -0
  20. package/dist/providers/base.d.ts.map +1 -0
  21. package/dist/providers/base.js +9 -0
  22. package/dist/providers/base.js.map +1 -0
  23. package/dist/providers/gemini.d.ts +7 -0
  24. package/dist/providers/gemini.d.ts.map +1 -0
  25. package/dist/providers/gemini.js +41 -0
  26. package/dist/providers/gemini.js.map +1 -0
  27. package/dist/providers/index.d.ts +6 -0
  28. package/dist/providers/index.d.ts.map +1 -0
  29. package/dist/providers/index.js +29 -0
  30. package/dist/providers/index.js.map +1 -0
  31. package/dist/providers/kimi.d.ts +8 -0
  32. package/dist/providers/kimi.d.ts.map +1 -0
  33. package/dist/providers/kimi.js +66 -0
  34. package/dist/providers/kimi.js.map +1 -0
  35. package/dist/providers/mimo.d.ts +7 -0
  36. package/dist/providers/mimo.d.ts.map +1 -0
  37. package/dist/providers/mimo.js +45 -0
  38. package/dist/providers/mimo.js.map +1 -0
  39. package/dist/providers/openai.d.ts +7 -0
  40. package/dist/providers/openai.d.ts.map +1 -0
  41. package/dist/providers/openai.js +56 -0
  42. package/dist/providers/openai.js.map +1 -0
  43. package/dist/providers/openrouter.d.ts +8 -0
  44. package/dist/providers/openrouter.d.ts.map +1 -0
  45. package/dist/providers/openrouter.js +83 -0
  46. package/dist/providers/openrouter.js.map +1 -0
  47. package/dist/providers/perplexity.d.ts +8 -0
  48. package/dist/providers/perplexity.d.ts.map +1 -0
  49. package/dist/providers/perplexity.js +99 -0
  50. package/dist/providers/perplexity.js.map +1 -0
  51. package/dist/providers/tavily.d.ts +8 -0
  52. package/dist/providers/tavily.d.ts.map +1 -0
  53. package/dist/providers/tavily.js +79 -0
  54. package/dist/providers/tavily.js.map +1 -0
  55. package/dist/providers/xai.d.ts +16 -0
  56. package/dist/providers/xai.d.ts.map +1 -0
  57. package/dist/providers/xai.js +92 -0
  58. package/dist/providers/xai.js.map +1 -0
  59. package/dist/providers/zai.d.ts +8 -0
  60. package/dist/providers/zai.d.ts.map +1 -0
  61. package/dist/providers/zai.js +78 -0
  62. package/dist/providers/zai.js.map +1 -0
  63. package/dist/search.d.ts +4 -0
  64. package/dist/search.d.ts.map +1 -0
  65. package/dist/search.js +14 -0
  66. package/dist/search.js.map +1 -0
  67. package/dist/summary.d.ts +4 -0
  68. package/dist/summary.d.ts.map +1 -0
  69. package/dist/summary.js +44 -0
  70. package/dist/summary.js.map +1 -0
  71. package/dist/types.d.ts +28 -0
  72. package/dist/types.d.ts.map +1 -0
  73. package/dist/types.js +2 -0
  74. package/dist/types.js.map +1 -0
  75. package/package.json +81 -0
  76. package/preview.png +0 -0
@@ -0,0 +1,4 @@
1
+ import type { SearchParams, SearchResponse } from './providers/index.js';
2
+ import type { WebToolSettings } from './types.js';
3
+ export declare function search(params: SearchParams, settings: WebToolSettings): Promise<SearchResponse>;
4
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAsB,MAAM,CAC1B,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,cAAc,CAAC,CAYzB"}
package/dist/search.js ADDED
@@ -0,0 +1,14 @@
1
+ import { resolveSearchProvider } from './config.js';
2
+ import { getProvider } from './providers/index.js';
3
+ export async function search(params, settings) {
4
+ const resolved = resolveSearchProvider(settings);
5
+ if ('error' in resolved) {
6
+ throw new Error(resolved.error);
7
+ }
8
+ const provider = getProvider(resolved.id);
9
+ if (!provider) {
10
+ throw new Error(`Provider "${resolved.id}" is not registered.`);
11
+ }
12
+ return provider.search(params, resolved);
13
+ }
14
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,MAAoB,EACpB,QAAyB;IAEzB,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,CAAC,EAAE,sBAAsB,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ExtensionContext } from '@earendil-works/pi-coding-agent';
2
+ import type { SummaryModelConfig } from './types.js';
3
+ export declare function summarizeContent(content: string, prompt: string, config: SummaryModelConfig, ctx: ExtensionContext): Promise<string>;
4
+ //# sourceMappingURL=summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAMrD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,EAC1B,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,MAAM,CAAC,CAiDjB"}
@@ -0,0 +1,44 @@
1
+ import { complete } from '@earendil-works/pi-ai';
2
+ const SYSTEM_PROMPT = `You are a content extraction assistant. You receive web page content (in markdown) and a user prompt describing what information to extract or summarize. Respond concisely with only the relevant information requested. Do not add commentary or explanations beyond what was asked.`;
3
+ const MAX_CONTENT_LENGTH = 100_000;
4
+ export async function summarizeContent(content, prompt, config, ctx) {
5
+ const model = ctx.modelRegistry.find(config.provider, config.model);
6
+ if (!model) {
7
+ throw new Error(`Summary model "${config.provider}/${config.model}" not found in model registry.`);
8
+ }
9
+ const auth = await ctx.modelRegistry.getApiKeyAndHeaders(model);
10
+ if (!auth.ok) {
11
+ throw new Error(`Auth failed for summary model: ${auth.error}`);
12
+ }
13
+ const truncated = content.length > MAX_CONTENT_LENGTH
14
+ ? `${content.slice(0, MAX_CONTENT_LENGTH)}\n\n[Content truncated due to length...]`
15
+ : content;
16
+ const options = {
17
+ temperature: 0,
18
+ maxTokens: 4096,
19
+ };
20
+ if (auth.apiKey)
21
+ options.apiKey = auth.apiKey;
22
+ if (auth.headers)
23
+ options.headers = auth.headers;
24
+ const result = await complete(model, {
25
+ systemPrompt: SYSTEM_PROMPT,
26
+ messages: [
27
+ {
28
+ role: 'user',
29
+ content: [
30
+ {
31
+ type: 'text',
32
+ text: `Here is the web page content:\n\n${truncated}\n\n---\n\nUser request: ${prompt}`,
33
+ },
34
+ ],
35
+ timestamp: Date.now(),
36
+ },
37
+ ],
38
+ }, options);
39
+ return result.content
40
+ .filter((c) => c.type === 'text')
41
+ .map((c) => c.text)
42
+ .join('');
43
+ }
44
+ //# sourceMappingURL=summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAIpF,MAAM,aAAa,GAAG,wRAAwR,CAAC;AAE/S,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAEnC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,MAAc,EACd,MAA0B,EAC1B,GAAqB;IAErB,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,kBAAkB,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,gCAAgC,CAClF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAChE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,SAAS,GACb,OAAO,CAAC,MAAM,GAAG,kBAAkB;QACjC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,0CAA0C;QACnF,CAAC,CAAC,OAAO,CAAC;IAEd,MAAM,OAAO,GAA4B;QACvC,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,IAAI;KAChB,CAAC;IACF,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC9C,IAAI,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAEjD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAC3B,KAAK,EACL;QACE,YAAY,EAAE,aAAa;QAC3B,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,oCAAoC,SAAS,4BAA4B,MAAM,EAAE;qBACxF;iBACF;gBACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB;SACF;KACF,EACD,OAAO,CACR,CAAC;IAEF,OAAO,MAAM,CAAC,OAAO;SAClB,MAAM,CAAC,CAAC,CAAC,EAAsB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SACpD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC"}
@@ -0,0 +1,28 @@
1
+ /** Built-in provider identifiers. */
2
+ export type BuiltInProviderId = 'tavily' | 'kimi' | 'mimo' | 'zai' | 'gemini' | 'perplexity' | 'openrouter' | 'xai' | 'openai' | 'anthropic';
3
+ export interface ProviderConfig {
4
+ apiKey?: string;
5
+ baseUrl?: string;
6
+ model?: string;
7
+ headers?: Record<string, string>;
8
+ }
9
+ export interface SummaryModelConfig {
10
+ provider: string;
11
+ model: string;
12
+ }
13
+ export interface SearchConfig {
14
+ provider?: BuiltInProviderId;
15
+ }
16
+ export interface FetchConfig {
17
+ provider?: BuiltInProviderId;
18
+ summary?: SummaryModelConfig;
19
+ }
20
+ export interface WebToolSettings {
21
+ /** Search tool config. */
22
+ search?: SearchConfig;
23
+ /** Fetch tool config. */
24
+ fetch?: FetchConfig;
25
+ /** Per-provider config. */
26
+ providers?: Partial<Record<BuiltInProviderId, ProviderConfig>>;
27
+ }
28
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,MAAM,GACN,MAAM,GACN,KAAK,GACL,QAAQ,GACR,YAAY,GACZ,YAAY,GACZ,KAAK,GACL,QAAQ,GACR,WAAW,CAAC;AAIhB,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,yBAAyB;IACzB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC;CAChE"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,81 @@
1
+ {
2
+ "name": "@amaster.ai/pi-web-access",
3
+ "version": "0.1.1",
4
+ "description": "Pi extension for web search (Tavily, Kimi, Mimo, Z.AI) and URL content extraction",
5
+ "keywords": [
6
+ "pi-package",
7
+ "pi",
8
+ "extension",
9
+ "web-search",
10
+ "web-access",
11
+ "tavily",
12
+ "kimi",
13
+ "mimo",
14
+ "zai"
15
+ ],
16
+ "license": "Apache-2.0",
17
+ "type": "module",
18
+ "sideEffects": false,
19
+ "main": "./dist/index.js",
20
+ "types": "./dist/index.d.ts",
21
+ "exports": {
22
+ ".": {
23
+ "types": "./dist/index.d.ts",
24
+ "default": "./dist/index.js"
25
+ },
26
+ "./package.json": {
27
+ "default": "./package.json"
28
+ }
29
+ },
30
+ "files": [
31
+ "dist",
32
+ "preview.png",
33
+ "README.md"
34
+ ],
35
+ "pi": {
36
+ "image": "https://raw.githubusercontent.com/TGYD-helige/pi/master/packages/pi-web-access/preview.png",
37
+ "extensions": [
38
+ "./dist/index.js"
39
+ ]
40
+ },
41
+ "publishConfig": {
42
+ "access": "public"
43
+ },
44
+ "repository": {
45
+ "type": "git",
46
+ "url": "https://github.com/TGYD-helige/pi.git",
47
+ "directory": "packages/pi-web-access"
48
+ },
49
+ "dependencies": {
50
+ "turndown": "^7.2.0",
51
+ "@amaster.ai/pi-shared": "0.1.1"
52
+ },
53
+ "peerDependencies": {
54
+ "@earendil-works/pi-ai": ">=0.74.0",
55
+ "@earendil-works/pi-coding-agent": ">=0.74.0",
56
+ "typebox": "*"
57
+ },
58
+ "peerDependenciesMeta": {
59
+ "@earendil-works/pi-ai": {
60
+ "optional": true
61
+ },
62
+ "@earendil-works/pi-coding-agent": {
63
+ "optional": true
64
+ },
65
+ "typebox": {
66
+ "optional": true
67
+ }
68
+ },
69
+ "devDependencies": {
70
+ "@earendil-works/pi-ai": "0.74.0",
71
+ "@earendil-works/pi-coding-agent": "0.74.0",
72
+ "@types/turndown": "^5.0.5",
73
+ "typebox": "*",
74
+ "vitest": "^4.0.0"
75
+ },
76
+ "scripts": {
77
+ "build": "tsc -b",
78
+ "typecheck": "tsc -b --pretty false",
79
+ "test": "vitest run src"
80
+ }
81
+ }
package/preview.png ADDED
Binary file