aura-code 0.3.7 → 0.6.3
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 +56 -4
- package/dist/agent/compactor.d.ts +26 -0
- package/dist/agent/compactor.js +156 -0
- package/dist/agent/compactor.js.map +1 -0
- package/dist/agent/context.d.ts +4 -0
- package/dist/agent/context.js +38 -0
- package/dist/agent/context.js.map +1 -1
- package/dist/agent/design.d.ts +17 -0
- package/dist/agent/design.js +175 -0
- package/dist/agent/design.js.map +1 -0
- package/dist/agent/loop.js +24 -1
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/system-prompt.d.ts +1 -1
- package/dist/agent/system-prompt.js +14 -3
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/cli/display.js +46 -5
- package/dist/cli/display.js.map +1 -1
- package/dist/cli/index.js +323 -46
- package/dist/cli/index.js.map +1 -1
- package/dist/config/defaults.js +8 -1
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/project-config.d.ts +6 -0
- package/dist/config/project-config.js +2 -0
- package/dist/config/project-config.js.map +1 -1
- package/dist/dream/dream.d.ts +71 -0
- package/dist/dream/dream.js +217 -0
- package/dist/dream/dream.js.map +1 -0
- package/dist/dream/okf.d.ts +10 -0
- package/dist/dream/okf.js +280 -0
- package/dist/dream/okf.js.map +1 -0
- package/dist/dream/parser.d.ts +60 -0
- package/dist/dream/parser.js +176 -0
- package/dist/dream/parser.js.map +1 -0
- package/dist/dream/reconcile.d.ts +69 -0
- package/dist/dream/reconcile.js +303 -0
- package/dist/dream/reconcile.js.map +1 -0
- package/dist/kanban/index.d.ts +5 -0
- package/dist/kanban/index.js +11 -0
- package/dist/kanban/index.js.map +1 -0
- package/dist/kanban/pipeline.d.ts +16 -0
- package/dist/kanban/pipeline.js +910 -0
- package/dist/kanban/pipeline.js.map +1 -0
- package/dist/kanban/server.d.ts +5 -0
- package/dist/kanban/server.js +820 -0
- package/dist/kanban/server.js.map +1 -0
- package/dist/kanban/types.d.ts +75 -0
- package/dist/kanban/types.js +6 -0
- package/dist/kanban/types.js.map +1 -0
- package/dist/learnlight/driven.d.ts +2 -0
- package/dist/learnlight/driven.js +109 -0
- package/dist/learnlight/driven.js.map +1 -0
- package/dist/learnlight/index.d.ts +4 -0
- package/dist/learnlight/index.js +32 -0
- package/dist/learnlight/index.js.map +1 -0
- package/dist/learnlight/lesson-prep.d.ts +36 -0
- package/dist/learnlight/lesson-prep.js +224 -0
- package/dist/learnlight/lesson-prep.js.map +1 -0
- package/dist/learnlight/report.d.ts +2 -0
- package/dist/learnlight/report.js +37 -0
- package/dist/learnlight/report.js.map +1 -0
- package/dist/learnlight/types.d.ts +72 -0
- package/dist/learnlight/types.js +6 -0
- package/dist/learnlight/types.js.map +1 -0
- package/dist/machina/index.d.ts +16 -0
- package/dist/machina/index.js +61 -0
- package/dist/machina/index.js.map +1 -0
- package/dist/machina/render-html.d.ts +2 -0
- package/dist/machina/render-html.js +189 -0
- package/dist/machina/render-html.js.map +1 -0
- package/dist/machina/render-terminal.d.ts +2 -0
- package/dist/machina/render-terminal.js +92 -0
- package/dist/machina/render-terminal.js.map +1 -0
- package/dist/machina/spec.d.ts +61 -0
- package/dist/machina/spec.js +124 -0
- package/dist/machina/spec.js.map +1 -0
- package/dist/machina/verify.d.ts +27 -0
- package/dist/machina/verify.js +85 -0
- package/dist/machina/verify.js.map +1 -0
- package/dist/perception/graph-store.d.ts +11 -0
- package/dist/perception/graph-store.js +33 -0
- package/dist/perception/graph-store.js.map +1 -1
- package/dist/perception/index.d.ts +1 -1
- package/dist/perception/index.js +2 -1
- package/dist/perception/index.js.map +1 -1
- package/dist/providers/anthropic.js +1 -1
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/factory.d.ts +49 -0
- package/dist/providers/factory.js +99 -0
- package/dist/providers/factory.js.map +1 -1
- package/dist/providers/google.js +1 -1
- package/dist/providers/google.js.map +1 -1
- package/dist/providers/openai-compatible.js +81 -50
- package/dist/providers/openai-compatible.js.map +1 -1
- package/dist/rem/graph.d.ts +72 -0
- package/dist/rem/graph.js +139 -0
- package/dist/rem/graph.js.map +1 -0
- package/dist/rem/index.d.ts +16 -0
- package/dist/rem/index.js +60 -0
- package/dist/rem/index.js.map +1 -0
- package/dist/rem/render-html.d.ts +2 -0
- package/dist/rem/render-html.js +189 -0
- package/dist/rem/render-html.js.map +1 -0
- package/dist/rem/render-terminal.d.ts +4 -0
- package/dist/rem/render-terminal.js +94 -0
- package/dist/rem/render-terminal.js.map +1 -0
- package/dist/research/council.d.ts +27 -0
- package/dist/research/council.js +263 -0
- package/dist/research/council.js.map +1 -0
- package/dist/research/research.d.ts +24 -0
- package/dist/research/research.js +116 -0
- package/dist/research/research.js.map +1 -0
- package/dist/ruby/alternator.d.ts +36 -1
- package/dist/ruby/alternator.js +40 -31
- package/dist/ruby/alternator.js.map +1 -1
- package/dist/ruby/stats.js +10 -11
- package/dist/ruby/stats.js.map +1 -1
- package/dist/ruby/types.js +1 -1
- package/dist/ruby/types.js.map +1 -1
- package/dist/safety/permissions.d.ts +8 -0
- package/dist/safety/permissions.js +12 -0
- package/dist/safety/permissions.js.map +1 -1
- package/dist/setup/provider-registry.js +14 -0
- package/dist/setup/provider-registry.js.map +1 -1
- package/dist/setup/provider-test.js +24 -2
- package/dist/setup/provider-test.js.map +1 -1
- package/dist/setup/telegram-wizard.d.ts +57 -0
- package/dist/setup/telegram-wizard.js +343 -0
- package/dist/setup/telegram-wizard.js.map +1 -0
- package/dist/tools/audio-transcribe.d.ts +20 -0
- package/dist/tools/audio-transcribe.js +39 -28
- package/dist/tools/audio-transcribe.js.map +1 -1
- package/dist/tools/browser.js +8 -10
- package/dist/tools/browser.js.map +1 -1
- package/dist/tools/gmail-tool.d.ts +15 -0
- package/dist/tools/gmail-tool.js +361 -0
- package/dist/tools/gmail-tool.js.map +1 -0
- package/dist/tools/read-file.js +13 -0
- package/dist/tools/read-file.js.map +1 -1
- package/dist/tools/telegram-bot.js +103 -20
- package/dist/tools/telegram-bot.js.map +1 -1
- package/dist/tools/telegram-voice.d.ts +22 -0
- package/dist/tools/telegram-voice.js +203 -0
- package/dist/tools/telegram-voice.js.map +1 -0
- package/dist/tools/telegram.d.ts +6 -1
- package/dist/tools/telegram.js +115 -5
- package/dist/tools/telegram.js.map +1 -1
- package/dist/tools/video-render.d.ts +11 -0
- package/dist/tools/video-render.js +189 -0
- package/dist/tools/video-render.js.map +1 -0
- package/dist/tools/web-search.d.ts +20 -0
- package/dist/tools/web-search.js +134 -38
- package/dist/tools/web-search.js.map +1 -1
- package/dist/util/errors.js +6 -0
- package/dist/util/errors.js.map +1 -1
- package/dist/viz/index.js +816 -30
- package/dist/viz/index.js.map +1 -1
- package/dist/viz/reader.d.ts +33 -0
- package/dist/viz/reader.js +343 -0
- package/dist/viz/reader.js.map +1 -0
- package/package.json +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/tools/browser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/tools/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ToolDefinition } from '../providers/types.js';
|
|
2
|
+
export interface GmailInput {
|
|
3
|
+
action: 'list' | 'send' | 'read' | 'setup' | 'setup_finish' | 'setup_status';
|
|
4
|
+
to?: string;
|
|
5
|
+
subject?: string;
|
|
6
|
+
body?: string;
|
|
7
|
+
max_results?: number;
|
|
8
|
+
message_id?: string;
|
|
9
|
+
client_id?: string;
|
|
10
|
+
client_secret?: string;
|
|
11
|
+
code?: string;
|
|
12
|
+
email?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const GMAIL_DEFINITION: ToolDefinition;
|
|
15
|
+
export declare function gmailTool(input: GmailInput): Promise<string>;
|
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.GMAIL_DEFINITION = void 0;
|
|
37
|
+
exports.gmailTool = gmailTool;
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const os = __importStar(require("os"));
|
|
41
|
+
exports.GMAIL_DEFINITION = {
|
|
42
|
+
name: 'gmail',
|
|
43
|
+
description: 'Read and write emails via Gmail API. Uses OAuth from ~/.hermes/google_token.json. ' +
|
|
44
|
+
'Actions: list, read, send (require an existing token — use setup_status to check). ' +
|
|
45
|
+
'setup (step 1: takes client_id + client_secret, returns a URL for the user to open and ' +
|
|
46
|
+
'approve, never echoes secrets back). setup_finish (step 2: takes the "code" from the ' +
|
|
47
|
+
'redirect URL, exchanges it for tokens, and saves them — never returns the token itself). ' +
|
|
48
|
+
'setup_status (checks whether a working token already exists, with no secret values shown).',
|
|
49
|
+
parameters: {
|
|
50
|
+
type: 'object',
|
|
51
|
+
properties: {
|
|
52
|
+
action: { type: 'string', description: 'Action: list, read, send, setup, setup_finish, setup_status' },
|
|
53
|
+
to: { type: 'string', description: 'Recipient email (for send)' },
|
|
54
|
+
subject: { type: 'string', description: 'Email subject (for send/read)' },
|
|
55
|
+
body: { type: 'string', description: 'Email body text (for send)' },
|
|
56
|
+
max_results: { type: 'number', description: 'Max results for list (default: 10)' },
|
|
57
|
+
message_id: { type: 'string', description: 'Gmail message ID to read (for read)' },
|
|
58
|
+
client_id: { type: 'string', description: 'Google OAuth client ID (for setup)' },
|
|
59
|
+
client_secret: { type: 'string', description: 'Google OAuth client secret (for setup)' },
|
|
60
|
+
code: { type: 'string', description: 'Authorization code from the redirect URL (for setup_finish)' },
|
|
61
|
+
email: { type: 'string', description: 'The Gmail address being connected (for setup_finish)' },
|
|
62
|
+
},
|
|
63
|
+
required: ['action'],
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
const TOKEN_PATH = path.join(os.homedir(), '.hermes', 'google_token.json');
|
|
67
|
+
const SETUP_STATE_PATH = path.join(os.homedir(), '.hermes', '.gmail_setup_state.json');
|
|
68
|
+
const REDIRECT_URI = 'http://localhost:8080/';
|
|
69
|
+
const SETUP_SCOPES = [
|
|
70
|
+
'https://www.googleapis.com/auth/gmail.readonly',
|
|
71
|
+
'https://www.googleapis.com/auth/gmail.send',
|
|
72
|
+
'https://www.googleapis.com/auth/gmail.modify',
|
|
73
|
+
].join(' ');
|
|
74
|
+
function loadToken() {
|
|
75
|
+
if (!fs.existsSync(TOKEN_PATH))
|
|
76
|
+
throw new Error(`Google token not found at ${TOKEN_PATH}`);
|
|
77
|
+
return JSON.parse(fs.readFileSync(TOKEN_PATH, 'utf8'));
|
|
78
|
+
}
|
|
79
|
+
function saveToken(token) {
|
|
80
|
+
fs.mkdirSync(path.dirname(TOKEN_PATH), { recursive: true });
|
|
81
|
+
fs.writeFileSync(TOKEN_PATH, JSON.stringify(token, null, 2), { mode: 0o600 });
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Setup is split into two steps because OAuth requires a human to approve
|
|
85
|
+
* access in a browser between them. The client_id/client_secret given in
|
|
86
|
+
* step 1 are held ONLY in memory between the two tool calls (never written to
|
|
87
|
+
* disk, never echoed back) — they're persisted to TOKEN_PATH only once the
|
|
88
|
+
* full token exchange in setup_finish succeeds. If the user never completes
|
|
89
|
+
* step 2, nothing is left on disk.
|
|
90
|
+
*
|
|
91
|
+
* Critically: at no point does this tool return token, refresh_token,
|
|
92
|
+
* client_secret, or any other credential value as part of its string result.
|
|
93
|
+
* Those values exist only inside this process and inside TOKEN_PATH on disk —
|
|
94
|
+
* never in the text that flows back into the conversation.
|
|
95
|
+
*/
|
|
96
|
+
let pendingSetup = null;
|
|
97
|
+
function saveSetupState(s) {
|
|
98
|
+
// Held in-memory primarily; this on-disk copy only survives a process
|
|
99
|
+
// restart between step 1 and step 2 of the SAME setup attempt, and is
|
|
100
|
+
// deleted as soon as setup_finish succeeds or fails terminally.
|
|
101
|
+
fs.mkdirSync(path.dirname(SETUP_STATE_PATH), { recursive: true });
|
|
102
|
+
fs.writeFileSync(SETUP_STATE_PATH, JSON.stringify(s), { mode: 0o600 });
|
|
103
|
+
}
|
|
104
|
+
function loadSetupState() {
|
|
105
|
+
if (pendingSetup)
|
|
106
|
+
return pendingSetup;
|
|
107
|
+
if (!fs.existsSync(SETUP_STATE_PATH))
|
|
108
|
+
return null;
|
|
109
|
+
try {
|
|
110
|
+
return JSON.parse(fs.readFileSync(SETUP_STATE_PATH, 'utf8'));
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
function clearSetupState() {
|
|
117
|
+
pendingSetup = null;
|
|
118
|
+
try {
|
|
119
|
+
fs.unlinkSync(SETUP_STATE_PATH);
|
|
120
|
+
}
|
|
121
|
+
catch { /* already gone */ }
|
|
122
|
+
}
|
|
123
|
+
async function refreshAccess(token) {
|
|
124
|
+
const tokenUri = token.token_uri || 'https://oauth2.googleapis.com/token';
|
|
125
|
+
const body = new URLSearchParams({
|
|
126
|
+
client_id: token.client_id,
|
|
127
|
+
client_secret: token.client_secret,
|
|
128
|
+
refresh_token: token.refresh_token,
|
|
129
|
+
grant_type: 'refresh_token',
|
|
130
|
+
});
|
|
131
|
+
const res = await fetch(tokenUri, {
|
|
132
|
+
method: 'POST',
|
|
133
|
+
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
134
|
+
body: body.toString(),
|
|
135
|
+
});
|
|
136
|
+
if (!res.ok) {
|
|
137
|
+
const text = await res.text();
|
|
138
|
+
throw new Error(`Token refresh failed (${res.status}): ${text}`);
|
|
139
|
+
}
|
|
140
|
+
const data = (await res.json());
|
|
141
|
+
token.token = data.access_token;
|
|
142
|
+
if (data.expires_in) {
|
|
143
|
+
token.expiry = new Date(Date.now() + data.expires_in * 1000).toISOString();
|
|
144
|
+
}
|
|
145
|
+
saveToken(token);
|
|
146
|
+
return data.access_token;
|
|
147
|
+
}
|
|
148
|
+
async function getValidToken() {
|
|
149
|
+
const token = loadToken();
|
|
150
|
+
if (token.token) {
|
|
151
|
+
if (token.expiry && Date.now() < new Date(token.expiry).getTime() + 60000) {
|
|
152
|
+
return token.token;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (!token.refresh_token)
|
|
156
|
+
throw new Error('No refresh_token available to obtain a new access token');
|
|
157
|
+
return refreshAccess(token);
|
|
158
|
+
}
|
|
159
|
+
async function gmailApi(path, init) {
|
|
160
|
+
const expectJson = init?.expectJson ?? true;
|
|
161
|
+
delete init?.expectJson;
|
|
162
|
+
let token = await getValidToken();
|
|
163
|
+
const base = 'https://www.googleapis.com/gmail/v1';
|
|
164
|
+
let res = await fetch(`${base}${path}`, {
|
|
165
|
+
...init,
|
|
166
|
+
headers: {
|
|
167
|
+
Authorization: `Bearer ${token}`,
|
|
168
|
+
...(init?.headers || {}),
|
|
169
|
+
},
|
|
170
|
+
});
|
|
171
|
+
if (res.status === 401) {
|
|
172
|
+
const tokenData = loadToken();
|
|
173
|
+
if (tokenData.refresh_token) {
|
|
174
|
+
token = await refreshAccess(tokenData);
|
|
175
|
+
res = await fetch(`${base}${path}`, {
|
|
176
|
+
...init,
|
|
177
|
+
headers: {
|
|
178
|
+
Authorization: `Bearer ${token}`,
|
|
179
|
+
...(init?.headers || {}),
|
|
180
|
+
},
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
if (res.status === 204) {
|
|
185
|
+
return '';
|
|
186
|
+
}
|
|
187
|
+
const text = await res.text();
|
|
188
|
+
if (!res.ok) {
|
|
189
|
+
throw new Error(`Gmail API error ${res.status}: ${text}`);
|
|
190
|
+
}
|
|
191
|
+
return expectJson ? JSON.parse(text) : text;
|
|
192
|
+
}
|
|
193
|
+
function decodeBase64Url(str) {
|
|
194
|
+
let base64 = str.replace(/-/g, '+').replace(/_/g, '/');
|
|
195
|
+
while (base64.length % 4)
|
|
196
|
+
base64 += '=';
|
|
197
|
+
return Buffer.from(base64, 'base64').toString('utf8');
|
|
198
|
+
}
|
|
199
|
+
function extractPlainBody(msg) {
|
|
200
|
+
if (msg.payload?.parts) {
|
|
201
|
+
const plain = msg.payload.parts.find((p) => p.mimeType === 'text/plain');
|
|
202
|
+
if (plain?.body?.data)
|
|
203
|
+
return decodeBase64Url(plain.body.data);
|
|
204
|
+
for (const p of msg.payload.parts) {
|
|
205
|
+
if (p.parts) {
|
|
206
|
+
const nested = p.parts.find((n) => n.mimeType === 'text/plain' && n.body?.data);
|
|
207
|
+
if (nested)
|
|
208
|
+
return decodeBase64Url(nested.body.data);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
if (msg.payload?.body?.data)
|
|
213
|
+
return decodeBase64Url(msg.payload.body.data);
|
|
214
|
+
return '(empty body)';
|
|
215
|
+
}
|
|
216
|
+
async function gmailTool(input) {
|
|
217
|
+
try {
|
|
218
|
+
switch (input.action) {
|
|
219
|
+
case 'setup_status': {
|
|
220
|
+
if (!fs.existsSync(TOKEN_PATH))
|
|
221
|
+
return 'Not connected. No Gmail token found. Run setup to connect.';
|
|
222
|
+
try {
|
|
223
|
+
const t = loadToken();
|
|
224
|
+
const valid = !!t.refresh_token;
|
|
225
|
+
return valid
|
|
226
|
+
? `Connected${t.email ? ` as ${t.email}` : ''}. Token file present with a refresh token.`
|
|
227
|
+
: 'Token file exists but has no refresh_token — re-run setup.';
|
|
228
|
+
}
|
|
229
|
+
catch {
|
|
230
|
+
return 'Token file exists but could not be parsed — re-run setup.';
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
case 'setup': {
|
|
234
|
+
if (!input.client_id || !input.client_secret) {
|
|
235
|
+
return 'Error: setup requires client_id and client_secret (from Google Cloud Console → APIs & Services → Credentials → OAuth client ID, type "Desktop app").';
|
|
236
|
+
}
|
|
237
|
+
// Held only in memory + a short-lived local state file; never echoed.
|
|
238
|
+
pendingSetup = { client_id: input.client_id, client_secret: input.client_secret };
|
|
239
|
+
saveSetupState(pendingSetup);
|
|
240
|
+
const params = new URLSearchParams({
|
|
241
|
+
client_id: input.client_id,
|
|
242
|
+
redirect_uri: REDIRECT_URI,
|
|
243
|
+
response_type: 'code',
|
|
244
|
+
scope: SETUP_SCOPES,
|
|
245
|
+
access_type: 'offline',
|
|
246
|
+
prompt: 'consent',
|
|
247
|
+
});
|
|
248
|
+
const url = `https://accounts.google.com/o/oauth2/v2/auth?${params.toString()}`;
|
|
249
|
+
return (`Step 1 of 2: open this URL, sign in, and approve access:\n\n${url}\n\n` +
|
|
250
|
+
`You'll be redirected to a localhost address that fails to load — that's expected, ` +
|
|
251
|
+
`nothing is listening there. Copy the "code=" value from that URL's address bar ` +
|
|
252
|
+
`(everything after "code=" and before the next "&", if any), then tell me to finish ` +
|
|
253
|
+
`setup with that code and your Gmail address. I will not display the code, the ` +
|
|
254
|
+
`client secret, or the resulting token back to you — only a success or failure message.`);
|
|
255
|
+
}
|
|
256
|
+
case 'setup_finish': {
|
|
257
|
+
const state = loadSetupState();
|
|
258
|
+
if (!state) {
|
|
259
|
+
return 'Error: no setup in progress. Run the setup action first (with client_id and client_secret) to get a fresh authorization URL.';
|
|
260
|
+
}
|
|
261
|
+
if (!input.code) {
|
|
262
|
+
return 'Error: setup_finish requires the "code" value copied from the redirect URL.';
|
|
263
|
+
}
|
|
264
|
+
const body = new URLSearchParams({
|
|
265
|
+
code: input.code,
|
|
266
|
+
client_id: state.client_id,
|
|
267
|
+
client_secret: state.client_secret,
|
|
268
|
+
redirect_uri: REDIRECT_URI,
|
|
269
|
+
grant_type: 'authorization_code',
|
|
270
|
+
});
|
|
271
|
+
let res;
|
|
272
|
+
try {
|
|
273
|
+
res = await fetch('https://oauth2.googleapis.com/token', {
|
|
274
|
+
method: 'POST',
|
|
275
|
+
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
276
|
+
body: body.toString(),
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
catch (e) {
|
|
280
|
+
return `Setup failed: could not reach Google's token endpoint (${e?.message ?? String(e)}). The authorization code is single-use — you'll need to run setup again to get a fresh one.`;
|
|
281
|
+
}
|
|
282
|
+
if (!res.ok) {
|
|
283
|
+
// Do not include res text verbatim if it might contain the code/secret echoed back;
|
|
284
|
+
// Google's error responses for this endpoint don't, but we keep this conservative.
|
|
285
|
+
clearSetupState();
|
|
286
|
+
return `Setup failed: Google rejected the authorization code (HTTP ${res.status}). The code is single-use and may have expired or been used already — run setup again for a fresh URL.`;
|
|
287
|
+
}
|
|
288
|
+
const data = (await res.json());
|
|
289
|
+
if (!data.refresh_token) {
|
|
290
|
+
clearSetupState();
|
|
291
|
+
return ('Setup partially failed: Google did not return a refresh_token, which means future ' +
|
|
292
|
+
'tokens cannot be auto-renewed. This usually happens when access was already granted ' +
|
|
293
|
+
'previously. Remove the app at https://myaccount.google.com/permissions and run setup ' +
|
|
294
|
+
'again to force a fresh consent.');
|
|
295
|
+
}
|
|
296
|
+
const tokenFile = {
|
|
297
|
+
token: data.access_token,
|
|
298
|
+
refresh_token: data.refresh_token,
|
|
299
|
+
token_uri: 'https://oauth2.googleapis.com/token',
|
|
300
|
+
client_id: state.client_id,
|
|
301
|
+
client_secret: state.client_secret,
|
|
302
|
+
scopes: (data.scope ?? SETUP_SCOPES).split(' '),
|
|
303
|
+
expiry: data.expires_in ? new Date(Date.now() + data.expires_in * 1000).toISOString() : undefined,
|
|
304
|
+
email: input.email,
|
|
305
|
+
};
|
|
306
|
+
saveToken(tokenFile);
|
|
307
|
+
clearSetupState();
|
|
308
|
+
return `✓ Gmail connected${input.email ? ` for ${input.email}` : ''}. You can now use list, read, and send.`;
|
|
309
|
+
}
|
|
310
|
+
case 'list': {
|
|
311
|
+
const max = input.max_results ?? 10;
|
|
312
|
+
const data = (await gmailApi(`/users/me/messages?maxResults=${max}${input.subject ? `&q=subject:${encodeURIComponent(input.subject)}` : ''}`));
|
|
313
|
+
const messages = data.messages ?? [];
|
|
314
|
+
if (messages.length === 0)
|
|
315
|
+
return 'No emails found.';
|
|
316
|
+
const summaries = [];
|
|
317
|
+
for (const m of messages.slice(0, max)) {
|
|
318
|
+
const msg = (await gmailApi(`/users/me/messages/${m.id}`));
|
|
319
|
+
const headers = msg.payload?.headers ?? [];
|
|
320
|
+
const h = (name) => headers.find((h) => h.name?.toLowerCase() === name.toLowerCase())?.value ?? '';
|
|
321
|
+
summaries.push(`ID: ${m.id}\nFrom: ${h('From')}\nSubject: ${h('Subject')}\nDate: ${h('Date')}`);
|
|
322
|
+
}
|
|
323
|
+
return `Found ${summaries.length} emails:\n\n${summaries.join('\n---\n')}`;
|
|
324
|
+
}
|
|
325
|
+
case 'read': {
|
|
326
|
+
if (!input.message_id)
|
|
327
|
+
return 'Error: message_id is required for read';
|
|
328
|
+
const msg = (await gmailApi(`/users/me/messages/${input.message_id}`));
|
|
329
|
+
const headers = msg.payload?.headers ?? [];
|
|
330
|
+
const h = (name) => headers.find((h) => h.name?.toLowerCase() === name.toLowerCase())?.value ?? '';
|
|
331
|
+
const body = extractPlainBody(msg);
|
|
332
|
+
return `From: ${h('From')}\nTo: ${h('To')}\nSubject: ${h('Subject')}\nDate: ${h('Date')}\n\n${body}`;
|
|
333
|
+
}
|
|
334
|
+
case 'send': {
|
|
335
|
+
if (!input.to)
|
|
336
|
+
return 'Error: to is required for send';
|
|
337
|
+
if (!input.subject)
|
|
338
|
+
return 'Error: subject is required for send';
|
|
339
|
+
if (!input.body)
|
|
340
|
+
return 'Error: body is required for send';
|
|
341
|
+
const isHtml = /<html|<body|<div|<p|<br|<table|<h[1-6]/i.test(input.body);
|
|
342
|
+
const contentType = isHtml ? 'text/html; charset=UTF-8' : 'text/plain; charset=UTF-8';
|
|
343
|
+
const tokenData = loadToken();
|
|
344
|
+
const fromEmail = tokenData.email || 'milodule3@gmail.com';
|
|
345
|
+
const raw = Buffer.from(`From: ${fromEmail}\r\nTo: ${input.to}\r\nSubject: ${input.subject}\r\nMIME-Version: 1.0\r\nContent-Type: ${contentType}\r\n\r\n${input.body}`).toString('base64url');
|
|
346
|
+
const data = (await gmailApi('/users/me/messages', {
|
|
347
|
+
method: 'POST',
|
|
348
|
+
headers: { 'Content-Type': 'application/json' },
|
|
349
|
+
body: JSON.stringify({ raw }),
|
|
350
|
+
}));
|
|
351
|
+
return `Email sent to ${input.to}: "${input.subject}"${data.id ? ` (ID: ${data.id})` : ''}`;
|
|
352
|
+
}
|
|
353
|
+
default:
|
|
354
|
+
return `Error: Unknown gmail action: ${input.action}`;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
catch (e) {
|
|
358
|
+
return `Gmail error: ${e?.message ?? String(e)}`;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
//# sourceMappingURL=gmail-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gmail-tool.js","sourceRoot":"","sources":["../../src/tools/gmail-tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6NA,8BAqKC;AAlYD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAqBZ,QAAA,gBAAgB,GAAmB;IAC9C,IAAI,EAAE,OAAO;IACb,WAAW,EACT,oFAAoF;QACpF,qFAAqF;QACrF,yFAAyF;QACzF,uFAAuF;QACvF,2FAA2F;QAC3F,4FAA4F;IAC9F,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6DAA6D,EAAE;YAC7G,EAAE,EAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;YAC5E,OAAO,EAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;YAC/E,IAAI,EAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;YAC5E,WAAW,EAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE;YACpF,UAAU,EAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;YACrF,SAAS,EAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE;YACpF,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;YACxF,IAAI,EAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6DAA6D,EAAE;YAC7G,KAAK,EAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sDAAsD,EAAE;SACvG;QACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;CACF,CAAC;AAEF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;AAC3E,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,yBAAyB,CAAC,CAAC;AACvF,MAAM,YAAY,GAAG,wBAAwB,CAAC;AAC9C,MAAM,YAAY,GAAG;IACnB,gDAAgD;IAChD,4CAA4C;IAC5C,8CAA8C;CAC/C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAaZ,SAAS,SAAS;IAChB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,UAAU,EAAE,CAAC,CAAC;IAC3F,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAc,CAAC;AACtE,CAAC;AAED,SAAS,SAAS,CAAC,KAAgB;IACjC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAChF,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,IAAI,YAAY,GAAwD,IAAI,CAAC;AAE7E,SAAS,cAAc,CAAC,CAA+C;IACrE,sEAAsE;IACtE,sEAAsE;IACtE,gEAAgE;IAChE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,eAAe;IACtB,YAAY,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC;QAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACvE,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,KAAgB;IAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,IAAI,qCAAqC,CAAC;IAC1E,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;QAC/B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,UAAU,EAAE,eAAe;KAC5B,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QAChC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;QAChE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;KACtB,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAiD,CAAC;IAChF,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;IAChC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,KAAK,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7E,CAAC;IACD,SAAS,CAAC,KAAK,CAAC,CAAC;IACjB,OAAO,IAAI,CAAC,YAAY,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,aAAa;IAC1B,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;YAC1E,OAAO,KAAK,CAAC,KAAe,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IACrG,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAID,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,IAAkB;IACtD,MAAM,UAAU,GAAI,IAAY,EAAE,UAAU,IAAI,IAAI,CAAC;IACrD,OAAQ,IAAY,EAAE,UAAU,CAAC;IAEjC,IAAI,KAAK,GAAG,MAAM,aAAa,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,qCAAqC,CAAC;IAEnD,IAAI,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE;QACtC,GAAG,IAAI;QACP,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;YAChC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;SACzB;KACF,CAAC,CAAC;IAEH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;QAC9B,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;YAC5B,KAAK,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;YACvC,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE;gBAClC,GAAG,IAAI;gBACP,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,KAAK,EAAE;oBAChC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;iBACzB;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvB,OAAO,EAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAY,CAAC;AACvD,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,GAAG,CAAC;IACxC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAQ;IAChC,IAAI,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC;QAC9E,IAAI,KAAK,EAAE,IAAI,EAAE,IAAI;YAAE,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACrF,IAAI,MAAM;oBAAE,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI;QAAE,OAAO,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3E,OAAO,cAAc,CAAC;AACxB,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,KAAiB;IAC/C,IAAI,CAAC;QACH,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;YACrB,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;oBAAE,OAAO,4DAA4D,CAAC;gBACpG,IAAI,CAAC;oBACH,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;oBACtB,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;oBAChC,OAAO,KAAK;wBACV,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,4CAA4C;wBACzF,CAAC,CAAC,4DAA4D,CAAC;gBACnE,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,2DAA2D,CAAC;gBACrE,CAAC;YACH,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;oBAC7C,OAAO,sJAAsJ,CAAC;gBAChK,CAAC;gBACD,sEAAsE;gBACtE,YAAY,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;gBAClF,cAAc,CAAC,YAAY,CAAC,CAAC;gBAE7B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;oBACjC,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,YAAY,EAAE,YAAY;oBAC1B,aAAa,EAAE,MAAM;oBACrB,KAAK,EAAE,YAAY;oBACnB,WAAW,EAAE,SAAS;oBACtB,MAAM,EAAE,SAAS;iBAClB,CAAC,CAAC;gBACH,MAAM,GAAG,GAAG,gDAAgD,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAEhF,OAAO,CACL,+DAA+D,GAAG,MAAM;oBACxE,oFAAoF;oBACpF,iFAAiF;oBACjF,qFAAqF;oBACrF,gFAAgF;oBAChF,wFAAwF,CACzF,CAAC;YACJ,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;gBAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,8HAA8H,CAAC;gBACxI,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;oBAChB,OAAO,6EAA6E,CAAC;gBACvF,CAAC;gBAED,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;oBAC/B,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,YAAY,EAAE,YAAY;oBAC1B,UAAU,EAAE,oBAAoB;iBACjC,CAAC,CAAC;gBAEH,IAAI,GAAa,CAAC;gBAClB,IAAI,CAAC;oBACH,GAAG,GAAG,MAAM,KAAK,CAAC,qCAAqC,EAAE;wBACvD,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;wBAChE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;qBACtB,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,OAAO,0DAA0D,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,8FAA8F,CAAC;gBACzL,CAAC;gBAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBACZ,oFAAoF;oBACpF,mFAAmF;oBACnF,eAAe,EAAE,CAAC;oBAClB,OAAO,8DAA8D,GAAG,CAAC,MAAM,wGAAwG,CAAC;gBAC1L,CAAC;gBAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA0F,CAAC;gBAEzH,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACxB,eAAe,EAAE,CAAC;oBAClB,OAAO,CACL,oFAAoF;wBACpF,sFAAsF;wBACtF,uFAAuF;wBACvF,iCAAiC,CAClC,CAAC;gBACJ,CAAC;gBAED,MAAM,SAAS,GAAc;oBAC3B,KAAK,EAAE,IAAI,CAAC,YAAY;oBACxB,aAAa,EAAE,IAAI,CAAC,aAAa;oBACjC,SAAS,EAAE,qCAAqC;oBAChD,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;oBAC/C,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;oBACjG,KAAK,EAAE,KAAK,CAAC,KAAK;iBACnB,CAAC;gBACF,SAAS,CAAC,SAAS,CAAC,CAAC;gBACrB,eAAe,EAAE,CAAC;gBAElB,OAAO,oBAAoB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,yCAAyC,CAAC;YAC/G,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;gBACpC,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAC1B,iCAAiC,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAChH,CAAoC,CAAC;gBAEtC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACrC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,kBAAkB,CAAC;gBAErD,MAAM,SAAS,GAAa,EAAE,CAAC;gBAC/B,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;oBACvC,MAAM,GAAG,GAAG,CAAC,MAAM,QAAQ,CAAC,sBAAsB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAQ,CAAC;oBAClE,MAAM,OAAO,GAA6C,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;oBACrF,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;oBAChH,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAClG,CAAC;gBACD,OAAO,SAAS,SAAS,CAAC,MAAM,eAAe,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7E,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAI,CAAC,KAAK,CAAC,UAAU;oBAAE,OAAO,wCAAwC,CAAC;gBACvE,MAAM,GAAG,GAAG,CAAC,MAAM,QAAQ,CAAC,sBAAsB,KAAK,CAAC,UAAU,EAAE,CAAC,CAAQ,CAAC;gBAC9E,MAAM,OAAO,GAA6C,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;gBACrF,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChH,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBACnC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACvG,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAI,CAAC,KAAK,CAAC,EAAE;oBAAE,OAAO,gCAAgC,CAAC;gBACvD,IAAI,CAAC,KAAK,CAAC,OAAO;oBAAE,OAAO,qCAAqC,CAAC;gBACjE,IAAI,CAAC,KAAK,CAAC,IAAI;oBAAE,OAAO,kCAAkC,CAAC;gBAE3D,MAAM,MAAM,GAAG,yCAAyC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1E,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,2BAA2B,CAAC;gBAEtF,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;gBAC9B,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,IAAI,qBAAqB,CAAC;gBAE3D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CACrB,SAAS,SAAS,WAAW,KAAK,CAAC,EAAE,gBAAgB,KAAK,CAAC,OAAO,0CAA0C,WAAW,WAAW,KAAK,CAAC,IAAI,EAAE,CAC/I,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAExB,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAiB,oBAAoB,EAAE;oBACjE,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;iBAC9B,CAAC,CAAoB,CAAC;gBAEvB,OAAO,iBAAiB,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC9F,CAAC;YAED;gBACE,OAAO,gCAAgC,KAAK,CAAC,MAAM,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,gBAAgB,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,CAAC;AACH,CAAC"}
|
package/dist/tools/read-file.js
CHANGED
|
@@ -63,6 +63,19 @@ function readFile(input, cwd) {
|
|
|
63
63
|
const numbered = slice.map((l, i) => `${start + i + 1}: ${l}`).join('\n');
|
|
64
64
|
return `${input.path} (lines ${start + 1}–${end} of ${total}):\n\n${numbered}`;
|
|
65
65
|
}
|
|
66
|
+
// Hard byte ceiling, checked BEFORE the line-count check. Line-based
|
|
67
|
+
// truncation alone is no protection: a file with few lines but one enormous
|
|
68
|
+
// line (minified JS/CSS, a base64-inlined asset, a single-line data blob) can
|
|
69
|
+
// still be many megabytes and, read in full, will blow past the model's
|
|
70
|
+
// context window in one tool call. ~256 KB ≈ 70K+ tokens, plenty for a real
|
|
71
|
+
// source file; anything larger must be read in slices.
|
|
72
|
+
const MAX_BYTES = 256 * 1024;
|
|
73
|
+
const byteLen = Buffer.byteLength(content, 'utf8');
|
|
74
|
+
if (byteLen > MAX_BYTES) {
|
|
75
|
+
const head = content.slice(0, 4000);
|
|
76
|
+
const tail = content.slice(-2000);
|
|
77
|
+
return `${input.path} (${byteLen} bytes across ${total} lines — too large to inline; showing first 4000 + last 2000 chars). Use start_line/end_line to read specific sections, or grep_search to locate content:\n\n${head}\n\n... [${byteLen - 6000} bytes omitted] ...\n\n${tail}`;
|
|
78
|
+
}
|
|
66
79
|
// Return full file with line numbers, truncating if very large
|
|
67
80
|
const MAX_LINES = 500;
|
|
68
81
|
if (total > MAX_LINES) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-file.js","sourceRoot":"","sources":["../../src/tools/read-file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,
|
|
1
|
+
{"version":3,"file":"read-file.js","sourceRoot":"","sources":["../../src/tools/read-file.ts"],"names":[],"mappings":"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"}
|