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.
Files changed (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +352 -197
  3. package/bin/agentxl-folder-picker.exe +0 -0
  4. package/bin/agentxl.js +44 -8
  5. package/dist/agent/models.d.ts +9 -9
  6. package/dist/agent/models.d.ts.map +1 -1
  7. package/dist/agent/models.js +44 -8
  8. package/dist/agent/models.js.map +1 -1
  9. package/dist/agent/prompt/folder-context.d.ts +26 -0
  10. package/dist/agent/prompt/folder-context.d.ts.map +1 -0
  11. package/dist/agent/prompt/folder-context.js +105 -0
  12. package/dist/agent/prompt/folder-context.js.map +1 -0
  13. package/dist/agent/prompt/system-prompt.d.ts +21 -0
  14. package/dist/agent/prompt/system-prompt.d.ts.map +1 -0
  15. package/dist/agent/prompt/system-prompt.js +130 -0
  16. package/dist/agent/prompt/system-prompt.js.map +1 -0
  17. package/dist/agent/session.d.ts +10 -4
  18. package/dist/agent/session.d.ts.map +1 -1
  19. package/dist/agent/session.js +53 -15
  20. package/dist/agent/session.js.map +1 -1
  21. package/dist/agent/tools/excel.d.ts +24 -0
  22. package/dist/agent/tools/excel.d.ts.map +1 -0
  23. package/dist/agent/tools/excel.js +132 -0
  24. package/dist/agent/tools/excel.js.map +1 -0
  25. package/dist/server/document-converter.d.ts +71 -0
  26. package/dist/server/document-converter.d.ts.map +1 -0
  27. package/dist/server/document-converter.js +353 -0
  28. package/dist/server/document-converter.js.map +1 -0
  29. package/dist/server/excel-bridge.d.ts +38 -0
  30. package/dist/server/excel-bridge.d.ts.map +1 -0
  31. package/dist/server/excel-bridge.js +75 -0
  32. package/dist/server/excel-bridge.js.map +1 -0
  33. package/dist/server/folder-picker.d.ts +9 -0
  34. package/dist/server/folder-picker.d.ts.map +1 -0
  35. package/dist/server/folder-picker.js +204 -0
  36. package/dist/server/folder-picker.js.map +1 -0
  37. package/dist/server/folder-scanner.d.ts +43 -0
  38. package/dist/server/folder-scanner.d.ts.map +1 -0
  39. package/dist/server/folder-scanner.js +161 -0
  40. package/dist/server/folder-scanner.js.map +1 -0
  41. package/dist/server/http.d.ts +19 -0
  42. package/dist/server/http.d.ts.map +1 -0
  43. package/dist/server/http.js +62 -0
  44. package/dist/server/http.js.map +1 -0
  45. package/dist/server/index.d.ts +16 -4
  46. package/dist/server/index.d.ts.map +1 -1
  47. package/dist/server/index.js +70 -246
  48. package/dist/server/index.js.map +1 -1
  49. package/dist/server/json-store.d.ts +19 -0
  50. package/dist/server/json-store.d.ts.map +1 -0
  51. package/dist/server/json-store.js +37 -0
  52. package/dist/server/json-store.js.map +1 -0
  53. package/dist/server/routes/agent.d.ts +16 -0
  54. package/dist/server/routes/agent.d.ts.map +1 -0
  55. package/dist/server/routes/agent.js +196 -0
  56. package/dist/server/routes/agent.js.map +1 -0
  57. package/dist/server/routes/excel.d.ts +10 -0
  58. package/dist/server/routes/excel.d.ts.map +1 -0
  59. package/dist/server/routes/excel.js +41 -0
  60. package/dist/server/routes/excel.js.map +1 -0
  61. package/dist/server/routes/folder.d.ts +15 -0
  62. package/dist/server/routes/folder.d.ts.map +1 -0
  63. package/dist/server/routes/folder.js +184 -0
  64. package/dist/server/routes/folder.js.map +1 -0
  65. package/dist/server/routes/workbook.d.ts +7 -0
  66. package/dist/server/routes/workbook.d.ts.map +1 -0
  67. package/dist/server/routes/workbook.js +31 -0
  68. package/dist/server/routes/workbook.js.map +1 -0
  69. package/dist/server/static.d.ts +12 -0
  70. package/dist/server/static.d.ts.map +1 -0
  71. package/dist/server/static.js +83 -0
  72. package/dist/server/static.js.map +1 -0
  73. package/dist/server/workbook-folder-store.d.ts +24 -0
  74. package/dist/server/workbook-folder-store.d.ts.map +1 -0
  75. package/dist/server/workbook-folder-store.js +76 -0
  76. package/dist/server/workbook-folder-store.js.map +1 -0
  77. package/dist/server/workbook-identity.d.ts +8 -0
  78. package/dist/server/workbook-identity.d.ts.map +1 -0
  79. package/dist/server/workbook-identity.js +57 -0
  80. package/dist/server/workbook-identity.js.map +1 -0
  81. package/manifest/manifest-hosted.xml +107 -0
  82. package/package.json +24 -10
  83. package/taskpane/dist/assets/index-BnD8psE_.js +224 -0
  84. package/taskpane/dist/assets/index-BuAcDfRq.css +1 -0
  85. package/taskpane/dist/index.html +2 -2
  86. package/taskpane/dist/assets/index-6sMpIYxE.css +0 -1
  87. package/taskpane/dist/assets/index-DyLrQ3Aa.js +0 -164
@@ -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, extname, dirname } from "path";
17
+ import { join, dirname } from "path";
4
18
  import { fileURLToPath } from "url";
5
19
  import { ensureCerts } from "./certs.js";
6
- import { isAuthenticated, getAuthProvider, getSession, abortSession, } from "../agent/session.js";
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
- // MIME types for static file serving
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"), // dist/server -> root
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
- // Handle CORS preflight
72
+ // CORS preflight
265
73
  if (method === "OPTIONS") {
266
- res.writeHead(204, {
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
- // Route matching
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
- handleVersion(req, res);
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/config/status" && method === "GET") {
289
- handleConfigStatus(req, res);
119
+ if (url === "/api/excel/result" && method === "POST") {
120
+ await handleExcelResult(req, res);
290
121
  return;
291
122
  }
292
- // 405 Method Not Allowed for known routes with wrong method
123
+ // 405 for known routes with wrong method
293
124
  if (url in API_ROUTES) {
294
- res.writeHead(405, {
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 to taskpane
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. If not provided, will call ensureCerts().
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) {
@@ -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"}