@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.
Files changed (81) hide show
  1. package/dist/index.d.ts +18 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +29 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/lockdown.d.ts +3 -0
  6. package/dist/lockdown.d.ts.map +1 -0
  7. package/dist/lockdown.js +103 -0
  8. package/dist/lockdown.js.map +1 -0
  9. package/dist/message-utils.d.ts +44 -0
  10. package/dist/message-utils.d.ts.map +1 -0
  11. package/dist/message-utils.js +134 -0
  12. package/dist/message-utils.js.map +1 -0
  13. package/dist/oauth/index.d.ts +44 -0
  14. package/dist/oauth/index.d.ts.map +1 -0
  15. package/dist/oauth/index.js +259 -0
  16. package/dist/oauth/index.js.map +1 -0
  17. package/dist/provider-config.d.ts +29 -0
  18. package/dist/provider-config.d.ts.map +1 -0
  19. package/dist/provider-config.js +101 -0
  20. package/dist/provider-config.js.map +1 -0
  21. package/dist/runtime.d.ts +93 -0
  22. package/dist/runtime.d.ts.map +1 -0
  23. package/dist/runtime.js +688 -0
  24. package/dist/runtime.js.map +1 -0
  25. package/dist/sandbox.d.ts +2 -0
  26. package/dist/sandbox.d.ts.map +1 -0
  27. package/dist/sandbox.js +22 -0
  28. package/dist/sandbox.js.map +1 -0
  29. package/dist/skills/index.d.ts +16 -0
  30. package/dist/skills/index.d.ts.map +1 -0
  31. package/dist/skills/index.js +96 -0
  32. package/dist/skills/index.js.map +1 -0
  33. package/dist/storage/db.d.ts +55 -0
  34. package/dist/storage/db.d.ts.map +1 -0
  35. package/dist/storage/db.js +229 -0
  36. package/dist/storage/db.js.map +1 -0
  37. package/dist/storage/index.d.ts +4 -0
  38. package/dist/storage/index.d.ts.map +1 -0
  39. package/dist/storage/index.js +3 -0
  40. package/dist/storage/index.js.map +1 -0
  41. package/dist/storage/namespace.d.ts +9 -0
  42. package/dist/storage/namespace.d.ts.map +1 -0
  43. package/dist/storage/namespace.js +14 -0
  44. package/dist/storage/namespace.js.map +1 -0
  45. package/dist/tools/bash.d.ts +2 -0
  46. package/dist/tools/bash.d.ts.map +1 -0
  47. package/dist/tools/bash.js +69 -0
  48. package/dist/tools/bash.js.map +1 -0
  49. package/dist/tools/read-file.d.ts +2 -0
  50. package/dist/tools/read-file.d.ts.map +1 -0
  51. package/dist/tools/read-file.js +116 -0
  52. package/dist/tools/read-file.js.map +1 -0
  53. package/dist/tools/types.d.ts +16 -0
  54. package/dist/tools/types.d.ts.map +1 -0
  55. package/dist/tools/types.js +28 -0
  56. package/dist/tools/types.js.map +1 -0
  57. package/dist/truncate.d.ts +19 -0
  58. package/dist/truncate.d.ts.map +1 -0
  59. package/dist/truncate.js +101 -0
  60. package/dist/truncate.js.map +1 -0
  61. package/dist/vfs/index.d.ts +35 -0
  62. package/dist/vfs/index.d.ts.map +1 -0
  63. package/dist/vfs/index.js +168 -0
  64. package/dist/vfs/index.js.map +1 -0
  65. package/dist/web/config.d.ts +12 -0
  66. package/dist/web/config.d.ts.map +1 -0
  67. package/dist/web/config.js +41 -0
  68. package/dist/web/config.js.map +1 -0
  69. package/dist/web/fetch.d.ts +5 -0
  70. package/dist/web/fetch.d.ts.map +1 -0
  71. package/dist/web/fetch.js +174 -0
  72. package/dist/web/fetch.js.map +1 -0
  73. package/dist/web/search.d.ts +9 -0
  74. package/dist/web/search.d.ts.map +1 -0
  75. package/dist/web/search.js +238 -0
  76. package/dist/web/search.js.map +1 -0
  77. package/dist/web/types.d.ts +56 -0
  78. package/dist/web/types.d.ts.map +1 -0
  79. package/dist/web/types.js +2 -0
  80. package/dist/web/types.js.map +1 -0
  81. package/package.json +47 -0
@@ -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,3 @@
1
+ import "ses";
2
+ export declare function ensureLockdown(): void;
3
+ //# sourceMappingURL=lockdown.d.ts.map
@@ -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"}
@@ -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"}