@vox-ai-app/integrations 1.0.0 → 1.0.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/README.md +20 -25
- package/package.json +1 -1
- package/src/imessage/mac/service.js +0 -16
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# @vox-ai-app/
|
|
1
|
+
# @vox-ai-app/integrations
|
|
2
2
|
|
|
3
3
|
macOS system integrations for Vox: Apple Mail, Screen control, and iMessage. Each integration ships with tool implementations and LLM tool definitions.
|
|
4
4
|
|
|
@@ -7,35 +7,30 @@ Requires macOS. Each integration needs specific system permissions granted by th
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
9
9
|
```sh
|
|
10
|
-
npm install @vox-ai-app/
|
|
10
|
+
npm install @vox-ai-app/integrations
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
Peer dependency: `electron >= 28`
|
|
14
14
|
|
|
15
15
|
## Exports
|
|
16
16
|
|
|
17
|
-
| Export
|
|
18
|
-
|
|
|
19
|
-
| `@vox-ai-app/
|
|
20
|
-
| `@vox-ai-app/
|
|
21
|
-
| `@vox-ai-app/
|
|
22
|
-
| `@vox-ai-app/
|
|
23
|
-
| `@vox-ai-app/
|
|
24
|
-
| `@vox-ai-app/
|
|
25
|
-
| `@vox-ai-app/
|
|
26
|
-
| `@vox-ai-app/
|
|
17
|
+
| Export | Contents |
|
|
18
|
+
| ----------------------------------------- | ----------------------------- |
|
|
19
|
+
| `@vox-ai-app/integrations` | All exports |
|
|
20
|
+
| `@vox-ai-app/integrations/defs` | All tool definitions |
|
|
21
|
+
| `@vox-ai-app/integrations/mail` | Mail functions |
|
|
22
|
+
| `@vox-ai-app/integrations/screen` | Screen capture + control |
|
|
23
|
+
| `@vox-ai-app/integrations/screen/capture` | Capture only |
|
|
24
|
+
| `@vox-ai-app/integrations/screen/control` | Control only |
|
|
25
|
+
| `@vox-ai-app/integrations/screen/queue` | Session acquire/release |
|
|
26
|
+
| `@vox-ai-app/integrations/imessage` | iMessage data, reply, service |
|
|
27
27
|
|
|
28
28
|
## Mail
|
|
29
29
|
|
|
30
30
|
Requires **Automation permission** for Mail (System Settings → Privacy & Security → Automation).
|
|
31
31
|
|
|
32
32
|
```js
|
|
33
|
-
import {
|
|
34
|
-
sendEmail,
|
|
35
|
-
readEmails,
|
|
36
|
-
searchContacts,
|
|
37
|
-
replyToEmail
|
|
38
|
-
} from '@vox-ai-app/vox-integrations/mail'
|
|
33
|
+
import { sendEmail, readEmails, searchContacts, replyToEmail } from '@vox-ai-app/integrations/mail'
|
|
39
34
|
|
|
40
35
|
const emails = await readEmails({ account: 'Work', folder: 'INBOX', limit: 20 })
|
|
41
36
|
await sendEmail({ to: 'user@example.com', subject: 'Hi', body: 'Hello.' })
|
|
@@ -45,7 +40,7 @@ await replyToEmail({ messageId: '...', body: 'Thanks!' })
|
|
|
45
40
|
Tool definitions:
|
|
46
41
|
|
|
47
42
|
```js
|
|
48
|
-
import { MAIL_TOOL_DEFINITIONS } from '@vox-ai-app/
|
|
43
|
+
import { MAIL_TOOL_DEFINITIONS } from '@vox-ai-app/integrations/defs'
|
|
49
44
|
```
|
|
50
45
|
|
|
51
46
|
## Screen
|
|
@@ -58,8 +53,8 @@ import {
|
|
|
58
53
|
clickAt,
|
|
59
54
|
typeText,
|
|
60
55
|
getUiElements
|
|
61
|
-
} from '@vox-ai-app/
|
|
62
|
-
import { acquireScreen, releaseScreen } from '@vox-ai-app/
|
|
56
|
+
} from '@vox-ai-app/integrations/screen'
|
|
57
|
+
import { acquireScreen, releaseScreen } from '@vox-ai-app/integrations/screen/queue'
|
|
63
58
|
|
|
64
59
|
const session = await acquireScreen()
|
|
65
60
|
try {
|
|
@@ -74,7 +69,7 @@ try {
|
|
|
74
69
|
Tool definitions:
|
|
75
70
|
|
|
76
71
|
```js
|
|
77
|
-
import { SCREEN_TOOL_DEFINITIONS } from '@vox-ai-app/
|
|
72
|
+
import { SCREEN_TOOL_DEFINITIONS } from '@vox-ai-app/integrations/defs'
|
|
78
73
|
```
|
|
79
74
|
|
|
80
75
|
## iMessage
|
|
@@ -84,7 +79,7 @@ Requires **Full Disk Access** (System Settings → Privacy & Security → Full D
|
|
|
84
79
|
### Tool use (read conversations, send messages)
|
|
85
80
|
|
|
86
81
|
```js
|
|
87
|
-
import { listConversations, listContacts, sendReply } from '@vox-ai-app/
|
|
82
|
+
import { listConversations, listContacts, sendReply } from '@vox-ai-app/integrations/imessage'
|
|
88
83
|
|
|
89
84
|
const conversations = listConversations()
|
|
90
85
|
const contacts = listContacts()
|
|
@@ -94,7 +89,7 @@ await sendReply('+15551234567', 'Hello from Vox!')
|
|
|
94
89
|
### Gateway service (AI replies to incoming iMessages)
|
|
95
90
|
|
|
96
91
|
```js
|
|
97
|
-
import { createIMessageService } from '@vox-ai-app/
|
|
92
|
+
import { createIMessageService } from '@vox-ai-app/integrations/imessage'
|
|
98
93
|
|
|
99
94
|
const svc = createIMessageService({
|
|
100
95
|
logger,
|
|
@@ -117,7 +112,7 @@ svc.start('my-passphrase')
|
|
|
117
112
|
Tool definitions:
|
|
118
113
|
|
|
119
114
|
```js
|
|
120
|
-
import { IMESSAGE_TOOL_DEFINITIONS } from '@vox-ai-app/
|
|
115
|
+
import { IMESSAGE_TOOL_DEFINITIONS } from '@vox-ai-app/integrations/defs'
|
|
121
116
|
```
|
|
122
117
|
|
|
123
118
|
## License
|
package/package.json
CHANGED
|
@@ -12,22 +12,6 @@ const REPLY_TIMEOUT_MS = 90_000
|
|
|
12
12
|
const FDA_ERROR_MESSAGE =
|
|
13
13
|
'Vox needs Full Disk Access to read Messages. Opening System Settings → Privacy & Security → Full Disk Access — please enable it for Vox and try again.'
|
|
14
14
|
|
|
15
|
-
/**
|
|
16
|
-
* Creates a self-contained iMessage watcher service.
|
|
17
|
-
*
|
|
18
|
-
* @param {object} opts
|
|
19
|
-
* @param {(text: string, handle: string) => Promise<string|null>} opts.onMessage
|
|
20
|
-
* Called when a passphrase-matched message arrives. Must return the AI reply text (or null to skip reply).
|
|
21
|
-
* @param {(text: string, handle: string) => void} [opts.onTranscript]
|
|
22
|
-
* Optional: called before onMessage, useful for emitting transcript events upstream.
|
|
23
|
-
* @param {() => void} [opts.onOpenSettings]
|
|
24
|
-
* Optional: called when Full Disk Access is required. Default opens nothing.
|
|
25
|
-
* @param {{ info: Function, warn: Function, error: Function }} [opts.logger]
|
|
26
|
-
* Optional: defaults to console.
|
|
27
|
-
* @param {number} [opts.pollIntervalMs]
|
|
28
|
-
* Poll interval in ms. Default 3000.
|
|
29
|
-
* @returns {{ start, stop, getPassphrase, listConversations, listContacts, openSettings }}
|
|
30
|
-
*/
|
|
31
15
|
export const createIMessageService = ({
|
|
32
16
|
onMessage,
|
|
33
17
|
onTranscript,
|