@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.
- package/LICENSE +201 -0
- package/README.md +164 -0
- package/dist/config.d.ts +19 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +129 -0
- package/dist/config.js.map +1 -0
- package/dist/fetch.d.ts +8 -0
- package/dist/fetch.d.ts.map +1 -0
- package/dist/fetch.js +67 -0
- package/dist/fetch.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +179 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/anthropic.d.ts +8 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +100 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/base.d.ts +44 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +9 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/gemini.d.ts +7 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +41 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/index.d.ts +6 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +29 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/kimi.d.ts +8 -0
- package/dist/providers/kimi.d.ts.map +1 -0
- package/dist/providers/kimi.js +66 -0
- package/dist/providers/kimi.js.map +1 -0
- package/dist/providers/mimo.d.ts +7 -0
- package/dist/providers/mimo.d.ts.map +1 -0
- package/dist/providers/mimo.js +45 -0
- package/dist/providers/mimo.js.map +1 -0
- package/dist/providers/openai.d.ts +7 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +56 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/openrouter.d.ts +8 -0
- package/dist/providers/openrouter.d.ts.map +1 -0
- package/dist/providers/openrouter.js +83 -0
- package/dist/providers/openrouter.js.map +1 -0
- package/dist/providers/perplexity.d.ts +8 -0
- package/dist/providers/perplexity.d.ts.map +1 -0
- package/dist/providers/perplexity.js +99 -0
- package/dist/providers/perplexity.js.map +1 -0
- package/dist/providers/tavily.d.ts +8 -0
- package/dist/providers/tavily.d.ts.map +1 -0
- package/dist/providers/tavily.js +79 -0
- package/dist/providers/tavily.js.map +1 -0
- package/dist/providers/xai.d.ts +16 -0
- package/dist/providers/xai.d.ts.map +1 -0
- package/dist/providers/xai.js +92 -0
- package/dist/providers/xai.js.map +1 -0
- package/dist/providers/zai.d.ts +8 -0
- package/dist/providers/zai.d.ts.map +1 -0
- package/dist/providers/zai.js +78 -0
- package/dist/providers/zai.js.map +1 -0
- package/dist/search.d.ts +4 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +14 -0
- package/dist/search.js.map +1 -0
- package/dist/summary.d.ts +4 -0
- package/dist/summary.d.ts.map +1 -0
- package/dist/summary.js +44 -0
- package/dist/summary.js.map +1 -0
- package/dist/types.d.ts +28 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +81 -0
- package/preview.png +0 -0
package/dist/search.d.ts
ADDED
|
@@ -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"}
|
package/dist/summary.js
ADDED
|
@@ -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"}
|
package/dist/types.d.ts
ADDED
|
@@ -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 @@
|
|
|
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
|