@polpo-ai/tools 0.2.4
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/adapters/node-filesystem.d.ts +12 -0
- package/dist/adapters/node-filesystem.d.ts.map +1 -0
- package/dist/adapters/node-filesystem.js +46 -0
- package/dist/adapters/node-filesystem.js.map +1 -0
- package/dist/adapters/node-shell.d.ts +5 -0
- package/dist/adapters/node-shell.d.ts.map +1 -0
- package/dist/adapters/node-shell.js +34 -0
- package/dist/adapters/node-shell.js.map +1 -0
- package/dist/audio-tools.d.ts +42 -0
- package/dist/audio-tools.d.ts.map +1 -0
- package/dist/audio-tools.js +552 -0
- package/dist/audio-tools.js.map +1 -0
- package/dist/browser-tools.d.ts +36 -0
- package/dist/browser-tools.d.ts.map +1 -0
- package/dist/browser-tools.js +525 -0
- package/dist/browser-tools.js.map +1 -0
- package/dist/coding-tools.d.ts +99 -0
- package/dist/coding-tools.d.ts.map +1 -0
- package/dist/coding-tools.js +434 -0
- package/dist/coding-tools.js.map +1 -0
- package/dist/docx-tools.d.ts +22 -0
- package/dist/docx-tools.d.ts.map +1 -0
- package/dist/docx-tools.js +236 -0
- package/dist/docx-tools.js.map +1 -0
- package/dist/email-tools.d.ts +34 -0
- package/dist/email-tools.d.ts.map +1 -0
- package/dist/email-tools.js +787 -0
- package/dist/email-tools.js.map +1 -0
- package/dist/excel-tools.d.ts +25 -0
- package/dist/excel-tools.d.ts.map +1 -0
- package/dist/excel-tools.js +409 -0
- package/dist/excel-tools.js.map +1 -0
- package/dist/http-tools.d.ts +23 -0
- package/dist/http-tools.d.ts.map +1 -0
- package/dist/http-tools.js +214 -0
- package/dist/http-tools.js.map +1 -0
- package/dist/image-tools.d.ts +40 -0
- package/dist/image-tools.d.ts.map +1 -0
- package/dist/image-tools.js +522 -0
- package/dist/image-tools.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/memory-tools.d.ts +19 -0
- package/dist/memory-tools.d.ts.map +1 -0
- package/dist/memory-tools.js +104 -0
- package/dist/memory-tools.js.map +1 -0
- package/dist/outcome-tools.d.ts +25 -0
- package/dist/outcome-tools.d.ts.map +1 -0
- package/dist/outcome-tools.js +191 -0
- package/dist/outcome-tools.js.map +1 -0
- package/dist/path-sandbox.d.ts +28 -0
- package/dist/path-sandbox.d.ts.map +1 -0
- package/dist/path-sandbox.js +58 -0
- package/dist/path-sandbox.js.map +1 -0
- package/dist/pdf-tools.d.ts +25 -0
- package/dist/pdf-tools.d.ts.map +1 -0
- package/dist/pdf-tools.js +363 -0
- package/dist/pdf-tools.js.map +1 -0
- package/dist/phone-tools.d.ts +27 -0
- package/dist/phone-tools.d.ts.map +1 -0
- package/dist/phone-tools.js +577 -0
- package/dist/phone-tools.js.map +1 -0
- package/dist/safe-env.d.ts +26 -0
- package/dist/safe-env.d.ts.map +1 -0
- package/dist/safe-env.js +76 -0
- package/dist/safe-env.js.map +1 -0
- package/dist/search-tools.d.ts +22 -0
- package/dist/search-tools.d.ts.map +1 -0
- package/dist/search-tools.js +205 -0
- package/dist/search-tools.js.map +1 -0
- package/dist/ssrf-guard.d.ts +17 -0
- package/dist/ssrf-guard.d.ts.map +1 -0
- package/dist/ssrf-guard.js +95 -0
- package/dist/ssrf-guard.js.map +1 -0
- package/dist/types.d.ts +21 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/vault-tools.d.ts +26 -0
- package/dist/vault-tools.d.ts.map +1 -0
- package/dist/vault-tools.js +86 -0
- package/dist/vault-tools.js.map +1 -0
- package/dist/whatsapp-tools.d.ts +18 -0
- package/dist/whatsapp-tools.d.ts.map +1 -0
- package/dist/whatsapp-tools.js +206 -0
- package/dist/whatsapp-tools.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FileSystem, FileStat } from "@polpo-ai/core/filesystem";
|
|
2
|
+
export declare class NodeFileSystem implements FileSystem {
|
|
3
|
+
readFile(path: string): Promise<string>;
|
|
4
|
+
writeFile(path: string, content: string): Promise<void>;
|
|
5
|
+
exists(path: string): Promise<boolean>;
|
|
6
|
+
readdir(path: string): Promise<string[]>;
|
|
7
|
+
mkdir(path: string): Promise<void>;
|
|
8
|
+
remove(path: string): Promise<void>;
|
|
9
|
+
stat(path: string): Promise<FileStat>;
|
|
10
|
+
rename(oldPath: string, newPath: string): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=node-filesystem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-filesystem.d.ts","sourceRoot":"","sources":["../../src/adapters/node-filesystem.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEtE,qBAAa,cAAe,YAAW,UAAU;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAStC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIxC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAUrC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG9D"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node.js FileSystem implementation — wraps node:fs.
|
|
3
|
+
*
|
|
4
|
+
* Default implementation for self-hosted mode. Reads/writes to the real filesystem.
|
|
5
|
+
* Drop-in replacement pattern: swap with AgentFS, SandboxProxyFS, etc.
|
|
6
|
+
*/
|
|
7
|
+
import { readFile, writeFile, mkdir, rm, stat, readdir, rename, access } from "node:fs/promises";
|
|
8
|
+
export class NodeFileSystem {
|
|
9
|
+
async readFile(path) {
|
|
10
|
+
return readFile(path, "utf-8");
|
|
11
|
+
}
|
|
12
|
+
async writeFile(path, content) {
|
|
13
|
+
await writeFile(path, content, "utf-8");
|
|
14
|
+
}
|
|
15
|
+
async exists(path) {
|
|
16
|
+
try {
|
|
17
|
+
await access(path);
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async readdir(path) {
|
|
25
|
+
return readdir(path);
|
|
26
|
+
}
|
|
27
|
+
async mkdir(path) {
|
|
28
|
+
await mkdir(path, { recursive: true });
|
|
29
|
+
}
|
|
30
|
+
async remove(path) {
|
|
31
|
+
await rm(path, { recursive: true, force: true });
|
|
32
|
+
}
|
|
33
|
+
async stat(path) {
|
|
34
|
+
const s = await stat(path);
|
|
35
|
+
return {
|
|
36
|
+
size: s.size,
|
|
37
|
+
isDirectory: s.isDirectory(),
|
|
38
|
+
isFile: s.isFile(),
|
|
39
|
+
modifiedAt: s.mtime,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
async rename(oldPath, newPath) {
|
|
43
|
+
await rename(oldPath, newPath);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=node-filesystem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-filesystem.js","sourceRoot":"","sources":["../../src/adapters/node-filesystem.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGjG,MAAM,OAAO,cAAc;IACzB,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,OAAO,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,OAAe;QAC3C,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY;QACtB,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY;QACrB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE;YAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,UAAU,EAAE,CAAC,CAAC,KAAK;SACpB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,OAAe;QAC3C,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-shell.d.ts","sourceRoot":"","sources":["../../src/adapters/node-shell.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAG7E,qBAAa,SAAU,YAAW,KAAK;IAC/B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;CAsB7E"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node.js Shell implementation — wraps execa.
|
|
3
|
+
*
|
|
4
|
+
* Default implementation for self-hosted mode. Executes real shell commands.
|
|
5
|
+
* Drop-in replacement pattern: swap with JustBashShell, SandboxProxyShell, etc.
|
|
6
|
+
*/
|
|
7
|
+
import { execaCommand } from "execa";
|
|
8
|
+
import { bashSafeEnv } from "../safe-env.js";
|
|
9
|
+
export class NodeShell {
|
|
10
|
+
async execute(command, options) {
|
|
11
|
+
try {
|
|
12
|
+
const result = await execaCommand(command, {
|
|
13
|
+
shell: true,
|
|
14
|
+
cwd: options?.cwd,
|
|
15
|
+
env: { ...bashSafeEnv(), ...options?.env },
|
|
16
|
+
timeout: options?.timeout,
|
|
17
|
+
reject: false,
|
|
18
|
+
});
|
|
19
|
+
return {
|
|
20
|
+
stdout: result.stdout,
|
|
21
|
+
stderr: result.stderr,
|
|
22
|
+
exitCode: result.exitCode ?? 0,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
return {
|
|
27
|
+
stdout: "",
|
|
28
|
+
stderr: err.message ?? String(err),
|
|
29
|
+
exitCode: 1,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=node-shell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-shell.js","sourceRoot":"","sources":["../../src/adapters/node-shell.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,OAAO,SAAS;IACpB,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,OAAsB;QACnD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE;gBACzC,KAAK,EAAE,IAAI;gBACX,GAAG,EAAE,OAAO,EAAE,GAAG;gBACjB,GAAG,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE;gBAC1C,OAAO,EAAE,OAAO,EAAE,OAAO;gBACzB,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YACH,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC;aAC/B,CAAC;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO;gBACL,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC;gBAClC,QAAQ,EAAE,CAAC;aACZ,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audio tools for speech-to-text (STT) and text-to-speech (TTS).
|
|
3
|
+
*
|
|
4
|
+
* Provides agent capabilities to:
|
|
5
|
+
* - Transcribe audio files to text (audio_transcribe)
|
|
6
|
+
* - Generate speech audio from text (audio_speak)
|
|
7
|
+
*
|
|
8
|
+
* Architecture: direct fetch() to provider REST APIs — zero vendor SDK dependencies.
|
|
9
|
+
*
|
|
10
|
+
* Supported providers:
|
|
11
|
+
* STT: openai (Whisper), deepgram (Nova)
|
|
12
|
+
* TTS: openai (gpt-4o-mini-tts / tts-1), deepgram (Aura), elevenlabs, edge (free, local)
|
|
13
|
+
*
|
|
14
|
+
* Edge TTS: Uses Microsoft Edge's neural TTS engine via the `edge-tts` CLI.
|
|
15
|
+
* Free, no API key, ~400 voices in 60+ languages. Auto-selects voice from
|
|
16
|
+
* language + gender params. Also used as automatic fallback when cloud providers fail.
|
|
17
|
+
* Install: `pip install edge-tts`
|
|
18
|
+
*
|
|
19
|
+
* Credential resolution order (same as email/image tools):
|
|
20
|
+
* 1. Agent vault (per-agent credentials — e.g. service "openai" key "key")
|
|
21
|
+
* 2. Environment variables (global fallback)
|
|
22
|
+
* 3. Edge TTS (automatic fallback — no credentials needed)
|
|
23
|
+
*
|
|
24
|
+
* Environment variables (fallback):
|
|
25
|
+
* OPENAI_API_KEY — openai provider (STT + TTS)
|
|
26
|
+
* DEEPGRAM_API_KEY — deepgram provider (STT + TTS)
|
|
27
|
+
* ELEVENLABS_API_KEY — elevenlabs provider (TTS)
|
|
28
|
+
*/
|
|
29
|
+
import type { AgentTool } from "@mariozechner/pi-agent-core";
|
|
30
|
+
import type { ResolvedVault } from "./types.js";
|
|
31
|
+
export type AudioToolName = "audio_transcribe" | "audio_speak";
|
|
32
|
+
export declare const ALL_AUDIO_TOOL_NAMES: AudioToolName[];
|
|
33
|
+
/**
|
|
34
|
+
* Create audio tools for speech-to-text and text-to-speech.
|
|
35
|
+
*
|
|
36
|
+
* @param cwd - Working directory for resolving file paths
|
|
37
|
+
* @param allowedPaths - Sandbox paths for file validation
|
|
38
|
+
* @param allowedTools - Optional filter
|
|
39
|
+
* @param vault - Resolved vault credentials for credential resolution
|
|
40
|
+
*/
|
|
41
|
+
export declare function createAudioTools(cwd: string, allowedPaths?: string[], allowedTools?: string[], vault?: ResolvedVault): AgentTool<any>[];
|
|
42
|
+
//# sourceMappingURL=audio-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio-tools.d.ts","sourceRoot":"","sources":["../src/audio-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,6BAA6B,CAAC;AAK9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAimBhD,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,aAAa,CAAC;AAE/D,eAAO,MAAM,oBAAoB,EAAE,aAAa,EAAwC,CAAC;AAEzF;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,KAAK,CAAC,EAAE,aAAa,GACpB,SAAS,CAAC,GAAG,CAAC,EAAE,CAalB"}
|