@byteplus-iga-pages/agent 0.0.0-stage → 1.0.4

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 (105) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +84 -2
  3. package/dist/cjs/261.js +77 -0
  4. package/dist/cjs/341.js +43 -0
  5. package/dist/cjs/401.js +3632 -0
  6. package/dist/cjs/419.js +854 -0
  7. package/dist/cjs/504.js +760 -0
  8. package/dist/cjs/521.js +242 -0
  9. package/dist/cjs/594.js +79 -0
  10. package/dist/cjs/647.js +1367 -0
  11. package/dist/cjs/808.js +322 -0
  12. package/dist/cjs/82.js +10089 -0
  13. package/dist/cjs/893.js +17720 -0
  14. package/dist/cjs/893.js.LICENSE.txt +13 -0
  15. package/dist/cjs/951.js +59 -0
  16. package/dist/cjs/package.json +3 -0
  17. package/dist/cjs/runtime.js +79 -0
  18. package/dist/cjs/sandbox/host.js +125 -0
  19. package/dist/cjs/sandbox/index.js +286 -0
  20. package/dist/cjs/store/claude.js +209 -0
  21. package/dist/cjs/store/host.js +92 -0
  22. package/dist/cjs/store/index.js +43 -0
  23. package/dist/cjs/store/langgraph.js +581 -0
  24. package/dist/cjs/store/openai.js +118 -0
  25. package/dist/cjs/tools/claude.js +59 -0
  26. package/dist/cjs/tools/index.js +37 -0
  27. package/dist/cjs/tools/langchain.js +52 -0
  28. package/dist/cjs/tools/openai-agents.js +43 -0
  29. package/dist/cjs/tools/openai.js +43 -0
  30. package/dist/esm/128.js +10381 -0
  31. package/dist/esm/261.js +67 -0
  32. package/dist/esm/341.js +30 -0
  33. package/dist/esm/392.js +4453 -0
  34. package/dist/esm/417.js +704 -0
  35. package/dist/esm/521.js +230 -0
  36. package/dist/esm/594.js +67 -0
  37. package/dist/esm/613.js +19042 -0
  38. package/dist/esm/613.js.LICENSE.txt +13 -0
  39. package/dist/esm/951.js +44 -0
  40. package/dist/esm/package.json +3 -0
  41. package/dist/esm/runtime.js +39 -0
  42. package/dist/esm/sandbox/host.js +1 -0
  43. package/dist/esm/sandbox/index.js +183 -0
  44. package/dist/esm/store/claude.js +172 -0
  45. package/dist/esm/store/host.js +46 -0
  46. package/dist/esm/store/index.js +2 -0
  47. package/dist/esm/store/langgraph.js +542 -0
  48. package/dist/esm/store/openai.js +81 -0
  49. package/dist/esm/tools/claude.js +22 -0
  50. package/dist/esm/tools/index.js +1 -0
  51. package/dist/esm/tools/langchain.js +16 -0
  52. package/dist/esm/tools/openai-agents.js +6 -0
  53. package/dist/esm/tools/openai.js +6 -0
  54. package/dist/types/_internal/data-plane/control-plane-request.d.ts +12 -0
  55. package/dist/types/_internal/data-plane/control-plane.d.ts +3 -0
  56. package/dist/types/_internal/data-plane/credential-provider.d.ts +25 -0
  57. package/dist/types/_internal/data-plane/errors.d.ts +19 -0
  58. package/dist/types/_internal/data-plane/index.d.ts +11 -0
  59. package/dist/types/_internal/data-plane/supabase-client.d.ts +12 -0
  60. package/dist/types/_internal/data-plane/token-client.d.ts +23 -0
  61. package/dist/types/sandbox/api-client.d.ts +37 -0
  62. package/dist/types/sandbox/api-types.d.ts +81 -0
  63. package/dist/types/sandbox/binding-repository.d.ts +62 -0
  64. package/dist/types/sandbox/error.d.ts +22 -0
  65. package/dist/types/sandbox/expiry.d.ts +11 -0
  66. package/dist/types/sandbox/host.d.ts +6 -0
  67. package/dist/types/sandbox/iga-sandbox.d.ts +208 -0
  68. package/dist/types/sandbox/index.d.ts +8 -0
  69. package/dist/types/sandbox/public-surface.d.ts +19 -0
  70. package/dist/types/sandbox/runtime-sandbox.d.ts +32 -0
  71. package/dist/types/sandbox/types.d.ts +238 -0
  72. package/dist/types/store/append.d.ts +41 -0
  73. package/dist/types/store/claude-repository.d.ts +36 -0
  74. package/dist/types/store/claude.d.ts +3 -0
  75. package/dist/types/store/control-plane-request.d.ts +2 -0
  76. package/dist/types/store/credential-error.d.ts +2 -0
  77. package/dist/types/store/credential-provider.d.ts +29 -0
  78. package/dist/types/store/errors.d.ts +29 -0
  79. package/dist/types/store/factory.d.ts +31 -0
  80. package/dist/types/store/host.d.ts +5 -0
  81. package/dist/types/store/index.d.ts +6 -0
  82. package/dist/types/store/json.d.ts +7 -0
  83. package/dist/types/store/langgraph-repository.d.ts +98 -0
  84. package/dist/types/store/langgraph.d.ts +43 -0
  85. package/dist/types/store/openai.d.ts +12 -0
  86. package/dist/types/store/pagination.d.ts +27 -0
  87. package/dist/types/store/runtime-data-plane.d.ts +8 -0
  88. package/dist/types/store/runtime-provider.d.ts +1 -0
  89. package/dist/types/store/runtime-store.d.ts +20 -0
  90. package/dist/types/store/store.d.ts +240 -0
  91. package/dist/types/store/supabase-transport.d.ts +43 -0
  92. package/dist/types/store/token-client.d.ts +7 -0
  93. package/dist/types/tools/adapters.d.ts +5 -0
  94. package/dist/types/tools/claude.d.ts +4 -0
  95. package/dist/types/tools/index.d.ts +2 -0
  96. package/dist/types/tools/langchain.d.ts +16 -0
  97. package/dist/types/tools/model-output.d.ts +8 -0
  98. package/dist/types/tools/openai-agents.d.ts +4 -0
  99. package/dist/types/tools/openai.d.ts +5 -0
  100. package/dist/types/tools/registry.d.ts +16 -0
  101. package/dist/types/tools/result.d.ts +17 -0
  102. package/dist/types/tools/sandbox-result-mappers.d.ts +10 -0
  103. package/dist/types/tools/sandbox-tools.d.ts +17 -0
  104. package/dist/types/tools/types.d.ts +307 -0
  105. package/package.json +136 -4
@@ -0,0 +1,13 @@
1
+ /*!
2
+ * mime-db
3
+ * Copyright(c) 2014 Jonathan Ong
4
+ * Copyright(c) 2015-2022 Douglas Christopher Wilson
5
+ * MIT Licensed
6
+ */
7
+
8
+ /*!
9
+ * mime-types
10
+ * Copyright(c) 2014 Jonathan Ong
11
+ * Copyright(c) 2015 Douglas Christopher Wilson
12
+ * MIT Licensed
13
+ */
@@ -0,0 +1,44 @@
1
+ import { STORE_TOKEN_ENDPOINT, ALLOWED_STORE_HOST_SUFFIX } from "./128.js";
2
+ import { StoreError, credential_provider_StoreCredentialProvider, fetchStoreCredentials, SupabaseStoreTransport, createStore } from "./417.js";
3
+ let runtimeDataPlane;
4
+ function requireRuntimeEnv(name) {
5
+ const value = "u" < typeof process ? void 0 : process.env[name]?.trim();
6
+ if (!value) throw new StoreError("ServiceUnavailable", "Store is only available in the IGA Pages server runtime.");
7
+ return value;
8
+ }
9
+ function resolveRuntimeDataPlane() {
10
+ if (runtimeDataPlane) return runtimeDataPlane;
11
+ const token = requireRuntimeEnv("IGA_AUTH_KEY");
12
+ const provider = new credential_provider_StoreCredentialProvider({
13
+ fetchCredentials: ()=>fetchStoreCredentials({
14
+ endpoint: STORE_TOKEN_ENDPOINT,
15
+ token,
16
+ isAllowedTokenEndpoint: (url)=>{
17
+ const allowed = new URL(STORE_TOKEN_ENDPOINT);
18
+ return url.origin === allowed.origin && url.pathname === allowed.pathname;
19
+ },
20
+ isAllowedHostname: (hostname)=>hostname.endsWith(ALLOWED_STORE_HOST_SUFFIX)
21
+ })
22
+ });
23
+ const transport = new SupabaseStoreTransport({
24
+ credentialProvider: provider
25
+ });
26
+ runtimeDataPlane = {
27
+ provider,
28
+ transport
29
+ };
30
+ return runtimeDataPlane;
31
+ }
32
+ async function resolveRuntimeStore() {
33
+ const runtime = resolveRuntimeDataPlane();
34
+ if (runtime.store) return runtime.store;
35
+ const projectId = await runtime.provider.getProjectId();
36
+ return runtime.store ??= createStore({
37
+ projectId,
38
+ transport: runtime.transport
39
+ });
40
+ }
41
+ function executeRuntimeStoreOperation(options) {
42
+ return resolveRuntimeDataPlane().transport.execute(options);
43
+ }
44
+ export { executeRuntimeStoreOperation, resolveRuntimeStore };
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -0,0 +1,39 @@
1
+ var __webpack_modules__ = {};
2
+ var __webpack_module_cache__ = {};
3
+ function __webpack_require__(moduleId) {
4
+ var cachedModule = __webpack_module_cache__[moduleId];
5
+ if (void 0 !== cachedModule) return cachedModule.exports;
6
+ var module = __webpack_module_cache__[moduleId] = {
7
+ exports: {}
8
+ };
9
+ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
10
+ return module.exports;
11
+ }
12
+ __webpack_require__.m = __webpack_modules__;
13
+ (()=>{
14
+ __webpack_require__.add = function(modules) {
15
+ Object.assign(__webpack_require__.m, modules);
16
+ };
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.d = (exports, definition)=>{
20
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) Object.defineProperty(exports, key, {
21
+ enumerable: true,
22
+ get: definition[key]
23
+ });
24
+ };
25
+ })();
26
+ (()=>{
27
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
28
+ })();
29
+ (()=>{
30
+ __webpack_require__.r = (exports)=>{
31
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports, Symbol.toStringTag, {
32
+ value: 'Module'
33
+ });
34
+ Object.defineProperty(exports, '__esModule', {
35
+ value: true
36
+ });
37
+ };
38
+ })();
39
+ export { __webpack_require__ };
@@ -0,0 +1 @@
1
+ export { IgaSandbox, SandboxApi, SupabaseSandboxBindingRepository, __clearSandboxCacheForTests, __getEntryForTests, attachSandbox, createDetachedSandbox, createRuntimeSandboxBindingRepository, createSandbox, createSandboxApi, isInstanceGoneResponse } from "../613.js";
@@ -0,0 +1,183 @@
1
+ import { DataPlaneCredentialProvider, DataPlaneError, CONTROL_PLANE_BASE_URL, fetchRuntimeDataPlaneCredentials } from "../128.js";
2
+ import { SandboxError, SandboxAbortError } from "../341.js";
3
+ import { createSandbox as iga_sandbox_createSandbox, createDetachedSandbox, attachSandbox, SupabaseSandboxBindingRepository } from "../613.js";
4
+ const PUBLIC_SANDBOX_METHODS = {
5
+ code: [
6
+ "executeCode"
7
+ ],
8
+ shell: [
9
+ "execCommand",
10
+ "view",
11
+ "waitForProcess",
12
+ "killProcess"
13
+ ],
14
+ file: [
15
+ "readFile",
16
+ "writeFile",
17
+ "replaceInFile",
18
+ "searchInFile",
19
+ "findFiles",
20
+ "grepFiles",
21
+ "listPath"
22
+ ],
23
+ browserPage: [
24
+ "navigate",
25
+ "back",
26
+ "forward",
27
+ "reload",
28
+ "click",
29
+ "fill",
30
+ "typeText",
31
+ "pressKey",
32
+ "hotKey",
33
+ "hover",
34
+ "selectOption",
35
+ "check",
36
+ "uncheck",
37
+ "uploadFile",
38
+ "scroll",
39
+ "scrollTo",
40
+ "scrollToElement",
41
+ "screenshot",
42
+ "getHtml",
43
+ "getText",
44
+ "wait"
45
+ ]
46
+ };
47
+ const PUBLIC_SANDBOX_MODULES = Object.keys(PUBLIC_SANDBOX_METHODS);
48
+ function createPublicModules(invoke) {
49
+ const modules = Object.create(null);
50
+ for (const name of PUBLIC_SANDBOX_MODULES){
51
+ const methods = Object.create(null);
52
+ for (const method of PUBLIC_SANDBOX_METHODS[name])methods[method] = (...args)=>invoke(name, method, args);
53
+ modules[name] = Object.freeze(methods);
54
+ }
55
+ return Object.freeze(modules);
56
+ }
57
+ const PUBLIC_METHODS = new Set([
58
+ "getInfo",
59
+ "extendTimeout",
60
+ "destroy"
61
+ ]);
62
+ let runtimeConfig;
63
+ function getConversationSandbox(conversationId) {
64
+ if ("string" != typeof conversationId || 0 === conversationId.length) throw new SandboxError("conversationId must be a non-empty string.");
65
+ if (Buffer.byteLength(conversationId, "utf8") > 256) throw new SandboxError("conversationId must not exceed 256 UTF-8 bytes");
66
+ const config = resolveRuntimeConfig();
67
+ return createDeferredSandbox(config, {
68
+ conversationId
69
+ }, (projectId)=>iga_sandbox_createSandbox({
70
+ projectId,
71
+ conversationId,
72
+ apiBaseUrl: CONTROL_PLANE_BASE_URL,
73
+ apiToken: config.token,
74
+ bindingRepository: config.bindingRepository
75
+ }));
76
+ }
77
+ async function createSandbox() {
78
+ const config = resolveRuntimeConfig();
79
+ const instance = createDetachedSandbox({
80
+ projectId: await resolveProjectId(config),
81
+ apiBaseUrl: CONTROL_PLANE_BASE_URL,
82
+ apiToken: config.token
83
+ });
84
+ await instance.ensureReady();
85
+ return createPublicSandbox(instance);
86
+ }
87
+ function connectSandbox(sandboxId) {
88
+ if (!sandboxId || "string" != typeof sandboxId) throw new SandboxError("sandboxId is required.");
89
+ const config = resolveRuntimeConfig();
90
+ return createDeferredSandbox(config, {
91
+ sandboxId
92
+ }, (projectId)=>attachSandbox({
93
+ projectId,
94
+ sandboxId,
95
+ apiBaseUrl: CONTROL_PLANE_BASE_URL,
96
+ apiToken: config.token
97
+ }));
98
+ }
99
+ function requireRuntimeEnv(name) {
100
+ const value = "u" < typeof process ? void 0 : process.env[name]?.trim();
101
+ if (!value) throw new SandboxError("Sandbox is only available in the IGA Pages server runtime.");
102
+ return value;
103
+ }
104
+ function resolveRuntimeConfig() {
105
+ if (runtimeConfig) return runtimeConfig;
106
+ const token = requireRuntimeEnv("IGA_AUTH_KEY");
107
+ const provider = new DataPlaneCredentialProvider({
108
+ fetchCredentials: ()=>fetchRuntimeDataPlaneCredentials({
109
+ token
110
+ })
111
+ });
112
+ runtimeConfig = {
113
+ provider,
114
+ token,
115
+ bindingRepository: new SupabaseSandboxBindingRepository({
116
+ credentialProvider: provider
117
+ })
118
+ };
119
+ return runtimeConfig;
120
+ }
121
+ async function resolveProjectId(config, signal) {
122
+ try {
123
+ return await config.provider.getProjectId(signal);
124
+ } catch (error) {
125
+ if (!(error instanceof DataPlaneError)) throw error;
126
+ const ErrorClass = "aborted" === error.code ? SandboxAbortError : SandboxError;
127
+ throw new ErrorClass(error.message, {
128
+ status: error.status
129
+ });
130
+ }
131
+ }
132
+ function requestSignal(args) {
133
+ const last = args[args.length - 1];
134
+ if (!last || "object" != typeof last || !("abortSignal" in last)) return;
135
+ const signal = last.abortSignal;
136
+ return signal && "boolean" == typeof signal.aborted && "function" == typeof signal.addEventListener && "function" == typeof signal.removeEventListener ? signal : void 0;
137
+ }
138
+ function createDeferredSandbox(config, ids, create) {
139
+ let instance;
140
+ const resolve = async (args)=>{
141
+ const signal = requestSignal(args);
142
+ if (instance) return instance;
143
+ const projectId = await resolveProjectId(config, signal);
144
+ if (signal?.aborted) throw new SandboxAbortError("Sandbox request was cancelled.");
145
+ return instance ??= create(projectId);
146
+ };
147
+ const target = Object.create(null);
148
+ for (const property of [
149
+ "conversationId",
150
+ "sandboxId"
151
+ ])Object.defineProperty(target, property, {
152
+ enumerable: true,
153
+ get: ()=>instance?.[property] ?? ids[property]
154
+ });
155
+ for (const method of PUBLIC_METHODS)target[method] = async (...args)=>{
156
+ const current = await resolve(args);
157
+ return Reflect.apply(Reflect.get(current, method), current, args);
158
+ };
159
+ Object.assign(target, createPublicModules(async (name, method, args)=>{
160
+ const current = await resolve(args);
161
+ const module = current[name];
162
+ return Reflect.apply(Reflect.get(module, method), module, args);
163
+ }));
164
+ return Object.freeze(target);
165
+ }
166
+ function createPublicSandbox(instance) {
167
+ const target = Object.create(null);
168
+ for (const property of [
169
+ "conversationId",
170
+ "sandboxId"
171
+ ])Object.defineProperty(target, property, {
172
+ enumerable: true,
173
+ get: ()=>instance[property]
174
+ });
175
+ for (const method of PUBLIC_METHODS)target[method] = (...args)=>Reflect.apply(Reflect.get(instance, method), instance, args);
176
+ Object.assign(target, createPublicModules((name, method, args)=>{
177
+ const module = instance[name];
178
+ return Reflect.apply(Reflect.get(module, method), module, args);
179
+ }));
180
+ return Object.freeze(target);
181
+ }
182
+ export { SandboxError, isAbortError } from "../341.js";
183
+ export { connectSandbox, createSandbox, getConversationSandbox };
@@ -0,0 +1,172 @@
1
+ import { executeRuntimeStoreOperation } from "../951.js";
2
+ import { StoreError, cloneJsonObject } from "../417.js";
3
+ const CLAUDE_RPC_NAMES = {
4
+ append: "claude_session_append",
5
+ load: "claude_session_load",
6
+ listSessions: "claude_session_list_sessions",
7
+ delete: "claude_session_delete",
8
+ listSubkeys: "claude_session_list_subkeys"
9
+ };
10
+ function rpcOperation(name, params) {
11
+ return (client)=>client.rpc(name, params);
12
+ }
13
+ function keyParams(key) {
14
+ return {
15
+ p_project_key: key.projectKey,
16
+ p_session_id: key.sessionId,
17
+ p_subpath: key.subpath
18
+ };
19
+ }
20
+ function hasStableUuid(entry) {
21
+ return "string" == typeof entry.uuid && entry.uuid.length > 0;
22
+ }
23
+ class ClaudeSessionRepository {
24
+ async append(key, entries) {
25
+ await this.execute({
26
+ operationName: "store.claude.append",
27
+ retryOnUnauthorized: true,
28
+ retryOnNetworkError: entries.every(hasStableUuid),
29
+ operation: rpcOperation(CLAUDE_RPC_NAMES.append, {
30
+ ...keyParams(key),
31
+ p_entries: entries
32
+ })
33
+ });
34
+ }
35
+ async load(key) {
36
+ const result = await this.execute({
37
+ operationName: "store.claude.load",
38
+ retryOnUnauthorized: true,
39
+ retryOnNetworkError: true,
40
+ operation: rpcOperation(CLAUDE_RPC_NAMES.load, keyParams(key))
41
+ });
42
+ return result.data;
43
+ }
44
+ async listSessions(projectKey) {
45
+ const result = await this.execute({
46
+ operationName: "store.claude.listSessions",
47
+ retryOnUnauthorized: true,
48
+ retryOnNetworkError: true,
49
+ operation: rpcOperation(CLAUDE_RPC_NAMES.listSessions, {
50
+ p_project_key: projectKey
51
+ })
52
+ });
53
+ return result.data;
54
+ }
55
+ async delete(key) {
56
+ await this.execute({
57
+ operationName: "store.claude.delete",
58
+ retryOnUnauthorized: true,
59
+ retryOnNetworkError: true,
60
+ operation: rpcOperation(CLAUDE_RPC_NAMES.delete, keyParams(key))
61
+ });
62
+ }
63
+ async listSubkeys(input) {
64
+ const result = await this.execute({
65
+ operationName: "store.claude.listSubkeys",
66
+ retryOnUnauthorized: true,
67
+ retryOnNetworkError: true,
68
+ operation: rpcOperation(CLAUDE_RPC_NAMES.listSubkeys, {
69
+ p_project_key: input.projectKey,
70
+ p_session_id: input.sessionId
71
+ })
72
+ });
73
+ return result.data;
74
+ }
75
+ constructor(execute = executeRuntimeStoreOperation){
76
+ this.execute = execute;
77
+ }
78
+ }
79
+ const claudeSessionRepository = new ClaudeSessionRepository();
80
+ function invalid(message) {
81
+ throw new StoreError("BadRequest", message);
82
+ }
83
+ function internal() {
84
+ throw new StoreError("UnknownError", "Store returned invalid data");
85
+ }
86
+ function requireInputString(value, field) {
87
+ if ("string" != typeof value || 0 === value.length) invalid(`${field} must be a non-empty string`);
88
+ return value;
89
+ }
90
+ function requireOutputString(value) {
91
+ if ("string" != typeof value || 0 === value.length) internal();
92
+ return value;
93
+ }
94
+ function materializeKey(key) {
95
+ if (null === key || "object" != typeof key) invalid("session key must be an object");
96
+ const projectKey = requireInputString(key.projectKey, "projectKey");
97
+ const sessionId = requireInputString(key.sessionId, "sessionId");
98
+ const subpath = void 0 === key.subpath ? null : requireInputString(key.subpath, "subpath");
99
+ return {
100
+ projectKey,
101
+ sessionId,
102
+ subpath
103
+ };
104
+ }
105
+ function materializeEntries(entries) {
106
+ if (!Array.isArray(entries)) invalid("entries must be an array");
107
+ return entries.map((entry, index)=>{
108
+ const cloned = cloneJsonObject(entry, `entries[${index}]`);
109
+ if ("string" != typeof cloned.type) invalid(`entries[${index}].type must be a string`);
110
+ return cloned;
111
+ });
112
+ }
113
+ function parseEntries(value) {
114
+ if (null === value) return null;
115
+ if (!Array.isArray(value)) internal();
116
+ return value.map((entry, index)=>{
117
+ let cloned;
118
+ try {
119
+ cloned = cloneJsonObject(entry, `store entries[${index}]`);
120
+ } catch {
121
+ internal();
122
+ }
123
+ if ("string" != typeof cloned.type) internal();
124
+ return cloned;
125
+ });
126
+ }
127
+ function parseSessions(value) {
128
+ if (!Array.isArray(value)) internal();
129
+ return value.map((item)=>{
130
+ if (null === item || "object" != typeof item || Array.isArray(item)) internal();
131
+ const row = item;
132
+ const rawMtime = row.mtime;
133
+ const mtime = "number" == typeof rawMtime ? rawMtime : "string" == typeof rawMtime && /^\d+$/.test(rawMtime) ? Number(rawMtime) : NaN;
134
+ if (!Number.isSafeInteger(mtime) || mtime < 0) internal();
135
+ return {
136
+ sessionId: requireOutputString(row.session_id),
137
+ mtime
138
+ };
139
+ });
140
+ }
141
+ function parseSubkeys(value) {
142
+ if (!Array.isArray(value)) internal();
143
+ return value.map(requireOutputString);
144
+ }
145
+ class IgaClaudeSessionStore {
146
+ async append(key, entries) {
147
+ const materializedKey = materializeKey(key);
148
+ const materializedEntries = materializeEntries(entries);
149
+ if (0 === materializedEntries.length) return;
150
+ await claudeSessionRepository.append(materializedKey, materializedEntries);
151
+ }
152
+ async load(key) {
153
+ return parseEntries(await claudeSessionRepository.load(materializeKey(key)));
154
+ }
155
+ async listSessions(projectKey) {
156
+ return parseSessions(await claudeSessionRepository.listSessions(requireInputString(projectKey, "projectKey")));
157
+ }
158
+ async delete(key) {
159
+ await claudeSessionRepository["delete"](materializeKey(key));
160
+ }
161
+ async listSubkeys(key) {
162
+ if (null === key || "object" != typeof key) invalid("session key must be an object");
163
+ return parseSubkeys(await claudeSessionRepository.listSubkeys({
164
+ projectKey: requireInputString(key.projectKey, "projectKey"),
165
+ sessionId: requireInputString(key.sessionId, "sessionId")
166
+ }));
167
+ }
168
+ }
169
+ function createSessionStore() {
170
+ return new IgaClaudeSessionStore();
171
+ }
172
+ export { createSessionStore };
@@ -0,0 +1,46 @@
1
+ import { SupabaseStoreTransport, StoreCredentialProviderCache, credential_provider_StoreCredentialProvider, createStore } from "../417.js";
2
+ class StoreFactory {
3
+ create(scope) {
4
+ const credentialScope = {
5
+ environment: this.options.environment,
6
+ projectId: scope.projectId
7
+ };
8
+ const provider = this.credentials.get(credentialScope);
9
+ let transport = this.transports.get(provider);
10
+ if (!transport) {
11
+ transport = new SupabaseStoreTransport({
12
+ credentialProvider: provider,
13
+ fetch: this.options.fetch,
14
+ createClient: this.options.createClient
15
+ });
16
+ this.transports.set(provider, transport);
17
+ }
18
+ return createStore({
19
+ ...scope,
20
+ transport,
21
+ generateUuid: this.options.generateUuid,
22
+ rpcNames: this.options.rpcNames
23
+ });
24
+ }
25
+ clear(scope) {
26
+ this.credentials.clear(scope ? {
27
+ environment: this.options.environment,
28
+ projectId: scope.projectId
29
+ } : void 0);
30
+ }
31
+ constructor(options){
32
+ this.transports = new WeakMap();
33
+ this.options = options;
34
+ this.credentials = new StoreCredentialProviderCache({
35
+ createProvider: (scope)=>new credential_provider_StoreCredentialProvider({
36
+ fetchCredentials: ()=>options.fetchCredentials(scope),
37
+ now: options.now
38
+ })
39
+ });
40
+ }
41
+ }
42
+ function createStoreFactory(options) {
43
+ return new StoreFactory(options);
44
+ }
45
+ export { fetchStoreCredentials, validateStoreRootUrl } from "../417.js";
46
+ export { StoreFactory, createStoreFactory };
@@ -0,0 +1,2 @@
1
+ export { StoreError } from "../417.js";
2
+ export { store } from "../261.js";