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
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface WorkbookFolderLink {
|
|
2
|
+
workbookId: string;
|
|
3
|
+
folderPath: string;
|
|
4
|
+
workbookName: string | null;
|
|
5
|
+
workbookUrl: string | null;
|
|
6
|
+
host: string | null;
|
|
7
|
+
source: string | null;
|
|
8
|
+
createdAt: string;
|
|
9
|
+
updatedAt: string;
|
|
10
|
+
}
|
|
11
|
+
export interface WorkbookFolderLinkInput {
|
|
12
|
+
workbookId: string;
|
|
13
|
+
folderPath: string;
|
|
14
|
+
workbookName?: string | null;
|
|
15
|
+
workbookUrl?: string | null;
|
|
16
|
+
host?: string | null;
|
|
17
|
+
source?: string | null;
|
|
18
|
+
}
|
|
19
|
+
export declare function getAgentXLDataDir(): string;
|
|
20
|
+
export declare function getWorkbookLinksPath(): string;
|
|
21
|
+
export declare function getWorkbookFolderLink(workbookId: string): WorkbookFolderLink | null;
|
|
22
|
+
export declare function setWorkbookFolderLink(input: WorkbookFolderLinkInput): WorkbookFolderLink;
|
|
23
|
+
export declare function clearWorkbookFolderStore(): void;
|
|
24
|
+
//# sourceMappingURL=workbook-folder-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workbook-folder-store.d.ts","sourceRoot":"","sources":["../../src/server/workbook-folder-store.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAqBD,wBAAgB,iBAAiB,IAAI,MAAM,CAM1C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAsBD,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAInF;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,uBAAuB,GAC7B,kBAAkB,CAsBpB;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAK/C"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { existsSync, unlinkSync } from "fs";
|
|
2
|
+
import { homedir } from "os";
|
|
3
|
+
import { join } from "path";
|
|
4
|
+
import { writeJsonFileAtomic, readJsonFile } from "./json-store.js";
|
|
5
|
+
function normalizeRequired(value, field) {
|
|
6
|
+
const trimmed = value.trim();
|
|
7
|
+
if (trimmed.length === 0) {
|
|
8
|
+
throw new Error(`${field} is required`);
|
|
9
|
+
}
|
|
10
|
+
return trimmed;
|
|
11
|
+
}
|
|
12
|
+
function normalizeOptional(value) {
|
|
13
|
+
if (typeof value !== "string")
|
|
14
|
+
return null;
|
|
15
|
+
const trimmed = value.trim();
|
|
16
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
17
|
+
}
|
|
18
|
+
export function getAgentXLDataDir() {
|
|
19
|
+
const override = process.env.AGENTXL_DATA_DIR;
|
|
20
|
+
if (override && override.trim().length > 0) {
|
|
21
|
+
return override.trim();
|
|
22
|
+
}
|
|
23
|
+
return join(homedir(), ".agentxl");
|
|
24
|
+
}
|
|
25
|
+
export function getWorkbookLinksPath() {
|
|
26
|
+
return join(getAgentXLDataDir(), "workbook-links.json");
|
|
27
|
+
}
|
|
28
|
+
function emptyStore() {
|
|
29
|
+
return { version: 1, links: {} };
|
|
30
|
+
}
|
|
31
|
+
function readStore() {
|
|
32
|
+
const path = getWorkbookLinksPath();
|
|
33
|
+
const parsed = readJsonFile(path);
|
|
34
|
+
if (!parsed || parsed.version !== 1 || !parsed.links || typeof parsed.links !== "object") {
|
|
35
|
+
return emptyStore();
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
version: 1,
|
|
39
|
+
links: parsed.links,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function writeStore(store) {
|
|
43
|
+
writeJsonFileAtomic(getWorkbookLinksPath(), store);
|
|
44
|
+
}
|
|
45
|
+
export function getWorkbookFolderLink(workbookId) {
|
|
46
|
+
const normalizedWorkbookId = normalizeRequired(workbookId, "workbookId");
|
|
47
|
+
const store = readStore();
|
|
48
|
+
return store.links[normalizedWorkbookId] ?? null;
|
|
49
|
+
}
|
|
50
|
+
export function setWorkbookFolderLink(input) {
|
|
51
|
+
const workbookId = normalizeRequired(input.workbookId, "workbookId");
|
|
52
|
+
const folderPath = normalizeRequired(input.folderPath, "folderPath");
|
|
53
|
+
const now = new Date().toISOString();
|
|
54
|
+
const store = readStore();
|
|
55
|
+
const existing = store.links[workbookId];
|
|
56
|
+
const record = {
|
|
57
|
+
workbookId,
|
|
58
|
+
folderPath,
|
|
59
|
+
workbookName: normalizeOptional(input.workbookName) ?? existing?.workbookName ?? null,
|
|
60
|
+
workbookUrl: normalizeOptional(input.workbookUrl) ?? existing?.workbookUrl ?? null,
|
|
61
|
+
host: normalizeOptional(input.host) ?? existing?.host ?? null,
|
|
62
|
+
source: normalizeOptional(input.source) ?? existing?.source ?? null,
|
|
63
|
+
createdAt: existing?.createdAt ?? now,
|
|
64
|
+
updatedAt: now,
|
|
65
|
+
};
|
|
66
|
+
store.links[workbookId] = record;
|
|
67
|
+
writeStore(store);
|
|
68
|
+
return record;
|
|
69
|
+
}
|
|
70
|
+
export function clearWorkbookFolderStore() {
|
|
71
|
+
const path = getWorkbookLinksPath();
|
|
72
|
+
if (existsSync(path)) {
|
|
73
|
+
unlinkSync(path);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=workbook-folder-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workbook-folder-store.js","sourceRoot":"","sources":["../../src/server/workbook-folder-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface WorkbookIdentityInput {
|
|
2
|
+
workbookName?: string | null;
|
|
3
|
+
workbookUrl?: string | null;
|
|
4
|
+
host?: string | null;
|
|
5
|
+
source?: string | null;
|
|
6
|
+
}
|
|
7
|
+
export declare function resolveWorkbookId(input: WorkbookIdentityInput): string;
|
|
8
|
+
//# sourceMappingURL=workbook-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workbook-identity.d.ts","sourceRoot":"","sources":["../../src/server/workbook-identity.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AA6CD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAgBtE"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { createHash } from "crypto";
|
|
2
|
+
function normalize(value) {
|
|
3
|
+
if (typeof value !== "string")
|
|
4
|
+
return null;
|
|
5
|
+
const trimmed = value.trim();
|
|
6
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
7
|
+
}
|
|
8
|
+
function safeDecode(value) {
|
|
9
|
+
try {
|
|
10
|
+
return decodeURIComponent(value);
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function normalizePathname(pathname) {
|
|
17
|
+
const decoded = safeDecode(pathname);
|
|
18
|
+
const collapsed = decoded.replace(/\\/g, "/").replace(/\/+/g, "/");
|
|
19
|
+
if (collapsed === "/")
|
|
20
|
+
return "/";
|
|
21
|
+
return collapsed.replace(/\/+$/, "").toLowerCase();
|
|
22
|
+
}
|
|
23
|
+
function normalizeUrl(value) {
|
|
24
|
+
const normalized = normalize(value);
|
|
25
|
+
if (!normalized)
|
|
26
|
+
return null;
|
|
27
|
+
const slashNormalized = normalized.replace(/\\/g, "/");
|
|
28
|
+
try {
|
|
29
|
+
const url = new URL(slashNormalized);
|
|
30
|
+
const protocol = url.protocol.toLowerCase();
|
|
31
|
+
const host = url.host.toLowerCase();
|
|
32
|
+
const pathname = normalizePathname(url.pathname);
|
|
33
|
+
return `${protocol}//${host}${pathname}`;
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return normalizePathname(slashNormalized.split(/[?#]/, 1)[0]);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function normalizeName(value) {
|
|
40
|
+
const normalized = normalize(value);
|
|
41
|
+
return normalized ? normalized.toLowerCase() : null;
|
|
42
|
+
}
|
|
43
|
+
export function resolveWorkbookId(input) {
|
|
44
|
+
const workbookUrl = normalizeUrl(input.workbookUrl);
|
|
45
|
+
const workbookName = normalizeName(input.workbookName);
|
|
46
|
+
const host = normalizeName(input.host) ?? "unknown";
|
|
47
|
+
const source = normalizeName(input.source) ?? "unknown";
|
|
48
|
+
if (!workbookUrl && !workbookName) {
|
|
49
|
+
throw new Error("workbookName or workbookUrl is required");
|
|
50
|
+
}
|
|
51
|
+
const key = workbookUrl
|
|
52
|
+
? `url:${workbookUrl}`
|
|
53
|
+
: `name:${workbookName}|host:${host}|source:${source}`;
|
|
54
|
+
const hash = createHash("sha256").update(key).digest("hex");
|
|
55
|
+
return `wb_${hash.slice(0, 16)}`;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=workbook-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workbook-identity.js","sourceRoot":"","sources":["../../src/server/workbook-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!--
|
|
3
|
+
AppSource / hosted manifest.
|
|
4
|
+
|
|
5
|
+
The taskpane UI is served from GitHub Pages.
|
|
6
|
+
All API calls go to https://localhost:3001 (the local AgentXL server).
|
|
7
|
+
|
|
8
|
+
For local development, use manifest.xml instead (points to localhost:3001).
|
|
9
|
+
-->
|
|
10
|
+
<OfficeApp
|
|
11
|
+
xmlns="http://schemas.microsoft.com/office/appforoffice/1.1"
|
|
12
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
13
|
+
xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0"
|
|
14
|
+
xmlns:ov="http://schemas.microsoft.com/office/taskpaneappversionoverrides"
|
|
15
|
+
xsi:type="TaskPaneApp">
|
|
16
|
+
|
|
17
|
+
<Id>b2c3d4e5-f6a7-8901-bcde-f12345678901</Id>
|
|
18
|
+
<Version>1.1.2</Version>
|
|
19
|
+
<ProviderName>DeltaXY</ProviderName>
|
|
20
|
+
<DefaultLocale>en-US</DefaultLocale>
|
|
21
|
+
<DisplayName DefaultValue="AgentXL" />
|
|
22
|
+
<Description DefaultValue="Turn source documents into traceable Excel workpapers. Local-first AI agent for audit, diligence, and evidence-heavy workflows." />
|
|
23
|
+
|
|
24
|
+
<!-- Icons MUST come before SupportUrl per XML schema -->
|
|
25
|
+
<IconUrl DefaultValue="https://satish860.github.io/agentxl/assets/icon-32.png" />
|
|
26
|
+
<HighResolutionIconUrl DefaultValue="https://satish860.github.io/agentxl/assets/icon-64.png" />
|
|
27
|
+
|
|
28
|
+
<SupportUrl DefaultValue="https://github.com/satish860/agentxl/issues" />
|
|
29
|
+
|
|
30
|
+
<!-- Allow the taskpane to call the local AgentXL server -->
|
|
31
|
+
<AppDomains>
|
|
32
|
+
<AppDomain>https://satish860.github.io</AppDomain>
|
|
33
|
+
</AppDomains>
|
|
34
|
+
|
|
35
|
+
<Hosts>
|
|
36
|
+
<Host Name="Workbook" />
|
|
37
|
+
</Hosts>
|
|
38
|
+
|
|
39
|
+
<DefaultSettings>
|
|
40
|
+
<SourceLocation DefaultValue="https://satish860.github.io/agentxl/taskpane/" />
|
|
41
|
+
</DefaultSettings>
|
|
42
|
+
<Permissions>ReadWriteDocument</Permissions>
|
|
43
|
+
|
|
44
|
+
<VersionOverrides xmlns="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="VersionOverridesV1_0">
|
|
45
|
+
<Hosts>
|
|
46
|
+
<Host xsi:type="Workbook">
|
|
47
|
+
<DesktopFormFactor>
|
|
48
|
+
<GetStarted>
|
|
49
|
+
<Title resid="getStartedTitle" />
|
|
50
|
+
<Description resid="getStartedDescription" />
|
|
51
|
+
<LearnMoreUrl resid="learnMoreUrl" />
|
|
52
|
+
</GetStarted>
|
|
53
|
+
|
|
54
|
+
<ExtensionPoint xsi:type="PrimaryCommandSurface">
|
|
55
|
+
<OfficeTab id="TabHome">
|
|
56
|
+
<Group id="AgentXLGroup">
|
|
57
|
+
<Label resid="groupLabel" />
|
|
58
|
+
<Icon>
|
|
59
|
+
<bt:Image size="16" resid="icon16" />
|
|
60
|
+
<bt:Image size="32" resid="icon32" />
|
|
61
|
+
<bt:Image size="80" resid="icon80" />
|
|
62
|
+
</Icon>
|
|
63
|
+
<Control xsi:type="Button" id="AgentXLButton">
|
|
64
|
+
<Label resid="buttonLabel" />
|
|
65
|
+
<Supertip>
|
|
66
|
+
<Title resid="buttonLabel" />
|
|
67
|
+
<Description resid="buttonTooltip" />
|
|
68
|
+
</Supertip>
|
|
69
|
+
<Icon>
|
|
70
|
+
<bt:Image size="16" resid="icon16" />
|
|
71
|
+
<bt:Image size="32" resid="icon32" />
|
|
72
|
+
<bt:Image size="80" resid="icon80" />
|
|
73
|
+
</Icon>
|
|
74
|
+
<Action xsi:type="ShowTaskpane">
|
|
75
|
+
<TaskpaneId>AgentXLPane</TaskpaneId>
|
|
76
|
+
<SourceLocation resid="taskpaneUrl" />
|
|
77
|
+
</Action>
|
|
78
|
+
</Control>
|
|
79
|
+
</Group>
|
|
80
|
+
</OfficeTab>
|
|
81
|
+
</ExtensionPoint>
|
|
82
|
+
</DesktopFormFactor>
|
|
83
|
+
</Host>
|
|
84
|
+
</Hosts>
|
|
85
|
+
|
|
86
|
+
<Resources>
|
|
87
|
+
<bt:Images>
|
|
88
|
+
<bt:Image id="icon16" DefaultValue="https://satish860.github.io/agentxl/assets/icon-16.png" />
|
|
89
|
+
<bt:Image id="icon32" DefaultValue="https://satish860.github.io/agentxl/assets/icon-32.png" />
|
|
90
|
+
<bt:Image id="icon80" DefaultValue="https://satish860.github.io/agentxl/assets/icon-80.png" />
|
|
91
|
+
</bt:Images>
|
|
92
|
+
<bt:Urls>
|
|
93
|
+
<bt:Url id="taskpaneUrl" DefaultValue="https://satish860.github.io/agentxl/taskpane/" />
|
|
94
|
+
<bt:Url id="learnMoreUrl" DefaultValue="https://github.com/satish860/agentxl" />
|
|
95
|
+
</bt:Urls>
|
|
96
|
+
<bt:ShortStrings>
|
|
97
|
+
<bt:String id="groupLabel" DefaultValue="AgentXL" />
|
|
98
|
+
<bt:String id="buttonLabel" DefaultValue="AgentXL" />
|
|
99
|
+
<bt:String id="getStartedTitle" DefaultValue="AgentXL is ready!" />
|
|
100
|
+
</bt:ShortStrings>
|
|
101
|
+
<bt:LongStrings>
|
|
102
|
+
<bt:String id="buttonTooltip" DefaultValue="Open AgentXL — AI agent for document-to-Excel workflows" />
|
|
103
|
+
<bt:String id="getStartedDescription" DefaultValue="Click the AgentXL button on the Home tab. Make sure the local AgentXL server is running." />
|
|
104
|
+
</bt:LongStrings>
|
|
105
|
+
</Resources>
|
|
106
|
+
</VersionOverrides>
|
|
107
|
+
</OfficeApp>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentxl",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.1.2",
|
|
4
|
+
"description": "Local-first document-to-Excel agent for traceable workpapers and evidence-heavy workflows",
|
|
5
5
|
"author": "DeltaXY <hello@deltaxy.ai>",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
@@ -15,15 +15,15 @@
|
|
|
15
15
|
},
|
|
16
16
|
"keywords": [
|
|
17
17
|
"excel",
|
|
18
|
-
"
|
|
18
|
+
"document-to-excel",
|
|
19
|
+
"workpaper",
|
|
20
|
+
"diligence",
|
|
21
|
+
"audit",
|
|
22
|
+
"evidence",
|
|
19
23
|
"agent",
|
|
20
24
|
"office",
|
|
21
|
-
"claude",
|
|
22
|
-
"openai",
|
|
23
|
-
"spreadsheet",
|
|
24
25
|
"microsoft",
|
|
25
26
|
"office-addin",
|
|
26
|
-
"chatgpt",
|
|
27
27
|
"llm"
|
|
28
28
|
],
|
|
29
29
|
"bin": {
|
|
@@ -43,19 +43,33 @@
|
|
|
43
43
|
"build": "tsc && npm run build:taskpane",
|
|
44
44
|
"build:server": "tsc",
|
|
45
45
|
"build:taskpane": "cd taskpane && npx vite build",
|
|
46
|
+
"build:taskpane:hosted": "cd taskpane && cross-env VITE_BASE=/agentxl/taskpane/ npx vite build",
|
|
47
|
+
"build:folder-picker:win": "dotnet publish ./tools/folder-picker-win/agentxl-folder-picker.csproj -c Release -r win-x64 -p:PublishSingleFile=true --self-contained false -o ./bin",
|
|
48
|
+
"prepare:release:win": "npm run build && node ./scripts/prepare-release-win.mjs",
|
|
49
|
+
"release:check": "npm test && npm run build && npm pack",
|
|
50
|
+
"release:publish:npm": "npm publish",
|
|
46
51
|
"dev:taskpane": "cd taskpane && npx vite dev",
|
|
47
52
|
"start": "node bin/agentxl.js start",
|
|
48
53
|
"prepublishOnly": "npm run build",
|
|
49
|
-
"test": "npx tsx tests/certs.test.ts && npx tsx tests/server.test.ts && npx tsx tests/session.test.ts",
|
|
54
|
+
"test": "npx tsx tests/certs.test.ts && npx tsx tests/workbook-folder-store.test.ts && npx tsx tests/folder-scanner.test.ts && npx tsx tests/excel-bridge.test.ts && npx tsx tests/document-converter.test.ts && npx tsx tests/server.test.ts && npx tsx tests/session.test.ts",
|
|
50
55
|
"test:certs": "npx tsx tests/certs.test.ts",
|
|
56
|
+
"test:store": "npx tsx tests/workbook-folder-store.test.ts",
|
|
57
|
+
"test:scanner": "npx tsx tests/folder-scanner.test.ts",
|
|
51
58
|
"test:server": "npx tsx tests/server.test.ts",
|
|
52
59
|
"test:session": "npx tsx tests/session.test.ts",
|
|
53
60
|
"test:e2e": "npx tsx tests/e2e.test.ts"
|
|
54
61
|
},
|
|
55
62
|
"dependencies": {
|
|
56
|
-
"@mariozechner/pi-coding-agent": "^0.
|
|
63
|
+
"@mariozechner/pi-coding-agent": "^0.57.1",
|
|
64
|
+
"@mistralai/mistralai": "^1.14.1",
|
|
57
65
|
"@sinclair/typebox": "^0.34.11",
|
|
58
|
-
"
|
|
66
|
+
"dotenv": "^17.3.1",
|
|
67
|
+
"mammoth": "^1.11.0",
|
|
68
|
+
"office-addin-dev-certs": "^2.0.6",
|
|
69
|
+
"office-addin-dev-settings": "^3.0.6",
|
|
70
|
+
"pdf-parse": "^2.4.5",
|
|
71
|
+
"semver": "^7.7.4",
|
|
72
|
+
"xlsx": "^0.18.5"
|
|
59
73
|
},
|
|
60
74
|
"devDependencies": {
|
|
61
75
|
"@microsoft/office-js": "^1.1.110",
|