@redplanethq/corebrain 2.5.8 → 2.5.10
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/commands/gateway/config.d.ts +1 -0
- package/dist/commands/gateway/config.d.ts.map +1 -1
- package/dist/commands/gateway/config.js +281 -149
- package/dist/commands/gateway/config.js.map +1 -1
- package/dist/commands/integrations/add.d.ts +8 -0
- package/dist/commands/integrations/add.d.ts.map +1 -0
- package/dist/commands/integrations/add.js +375 -0
- package/dist/commands/integrations/add.js.map +1 -0
- package/dist/commands/integrations/list.d.ts +8 -0
- package/dist/commands/integrations/list.d.ts.map +1 -0
- package/dist/commands/integrations/list.js +74 -0
- package/dist/commands/integrations/list.js.map +1 -0
- package/dist/commands/integrations/remove.d.ts +10 -0
- package/dist/commands/integrations/remove.d.ts.map +1 -0
- package/dist/commands/integrations/remove.js +107 -0
- package/dist/commands/integrations/remove.js.map +1 -0
- package/dist/commands/load/notion.d.ts +1 -1
- package/dist/commands/load/notion.d.ts.map +1 -1
- package/dist/commands/load/notion.js +237 -159
- package/dist/commands/load/notion.js.map +1 -1
- package/dist/commands/search.d.ts +8 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +239 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/server/gateway-client.d.ts.map +1 -1
- package/dist/server/gateway-client.js +19 -1
- package/dist/server/gateway-client.js.map +1 -1
- package/dist/server/tools/coding-tools.d.ts.map +1 -1
- package/dist/server/tools/coding-tools.js +10 -2
- package/dist/server/tools/coding-tools.js.map +1 -1
- package/dist/server/tools/imessage-tools.d.ts +34 -0
- package/dist/server/tools/imessage-tools.d.ts.map +1 -0
- package/dist/server/tools/imessage-tools.js +262 -0
- package/dist/server/tools/imessage-tools.js.map +1 -0
- package/dist/server/tools/utils-tools.d.ts +13 -0
- package/dist/server/tools/utils-tools.d.ts.map +1 -0
- package/dist/server/tools/utils-tools.js +59 -0
- package/dist/server/tools/utils-tools.js.map +1 -0
- package/dist/types/config.d.ts +3 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/app-bundle.d.ts +25 -0
- package/dist/utils/app-bundle.d.ts.map +1 -0
- package/dist/utils/app-bundle.js +106 -0
- package/dist/utils/app-bundle.js.map +1 -0
- package/dist/utils/coding-sessions.d.ts +1 -1
- package/dist/utils/coding-sessions.d.ts.map +1 -1
- package/dist/utils/coding-sessions.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import zod from 'zod';
|
|
2
|
+
import { execSync } from 'node:child_process';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
// ============ Constants ============
|
|
6
|
+
const DB_PATH = join(homedir(), 'Library/Messages/chat.db');
|
|
7
|
+
// ============ Zod Schemas ============
|
|
8
|
+
export const IMessageGetThreadsSchema = zod.object({
|
|
9
|
+
limit: zod.number().optional().default(10).describe('Number of threads to return (default: 10)'),
|
|
10
|
+
sender: zod.string().optional().describe('Filter by phone number or sender ID (partial match)'),
|
|
11
|
+
after: zod.string().optional().describe('Filter threads active after this date (ISO 8601 or YYYY-MM-DD)'),
|
|
12
|
+
before: zod.string().optional().describe('Filter threads active before this date (ISO 8601 or YYYY-MM-DD)'),
|
|
13
|
+
});
|
|
14
|
+
export const IMessageGetMessagesSchema = zod.object({
|
|
15
|
+
threadId: zod.string().describe('Chat identifier (phone number, email, or sender ID)'),
|
|
16
|
+
limit: zod.number().optional().default(20).describe('Number of messages to return (default: 20)'),
|
|
17
|
+
after: zod.string().optional().describe('Filter messages after this date (ISO 8601 or YYYY-MM-DD)'),
|
|
18
|
+
before: zod.string().optional().describe('Filter messages before this date (ISO 8601 or YYYY-MM-DD)'),
|
|
19
|
+
fromMe: zod.boolean().optional().describe('true = only sent, false = only received'),
|
|
20
|
+
});
|
|
21
|
+
export const IMessageSearchSchema = zod.object({
|
|
22
|
+
query: zod.string().describe('Text to search for in messages'),
|
|
23
|
+
limit: zod.number().optional().default(20).describe('Number of results to return (default: 20)'),
|
|
24
|
+
after: zod.string().optional().describe('Search messages after this date — recommended to limit scope (ISO 8601 or YYYY-MM-DD)'),
|
|
25
|
+
before: zod.string().optional().describe('Search messages before this date — recommended to limit scope (ISO 8601 or YYYY-MM-DD)'),
|
|
26
|
+
sender: zod.string().optional().describe('Limit search to a specific sender (partial match)'),
|
|
27
|
+
fromMe: zod.boolean().optional().describe('true = only sent messages, false = only received'),
|
|
28
|
+
});
|
|
29
|
+
export const IMessageSendSchema = zod.object({
|
|
30
|
+
to: zod.string().describe('Phone number or email to send to'),
|
|
31
|
+
message: zod.string().describe('Message text to send'),
|
|
32
|
+
});
|
|
33
|
+
// ============ JSON Schemas ============
|
|
34
|
+
const jsonSchemas = {
|
|
35
|
+
imessage_get_threads: {
|
|
36
|
+
type: 'object',
|
|
37
|
+
properties: {
|
|
38
|
+
limit: { type: 'number', description: 'Number of threads to return (default: 10)' },
|
|
39
|
+
sender: { type: 'string', description: 'Filter by phone number or sender ID (partial match)' },
|
|
40
|
+
after: { type: 'string', description: 'Filter threads active after this date (ISO 8601 or YYYY-MM-DD)' },
|
|
41
|
+
before: { type: 'string', description: 'Filter threads active before this date (ISO 8601 or YYYY-MM-DD)' },
|
|
42
|
+
},
|
|
43
|
+
required: [],
|
|
44
|
+
},
|
|
45
|
+
imessage_get_messages: {
|
|
46
|
+
type: 'object',
|
|
47
|
+
properties: {
|
|
48
|
+
threadId: { type: 'string', description: 'Chat identifier (phone number, email, or sender ID)' },
|
|
49
|
+
limit: { type: 'number', description: 'Number of messages to return (default: 20)' },
|
|
50
|
+
after: { type: 'string', description: 'Filter messages after this date (ISO 8601 or YYYY-MM-DD)' },
|
|
51
|
+
before: { type: 'string', description: 'Filter messages before this date (ISO 8601 or YYYY-MM-DD)' },
|
|
52
|
+
fromMe: { type: 'boolean', description: 'true = only sent, false = only received' },
|
|
53
|
+
},
|
|
54
|
+
required: ['threadId'],
|
|
55
|
+
},
|
|
56
|
+
imessage_search: {
|
|
57
|
+
type: 'object',
|
|
58
|
+
properties: {
|
|
59
|
+
query: { type: 'string', description: 'Text to search for in messages' },
|
|
60
|
+
limit: { type: 'number', description: 'Number of results to return (default: 20)' },
|
|
61
|
+
after: { type: 'string', description: 'Search messages after this date — recommended to limit scope (ISO 8601 or YYYY-MM-DD)' },
|
|
62
|
+
before: { type: 'string', description: 'Search messages before this date — recommended to limit scope (ISO 8601 or YYYY-MM-DD)' },
|
|
63
|
+
sender: { type: 'string', description: 'Limit search to a specific sender (partial match)' },
|
|
64
|
+
fromMe: { type: 'boolean', description: 'true = only sent messages, false = only received' },
|
|
65
|
+
},
|
|
66
|
+
required: ['query'],
|
|
67
|
+
},
|
|
68
|
+
imessage_send: {
|
|
69
|
+
type: 'object',
|
|
70
|
+
properties: {
|
|
71
|
+
to: { type: 'string', description: 'Phone number or email to send to' },
|
|
72
|
+
message: { type: 'string', description: 'Message text to send' },
|
|
73
|
+
},
|
|
74
|
+
required: ['to', 'message'],
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
// ============ Tool Definitions ============
|
|
78
|
+
export const imessageTools = [
|
|
79
|
+
{
|
|
80
|
+
name: 'imessage_get_threads',
|
|
81
|
+
description: 'Get recent iMessage/SMS conversation threads. Can filter by sender and date range.',
|
|
82
|
+
inputSchema: jsonSchemas.imessage_get_threads,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: 'imessage_get_messages',
|
|
86
|
+
description: 'Get messages from a specific thread by sender ID, phone number, or email. Can filter by date range and sent/received.',
|
|
87
|
+
inputSchema: jsonSchemas.imessage_get_messages,
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
name: 'imessage_search',
|
|
91
|
+
description: 'Search iMessage/SMS history by text. Use after/before to limit scope. Works for SMS too.',
|
|
92
|
+
inputSchema: jsonSchemas.imessage_search,
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: 'imessage_send',
|
|
96
|
+
description: 'Send an iMessage to a phone number or email address.',
|
|
97
|
+
inputSchema: jsonSchemas.imessage_send,
|
|
98
|
+
},
|
|
99
|
+
];
|
|
100
|
+
// ============ Query Runner ============
|
|
101
|
+
// Uses osascript "do shell script" to run sqlite3 under the user's login session.
|
|
102
|
+
// This only requires Automation permission (one-time popup) — no Full Disk Access needed.
|
|
103
|
+
function runSQL(sql) {
|
|
104
|
+
// Base64-encode SQL to avoid all shell quoting/escaping issues.
|
|
105
|
+
// The gateway runs via CoreBrainGateway.app which has Full Disk Access —
|
|
106
|
+
// so we pipe directly to sqlite3 without any osascript wrapper.
|
|
107
|
+
const b64 = Buffer.from(sql).toString('base64');
|
|
108
|
+
let output;
|
|
109
|
+
try {
|
|
110
|
+
output = execSync(`echo "${b64}" | base64 -d | sqlite3 -json "${DB_PATH}"`, { encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 }).trim();
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
114
|
+
if (msg.includes('authorization denied') || msg.includes('unable to open')) {
|
|
115
|
+
throw new Error('Full Disk Access required for iMessage tools. Run: corebrain gateway config and re-enable iMessage to complete setup.');
|
|
116
|
+
}
|
|
117
|
+
throw new Error(`iMessage query failed: ${msg}`);
|
|
118
|
+
}
|
|
119
|
+
return output ? JSON.parse(output) : [];
|
|
120
|
+
}
|
|
121
|
+
function escapeSQL(str) {
|
|
122
|
+
return str.replace(/'/g, "''");
|
|
123
|
+
}
|
|
124
|
+
// Convert ISO/YYYY-MM-DD date to Apple CoreData nanosecond timestamp
|
|
125
|
+
function toAppleTs(dateStr) {
|
|
126
|
+
const secs = Math.floor(new Date(dateStr).getTime() / 1000);
|
|
127
|
+
return (secs - 978307200) * 1_000_000_000;
|
|
128
|
+
}
|
|
129
|
+
// ============ Tool Execution ============
|
|
130
|
+
export async function executeIMessageTool(toolName, params) {
|
|
131
|
+
try {
|
|
132
|
+
switch (toolName) {
|
|
133
|
+
case 'imessage_get_threads': {
|
|
134
|
+
const p = IMessageGetThreadsSchema.parse(params);
|
|
135
|
+
const conditions = [];
|
|
136
|
+
if (p.sender) {
|
|
137
|
+
conditions.push(`c.chat_identifier LIKE '%${escapeSQL(p.sender)}%'`);
|
|
138
|
+
}
|
|
139
|
+
if (p.after) {
|
|
140
|
+
conditions.push(`m.date >= ${toAppleTs(p.after)}`);
|
|
141
|
+
}
|
|
142
|
+
if (p.before) {
|
|
143
|
+
conditions.push(`m.date <= ${toAppleTs(p.before)}`);
|
|
144
|
+
}
|
|
145
|
+
const where = conditions.length ? `WHERE ${conditions.join(' AND ')}` : '';
|
|
146
|
+
const sql = `
|
|
147
|
+
SELECT
|
|
148
|
+
c.chat_identifier,
|
|
149
|
+
c.display_name,
|
|
150
|
+
datetime(MAX(m.date)/1000000000 + 978307200, 'unixepoch', 'localtime') AS last_message_date,
|
|
151
|
+
COUNT(m.ROWID) AS message_count
|
|
152
|
+
FROM chat c
|
|
153
|
+
LEFT JOIN chat_message_join cmj ON c.ROWID = cmj.chat_id
|
|
154
|
+
LEFT JOIN message m ON cmj.message_id = m.ROWID
|
|
155
|
+
${where}
|
|
156
|
+
GROUP BY c.ROWID
|
|
157
|
+
ORDER BY MAX(m.date) DESC
|
|
158
|
+
LIMIT ${p.limit}
|
|
159
|
+
`;
|
|
160
|
+
const threads = runSQL(sql);
|
|
161
|
+
return { success: true, result: { threads, count: threads.length } };
|
|
162
|
+
}
|
|
163
|
+
case 'imessage_get_messages': {
|
|
164
|
+
const p = IMessageGetMessagesSchema.parse(params);
|
|
165
|
+
const conditions = [
|
|
166
|
+
`c.chat_identifier LIKE '%${escapeSQL(p.threadId)}%'`,
|
|
167
|
+
];
|
|
168
|
+
if (p.after)
|
|
169
|
+
conditions.push(`m.date >= ${toAppleTs(p.after)}`);
|
|
170
|
+
if (p.before)
|
|
171
|
+
conditions.push(`m.date <= ${toAppleTs(p.before)}`);
|
|
172
|
+
if (p.fromMe !== undefined)
|
|
173
|
+
conditions.push(`m.is_from_me = ${p.fromMe ? 1 : 0}`);
|
|
174
|
+
const sql = `
|
|
175
|
+
SELECT
|
|
176
|
+
COALESCE(h.id, 'me') AS sender,
|
|
177
|
+
m.text,
|
|
178
|
+
m.is_from_me,
|
|
179
|
+
datetime(m.date/1000000000 + 978307200, 'unixepoch', 'localtime') AS date,
|
|
180
|
+
m.is_read
|
|
181
|
+
FROM message m
|
|
182
|
+
JOIN chat_message_join cmj ON m.ROWID = cmj.message_id
|
|
183
|
+
JOIN chat c ON cmj.chat_id = c.ROWID
|
|
184
|
+
LEFT JOIN handle h ON m.handle_id = h.ROWID
|
|
185
|
+
WHERE ${conditions.join(' AND ')}
|
|
186
|
+
ORDER BY m.date DESC
|
|
187
|
+
LIMIT ${p.limit}
|
|
188
|
+
`;
|
|
189
|
+
const messages = runSQL(sql);
|
|
190
|
+
return {
|
|
191
|
+
success: true,
|
|
192
|
+
result: {
|
|
193
|
+
threadId: p.threadId,
|
|
194
|
+
messages: messages.reverse(),
|
|
195
|
+
count: messages.length,
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
case 'imessage_search': {
|
|
200
|
+
const p = IMessageSearchSchema.parse(params);
|
|
201
|
+
const conditions = [
|
|
202
|
+
`m.text LIKE '%${escapeSQL(p.query)}%'`,
|
|
203
|
+
];
|
|
204
|
+
if (p.sender) {
|
|
205
|
+
conditions.push(`(c.chat_identifier LIKE '%${escapeSQL(p.sender)}%' OR h.id LIKE '%${escapeSQL(p.sender)}%')`);
|
|
206
|
+
}
|
|
207
|
+
if (p.after)
|
|
208
|
+
conditions.push(`m.date >= ${toAppleTs(p.after)}`);
|
|
209
|
+
if (p.before)
|
|
210
|
+
conditions.push(`m.date <= ${toAppleTs(p.before)}`);
|
|
211
|
+
if (p.fromMe !== undefined)
|
|
212
|
+
conditions.push(`m.is_from_me = ${p.fromMe ? 1 : 0}`);
|
|
213
|
+
const sql = `
|
|
214
|
+
SELECT
|
|
215
|
+
c.chat_identifier,
|
|
216
|
+
COALESCE(h.id, 'me') AS sender,
|
|
217
|
+
m.text,
|
|
218
|
+
m.is_from_me,
|
|
219
|
+
datetime(m.date/1000000000 + 978307200, 'unixepoch', 'localtime') AS date
|
|
220
|
+
FROM message m
|
|
221
|
+
JOIN chat_message_join cmj ON m.ROWID = cmj.message_id
|
|
222
|
+
JOIN chat c ON cmj.chat_id = c.ROWID
|
|
223
|
+
LEFT JOIN handle h ON m.handle_id = h.ROWID
|
|
224
|
+
WHERE ${conditions.join(' AND ')}
|
|
225
|
+
ORDER BY m.date DESC
|
|
226
|
+
LIMIT ${p.limit}
|
|
227
|
+
`;
|
|
228
|
+
const messages = runSQL(sql);
|
|
229
|
+
return { success: true, result: { query: p.query, messages, count: messages.length } };
|
|
230
|
+
}
|
|
231
|
+
case 'imessage_send': {
|
|
232
|
+
const p = IMessageSendSchema.parse(params);
|
|
233
|
+
const to = p.to.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
|
|
234
|
+
const msg = p.message.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
|
|
235
|
+
const script = [
|
|
236
|
+
'tell application "Messages"',
|
|
237
|
+
'set targetService to 1st account whose service type = iMessage',
|
|
238
|
+
`set targetBuddy to participant "${to}" of targetService`,
|
|
239
|
+
`send "${msg}" to targetBuddy`,
|
|
240
|
+
'end tell',
|
|
241
|
+
].join('\n');
|
|
242
|
+
execSync(`osascript -e '${script.replace(/'/g, "'\\''")}'`, { encoding: 'utf-8' });
|
|
243
|
+
return {
|
|
244
|
+
success: true,
|
|
245
|
+
result: { message: `Message sent to ${p.to}`, to: p.to, text: p.message },
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
default:
|
|
249
|
+
return { success: false, error: `Unknown tool: ${toolName}` };
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
catch (err) {
|
|
253
|
+
if (err instanceof zod.ZodError) {
|
|
254
|
+
return { success: false, error: `Invalid parameters: ${err.message}` };
|
|
255
|
+
}
|
|
256
|
+
return {
|
|
257
|
+
success: false,
|
|
258
|
+
error: err instanceof Error ? err.message : 'Unknown error',
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
//# sourceMappingURL=imessage-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imessage-tools.js","sourceRoot":"","sources":["../../../src/server/tools/imessage-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import zod from 'zod';
|
|
2
|
+
import type { GatewayTool } from './browser-tools.js';
|
|
3
|
+
export declare const SleepSchema: zod.ZodObject<{
|
|
4
|
+
seconds: zod.ZodNumber;
|
|
5
|
+
reason: zod.ZodOptional<zod.ZodString>;
|
|
6
|
+
}, zod.core.$strip>;
|
|
7
|
+
export declare const utilsTools: GatewayTool[];
|
|
8
|
+
export declare function executeUtilsTool(toolName: string, params: Record<string, unknown>): Promise<{
|
|
9
|
+
success: boolean;
|
|
10
|
+
result?: unknown;
|
|
11
|
+
error?: string;
|
|
12
|
+
}>;
|
|
13
|
+
//# sourceMappingURL=utils-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils-tools.d.ts","sourceRoot":"","sources":["../../../src/server/tools/utils-tools.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAIjD,eAAO,MAAM,WAAW;;;mBAGtB,CAAC;AAIH,eAAO,MAAM,UAAU,EAAE,WAAW,EAoBnC,CAAC;AAiBF,wBAAsB,gBAAgB,CACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,CAkB/D"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import zod from 'zod';
|
|
2
|
+
// ============ Zod Schemas ============
|
|
3
|
+
export const SleepSchema = zod.object({
|
|
4
|
+
seconds: zod.number().min(1).max(300),
|
|
5
|
+
reason: zod.string().optional(),
|
|
6
|
+
});
|
|
7
|
+
// ============ Tool Definitions ============
|
|
8
|
+
export const utilsTools = [
|
|
9
|
+
{
|
|
10
|
+
name: 'sleep',
|
|
11
|
+
description: 'Pause execution for the given number of seconds (1–300). Use this to wait between polling operations, e.g. after starting a coding session before reading its output.',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
type: 'object',
|
|
14
|
+
properties: {
|
|
15
|
+
seconds: {
|
|
16
|
+
type: 'number',
|
|
17
|
+
description: 'Number of seconds to sleep (1–300)',
|
|
18
|
+
},
|
|
19
|
+
reason: {
|
|
20
|
+
type: 'string',
|
|
21
|
+
description: 'Optional reason for sleeping (for logging)',
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
required: ['seconds'],
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
// ============ Tool Handlers ============
|
|
29
|
+
async function handleSleep(params) {
|
|
30
|
+
await new Promise(resolve => setTimeout(resolve, params.seconds * 1000));
|
|
31
|
+
return {
|
|
32
|
+
success: true,
|
|
33
|
+
result: {
|
|
34
|
+
slept: params.seconds,
|
|
35
|
+
...(params.reason ? { reason: params.reason } : {}),
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
// ============ Tool Execution ============
|
|
40
|
+
export async function executeUtilsTool(toolName, params) {
|
|
41
|
+
try {
|
|
42
|
+
switch (toolName) {
|
|
43
|
+
case 'sleep':
|
|
44
|
+
return await handleSleep(SleepSchema.parse(params));
|
|
45
|
+
default:
|
|
46
|
+
return { success: false, error: `Unknown tool: ${toolName}` };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
if (err instanceof zod.ZodError) {
|
|
51
|
+
return { success: false, error: `Invalid parameters: ${err.message}` };
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
success: false,
|
|
55
|
+
error: err instanceof Error ? err.message : 'Unknown error',
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=utils-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils-tools.js","sourceRoot":"","sources":["../../../src/server/tools/utils-tools.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,wCAAwC;AAExC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACrC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEH,6CAA6C;AAE7C,MAAM,CAAC,MAAM,UAAU,GAAkB;IACxC;QACC,IAAI,EAAE,OAAO;QACb,WAAW,EACV,uKAAuK;QACxK,WAAW,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oCAAoC;iBACjD;gBACD,MAAM,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,4CAA4C;iBACzD;aACD;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACrB;KACD;CACD,CAAC;AAEF,0CAA0C;AAE1C,KAAK,UAAU,WAAW,CAAC,MAAqC;IAC/D,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/E,OAAO;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EAAE;YACP,KAAK,EAAE,MAAM,CAAC,OAAO;YACrB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD;KACD,CAAC;AACH,CAAC;AAED,2CAA2C;AAE3C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,QAAgB,EAChB,MAA+B;IAE/B,IAAI,CAAC;QACJ,QAAQ,QAAQ,EAAE,CAAC;YAClB,KAAK,OAAO;gBACX,OAAO,MAAM,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YAErD;gBACC,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,QAAQ,EAAE,EAAC,CAAC;QAC9D,CAAC;IACF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,YAAY,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjC,OAAO,EAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,GAAG,CAAC,OAAO,EAAE,EAAC,CAAC;QACtE,CAAC;QACD,OAAO;YACN,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAC3D,CAAC;IACH,CAAC;AACF,CAAC"}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare function getAppBundlePath(): string;
|
|
2
|
+
export declare function getAppExecutablePath(): string;
|
|
3
|
+
export declare function isAppBundleInstalled(): boolean;
|
|
4
|
+
/**
|
|
5
|
+
* Creates CoreBrainGateway.app in /Applications.
|
|
6
|
+
* The executable inside is a shell script that launches the gateway-entry.js
|
|
7
|
+
* under the .app's bundle identity — allowing the user to grant Full Disk
|
|
8
|
+
* Access to the .app (which the file picker accepts), giving the gateway
|
|
9
|
+
* process access to ~/Library/Messages/chat.db.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createAppBundle(nodePath: string, gatewayEntryPath: string): void;
|
|
12
|
+
/**
|
|
13
|
+
* Opens System Settings to Full Disk Access so user can add the .app.
|
|
14
|
+
*/
|
|
15
|
+
export declare function openFullDiskAccessSettings(): void;
|
|
16
|
+
/**
|
|
17
|
+
* Tests whether the .app (running as the current process's ancestor)
|
|
18
|
+
* can access the Messages database. Returns true if accessible.
|
|
19
|
+
*/
|
|
20
|
+
export declare function testMessagesAccess(): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Get the gateway-entry.js path relative to this file.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getGatewayEntryPath(): string;
|
|
25
|
+
//# sourceMappingURL=app-bundle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-bundle.d.ts","sourceRoot":"","sources":["../../src/utils/app-bundle.ts"],"names":[],"mappings":"AAcA,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CA4ChF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAejD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAa5C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAI5C"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { execSync } from 'node:child_process';
|
|
2
|
+
import { existsSync, mkdirSync, writeFileSync, chmodSync, } from 'node:fs';
|
|
3
|
+
import { join, dirname } from 'node:path';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
const APP_NAME = 'CoreBrainGateway.app';
|
|
6
|
+
const APP_PATH = join('/Applications', APP_NAME);
|
|
7
|
+
const BUNDLE_ID = 'me.getcore.gateway';
|
|
8
|
+
export function getAppBundlePath() {
|
|
9
|
+
return APP_PATH;
|
|
10
|
+
}
|
|
11
|
+
export function getAppExecutablePath() {
|
|
12
|
+
return join(APP_PATH, 'Contents', 'MacOS', 'CoreBrainGateway');
|
|
13
|
+
}
|
|
14
|
+
export function isAppBundleInstalled() {
|
|
15
|
+
return existsSync(getAppExecutablePath());
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Creates CoreBrainGateway.app in /Applications.
|
|
19
|
+
* The executable inside is a shell script that launches the gateway-entry.js
|
|
20
|
+
* under the .app's bundle identity — allowing the user to grant Full Disk
|
|
21
|
+
* Access to the .app (which the file picker accepts), giving the gateway
|
|
22
|
+
* process access to ~/Library/Messages/chat.db.
|
|
23
|
+
*/
|
|
24
|
+
export function createAppBundle(nodePath, gatewayEntryPath) {
|
|
25
|
+
const contentsDir = join(APP_PATH, 'Contents');
|
|
26
|
+
const macosDir = join(contentsDir, 'MacOS');
|
|
27
|
+
const executablePath = getAppExecutablePath();
|
|
28
|
+
// Create directory structure
|
|
29
|
+
mkdirSync(macosDir, { recursive: true });
|
|
30
|
+
// Info.plist — gives the process a bundle identity TCC can track
|
|
31
|
+
const infoPlist = `<?xml version="1.0" encoding="UTF-8"?>
|
|
32
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
33
|
+
<plist version="1.0">
|
|
34
|
+
<dict>
|
|
35
|
+
<key>CFBundleIdentifier</key>
|
|
36
|
+
<string>${BUNDLE_ID}</string>
|
|
37
|
+
<key>CFBundleName</key>
|
|
38
|
+
<string>CoreBrain Gateway</string>
|
|
39
|
+
<key>CFBundleDisplayName</key>
|
|
40
|
+
<string>CoreBrain Gateway</string>
|
|
41
|
+
<key>CFBundleExecutable</key>
|
|
42
|
+
<string>CoreBrainGateway</string>
|
|
43
|
+
<key>CFBundleVersion</key>
|
|
44
|
+
<string>1.0</string>
|
|
45
|
+
<key>CFBundleShortVersionString</key>
|
|
46
|
+
<string>1.0</string>
|
|
47
|
+
<key>CFBundlePackageType</key>
|
|
48
|
+
<string>APPL</string>
|
|
49
|
+
<key>LSBackgroundOnly</key>
|
|
50
|
+
<true/>
|
|
51
|
+
<key>NSHighResolutionCapable</key>
|
|
52
|
+
<true/>
|
|
53
|
+
</dict>
|
|
54
|
+
</plist>
|
|
55
|
+
`;
|
|
56
|
+
writeFileSync(join(contentsDir, 'Info.plist'), infoPlist, 'utf-8');
|
|
57
|
+
// Launcher script — the actual executable inside the .app
|
|
58
|
+
const launcher = `#!/bin/bash
|
|
59
|
+
exec "${nodePath}" "${gatewayEntryPath}" "$@"
|
|
60
|
+
`;
|
|
61
|
+
writeFileSync(executablePath, launcher, 'utf-8');
|
|
62
|
+
chmodSync(executablePath, 0o755);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Opens System Settings to Full Disk Access so user can add the .app.
|
|
66
|
+
*/
|
|
67
|
+
export function openFullDiskAccessSettings() {
|
|
68
|
+
try {
|
|
69
|
+
execSync('open "x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles"', { stdio: 'ignore' });
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// Fallback for older macOS
|
|
73
|
+
try {
|
|
74
|
+
execSync('open "x-apple.systempreferences:com.apple.preference.security"', { stdio: 'ignore' });
|
|
75
|
+
}
|
|
76
|
+
catch { }
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Tests whether the .app (running as the current process's ancestor)
|
|
81
|
+
* can access the Messages database. Returns true if accessible.
|
|
82
|
+
*/
|
|
83
|
+
export function testMessagesAccess() {
|
|
84
|
+
const dbPath = join(process.env.HOME || '', 'Library/Messages/chat.db');
|
|
85
|
+
if (!existsSync(dbPath))
|
|
86
|
+
return false;
|
|
87
|
+
try {
|
|
88
|
+
execSync(`sqlite3 "${dbPath}" "SELECT 1 LIMIT 1"`, {
|
|
89
|
+
encoding: 'utf-8',
|
|
90
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
91
|
+
});
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get the gateway-entry.js path relative to this file.
|
|
100
|
+
*/
|
|
101
|
+
export function getGatewayEntryPath() {
|
|
102
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
103
|
+
const __dirname = dirname(__filename);
|
|
104
|
+
return join(__dirname, '..', 'server', 'gateway-entry.js');
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=app-bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-bundle.js","sourceRoot":"","sources":["../../src/utils/app-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coding-sessions.d.ts","sourceRoot":"","sources":["../../src/utils/coding-sessions.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"coding-sessions.d.ts","sourceRoot":"","sources":["../../src/utils/coding-sessions.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,aAAa,GACtB,cAAc,GACd,SAAS,GACT,WAAW,GACX,OAAO,GACP,QAAQ,CAAC;AAGZ,MAAM,WAAW,aAAa;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAIxC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,YAAY,CAW3C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAGrD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAGlE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAI1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAQxD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQ1D;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,aAAa,EAAE,CAG9C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACZ,GAAG,aAAa,CAUhB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC9B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,KAAK,CAAC,EAAE,MAAM,GACZ,IAAI,CASN;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CASvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coding-sessions.js","sourceRoot":"","sources":["../../src/utils/coding-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAC,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAE7C,qDAAqD;AACrD,MAAM,YAAY,GAAG,aAAa,EAAE,CAAC;AACrC,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"coding-sessions.js","sourceRoot":"","sources":["../../src/utils/coding-sessions.ts"],"names":[],"mappings":"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"}
|