@office-agents/sdk 0.0.1
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/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/lockdown.d.ts +3 -0
- package/dist/lockdown.d.ts.map +1 -0
- package/dist/lockdown.js +103 -0
- package/dist/lockdown.js.map +1 -0
- package/dist/message-utils.d.ts +44 -0
- package/dist/message-utils.d.ts.map +1 -0
- package/dist/message-utils.js +134 -0
- package/dist/message-utils.js.map +1 -0
- package/dist/oauth/index.d.ts +44 -0
- package/dist/oauth/index.d.ts.map +1 -0
- package/dist/oauth/index.js +259 -0
- package/dist/oauth/index.js.map +1 -0
- package/dist/provider-config.d.ts +29 -0
- package/dist/provider-config.d.ts.map +1 -0
- package/dist/provider-config.js +101 -0
- package/dist/provider-config.js.map +1 -0
- package/dist/runtime.d.ts +93 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +688 -0
- package/dist/runtime.js.map +1 -0
- package/dist/sandbox.d.ts +2 -0
- package/dist/sandbox.d.ts.map +1 -0
- package/dist/sandbox.js +22 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/skills/index.d.ts +16 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +96 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/storage/db.d.ts +55 -0
- package/dist/storage/db.d.ts.map +1 -0
- package/dist/storage/db.js +229 -0
- package/dist/storage/db.js.map +1 -0
- package/dist/storage/index.d.ts +4 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +3 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/namespace.d.ts +9 -0
- package/dist/storage/namespace.d.ts.map +1 -0
- package/dist/storage/namespace.js +14 -0
- package/dist/storage/namespace.js.map +1 -0
- package/dist/tools/bash.d.ts +2 -0
- package/dist/tools/bash.d.ts.map +1 -0
- package/dist/tools/bash.js +69 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/read-file.d.ts +2 -0
- package/dist/tools/read-file.d.ts.map +1 -0
- package/dist/tools/read-file.js +116 -0
- package/dist/tools/read-file.js.map +1 -0
- package/dist/tools/types.d.ts +16 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +28 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/truncate.d.ts +19 -0
- package/dist/truncate.d.ts.map +1 -0
- package/dist/truncate.js +101 -0
- package/dist/truncate.js.map +1 -0
- package/dist/vfs/index.d.ts +35 -0
- package/dist/vfs/index.d.ts.map +1 -0
- package/dist/vfs/index.js +168 -0
- package/dist/vfs/index.js.map +1 -0
- package/dist/web/config.d.ts +12 -0
- package/dist/web/config.d.ts.map +1 -0
- package/dist/web/config.js +41 -0
- package/dist/web/config.js.map +1 -0
- package/dist/web/fetch.d.ts +5 -0
- package/dist/web/fetch.d.ts.map +1 -0
- package/dist/web/fetch.js +174 -0
- package/dist/web/fetch.js.map +1 -0
- package/dist/web/search.d.ts +9 -0
- package/dist/web/search.d.ts.map +1 -0
- package/dist/web/search.js +238 -0
- package/dist/web/search.js.map +1 -0
- package/dist/web/types.d.ts +56 -0
- package/dist/web/types.d.ts.map +1 -0
- package/dist/web/types.js +2 -0
- package/dist/web/types.js.map +1 -0
- package/package.json +47 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export { ensureLockdown } from "./lockdown";
|
|
2
|
+
export { agentMessagesToChatMessages, type ChatMessage, deriveStats, extractPartsFromAssistantMessage, generateId, type MessagePart, type SessionStats, stripEnrichment, type ToolCallStatus, } from "./message-utils";
|
|
3
|
+
export { buildAuthorizationUrl, exchangeOAuthCode, generatePKCE, loadOAuthCredentials, OAUTH_PROVIDERS, type OAuthCredentials, type OAuthFlowState, refreshOAuthToken, removeOAuthCredentials, saveOAuthCredentials, } from "./oauth";
|
|
4
|
+
export { API_TYPES, applyProxyToModel, buildCustomModel, loadSavedConfig, type ProviderConfig, saveConfig, THINKING_LEVELS, type ThinkingLevel, } from "./provider-config";
|
|
5
|
+
export { AgentRuntime, type RuntimeAdapter, type RuntimeState, type UploadedFile, } from "./runtime";
|
|
6
|
+
export { sandboxedEval } from "./sandbox";
|
|
7
|
+
export { addSkill, buildSkillsPromptSection, getInstalledSkills, parseSkillMeta, removeSkill, type SkillInput, type SkillMeta, syncSkillsToVfs, } from "./skills";
|
|
8
|
+
export { type ChatSession, configureNamespace, createSession, deleteSession, getNamespace, getOrCreateCurrentSession, getOrCreateDocumentId, getSession, getSessionMessageCount, listSessions, loadVfsFiles, renameSession, type StorageNamespace, saveSession, saveVfsFiles, } from "./storage";
|
|
9
|
+
export { bashTool } from "./tools/bash";
|
|
10
|
+
export { readTool } from "./tools/read-file";
|
|
11
|
+
export { defineTool, type ToolResult, toolError, toolSuccess, toolText, } from "./tools/types";
|
|
12
|
+
export { DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, formatSize, truncateHead, truncateTail, } from "./truncate";
|
|
13
|
+
export { deleteFile, fileExists, getBash, getFileType, getVfs, listUploads, readFile, readFileBuffer, resetVfs, restoreVfs, setCustomCommands, setSkillFiles, setStaticFiles, snapshotVfs, toBase64, writeFile, } from "./vfs";
|
|
14
|
+
export { loadWebConfig, saveWebConfig, type WebConfig } from "./web/config";
|
|
15
|
+
export { fetchWeb, listFetchProviders } from "./web/fetch";
|
|
16
|
+
export { listSearchProviders, searchImages, searchWeb } from "./web/search";
|
|
17
|
+
export type { FetchProvider, FetchResult, ImageSearchOptions, ImageSearchResult, SearchOptions, SearchProvider, SearchResult, WebContext, } from "./web/types";
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACL,2BAA2B,EAC3B,KAAK,WAAW,EAChB,WAAW,EACX,gCAAgC,EAChC,UAAU,EACV,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,eAAe,EACf,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,KAAK,cAAc,EACnB,UAAU,EACV,eAAe,EACf,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,KAAK,UAAU,EACf,KAAK,SAAS,EACd,eAAe,GAChB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,KAAK,WAAW,EAChB,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,yBAAyB,EACzB,qBAAqB,EACrB,UAAU,EACV,sBAAsB,EACtB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,KAAK,gBAAgB,EACrB,WAAW,EACX,YAAY,GACb,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EACL,UAAU,EACV,KAAK,UAAU,EACf,SAAS,EACT,WAAW,EACX,QAAQ,GACT,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,UAAU,EACV,UAAU,EACV,OAAO,EACP,WAAW,EACX,MAAM,EACN,WAAW,EACX,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,WAAW,EACX,QAAQ,EACR,SAAS,GACV,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC5E,YAAY,EACV,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,UAAU,GACX,MAAM,aAAa,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Runtime
|
|
2
|
+
// Lockdown
|
|
3
|
+
export { ensureLockdown } from "./lockdown";
|
|
4
|
+
// Message utilities
|
|
5
|
+
export { agentMessagesToChatMessages, deriveStats, extractPartsFromAssistantMessage, generateId, stripEnrichment, } from "./message-utils";
|
|
6
|
+
// OAuth
|
|
7
|
+
export { buildAuthorizationUrl, exchangeOAuthCode, generatePKCE, loadOAuthCredentials, OAUTH_PROVIDERS, refreshOAuthToken, removeOAuthCredentials, saveOAuthCredentials, } from "./oauth";
|
|
8
|
+
// Provider config
|
|
9
|
+
export { API_TYPES, applyProxyToModel, buildCustomModel, loadSavedConfig, saveConfig, THINKING_LEVELS, } from "./provider-config";
|
|
10
|
+
export { AgentRuntime, } from "./runtime";
|
|
11
|
+
// Sandbox
|
|
12
|
+
export { sandboxedEval } from "./sandbox";
|
|
13
|
+
// Skills
|
|
14
|
+
export { addSkill, buildSkillsPromptSection, getInstalledSkills, parseSkillMeta, removeSkill, syncSkillsToVfs, } from "./skills";
|
|
15
|
+
// Storage
|
|
16
|
+
export { configureNamespace, createSession, deleteSession, getNamespace, getOrCreateCurrentSession, getOrCreateDocumentId, getSession, getSessionMessageCount, listSessions, loadVfsFiles, renameSession, saveSession, saveVfsFiles, } from "./storage";
|
|
17
|
+
// Tools
|
|
18
|
+
export { bashTool } from "./tools/bash";
|
|
19
|
+
export { readTool } from "./tools/read-file";
|
|
20
|
+
export { defineTool, toolError, toolSuccess, toolText, } from "./tools/types";
|
|
21
|
+
// Truncation
|
|
22
|
+
export { DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, formatSize, truncateHead, truncateTail, } from "./truncate";
|
|
23
|
+
// VFS
|
|
24
|
+
export { deleteFile, fileExists, getBash, getFileType, getVfs, listUploads, readFile, readFileBuffer, resetVfs, restoreVfs, setCustomCommands, setSkillFiles, setStaticFiles, snapshotVfs, toBase64, writeFile, } from "./vfs";
|
|
25
|
+
// Web
|
|
26
|
+
export { loadWebConfig, saveWebConfig } from "./web/config";
|
|
27
|
+
export { fetchWeb, listFetchProviders } from "./web/fetch";
|
|
28
|
+
export { listSearchProviders, searchImages, searchWeb } from "./web/search";
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AAEV,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,oBAAoB;AACpB,OAAO,EACL,2BAA2B,EAE3B,WAAW,EACX,gCAAgC,EAChC,UAAU,EAGV,eAAe,GAEhB,MAAM,iBAAiB,CAAC;AACzB,QAAQ;AACR,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,eAAe,EAGf,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AACjB,kBAAkB;AAClB,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EAEf,UAAU,EACV,eAAe,GAEhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,GAIb,MAAM,WAAW,CAAC;AACnB,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,SAAS;AACT,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,EACd,WAAW,EAGX,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,UAAU;AACV,OAAO,EAEL,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,yBAAyB,EACzB,qBAAqB,EACrB,UAAU,EACV,sBAAsB,EACtB,YAAY,EACZ,YAAY,EACZ,aAAa,EAEb,WAAW,EACX,YAAY,GACb,MAAM,WAAW,CAAC;AACnB,QAAQ;AACR,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EACL,UAAU,EAEV,SAAS,EACT,WAAW,EACX,QAAQ,GACT,MAAM,eAAe,CAAC;AACvB,aAAa;AACb,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,MAAM;AACN,OAAO,EACL,UAAU,EACV,UAAU,EACV,OAAO,EACP,WAAW,EACX,MAAM,EACN,WAAW,EACX,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,WAAW,EACX,QAAQ,EACR,SAAS,GACV,MAAM,OAAO,CAAC;AACf,MAAM;AACN,OAAO,EAAE,aAAa,EAAE,aAAa,EAAkB,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lockdown.d.ts","sourceRoot":"","sources":["../src/lockdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC;AAyFb,wBAAgB,cAAc,SAsB7B"}
|
package/dist/lockdown.js
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import "ses";
|
|
2
|
+
/* global lockdown */
|
|
3
|
+
const PRESERVE_FUNCTION_PROPS = new Set(["length", "name", "prototype"]);
|
|
4
|
+
const OFFICE_FUNCTION_STUBS = new Set([
|
|
5
|
+
"_validateParams",
|
|
6
|
+
"_validateParameterCount",
|
|
7
|
+
"_validateParameter",
|
|
8
|
+
"_validateParameterType",
|
|
9
|
+
]);
|
|
10
|
+
function saveFunctionProperties() {
|
|
11
|
+
const saved = new Map();
|
|
12
|
+
for (const key of Object.getOwnPropertyNames(Function)) {
|
|
13
|
+
if (!PRESERVE_FUNCTION_PROPS.has(key)) {
|
|
14
|
+
saved.set(key, Function[key]);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return saved;
|
|
18
|
+
}
|
|
19
|
+
function restoreFunctionProperties(saved) {
|
|
20
|
+
if (saved.size === 0)
|
|
21
|
+
return;
|
|
22
|
+
const noop = () => null;
|
|
23
|
+
for (const key of OFFICE_FUNCTION_STUBS) {
|
|
24
|
+
if (saved.has(key))
|
|
25
|
+
saved.set(key, noop);
|
|
26
|
+
}
|
|
27
|
+
const fn = globalThis.Function;
|
|
28
|
+
// Fast path: if Function is still extensible, define properties directly
|
|
29
|
+
if (Object.isExtensible(fn)) {
|
|
30
|
+
try {
|
|
31
|
+
for (const [key, value] of saved) {
|
|
32
|
+
Object.defineProperty(fn, key, {
|
|
33
|
+
value,
|
|
34
|
+
writable: false,
|
|
35
|
+
enumerable: false,
|
|
36
|
+
configurable: false,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// Fall through to proxy path
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// Slow path: Function is frozen by lockdown, wrap it in a Proxy
|
|
46
|
+
const desc = Object.getOwnPropertyDescriptor(globalThis, "Function");
|
|
47
|
+
if (!desc || (!desc.writable && !desc.configurable)) {
|
|
48
|
+
console.warn("[lockdown] Cannot restore Function properties — Function is neither writable nor configurable");
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const proxy = new Proxy(fn, {
|
|
52
|
+
get(target, prop, receiver) {
|
|
53
|
+
return saved.has(prop)
|
|
54
|
+
? saved.get(prop)
|
|
55
|
+
: Reflect.get(target, prop, receiver);
|
|
56
|
+
},
|
|
57
|
+
has(target, prop) {
|
|
58
|
+
return saved.has(prop) ? true : Reflect.has(target, prop);
|
|
59
|
+
},
|
|
60
|
+
getOwnPropertyDescriptor(target, prop) {
|
|
61
|
+
if (saved.has(prop)) {
|
|
62
|
+
return {
|
|
63
|
+
value: saved.get(prop),
|
|
64
|
+
writable: false,
|
|
65
|
+
enumerable: false,
|
|
66
|
+
configurable: true,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return Reflect.getOwnPropertyDescriptor(target, prop);
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
Object.defineProperty(globalThis, "Function", {
|
|
73
|
+
value: proxy,
|
|
74
|
+
writable: desc.writable ?? false,
|
|
75
|
+
configurable: desc.configurable ?? false,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
let locked = false;
|
|
79
|
+
export function ensureLockdown() {
|
|
80
|
+
if (locked)
|
|
81
|
+
return;
|
|
82
|
+
try {
|
|
83
|
+
const savedFnProps = saveFunctionProperties();
|
|
84
|
+
lockdown({
|
|
85
|
+
errorTaming: "unsafe",
|
|
86
|
+
consoleTaming: "unsafe",
|
|
87
|
+
overrideTaming: "severe",
|
|
88
|
+
stackFiltering: "verbose",
|
|
89
|
+
});
|
|
90
|
+
locked = true;
|
|
91
|
+
restoreFunctionProperties(savedFnProps);
|
|
92
|
+
}
|
|
93
|
+
catch (e) {
|
|
94
|
+
if (e instanceof TypeError &&
|
|
95
|
+
String(e).includes("SES_ALREADY_LOCKED_DOWN")) {
|
|
96
|
+
locked = true;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
throw e;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=lockdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lockdown.js","sourceRoot":"","sources":["../src/lockdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { AgentMessage } from "@mariozechner/pi-agent-core";
|
|
2
|
+
export type ToolCallStatus = "pending" | "running" | "complete" | "error";
|
|
3
|
+
export type MessagePart = {
|
|
4
|
+
type: "text";
|
|
5
|
+
text: string;
|
|
6
|
+
} | {
|
|
7
|
+
type: "thinking";
|
|
8
|
+
thinking: string;
|
|
9
|
+
} | {
|
|
10
|
+
type: "toolCall";
|
|
11
|
+
id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
args: Record<string, unknown>;
|
|
14
|
+
status: ToolCallStatus;
|
|
15
|
+
result?: string;
|
|
16
|
+
images?: {
|
|
17
|
+
data: string;
|
|
18
|
+
mimeType: string;
|
|
19
|
+
}[];
|
|
20
|
+
};
|
|
21
|
+
export interface ChatMessage {
|
|
22
|
+
id: string;
|
|
23
|
+
role: "user" | "assistant";
|
|
24
|
+
parts: MessagePart[];
|
|
25
|
+
timestamp: number;
|
|
26
|
+
}
|
|
27
|
+
export interface SessionStats {
|
|
28
|
+
inputTokens: number;
|
|
29
|
+
outputTokens: number;
|
|
30
|
+
cacheRead: number;
|
|
31
|
+
cacheWrite: number;
|
|
32
|
+
totalCost: number;
|
|
33
|
+
contextWindow: number;
|
|
34
|
+
lastInputTokens: number;
|
|
35
|
+
}
|
|
36
|
+
export declare function stripEnrichment(content: string | {
|
|
37
|
+
type: string;
|
|
38
|
+
text?: string;
|
|
39
|
+
}[], metadataTag?: string): string;
|
|
40
|
+
export declare function generateId(): string;
|
|
41
|
+
export declare function extractPartsFromAssistantMessage(message: AgentMessage, existingParts?: MessagePart[]): MessagePart[];
|
|
42
|
+
export declare function agentMessagesToChatMessages(agentMessages: AgentMessage[], metadataTag?: string): ChatMessage[];
|
|
43
|
+
export declare function deriveStats(agentMessages: AgentMessage[]): Omit<SessionStats, "contextWindow">;
|
|
44
|
+
//# sourceMappingURL=message-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-utils.d.ts","sourceRoot":"","sources":["../src/message-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAShE,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAE1E,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACtC;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/C,CAAC;AAEN,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EACnD,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAqBR;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,YAAY,EACrB,aAAa,GAAE,WAAW,EAAO,GAChC,WAAW,EAAE,CA4Bf;AAED,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,YAAY,EAAE,EAC7B,WAAW,CAAC,EAAE,MAAM,GACnB,WAAW,EAAE,CAkDf;AAED,wBAAgB,WAAW,CACzB,aAAa,EAAE,YAAY,EAAE,GAC5B,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CA4BrC"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
export function stripEnrichment(content, metadataTag) {
|
|
2
|
+
let text;
|
|
3
|
+
if (typeof content === "string") {
|
|
4
|
+
text = content;
|
|
5
|
+
}
|
|
6
|
+
else {
|
|
7
|
+
text = content
|
|
8
|
+
.filter((c) => c.type === "text")
|
|
9
|
+
.map((c) => c.text ?? "")
|
|
10
|
+
.join("\n");
|
|
11
|
+
}
|
|
12
|
+
text = text.replace(/^<attachments>\n[\s\S]*?\n<\/attachments>\n\n/, "");
|
|
13
|
+
if (metadataTag) {
|
|
14
|
+
const escaped = metadataTag.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
15
|
+
text = text.replace(new RegExp(`^<${escaped}>\\n[\\s\\S]*?\\n</${escaped}>\\n\\n`), "");
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
text = text.replace(/^<\w+_context>\n[\s\S]*?\n<\/\w+_context>\n\n/, "");
|
|
19
|
+
}
|
|
20
|
+
return text;
|
|
21
|
+
}
|
|
22
|
+
export function generateId() {
|
|
23
|
+
return `${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
|
|
24
|
+
}
|
|
25
|
+
export function extractPartsFromAssistantMessage(message, existingParts = []) {
|
|
26
|
+
if (message.role !== "assistant")
|
|
27
|
+
return existingParts;
|
|
28
|
+
const assistantMsg = message;
|
|
29
|
+
const existingToolCalls = new Map();
|
|
30
|
+
for (const part of existingParts) {
|
|
31
|
+
if (part.type === "toolCall") {
|
|
32
|
+
existingToolCalls.set(part.id, part);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return assistantMsg.content.map((block) => {
|
|
36
|
+
if (block.type === "text") {
|
|
37
|
+
return { type: "text", text: block.text };
|
|
38
|
+
}
|
|
39
|
+
if (block.type === "thinking") {
|
|
40
|
+
return { type: "thinking", thinking: block.thinking };
|
|
41
|
+
}
|
|
42
|
+
const existing = existingToolCalls.get(block.id);
|
|
43
|
+
return {
|
|
44
|
+
type: "toolCall",
|
|
45
|
+
id: block.id,
|
|
46
|
+
name: block.name,
|
|
47
|
+
args: block.arguments,
|
|
48
|
+
status: existing?.type === "toolCall" ? existing.status : "pending",
|
|
49
|
+
result: existing?.type === "toolCall" ? existing.result : undefined,
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
export function agentMessagesToChatMessages(agentMessages, metadataTag) {
|
|
54
|
+
const result = [];
|
|
55
|
+
for (const msg of agentMessages) {
|
|
56
|
+
if (msg.role === "user") {
|
|
57
|
+
const text = stripEnrichment(msg.content, metadataTag);
|
|
58
|
+
result.push({
|
|
59
|
+
id: generateId(),
|
|
60
|
+
role: "user",
|
|
61
|
+
parts: [{ type: "text", text }],
|
|
62
|
+
timestamp: msg.timestamp,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
else if (msg.role === "assistant") {
|
|
66
|
+
const parts = extractPartsFromAssistantMessage(msg);
|
|
67
|
+
result.push({
|
|
68
|
+
id: generateId(),
|
|
69
|
+
role: "assistant",
|
|
70
|
+
parts,
|
|
71
|
+
timestamp: msg.timestamp,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
else if (msg.role === "toolResult") {
|
|
75
|
+
const toolResult = msg;
|
|
76
|
+
for (let i = result.length - 1; i >= 0; i--) {
|
|
77
|
+
const chatMsg = result[i];
|
|
78
|
+
if (chatMsg.role !== "assistant")
|
|
79
|
+
continue;
|
|
80
|
+
const partIdx = chatMsg.parts.findIndex((p) => p.type === "toolCall" && p.id === toolResult.toolCallId);
|
|
81
|
+
if (partIdx !== -1) {
|
|
82
|
+
const part = chatMsg.parts[partIdx];
|
|
83
|
+
if (part.type === "toolCall") {
|
|
84
|
+
const resultText = toolResult.content
|
|
85
|
+
.filter((c) => c.type === "text")
|
|
86
|
+
.map((c) => c.text)
|
|
87
|
+
.join("\n");
|
|
88
|
+
const images = toolResult.content
|
|
89
|
+
.filter((c) => c.type === "image")
|
|
90
|
+
.map((c) => ({ data: c.data, mimeType: c.mimeType }));
|
|
91
|
+
chatMsg.parts[partIdx] = {
|
|
92
|
+
...part,
|
|
93
|
+
status: toolResult.isError ? "error" : "complete",
|
|
94
|
+
result: resultText,
|
|
95
|
+
images: images.length > 0 ? images : undefined,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
export function deriveStats(agentMessages) {
|
|
106
|
+
let inputTokens = 0;
|
|
107
|
+
let outputTokens = 0;
|
|
108
|
+
let cacheRead = 0;
|
|
109
|
+
let cacheWrite = 0;
|
|
110
|
+
let totalCost = 0;
|
|
111
|
+
let lastInputTokens = 0;
|
|
112
|
+
for (const msg of agentMessages) {
|
|
113
|
+
if (msg.role === "assistant") {
|
|
114
|
+
const u = msg.usage;
|
|
115
|
+
if (u) {
|
|
116
|
+
inputTokens += u.input;
|
|
117
|
+
outputTokens += u.output;
|
|
118
|
+
cacheRead += u.cacheRead;
|
|
119
|
+
cacheWrite += u.cacheWrite;
|
|
120
|
+
totalCost += u.cost.total;
|
|
121
|
+
lastInputTokens = u.input + u.cacheRead + u.cacheWrite;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return {
|
|
126
|
+
inputTokens,
|
|
127
|
+
outputTokens,
|
|
128
|
+
cacheRead,
|
|
129
|
+
cacheWrite,
|
|
130
|
+
totalCost,
|
|
131
|
+
lastInputTokens,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=message-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-utils.js","sourceRoot":"","sources":["../src/message-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export interface OAuthCredentials {
|
|
2
|
+
refresh: string;
|
|
3
|
+
access: string;
|
|
4
|
+
expires: number;
|
|
5
|
+
}
|
|
6
|
+
export type OAuthFlowState = {
|
|
7
|
+
step: "idle";
|
|
8
|
+
} | {
|
|
9
|
+
step: "awaiting-code";
|
|
10
|
+
verifier: string;
|
|
11
|
+
oauthState?: string;
|
|
12
|
+
} | {
|
|
13
|
+
step: "exchanging";
|
|
14
|
+
} | {
|
|
15
|
+
step: "connected";
|
|
16
|
+
} | {
|
|
17
|
+
step: "error";
|
|
18
|
+
message: string;
|
|
19
|
+
};
|
|
20
|
+
export declare const OAUTH_PROVIDERS: Record<string, {
|
|
21
|
+
label: string;
|
|
22
|
+
buttonText: string;
|
|
23
|
+
}>;
|
|
24
|
+
export declare function loadOAuthCredentials(provider: string): OAuthCredentials | null;
|
|
25
|
+
export declare function saveOAuthCredentials(provider: string, creds: OAuthCredentials): void;
|
|
26
|
+
export declare function removeOAuthCredentials(provider: string): void;
|
|
27
|
+
export declare function generatePKCE(): Promise<{
|
|
28
|
+
verifier: string;
|
|
29
|
+
challenge: string;
|
|
30
|
+
}>;
|
|
31
|
+
export declare function buildAuthorizationUrl(provider: string, challenge: string, verifier: string): {
|
|
32
|
+
url: string;
|
|
33
|
+
oauthState?: string;
|
|
34
|
+
};
|
|
35
|
+
export declare function refreshOAuthToken(provider: string, refreshToken: string, proxyUrl: string, useProxy: boolean): Promise<OAuthCredentials>;
|
|
36
|
+
export declare function exchangeOAuthCode(params: {
|
|
37
|
+
provider: string;
|
|
38
|
+
rawInput: string;
|
|
39
|
+
verifier: string;
|
|
40
|
+
expectedState?: string;
|
|
41
|
+
useProxy: boolean;
|
|
42
|
+
proxyUrl: string;
|
|
43
|
+
}): Promise<OAuthCredentials>;
|
|
44
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/oauth/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,MAAM,EACN;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAUtC,CAAC;AAUF,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,GACf,gBAAgB,GAAG,IAAI,CAOzB;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,gBAAgB,QAUxB;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,QAStD;AAYD,wBAAsB,YAAY,IAAI,OAAO,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,CAQD;AA2BD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CA4BtC;AAgHD,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAK3B;AAID,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA0E5B"}
|