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
package/README.md CHANGED
@@ -1,129 +1,284 @@
1
1
  <p align="center">
2
- <img src="https://img.shields.io/badge/Excel-AI_Agent-059669?style=for-the-badge&logo=microsoftexcel&logoColor=white" alt="AgentXL" />
2
+ <img src="https://img.shields.io/badge/Excel-Document_to_Workpaper-059669?style=for-the-badge&logo=microsoftexcel&logoColor=white" alt="AgentXL" />
3
3
  </p>
4
4
 
5
5
  <h1 align="center">AgentXL</h1>
6
6
 
7
7
  <p align="center">
8
- <strong>Open-source AI agent that lives inside Microsoft Excel.</strong><br>
9
- Chat in natural language read data, write formulas, create charts, format ranges.
8
+ <strong>Turn source documents into traceable Excel workpapers.</strong><br>
9
+ A local-first agent for document-heavy work that ends in spreadsheets.<br>
10
+ Point AgentXL at a folder, let it search the evidence, then map grounded answers into Excel.
10
11
  </p>
11
12
 
13
+ <p align="center">
14
+ <img src="https://img.shields.io/npm/v/agentxl?color=059669" alt="npm version" />
15
+ <img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License" />
16
+ <img src="https://img.shields.io/badge/platform-Windows%20%7C%20Mac-lightgrey" alt="Platform" />
17
+ <img src="https://img.shields.io/badge/node-%3E%3D20-brightgreen" alt="Node 20+" />
18
+ </p>
19
+
20
+ <!-- TODO: Replace with actual demo GIF showing: select local folder → ask question → trace answer to source → map into Excel -->
21
+ <!-- <p align="center"><img src="https://raw.githubusercontent.com/satish860/agentxl/master/docs/demo.gif" alt="AgentXL demo" width="600" /></p> -->
22
+
12
23
  <p align="center">
13
24
  <a href="#quick-start">Quick Start</a> •
14
- <a href="#what-it-does">What It Does</a> •
25
+ <a href="#the-method">The Method</a> •
15
26
  <a href="#how-it-works">How It Works</a> •
16
27
  <a href="#supported-providers">Providers</a> •
17
28
  <a href="#troubleshooting">Troubleshooting</a>
18
29
  </p>
19
30
 
20
- <p align="center">
21
- <img src="https://img.shields.io/npm/v/agentxl?color=059669" alt="npm version" />
22
- <img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License" />
23
- <img src="https://img.shields.io/badge/platform-Windows%20%7C%20Mac-lightgrey" alt="Platform" />
24
- <img src="https://img.shields.io/badge/node-%3E%3D20-brightgreen" alt="Node 20+" />
25
- </p>
31
+ ---
32
+
33
+ Most spreadsheet work does not start in Excel. It starts in messy PDFs, statements, exports, agreements, and support folders.
34
+
35
+ AgentXL is being built for that workflow:
36
+
37
+ - **point to a local folder of source documents**
38
+ - **ask a question or give an instruction**
39
+ - **let the agent search the evidence and read the right files**
40
+ - **map the grounded result into Excel with traceability**
41
+
42
+ Built for audit and diligence workflows first — useful anywhere document-heavy work ends in spreadsheets.
43
+
44
+ ```bash
45
+ npm install -g agentxl
46
+ agentxl start
47
+ ```
48
+
49
+ No server. No cloud account with us. No classic RAG stack. You bring your own AI model.
26
50
 
27
51
  ---
28
52
 
29
53
  ## Quick Start
30
54
 
31
- 6 steps from install to first message.
55
+ ## Windows Quick Start (no coding required)
56
+
57
+ 1. Download the latest `.zip` from [GitHub Releases](https://github.com/satish860/agentxl/releases)
58
+ 2. Extract to a folder (e.g. `Desktop\AgentXL`)
59
+ 3. Double-click **AgentXL.vbs**
60
+ 4. If sign-in is needed, run **AgentXL Login.vbs** first
61
+ 5. Excel opens with AgentXL in the **Home** ribbon
62
+
63
+ The Windows release is self-contained — bundled Node.js, no system install required.
64
+
65
+ Alternatively, install the add-in directly from Excel (see [Install the Excel add-in](#5-add-to-excel) below).
32
66
 
33
67
  ### 1. Install
34
68
 
69
+ **Option A — npm**
70
+
35
71
  ```bash
36
72
  npm install -g agentxl
37
73
  ```
38
74
 
75
+ This is the simplest cross-platform install path.
76
+
77
+ **Option B — Windows release (no Node.js needed)**
78
+
79
+ 1. Download the latest `.zip` from [GitHub Releases](https://github.com/satish860/agentxl/releases)
80
+ 2. Extract to a folder
81
+ 3. Double-click **AgentXL.vbs**
82
+
83
+ The release ZIP is self-contained: it bundles its own Node.js runtime, the built app, and production dependencies. No separate Node.js installation required.
84
+
39
85
  ### 2. Start
40
86
 
41
87
  ```bash
42
88
  agentxl start
43
89
  ```
44
90
 
45
- The CLI walks you through authentication on first run. You'll see:
91
+ The CLI walks you through setup:
46
92
 
47
93
  ```
48
94
  ✅ Auth ready
49
- ✅ HTTPS certificate ready (trusted by OS)
95
+ ✅ HTTPS certificate ready
50
96
  ✅ Server running at https://localhost:3001
51
97
  ```
52
98
 
53
99
  ### 3. Choose your AI provider
54
100
 
55
- On first run, the CLI asks how to connect. Pick what fits you:
101
+ On first run, the CLI asks how to connect:
56
102
 
57
- | If you have... | Pick |
58
- |---------------|------|
59
- | **Claude Pro/Max** ($20/mo subscription) | Option 1 — sign in with browser, no API key |
60
- | **ChatGPT Plus/Pro** ($20/mo subscription) | Option 2 — sign in with browser, no API key |
61
- | **GitHub Copilot** subscription | Option 3 — sign in with browser |
62
- | **An API key** (Anthropic, OpenAI, OpenRouter) | Option 5 — paste your key |
63
- | **Nothing yet** | Create a free [OpenRouter](https://openrouter.ai) account get API key paste it |
103
+ | If you have... | Pick | Why |
104
+ |---------------|------|-----|
105
+ | **Claude Pro/Max** subscription | Option 1 — sign in with browser | Best quality, no extra cost |
106
+ | **ChatGPT Plus/Pro** subscription | Option 2 — sign in with browser | If you already pay for ChatGPT |
107
+ | **GitHub Copilot** subscription | Option 3 — sign in with browser | If you already have Copilot |
108
+ | **An API key** | Option 5 — paste your key | Direct access, pay-per-use |
109
+ | **Nothing yet** | [Get a free OpenRouter key](https://openrouter.ai) | Free models, no credit card |
64
110
 
65
111
  > **Already use Pi?** AgentXL shares credentials from `~/.pi/agent/auth.json`. No extra login needed.
66
112
 
67
113
  ### 4. Verify in browser
68
114
 
69
- Open **https://localhost:3001/taskpane/** in your browser. You should see the AgentXL chat interface. This confirms the server, HTTPS, and UI all work before you touch Excel.
115
+ Open **https://localhost:3001/taskpane/** in your browser.
116
+
117
+ You should see the AgentXL UI. This confirms the server, HTTPS, and UI all work before you touch Excel.
70
118
 
71
- ### 5. Add to Excel (one-time setup)
119
+ ### 5. Add to Excel
72
120
 
73
- This is a one-time setup. After this, just run `agentxl start` and click the ribbon button.
121
+ Choose one method:
74
122
 
123
+ **Option A — Office Store (simplest)**
124
+ 1. Open Excel → **Insert** → **Get Add-ins**
125
+ 2. Search **"AgentXL"** → click **Add**
126
+
127
+ > The Office Store listing is pending review. Use Option B or C in the meantime.
128
+
129
+ **Option B — Upload hosted manifest (no Trust Center needed)**
130
+ 1. Download [`manifest.xml`](https://satish860.github.io/agentxl/manifest/manifest.xml)
131
+ 2. Open Excel → **Insert** → **Get Add-ins** → **My Add-ins** → **Upload My Add-in**
132
+ 3. Browse to the downloaded `manifest.xml` → **Upload**
133
+
134
+ **Option C — Shared folder catalog (persistent, Windows)**
75
135
  1. **Excel** → **File** → **Options** → **Trust Center** → **Trust Center Settings**
76
136
  2. Click **Trusted Add-in Catalogs**
77
- 3. Add the catalog path printed in your terminal (the folder containing `manifest.xml`)
137
+ 3. Add the `manifest` folder path from your release ZIP or the path printed by `agentxl start`
78
138
  4. Check **Show in Menu** → **OK** → **OK**
79
139
  5. **Restart Excel**
80
- 6. Go to **Insert** → **My Add-ins** → **SHARED FOLDER** tab
81
- 7. Click **AgentXL** → **Add**
140
+ 6. **Insert** → **My Add-ins** → **SHARED FOLDER** → **AgentXL** → **Add**
141
+
142
+ **Option D — Windows release auto-setup**
143
+ - Double-click **AgentXL.vbs** from the extracted release folder
144
+ - It handles certificate trust, add-in registration, and opens Excel automatically
82
145
 
83
- The AgentXL button appears on the **Home** ribbon tab.
146
+ ### 6. Start from a document folder
84
147
 
85
- ### 6. Send your first message
148
+ Open Excel, launch **AgentXL**, and the first-run taskpane now guides the user through:
86
149
 
87
- Click **AgentXL** on the ribbon. The taskpane opens. Try:
150
+ 1. **Connect** sign in with your model provider if needed
151
+ 2. **Folder** — choose the local folder with supporting documents
152
+ 3. **Ask** — send a grounded question about that folder
88
153
 
89
- > "What can you help me with in this workbook?"
154
+ From there, the working flow is:
90
155
 
91
- Or use one of the quick actions: **Summarize data**, **Create chart**, **Write formula**.
156
+ 1. select the workbook you want to populate
157
+ 2. point AgentXL at a local folder of supporting files
158
+ 3. ask a grounded question
159
+ 4. review the answer and source traceability
160
+ 5. map the output into Excel
161
+
162
+ Example prompts:
163
+
164
+ - **"Compare this trial balance folder to the lead sheet and flag mismatches."**
165
+ - **"Extract the cash balance from the bank statement folder and map it to the cash workpaper."**
166
+ - **"Pull lease terms from these agreements into the lease schedule."**
167
+ - **"Show me which workbook cells came from which source files."**
92
168
 
93
169
  ---
94
170
 
95
- ## After Setup
171
+ ## What AgentXL Is
96
172
 
97
- Once you've done the one-time Excel setup:
173
+ AgentXL is **not** an Excel chatbot.
98
174
 
99
- ```bash
100
- agentxl start # Start the server
101
- # Open Excel → click AgentXL on the ribbon
102
- # Chat.
103
- ```
175
+ It is a **document-to-Excel agent** for evidence-heavy work.
104
176
 
105
- Switch providers anytime:
177
+ The source of truth lives in documents. The final output lives in Excel. AgentXL sits in between:
106
178
 
107
- ```bash
108
- agentxl login # Re-authenticate with a different provider
109
- ```
179
+ - searching through local files
180
+ - reading the relevant documents
181
+ - extracting grounded facts
182
+ - reconciling across sources
183
+ - mapping outputs into workpapers
184
+ - preserving source traceability
185
+
186
+ This makes it a fit for:
187
+
188
+ - audit
189
+ - due diligence
190
+ - transaction support
191
+ - compliance reviews
192
+ - finance ops
193
+ - any workflow where messy documents become structured spreadsheets
194
+
195
+ ---
196
+
197
+ ## What AgentXL Is Not
198
+
199
+ - **Not classic RAG.** No need to start with embeddings, vector DBs, and a retrieval stack.
200
+ - **Not generic spreadsheet chat.** The primary action is not “ask Excel a question.”
201
+ - **Not automation theater.** The goal is reviewable outputs with sources, not flashy demos.
202
+ - **Not a 36-tool architecture diagram.** One parser, one model, direct file search, and an eval loop beat unnecessary layers.
203
+
204
+ ---
205
+
206
+ ## The Method
207
+
208
+ AgentXL follows a simple method inspired by real document-processing systems:
209
+
210
+ 1. **Parse the files**
211
+ - PDFs, Excel files, CSVs, statements, agreements, support docs
212
+ 2. **Search the folder agentically**
213
+ - inspect filenames, structure, metadata, and contents
214
+ - read the right files instead of pre-building a giant stack
215
+ 3. **Ask the model to extract or answer**
216
+ - one grounded task at a time
217
+ 4. **Map the result into Excel**
218
+ - workpapers, schedules, exception lists, summaries
219
+ 5. **Measure whether it was right**
220
+ - evals, failure analysis, correction loops
221
+ 6. **Improve the system**
222
+ - fix repeated failure patterns, then measure again
223
+
224
+ ### The core loop
225
+
226
+ **Parse → Search → Ask → Evaluate → Fix → Repeat**
227
+
228
+ That is the product.
229
+
230
+ ---
231
+
232
+ ## Core Workflow
233
+
234
+ AgentXL is designed around a folder-first workflow:
235
+
236
+ 1. **Link a local folder** — point AgentXL at a folder of source documents (PDFs, CSVs, Excel files, text)
237
+ 2. **AgentXL scans the folder** — builds an inventory of supported files, shows counts in the UI
238
+ 3. **Ask a question or give an instruction** — the agent knows what files are available
239
+ 4. **The agent searches and reads the relevant files** — using `read`, `grep`, `find`, `ls` tools (visible as live badges in the UI)
240
+ 5. **Review the grounded result** — answers cite the source file and content
241
+ 6. **Write the output into Excel** — as a workpaper, schedule, or exception list *(coming next)*
242
+
243
+ The agent's working directory is set to your linked folder. When you say "list the files," it lists *your documents*, not the AgentXL project.
244
+
245
+ ---
246
+
247
+ ## Current Build Status
248
+
249
+ | Area | Status |
250
+ |------|--------|
251
+ | Excel taskpane shell | ✅ Done |
252
+ | Local server + auth flow | ✅ Done |
253
+ | Model connection | ✅ Done |
254
+ | Workbook identity resolution | ✅ Done |
255
+ | Folder linking + native picker | ✅ Done |
256
+ | Folder scanning + file inventory | ✅ Done |
257
+ | Folder-aware agent (cwd, context) | ✅ Done |
258
+ | Agentic file search (read, grep, find, ls) | ✅ Done |
259
+ | Tool call visibility in UI | ✅ Done |
260
+ | Source traceability into Excel | 🔜 Next |
261
+ | Excel write tools | Planned |
262
+ | Eval-driven extraction improvement loop | Planned |
110
263
 
111
264
  ---
112
265
 
113
266
  ## What It Does
114
267
 
115
- AgentXL brings an AI assistant directly into Excel's sidebar. You chat in plain English — the agent understands your spreadsheet and takes action.
268
+ The target behavior looks like this:
116
269
 
117
- | You say | Agent does |
118
- |---------|-----------|
119
- | "Summarize column B" | Reads your data, gives you a summary |
120
- | "Add a SUM formula for Sales" | Writes `=SUM(B2:B100)` in the right cell |
121
- | "Create a bar chart of revenue by month" | Inserts a chart from your data |
122
- | "Format the header row bold, dark background" | Applies formatting via Office.js |
123
- | "Add a new sheet called Q3 Report" | Creates the worksheet |
124
- | "What formula calculates year-over-year growth?" | Explains and writes the formula |
270
+ | You ask | AgentXL does |
271
+ |---------|---------------|
272
+ | "Extract the ending cash balance from the bank statement folder and map it to the cash workpaper" | Finds the relevant statement, extracts the value, and writes it into Excel |
273
+ | "Compare this trial balance export folder to the lead sheet and flag mismatches" | Reconciles source documents against the workbook and surfaces exceptions |
274
+ | "Pull lease start date, end date, and monthly payment from these agreements into the lease schedule" | Reads the agreements and maps structured fields into the schedule |
275
+ | "Show me which cells in this sheet came from which source files" | Returns traceability for mapped workbook values |
276
+ | "Create a support summary for this balance from the source folder" | Searches the folder, answers from evidence, and structures the output for review |
277
+ | "Format this output as a clean review-ready workpaper" | Applies spreadsheet formatting after the data is mapped |
125
278
 
126
- ### Excel Tools
279
+ ### Underlying Excel Tools
280
+
281
+ These are implementation tools, not the product story:
127
282
 
128
283
  | Tool | What It Does |
129
284
  |------|-------------|
@@ -142,50 +297,67 @@ AgentXL brings an AI assistant directly into Excel's sidebar. You chat in plain
142
297
 
143
298
  ## How It Works
144
299
 
145
- ```
300
+ ```text
146
301
  agentxl start
147
302
  → Local HTTPS server on localhost:3001
148
- → Serves chat UI at /taskpane
149
- Streams AI responses via SSE
303
+ → Serves taskpane UI at /taskpane
304
+ Connects to your chosen model
305
+
306
+ You point AgentXL at a local folder
307
+ → PDFs, statements, exports, agreements, support files
308
+ → Agent searches the folder
309
+ → Agent reads the relevant documents
310
+ → You ask a question or request a mapping
150
311
 
151
312
  Excel loads the taskpane
152
- You type a message
153
- Agent reasons about your spreadsheet
154
- → Taskpane executes actions via Office.js
313
+ Agent returns a grounded result with source traceability
314
+ Taskpane writes the output into Excel via Office.js
155
315
  ```
156
316
 
157
317
  ### Architecture
158
318
 
319
+ ```text
320
+ ┌─────────────────────────────────────────────────────────────┐
321
+ │ YOUR MACHINE │
322
+ │ │
323
+ │ Local document folder │
324
+ │ PDFs / statements / CSVs / agreements / support files │
325
+ │ │ │
326
+ │ ▼ │
327
+ │ ┌─────────────────┐ ┌───────────────────────────┐ │
328
+ │ │ Excel │ HTTPS │ AgentXL Server │ │
329
+ │ │ │◄──────►│ localhost:3001 │ │
330
+ │ │ Taskpane UI │ │ │ │
331
+ │ │ Office.js │ │ agentic file search │ │
332
+ │ │ │ │ selective file reading │ │
333
+ │ └─────────────────┘ │ model prompt + response │ │
334
+ │ │ SSE event streaming │ │
335
+ │ └──────────────┬────────────┘ │
336
+ │ │ │
337
+ └─────────────────────────────────────────────┼────────────────┘
338
+ │ model API
339
+
340
+ ┌──────────────────────────┐
341
+ │ Anthropic / OpenAI / │
342
+ │ OpenRouter / Azure / │
343
+ │ Google / Copilot │
344
+ └──────────────────────────┘
159
345
  ```
160
- ┌──────────────────────────────────────────────────────────┐
161
- │ YOUR MACHINE │
162
- │ │
163
- │ ┌─────────────────┐ ┌──────────────────────────┐ │
164
- │ │ Excel │ │ AgentXL Server │ │
165
- │ │ │ │ (localhost:3001) │ │
166
- │ │ ┌────────────┐ │ HTTPS │ │ │
167
- │ │ │ Taskpane │◄─┼──────┤ Chat UI (React) │ │
168
- │ │ │ (sidebar) │ │ │ Agent session (Pi SDK) │ │
169
- │ │ │ Office.js │──┼──────► SSE streaming │ │
170
- │ │ └────────────┘ │ │ │ │
171
- │ └─────────────────┘ └────────────┬─────────────┘ │
172
- │ │ │
173
- └──────────────────────────────────────────┼────────────────┘
174
- │ API call
175
-
176
- ┌──────────────────────┐
177
- │ Anthropic / OpenAI │
178
- │ OpenRouter / Azure │
179
- │ Google / Copilot │
180
- └──────────────────────┘
181
- ```
182
346
 
183
- **Key points:**
347
+ ### Why no classic RAG?
348
+
349
+ Because most teams do not need a 9-layer retrieval stack to answer grounded questions from a folder of documents.
350
+
351
+ AgentXL starts simpler:
352
+
353
+ - local files
354
+ - direct parsing
355
+ - agentic search
356
+ - selective reading
357
+ - one model
358
+ - explicit evals
184
359
 
185
- - **Everything runs locally.** No cloud server. No account with us. No data collection.
186
- - **Your data stays on your machine.** The only external call is to the LLM provider you choose.
187
- - **You bring your own AI.** Use your existing subscription (Claude Pro, ChatGPT Plus, Copilot) or any API key.
188
- - **Single process.** One npm package. One command. `agentxl start`.
360
+ If scale later demands heavier infrastructure, add it later. Measure first.
189
361
 
190
362
  ---
191
363
 
@@ -195,10 +367,10 @@ Excel loads the taskpane
195
367
 
196
368
  | Provider | What You Need | Best for |
197
369
  |----------|---------------|----------|
198
- | **Anthropic** | Claude Pro or Max ($20/mo) | Best quality, recommended |
199
- | **OpenAI Codex** | ChatGPT Plus or Pro ($20/mo) | If you already pay for ChatGPT |
200
- | **GitHub Copilot** | Copilot Individual or Business | If you already have Copilot |
201
- | **Google** | Cloud Code Assist (Gemini CLI) | If you use Google Cloud |
370
+ | **Anthropic** | Claude Pro or Max ($20/mo) | Best quality |
371
+ | **OpenAI Codex** | ChatGPT Plus or Pro ($20/mo) | Already paying for ChatGPT |
372
+ | **GitHub Copilot** | Copilot Individual or Business | Already have Copilot |
373
+ | **Google** | Cloud Code Assist (Gemini CLI) | Google Cloud users |
202
374
 
203
375
  ### API Keys (paste your key)
204
376
 
@@ -208,65 +380,76 @@ Excel loads the taskpane
208
380
  | **OpenAI** | GPT-4o, GPT-4 Turbo | Direct API access |
209
381
  | **OpenRouter** | 100+ models | Cheapest — free models available |
210
382
 
211
- > **Cheapest:** [OpenRouter](https://openrouter.ai) has free-tier models. Create an account, get a key, start chatting.
383
+ > **Cheapest:** [OpenRouter](https://openrouter.ai) has free-tier models. No credit card needed.
212
384
  >
213
- > **Best quality:** Claude Pro subscription — if you already pay $20/mo, there's no extra cost.
214
- >
215
- > **Switch anytime:** Run `agentxl login` to change providers.
385
+ > **Switch anytime:** `agentxl login`
216
386
 
217
387
  ---
218
388
 
219
- ## Troubleshooting
389
+ ## Privacy & Security
220
390
 
221
- ### Taskpane is blank or won't load in Excel
391
+ - **Local-only server.** Binds to `127.0.0.1` not accessible from your network.
392
+ - **Folder-first workflow.** You start from a local document folder on your machine.
393
+ - **No telemetry.** No analytics. No data collection. No phone-home.
394
+ - **No account required.** No sign-up with us. Ever.
395
+ - **Your API key stays local.** Stored in `~/.pi/agent/auth.json` on your machine.
396
+ - **Open source.** Read every line of code. MIT license.
222
397
 
223
- **This is the most common first-run issue.** It usually means Excel doesn't trust the HTTPS certificate.
398
+ When you ask the agent about your documents or workbook, the relevant content is sent to your chosen model provider as part of the prompt. This is the only external communication.
224
399
 
225
- **Check these in order:**
400
+ ---
226
401
 
227
- 1. **Is the server running?** You should see `✅ Server running` in your terminal.
402
+ ## Troubleshooting
228
403
 
229
- 2. **Does it work in the browser?** Open https://localhost:3001/taskpane/ in Chrome or Edge.
230
- - ✅ If the chat UI loads → server and cert are fine, the issue is Excel setup.
231
- - ❌ If the browser warns about the certificate → the cert isn't trusted yet.
404
+ ### Taskpane is blank or won't load in Excel
232
405
 
233
- 3. **Certificate not trusted?** AgentXL uses Microsoft's `office-addin-dev-certs` to generate localhost certificates and install them in your OS trust store. If this didn't work:
406
+ **Most common first-run issue.** Usually means Excel doesn't trust the HTTPS certificate.
234
407
 
235
- **Windows:**
408
+ 1. **Is the server running?** Check for `✅ Server running` in your terminal.
409
+ 2. **Does it work in the browser?** Open https://localhost:3001/taskpane/
410
+ - ✅ UI loads → server and cert are fine. Issue is Excel setup.
411
+ - ❌ Browser warns about certificate → cert isn't trusted yet.
412
+ 3. **Certificate not trusted?**
236
413
  ```bash
237
414
  npx office-addin-dev-certs install
238
415
  ```
416
+ Then restart Excel.
417
+ 4. **Browser works but not Excel?** Excel uses the OS trust store. Make sure the certificate authority is installed system-wide.
239
418
 
240
- **Mac:**
241
- ```bash
242
- npx office-addin-dev-certs install
243
- ```
244
-
245
- Then restart Excel. The first run may prompt for admin/keychain access — this is expected and only happens once.
419
+ ### Add-in doesn't appear in Excel
246
420
 
247
- 4. **Certificate works in browser but not in Excel?** Excel uses the OS trust store, not the browser's. Make sure the certificate authority is installed system-wide (the `install` command above does this).
421
+ 1. Is the server running?
422
+ 2. Did you try the automated Windows onboarding path first?
423
+ - Start Menu: `Launch AgentXL onboarding`
424
+ - zip build: `Launch AgentXL Onboarding.cmd`
425
+ 3. If automatic setup failed, did you add the catalog path in Trust Center → Trusted Add-in Catalogs?
426
+ 4. Did you check **Show in Menu**?
427
+ 5. Did you restart Excel?
428
+ 6. Look in **Insert → My Add-ins → SHARED FOLDER**
248
429
 
249
- ### Add-in doesn't appear in Excel
430
+ ### Port 3001 is already in use
250
431
 
251
- 1. Is the server running? (`agentxl start`)
252
- 2. Did you add the catalog path in Trust Center → Trusted Add-in Catalogs?
253
- 3. Did you check "Show in Menu"?
254
- 4. Did you restart Excel after adding the catalog?
255
- 5. Look in Insert → My Add-ins → **SHARED FOLDER** tab (not the store tab)
432
+ ```bash
433
+ agentxl start --port 3002
434
+ ```
256
435
 
257
- ### "Port 3001 is already in use"
436
+ > If you change the port, update `manifest/manifest.xml` to match.
258
437
 
259
- Another instance of AgentXL (or another app) is using that port:
438
+ ### Building the Windows release
260
439
 
261
440
  ```bash
262
- agentxl start --port 3002
441
+ npm run prepare:release:win
263
442
  ```
264
443
 
265
- > **Note:** If you change the port, you'll need to update `manifest/manifest.xml` to match.
444
+ This creates a self-contained ZIP in `release/windows/dist/` containing:
445
+ - Portable Node.js runtime (no system install needed)
446
+ - Built AgentXL app + production dependencies
447
+ - Manifest for Excel sideloading
448
+ - VBScript launchers (double-click to start)
266
449
 
267
- ### "No model available"
450
+ GitHub Actions builds and publishes this automatically on tagged releases.
268
451
 
269
- No authentication configured. Run:
452
+ ### "No model available"
270
453
 
271
454
  ```bash
272
455
  agentxl login
@@ -274,131 +457,103 @@ agentxl login
274
457
 
275
458
  ### Taskpane says "Waiting for credentials…"
276
459
 
277
- The server is running but no auth is configured. Run `agentxl login` in another terminal. The taskpane will detect the change automatically — no reload needed.
460
+ Run `agentxl login` in another terminal. The taskpane detects the change automatically.
278
461
 
279
- ### Taskpane says "Server disconnected — reconnecting…"
462
+ ### "Server disconnected — reconnecting…"
280
463
 
281
- The server stopped while the taskpane was open. Restart it:
464
+ Restart the server:
282
465
 
283
466
  ```bash
284
467
  agentxl start
285
468
  ```
286
469
 
287
- The taskpane reconnects automatically when the server comes back.
288
-
289
470
  ---
290
471
 
291
472
  ## CLI Reference
292
473
 
293
- ```
474
+ ```text
294
475
  agentxl start [--port 3001] [--verbose] Start the server
295
476
  agentxl login Set up or change authentication
296
477
  agentxl --version Print version
297
478
  agentxl --help Show help
298
479
  ```
299
480
 
300
- | Flag | Default | Description |
301
- |------|---------|-------------|
302
- | `--port` | `3001` | Port for the HTTPS server |
303
- | `--verbose` | off | Log all HTTP requests |
304
-
305
481
  ---
306
482
 
307
483
  ## Requirements
308
484
 
309
- - **Node.js 20** or later
485
+ - **Node.js 20+**
310
486
  - **Microsoft Excel** desktop (Windows or Mac)
311
- - **An AI provider** — subscription or API key (see [Supported Providers](#supported-providers))
487
+ - **An AI provider** — subscription or API key
312
488
 
313
489
  > Excel for the web is not supported (Office add-in limitation).
314
490
 
315
491
  ---
316
492
 
317
- ## Privacy & Security
318
-
319
- - **Local-only server.** Binds to `127.0.0.1` — not accessible from your network.
320
- - **No telemetry.** No analytics. No data collection. No phone-home.
321
- - **No account required.** No sign-up with us. Ever.
322
- - **Your API key stays local.** Stored in `~/.pi/agent/auth.json` on your machine.
323
- - **Open source.** Read every line of code. MIT license.
324
-
325
- When you ask the agent about your spreadsheet, the relevant data is sent to your chosen LLM provider as part of the prompt. This is the only external communication.
326
-
327
- ---
328
-
329
493
  ## Development
330
494
 
331
495
  ```bash
332
- git clone https://github.com/deltaxy-ai/agentxl.git
496
+ git clone https://github.com/satish860/agentxl.git
333
497
  cd agentxl
334
498
  npm install
335
- npm run build # Compile server + taskpane
336
- npm test # Run all tests (64 tests)
499
+ npm run build
500
+ npm test # 101 unit/integration tests
501
+ npm run test:e2e # 12 end-to-end tests (Playwright)
337
502
  node bin/agentxl.js start
338
503
  ```
339
504
 
340
505
  ### Project Structure
341
506
 
342
- ```
343
- bin/agentxl.js CLI entry point
344
- src/server/index.ts HTTPS server
345
- src/server/certs.ts Certificate generation (office-addin-dev-certs)
346
- src/agent/session.ts Pi SDK agent session
347
- src/agent/models.ts Model selection (OAuth > API key)
348
- taskpane/src/app.tsx Chat UI orchestrator
349
- taskpane/src/hooks/ useAgentStatus, useChatStream
350
- taskpane/src/components/ UI components
351
- taskpane/src/lib/ API client, types, stream handler
352
- manifest/manifest.xml Office add-in manifest
353
- tests/ Acceptance + E2E tests
507
+ ```text
508
+ bin/agentxl.js CLI entry point
509
+ bin/agentxl-folder-picker.exe Native folder picker (Windows)
510
+ src/server/index.ts HTTPS server + API endpoints
511
+ src/server/certs.ts Certificate generation
512
+ src/server/workbook-identity.ts Workbook identity resolution
513
+ src/server/workbook-folder-store.ts Workbook folder mapping (JSON)
514
+ src/server/folder-scanner.ts Recursive file scanner + inventory
515
+ src/server/folder-picker.ts Native/PowerShell folder picker
516
+ src/agent/session.ts Pi SDK agent session (cwd-aware)
517
+ src/agent/models.ts Model selection
518
+ taskpane/src/app.tsx Taskpane UI orchestrator
519
+ taskpane/src/hooks/ useAgentStatus, useChatStream,
520
+ useWorkbookIdentity, useFolderLink
521
+ taskpane/src/components/ WelcomeScreen, FolderLinkScreen,
522
+ MessageBubble (tool call badges),
523
+ ChatInput, ThinkingBlock
524
+ taskpane/src/lib/ API client, stream handler, types
525
+ manifest/manifest.xml Office add-in manifest
526
+ tests/ 105 tests (unit + integration + e2e)
354
527
  ```
355
528
 
356
- ### npm Scripts
357
-
358
- | Script | What |
359
- |--------|------|
360
- | `npm run build` | Build server (tsc) + taskpane (Vite) |
361
- | `npm run build:server` | Build server only |
362
- | `npm run build:taskpane` | Build taskpane only |
363
- | `npm run dev:taskpane` | Vite dev server for UI development |
364
- | `npm test` | Run all tests |
365
- | `npm run test:e2e` | Run Playwright E2E tests |
366
- | `npm start` | Start the server |
367
-
368
- ### Tech Stack
369
-
370
- | Layer | Technology |
371
- |-------|-----------|
372
- | Runtime | Node.js |
373
- | Agent framework | [Pi Coding Agent SDK](https://www.npmjs.com/package/@mariozechner/pi-coding-agent) |
374
- | LLM | Claude, GPT-4o, or any OpenRouter model |
375
- | Excel integration | Office.js (Microsoft Office Add-in API) |
376
- | Taskpane UI | React 19 + Tailwind CSS v4 |
377
- | Bundler | Vite 6 |
378
- | HTTPS | office-addin-dev-certs (OS-trusted localhost certs) |
379
-
380
529
  ---
381
530
 
382
531
  ## Roadmap
383
532
 
384
533
  | Module | What | Status |
385
534
  |--------|------|--------|
386
- | **Module 1** | Chat with AI inside Excel | ✅ Working |
387
- | **Module 2** | Read spreadsheet agent sees your data | 🔜 Next |
388
- | **Module 3** | Edit spreadsheet write, format, tables & charts | Planned |
389
- | **Module 4** | Settings, auto-updates, npm publish | Planned |
535
+ | **Module 1** | Local taskpane shell, auth, and streaming chat | ✅ Done |
536
+ | **Module 2** | Folder-first workflow: link folders, scan files, agent reads documents | Done |
537
+ | **Module 3** | Source extraction, traceable citations, and Excel mapping | 🔜 Next |
538
+ | **Module 4** | Eval loop, failure analysis, and workflow hardening | Planned |
390
539
 
391
540
  ---
392
541
 
393
542
  ## Contributing
394
543
 
395
- Contributions welcome! MIT license.
544
+ Contributions welcome. MIT license.
545
+
546
+ ```bash
547
+ npm test # 101 tests should pass
548
+ npm run test:e2e # 12 e2e tests should pass
549
+ ```
550
+
551
+ If you contribute, keep the philosophy simple:
396
552
 
397
- 1. Fork the repo
398
- 2. Create a feature branch
399
- 3. Make your changes
400
- 4. Run `npm test` — all 64 tests should pass
401
- 5. Submit a PR
553
+ - fewer layers
554
+ - grounded outputs
555
+ - explicit traceability
556
+ - evals before infrastructure
402
557
 
403
558
  ---
404
559