@openvole/paw-sdk 0.1.0 → 0.2.0
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/README.md +65 -0
- package/dist/index.d.ts +1 -0
- package/package.json +3 -2
package/README.md
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# @openvole/paw-sdk
|
|
2
|
+
|
|
3
|
+
SDK for building [OpenVole](https://github.com/openvole/openvole) Paws — tool providers for the agent loop.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@openvole/paw-sdk)
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @openvole/paw-sdk
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Quick Start
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { definePaw, z } from '@openvole/paw-sdk'
|
|
17
|
+
|
|
18
|
+
export default definePaw({
|
|
19
|
+
name: 'my-paw',
|
|
20
|
+
version: '0.1.0',
|
|
21
|
+
description: 'My custom paw',
|
|
22
|
+
|
|
23
|
+
tools: [
|
|
24
|
+
{
|
|
25
|
+
name: 'my_tool',
|
|
26
|
+
description: 'Does something useful',
|
|
27
|
+
parameters: z.object({ input: z.string() }),
|
|
28
|
+
execute: async ({ input }) => ({ result: input.toUpperCase() }),
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
|
|
32
|
+
async onLoad() {
|
|
33
|
+
console.log('Paw loaded')
|
|
34
|
+
},
|
|
35
|
+
})
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## What's a Paw?
|
|
39
|
+
|
|
40
|
+
A Paw connects OpenVole to the outside world. It runs in an isolated subprocess and registers tools that the Brain can call.
|
|
41
|
+
|
|
42
|
+
**Types of Paws:**
|
|
43
|
+
- **Brain** — implements the Think phase (e.g., paw-ollama, paw-claude)
|
|
44
|
+
- **Channel** — receives messages from users (e.g., paw-telegram, paw-slack)
|
|
45
|
+
- **Tool** — provides capabilities (e.g., paw-browser, paw-shell)
|
|
46
|
+
- **Infrastructure** — internal services (e.g., paw-memory, paw-session)
|
|
47
|
+
|
|
48
|
+
## Hooks
|
|
49
|
+
|
|
50
|
+
```typescript
|
|
51
|
+
hooks: {
|
|
52
|
+
onBootstrap: async (context) => context, // once per task
|
|
53
|
+
onPerceive: async (context) => context, // before Think
|
|
54
|
+
onObserve: async (result) => {}, // after each tool call
|
|
55
|
+
onCompact: async (context) => context, // when context too large
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Transport
|
|
60
|
+
|
|
61
|
+
Paws communicate with the core via JSON-RPC 2.0 over IPC. The SDK handles all wiring — just export `definePaw()`.
|
|
62
|
+
|
|
63
|
+
## License
|
|
64
|
+
|
|
65
|
+
[MIT](https://github.com/openvole/openvole/blob/main/LICENSE)
|
package/dist/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openvole/paw-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "SDK for building OpenVole Paws — tool providers for the agent loop",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
"node": ">=20.0.0"
|
|
25
25
|
},
|
|
26
26
|
"files": [
|
|
27
|
-
"dist"
|
|
27
|
+
"dist",
|
|
28
|
+
"README.md"
|
|
28
29
|
],
|
|
29
30
|
"license": "MIT",
|
|
30
31
|
"repository": {
|