agentxl 1.0.0 → 1.1.2
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/LICENSE +21 -0
- package/README.md +352 -197
- package/bin/agentxl-folder-picker.exe +0 -0
- package/bin/agentxl.js +44 -8
- package/dist/agent/models.d.ts +9 -9
- package/dist/agent/models.d.ts.map +1 -1
- package/dist/agent/models.js +44 -8
- package/dist/agent/models.js.map +1 -1
- package/dist/agent/prompt/folder-context.d.ts +26 -0
- package/dist/agent/prompt/folder-context.d.ts.map +1 -0
- package/dist/agent/prompt/folder-context.js +105 -0
- package/dist/agent/prompt/folder-context.js.map +1 -0
- package/dist/agent/prompt/system-prompt.d.ts +21 -0
- package/dist/agent/prompt/system-prompt.d.ts.map +1 -0
- package/dist/agent/prompt/system-prompt.js +130 -0
- package/dist/agent/prompt/system-prompt.js.map +1 -0
- package/dist/agent/session.d.ts +10 -4
- package/dist/agent/session.d.ts.map +1 -1
- package/dist/agent/session.js +53 -15
- package/dist/agent/session.js.map +1 -1
- package/dist/agent/tools/excel.d.ts +24 -0
- package/dist/agent/tools/excel.d.ts.map +1 -0
- package/dist/agent/tools/excel.js +132 -0
- package/dist/agent/tools/excel.js.map +1 -0
- package/dist/server/document-converter.d.ts +71 -0
- package/dist/server/document-converter.d.ts.map +1 -0
- package/dist/server/document-converter.js +353 -0
- package/dist/server/document-converter.js.map +1 -0
- package/dist/server/excel-bridge.d.ts +38 -0
- package/dist/server/excel-bridge.d.ts.map +1 -0
- package/dist/server/excel-bridge.js +75 -0
- package/dist/server/excel-bridge.js.map +1 -0
- package/dist/server/folder-picker.d.ts +9 -0
- package/dist/server/folder-picker.d.ts.map +1 -0
- package/dist/server/folder-picker.js +204 -0
- package/dist/server/folder-picker.js.map +1 -0
- package/dist/server/folder-scanner.d.ts +43 -0
- package/dist/server/folder-scanner.d.ts.map +1 -0
- package/dist/server/folder-scanner.js +161 -0
- package/dist/server/folder-scanner.js.map +1 -0
- package/dist/server/http.d.ts +19 -0
- package/dist/server/http.d.ts.map +1 -0
- package/dist/server/http.js +62 -0
- package/dist/server/http.js.map +1 -0
- package/dist/server/index.d.ts +16 -4
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +70 -246
- package/dist/server/index.js.map +1 -1
- package/dist/server/json-store.d.ts +19 -0
- package/dist/server/json-store.d.ts.map +1 -0
- package/dist/server/json-store.js +37 -0
- package/dist/server/json-store.js.map +1 -0
- package/dist/server/routes/agent.d.ts +16 -0
- package/dist/server/routes/agent.d.ts.map +1 -0
- package/dist/server/routes/agent.js +196 -0
- package/dist/server/routes/agent.js.map +1 -0
- package/dist/server/routes/excel.d.ts +10 -0
- package/dist/server/routes/excel.d.ts.map +1 -0
- package/dist/server/routes/excel.js +41 -0
- package/dist/server/routes/excel.js.map +1 -0
- package/dist/server/routes/folder.d.ts +15 -0
- package/dist/server/routes/folder.d.ts.map +1 -0
- package/dist/server/routes/folder.js +184 -0
- package/dist/server/routes/folder.js.map +1 -0
- package/dist/server/routes/workbook.d.ts +7 -0
- package/dist/server/routes/workbook.d.ts.map +1 -0
- package/dist/server/routes/workbook.js +31 -0
- package/dist/server/routes/workbook.js.map +1 -0
- package/dist/server/static.d.ts +12 -0
- package/dist/server/static.d.ts.map +1 -0
- package/dist/server/static.js +83 -0
- package/dist/server/static.js.map +1 -0
- package/dist/server/workbook-folder-store.d.ts +24 -0
- package/dist/server/workbook-folder-store.d.ts.map +1 -0
- package/dist/server/workbook-folder-store.js +76 -0
- package/dist/server/workbook-folder-store.js.map +1 -0
- package/dist/server/workbook-identity.d.ts +8 -0
- package/dist/server/workbook-identity.d.ts.map +1 -0
- package/dist/server/workbook-identity.js +57 -0
- package/dist/server/workbook-identity.js.map +1 -0
- package/manifest/manifest-hosted.xml +107 -0
- package/package.json +24 -10
- package/taskpane/dist/assets/index-BnD8psE_.js +224 -0
- package/taskpane/dist/assets/index-BuAcDfRq.css +1 -0
- package/taskpane/dist/index.html +2 -2
- package/taskpane/dist/assets/index-6sMpIYxE.css +0 -1
- package/taskpane/dist/assets/index-DyLrQ3Aa.js +0 -164
package/dist/server/index.js
CHANGED
|
@@ -1,72 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentXL HTTPS server — thin wiring layer.
|
|
3
|
+
*
|
|
4
|
+
* Responsibilities:
|
|
5
|
+
* - Server lifecycle (start, stop)
|
|
6
|
+
* - Route dispatch
|
|
7
|
+
* - Version resolution
|
|
8
|
+
*
|
|
9
|
+
* All handler logic lives in:
|
|
10
|
+
* - src/server/routes/agent.ts
|
|
11
|
+
* - src/server/routes/folder.ts
|
|
12
|
+
* - src/server/routes/workbook.ts
|
|
13
|
+
* - src/server/static.ts
|
|
14
|
+
*/
|
|
1
15
|
import { createServer } from "https";
|
|
2
16
|
import { readFileSync, existsSync } from "fs";
|
|
3
|
-
import { join,
|
|
17
|
+
import { join, dirname } from "path";
|
|
4
18
|
import { fileURLToPath } from "url";
|
|
5
19
|
import { ensureCerts } from "./certs.js";
|
|
6
|
-
import {
|
|
20
|
+
import { sendError, sendJson, sendCorsPreflightResponse, sendMethodNotAllowed, } from "./http.js";
|
|
21
|
+
import { resolveTaskpaneRoot, handleTaskpane } from "./static.js";
|
|
22
|
+
import { handleWorkbookResolve } from "./routes/workbook.js";
|
|
23
|
+
import { handleFolderStatus, handleFolderPick, handleFolderSelect, handleFolderFiles, handleFolderRefresh, } from "./routes/folder.js";
|
|
24
|
+
import { handleAgent, handleConfigStatus } from "./routes/agent.js";
|
|
25
|
+
import { handleExcelResult } from "./routes/excel.js";
|
|
7
26
|
const __filename = fileURLToPath(import.meta.url);
|
|
8
27
|
const __dirname = dirname(__filename);
|
|
9
28
|
// ---------------------------------------------------------------------------
|
|
10
|
-
//
|
|
11
|
-
// ---------------------------------------------------------------------------
|
|
12
|
-
const MIME_TYPES = {
|
|
13
|
-
".html": "text/html; charset=utf-8",
|
|
14
|
-
".js": "application/javascript; charset=utf-8",
|
|
15
|
-
".mjs": "application/javascript; charset=utf-8",
|
|
16
|
-
".css": "text/css; charset=utf-8",
|
|
17
|
-
".json": "application/json; charset=utf-8",
|
|
18
|
-
".png": "image/png",
|
|
19
|
-
".svg": "image/svg+xml",
|
|
20
|
-
".ico": "image/x-icon",
|
|
21
|
-
".webp": "image/webp",
|
|
22
|
-
".woff": "font/woff",
|
|
23
|
-
".woff2": "font/woff2",
|
|
24
|
-
".map": "application/json",
|
|
25
|
-
};
|
|
26
|
-
// ---------------------------------------------------------------------------
|
|
27
|
-
// Helpers
|
|
29
|
+
// Version
|
|
28
30
|
// ---------------------------------------------------------------------------
|
|
29
|
-
/** Read the full request body as a string. */
|
|
30
|
-
function readBody(req) {
|
|
31
|
-
return new Promise((resolve, reject) => {
|
|
32
|
-
const chunks = [];
|
|
33
|
-
req.on("data", (chunk) => chunks.push(chunk));
|
|
34
|
-
req.on("end", () => resolve(Buffer.concat(chunks).toString("utf-8")));
|
|
35
|
-
req.on("error", reject);
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
/** Parse JSON body, returning null on failure. */
|
|
39
|
-
async function parseJsonBody(req) {
|
|
40
|
-
try {
|
|
41
|
-
const raw = await readBody(req);
|
|
42
|
-
return raw.length > 0 ? JSON.parse(raw) : null;
|
|
43
|
-
}
|
|
44
|
-
catch {
|
|
45
|
-
return null;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
/** Send a JSON response. */
|
|
49
|
-
function sendJson(res, status, body) {
|
|
50
|
-
const payload = JSON.stringify(body);
|
|
51
|
-
res.writeHead(status, {
|
|
52
|
-
"Content-Type": "application/json; charset=utf-8",
|
|
53
|
-
"Access-Control-Allow-Origin": "*",
|
|
54
|
-
"Access-Control-Allow-Methods": "GET, POST, OPTIONS",
|
|
55
|
-
"Access-Control-Allow-Headers": "Content-Type",
|
|
56
|
-
"Content-Length": Buffer.byteLength(payload),
|
|
57
|
-
});
|
|
58
|
-
res.end(payload);
|
|
59
|
-
}
|
|
60
|
-
/** Send a plain-text error. */
|
|
61
|
-
function sendError(res, status, message) {
|
|
62
|
-
sendJson(res, status, { error: message });
|
|
63
|
-
}
|
|
64
31
|
/** Get package version from package.json. */
|
|
65
32
|
function getVersion() {
|
|
66
33
|
try {
|
|
67
|
-
// Walk up from dist/server/ or src/server/ to find package.json
|
|
68
34
|
const candidates = [
|
|
69
|
-
join(__dirname, "..", "..", "package.json"),
|
|
35
|
+
join(__dirname, "..", "..", "package.json"),
|
|
70
36
|
join(__dirname, "..", "..", "..", "package.json"),
|
|
71
37
|
];
|
|
72
38
|
for (const p of candidates) {
|
|
@@ -82,176 +48,19 @@ function getVersion() {
|
|
|
82
48
|
}
|
|
83
49
|
}
|
|
84
50
|
// ---------------------------------------------------------------------------
|
|
85
|
-
// Route: GET /taskpane/* — static file serving
|
|
86
|
-
// ---------------------------------------------------------------------------
|
|
87
|
-
function resolveTaskpaneRoot() {
|
|
88
|
-
// From dist/server/ → ../../taskpane/dist
|
|
89
|
-
const candidates = [
|
|
90
|
-
join(__dirname, "..", "..", "taskpane", "dist"),
|
|
91
|
-
join(__dirname, "..", "..", "..", "taskpane", "dist"),
|
|
92
|
-
];
|
|
93
|
-
for (const c of candidates) {
|
|
94
|
-
if (existsSync(c))
|
|
95
|
-
return c;
|
|
96
|
-
}
|
|
97
|
-
// Fallback — may not exist yet
|
|
98
|
-
return join(__dirname, "..", "..", "taskpane", "dist");
|
|
99
|
-
}
|
|
100
|
-
function handleTaskpane(req, res, taskpaneRoot) {
|
|
101
|
-
const url = req.url ?? "/";
|
|
102
|
-
// Strip /taskpane prefix to get relative path
|
|
103
|
-
let relativePath = url.replace(/^\/taskpane\/?/, "");
|
|
104
|
-
// Remove query string
|
|
105
|
-
relativePath = relativePath.split("?")[0];
|
|
106
|
-
// Default to index.html
|
|
107
|
-
if (relativePath === "" || relativePath === "/") {
|
|
108
|
-
relativePath = "index.html";
|
|
109
|
-
}
|
|
110
|
-
const filePath = join(taskpaneRoot, relativePath);
|
|
111
|
-
// Security: ensure resolved path is within taskpaneRoot
|
|
112
|
-
if (!filePath.startsWith(taskpaneRoot)) {
|
|
113
|
-
sendError(res, 403, "Forbidden");
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
if (!existsSync(filePath)) {
|
|
117
|
-
// SPA fallback: serve index.html for non-file paths
|
|
118
|
-
const indexPath = join(taskpaneRoot, "index.html");
|
|
119
|
-
if (existsSync(indexPath) && !extname(relativePath)) {
|
|
120
|
-
const content = readFileSync(indexPath);
|
|
121
|
-
res.writeHead(200, {
|
|
122
|
-
"Content-Type": "text/html; charset=utf-8",
|
|
123
|
-
"Content-Length": content.length,
|
|
124
|
-
"Access-Control-Allow-Origin": "*",
|
|
125
|
-
});
|
|
126
|
-
res.end(content);
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
sendError(res, 404, "Not found");
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
const ext = extname(filePath).toLowerCase();
|
|
133
|
-
const contentType = MIME_TYPES[ext] ?? "application/octet-stream";
|
|
134
|
-
const content = readFileSync(filePath);
|
|
135
|
-
res.writeHead(200, {
|
|
136
|
-
"Content-Type": contentType,
|
|
137
|
-
"Content-Length": content.length,
|
|
138
|
-
"Access-Control-Allow-Origin": "*",
|
|
139
|
-
"Cache-Control": ext === ".html" ? "no-cache" : "public, max-age=31536000",
|
|
140
|
-
});
|
|
141
|
-
res.end(content);
|
|
142
|
-
}
|
|
143
|
-
// ---------------------------------------------------------------------------
|
|
144
|
-
// Route: GET /api/version
|
|
145
|
-
// ---------------------------------------------------------------------------
|
|
146
|
-
function handleVersion(_req, res) {
|
|
147
|
-
sendJson(res, 200, { version: getVersion() });
|
|
148
|
-
}
|
|
149
|
-
// ---------------------------------------------------------------------------
|
|
150
|
-
// Route: POST /api/agent — SSE streaming via Pi SDK session
|
|
151
|
-
// ---------------------------------------------------------------------------
|
|
152
|
-
async function handleAgent(req, res) {
|
|
153
|
-
const body = await parseJsonBody(req);
|
|
154
|
-
// Strict validation: message must be a non-empty string
|
|
155
|
-
if (!body ||
|
|
156
|
-
typeof body.message !== "string" ||
|
|
157
|
-
body.message.trim().length === 0) {
|
|
158
|
-
sendError(res, 400, "Missing 'message' in request body");
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
// Auth check
|
|
162
|
-
if (!isAuthenticated()) {
|
|
163
|
-
sendError(res, 401, "Not authenticated. Run 'agentxl login' to set up credentials.");
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
// Build message with optional Excel context
|
|
167
|
-
const context = body.context;
|
|
168
|
-
const message = body.message.trim();
|
|
169
|
-
let fullMessage = message;
|
|
170
|
-
if (context && (context.activeSheet || context.selectedRange)) {
|
|
171
|
-
const parts = [];
|
|
172
|
-
if (context.activeSheet)
|
|
173
|
-
parts.push(`Active sheet: ${context.activeSheet}`);
|
|
174
|
-
if (context.selectedRange)
|
|
175
|
-
parts.push(`Selected range: ${context.selectedRange}`);
|
|
176
|
-
fullMessage = `[Context: ${parts.join(", ")}]\n\n${message}`;
|
|
177
|
-
}
|
|
178
|
-
// SSE headers
|
|
179
|
-
res.writeHead(200, {
|
|
180
|
-
"Content-Type": "text/event-stream; charset=utf-8",
|
|
181
|
-
"Cache-Control": "no-cache",
|
|
182
|
-
Connection: "keep-alive",
|
|
183
|
-
"Access-Control-Allow-Origin": "*",
|
|
184
|
-
});
|
|
185
|
-
/** Write an SSE event to the response stream. */
|
|
186
|
-
const sendSSE = (data) => {
|
|
187
|
-
if (!res.writableEnded) {
|
|
188
|
-
res.write(`data: ${JSON.stringify(data)}\n\n`);
|
|
189
|
-
}
|
|
190
|
-
};
|
|
191
|
-
let unsubscribe = null;
|
|
192
|
-
let completed = false;
|
|
193
|
-
/** Clean up subscription. */
|
|
194
|
-
const cleanup = () => {
|
|
195
|
-
if (unsubscribe) {
|
|
196
|
-
unsubscribe();
|
|
197
|
-
unsubscribe = null;
|
|
198
|
-
}
|
|
199
|
-
};
|
|
200
|
-
try {
|
|
201
|
-
const session = await getSession();
|
|
202
|
-
// Subscribe to session events and stream them as SSE
|
|
203
|
-
unsubscribe = session.subscribe((event) => {
|
|
204
|
-
// Forward all events to the client
|
|
205
|
-
sendSSE(event);
|
|
206
|
-
// Close the stream when the agent finishes
|
|
207
|
-
if (event.type === "agent_end") {
|
|
208
|
-
completed = true;
|
|
209
|
-
cleanup();
|
|
210
|
-
if (!res.writableEnded) {
|
|
211
|
-
res.end();
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
});
|
|
215
|
-
// Handle client disconnect mid-stream.
|
|
216
|
-
// `close` fires on any request lifecycle end — only abort if the
|
|
217
|
-
// prompt hasn't completed normally yet.
|
|
218
|
-
req.on("close", () => {
|
|
219
|
-
if (!completed) {
|
|
220
|
-
cleanup();
|
|
221
|
-
// Abort the in-flight LLM call to stop wasting tokens
|
|
222
|
-
abortSession();
|
|
223
|
-
}
|
|
224
|
-
});
|
|
225
|
-
// Send the prompt
|
|
226
|
-
await session.prompt(fullMessage);
|
|
227
|
-
}
|
|
228
|
-
catch (err) {
|
|
229
|
-
completed = true;
|
|
230
|
-
cleanup();
|
|
231
|
-
const errMessage = err instanceof Error ? err.message : String(err);
|
|
232
|
-
sendSSE({ type: "error", error: errMessage });
|
|
233
|
-
if (!res.writableEnded) {
|
|
234
|
-
res.end();
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
// ---------------------------------------------------------------------------
|
|
239
|
-
// Route: GET /api/config/status
|
|
240
|
-
// ---------------------------------------------------------------------------
|
|
241
|
-
function handleConfigStatus(_req, res) {
|
|
242
|
-
sendJson(res, 200, {
|
|
243
|
-
authenticated: isAuthenticated(),
|
|
244
|
-
provider: getAuthProvider(),
|
|
245
|
-
version: getVersion(),
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
// ---------------------------------------------------------------------------
|
|
249
51
|
// Known API routes (for 405 detection)
|
|
250
52
|
// ---------------------------------------------------------------------------
|
|
251
53
|
const API_ROUTES = {
|
|
252
54
|
"/api/version": "GET",
|
|
55
|
+
"/api/workbook/resolve": "POST",
|
|
56
|
+
"/api/folder/status": "GET",
|
|
57
|
+
"/api/folder/pick": "POST",
|
|
58
|
+
"/api/folder/select": "POST",
|
|
59
|
+
"/api/folder/files": "GET",
|
|
60
|
+
"/api/folder/refresh": "POST",
|
|
253
61
|
"/api/agent": "POST",
|
|
254
62
|
"/api/config/status": "GET",
|
|
63
|
+
"/api/excel/result": "POST",
|
|
255
64
|
};
|
|
256
65
|
// ---------------------------------------------------------------------------
|
|
257
66
|
// Request router
|
|
@@ -259,47 +68,64 @@ const API_ROUTES = {
|
|
|
259
68
|
async function handleRequest(req, res, taskpaneRoot) {
|
|
260
69
|
const method = req.method ?? "GET";
|
|
261
70
|
const rawUrl = req.url ?? "/";
|
|
262
|
-
// Strip query string for route matching
|
|
263
71
|
const url = rawUrl.split("?")[0];
|
|
264
|
-
//
|
|
72
|
+
// CORS preflight
|
|
265
73
|
if (method === "OPTIONS") {
|
|
266
|
-
res
|
|
267
|
-
"Access-Control-Allow-Origin": "*",
|
|
268
|
-
"Access-Control-Allow-Methods": "GET, POST, OPTIONS",
|
|
269
|
-
"Access-Control-Allow-Headers": "Content-Type",
|
|
270
|
-
"Access-Control-Max-Age": "86400",
|
|
271
|
-
});
|
|
272
|
-
res.end();
|
|
74
|
+
sendCorsPreflightResponse(res);
|
|
273
75
|
return;
|
|
274
76
|
}
|
|
275
|
-
//
|
|
77
|
+
// Static files
|
|
276
78
|
if (url.startsWith("/taskpane")) {
|
|
277
79
|
handleTaskpane(req, res, taskpaneRoot);
|
|
278
80
|
return;
|
|
279
81
|
}
|
|
82
|
+
// API routes
|
|
280
83
|
if (url === "/api/version" && method === "GET") {
|
|
281
|
-
|
|
84
|
+
sendJson(res, 200, { version: getVersion() });
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (url === "/api/config/status" && method === "GET") {
|
|
88
|
+
handleConfigStatus(req, res, getVersion);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (url === "/api/workbook/resolve" && method === "POST") {
|
|
92
|
+
await handleWorkbookResolve(req, res);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
if (url === "/api/folder/status" && method === "GET") {
|
|
96
|
+
handleFolderStatus(req, res);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (url === "/api/folder/pick" && method === "POST") {
|
|
100
|
+
await handleFolderPick(req, res);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
if (url === "/api/folder/select" && method === "POST") {
|
|
104
|
+
await handleFolderSelect(req, res);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
if (url === "/api/folder/files" && method === "GET") {
|
|
108
|
+
handleFolderFiles(req, res);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
if (url === "/api/folder/refresh" && method === "POST") {
|
|
112
|
+
await handleFolderRefresh(req, res);
|
|
282
113
|
return;
|
|
283
114
|
}
|
|
284
115
|
if (url === "/api/agent" && method === "POST") {
|
|
285
116
|
await handleAgent(req, res);
|
|
286
117
|
return;
|
|
287
118
|
}
|
|
288
|
-
if (url === "/api/
|
|
289
|
-
|
|
119
|
+
if (url === "/api/excel/result" && method === "POST") {
|
|
120
|
+
await handleExcelResult(req, res);
|
|
290
121
|
return;
|
|
291
122
|
}
|
|
292
|
-
// 405
|
|
123
|
+
// 405 for known routes with wrong method
|
|
293
124
|
if (url in API_ROUTES) {
|
|
294
|
-
res
|
|
295
|
-
"Content-Type": "application/json; charset=utf-8",
|
|
296
|
-
"Access-Control-Allow-Origin": "*",
|
|
297
|
-
Allow: API_ROUTES[url],
|
|
298
|
-
});
|
|
299
|
-
res.end(JSON.stringify({ error: `Method ${method} not allowed. Use ${API_ROUTES[url]}.` }));
|
|
125
|
+
sendMethodNotAllowed(res, method, API_ROUTES[url]);
|
|
300
126
|
return;
|
|
301
127
|
}
|
|
302
|
-
// Root redirect
|
|
128
|
+
// Root redirect
|
|
303
129
|
if (url === "/" || url === "") {
|
|
304
130
|
res.writeHead(302, { Location: "/taskpane/" });
|
|
305
131
|
res.end();
|
|
@@ -320,7 +146,7 @@ export function setVerbose(enabled) {
|
|
|
320
146
|
* Start the HTTPS server.
|
|
321
147
|
*
|
|
322
148
|
* @param port - Port to listen on (default: 3001)
|
|
323
|
-
* @param certs - Optional pre-loaded certificates.
|
|
149
|
+
* @param certs - Optional pre-loaded certificates.
|
|
324
150
|
*/
|
|
325
151
|
export async function startServer(port = 3001, certs) {
|
|
326
152
|
const { key, cert } = certs ?? (await ensureCerts());
|
|
@@ -358,9 +184,7 @@ export async function startServer(port = 3001, certs) {
|
|
|
358
184
|
});
|
|
359
185
|
});
|
|
360
186
|
}
|
|
361
|
-
/**
|
|
362
|
-
* Stop the HTTPS server gracefully.
|
|
363
|
-
*/
|
|
187
|
+
/** Stop the HTTPS server gracefully. */
|
|
364
188
|
export async function stopServer() {
|
|
365
189
|
return new Promise((resolve) => {
|
|
366
190
|
if (!serverInstance) {
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atomic JSON file persistence helpers.
|
|
3
|
+
*
|
|
4
|
+
* Shared pattern: write to temp file, then rename atomically.
|
|
5
|
+
* Used by workbook-folder-store and folder-scanner.
|
|
6
|
+
*/
|
|
7
|
+
/** Base directory for all AgentXL persisted data. */
|
|
8
|
+
export declare const AGENTXL_DATA_DIR: string;
|
|
9
|
+
/**
|
|
10
|
+
* Atomically write a JSON file.
|
|
11
|
+
* Writes to a temp file first, then renames to avoid partial writes.
|
|
12
|
+
*/
|
|
13
|
+
export declare function writeJsonFileAtomic(filePath: string, data: unknown): void;
|
|
14
|
+
/**
|
|
15
|
+
* Read and parse a JSON file.
|
|
16
|
+
* Returns null if the file doesn't exist or can't be parsed.
|
|
17
|
+
*/
|
|
18
|
+
export declare function readJsonFile<T>(filePath: string): T | null;
|
|
19
|
+
//# sourceMappingURL=json-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-store.d.ts","sourceRoot":"","sources":["../../src/server/json-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,qDAAqD;AACrD,eAAO,MAAM,gBAAgB,QAA8B,CAAC;AAE5D;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,GACZ,IAAI,CAKN;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAQ1D"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atomic JSON file persistence helpers.
|
|
3
|
+
*
|
|
4
|
+
* Shared pattern: write to temp file, then rename atomically.
|
|
5
|
+
* Used by workbook-folder-store and folder-scanner.
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync, renameSync, } from "fs";
|
|
8
|
+
import { dirname, join } from "path";
|
|
9
|
+
import { homedir } from "os";
|
|
10
|
+
/** Base directory for all AgentXL persisted data. */
|
|
11
|
+
export const AGENTXL_DATA_DIR = join(homedir(), ".agentxl");
|
|
12
|
+
/**
|
|
13
|
+
* Atomically write a JSON file.
|
|
14
|
+
* Writes to a temp file first, then renames to avoid partial writes.
|
|
15
|
+
*/
|
|
16
|
+
export function writeJsonFileAtomic(filePath, data) {
|
|
17
|
+
mkdirSync(dirname(filePath), { recursive: true });
|
|
18
|
+
const tempPath = `${filePath}.tmp`;
|
|
19
|
+
writeFileSync(tempPath, JSON.stringify(data, null, 2), "utf-8");
|
|
20
|
+
renameSync(tempPath, filePath);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Read and parse a JSON file.
|
|
24
|
+
* Returns null if the file doesn't exist or can't be parsed.
|
|
25
|
+
*/
|
|
26
|
+
export function readJsonFile(filePath) {
|
|
27
|
+
if (!existsSync(filePath))
|
|
28
|
+
return null;
|
|
29
|
+
try {
|
|
30
|
+
const raw = readFileSync(filePath, "utf-8");
|
|
31
|
+
return JSON.parse(raw);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=json-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-store.js","sourceRoot":"","sources":["../../src/server/json-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACb,UAAU,GACX,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,qDAAqD;AACrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,IAAa;IAEb,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,GAAG,QAAQ,MAAM,CAAC;IACnC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAChE,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAI,QAAgB;IAC9C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent route — SSE streaming via Pi SDK session.
|
|
3
|
+
*
|
|
4
|
+
* Responsibilities:
|
|
5
|
+
* - Validate agent request
|
|
6
|
+
* - Resolve workbook/folder context
|
|
7
|
+
* - Build prompt with context
|
|
8
|
+
* - Stream SSE events to client
|
|
9
|
+
* - Manage cwd for Pi SDK tools
|
|
10
|
+
*/
|
|
11
|
+
import { IncomingMessage, ServerResponse } from "http";
|
|
12
|
+
/** POST /api/agent — SSE streaming agent endpoint. */
|
|
13
|
+
export declare function handleAgent(req: IncomingMessage, res: ServerResponse): Promise<void>;
|
|
14
|
+
/** GET /api/config/status */
|
|
15
|
+
export declare function handleConfigStatus(_req: IncomingMessage, res: ServerResponse, getVersion: () => string): void;
|
|
16
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/server/routes/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAiOvD,sDAAsD;AACtD,wBAAsB,WAAW,CAC/B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC,CAef;AAED,6BAA6B;AAC7B,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,eAAe,EACrB,GAAG,EAAE,cAAc,EACnB,UAAU,EAAE,MAAM,MAAM,GACvB,IAAI,CAMN"}
|