@useactor/core 0.1.0

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 (153) hide show
  1. package/dist/ai-sdk-provider.d.ts +54 -0
  2. package/dist/ai-sdk-provider.d.ts.map +1 -0
  3. package/dist/ai-sdk-provider.js +335 -0
  4. package/dist/ai-sdk-provider.js.map +1 -0
  5. package/dist/app-runtime.d.ts +83 -0
  6. package/dist/app-runtime.d.ts.map +1 -0
  7. package/dist/app-runtime.js +504 -0
  8. package/dist/app-runtime.js.map +1 -0
  9. package/dist/artifacts.d.ts +49 -0
  10. package/dist/artifacts.d.ts.map +1 -0
  11. package/dist/artifacts.js +50 -0
  12. package/dist/artifacts.js.map +1 -0
  13. package/dist/cli-defined-tools.d.ts +17 -0
  14. package/dist/cli-defined-tools.d.ts.map +1 -0
  15. package/dist/cli-defined-tools.js +146 -0
  16. package/dist/cli-defined-tools.js.map +1 -0
  17. package/dist/codex-oauth-provider.d.ts +30 -0
  18. package/dist/codex-oauth-provider.d.ts.map +1 -0
  19. package/dist/codex-oauth-provider.js +453 -0
  20. package/dist/codex-oauth-provider.js.map +1 -0
  21. package/dist/events.d.ts +133 -0
  22. package/dist/events.d.ts.map +1 -0
  23. package/dist/events.js +46 -0
  24. package/dist/events.js.map +1 -0
  25. package/dist/feedback.d.ts +29 -0
  26. package/dist/feedback.d.ts.map +1 -0
  27. package/dist/feedback.js +62 -0
  28. package/dist/feedback.js.map +1 -0
  29. package/dist/history.d.ts +34 -0
  30. package/dist/history.d.ts.map +1 -0
  31. package/dist/history.js +118 -0
  32. package/dist/history.js.map +1 -0
  33. package/dist/in-memory-runtime.d.ts +12 -0
  34. package/dist/in-memory-runtime.d.ts.map +1 -0
  35. package/dist/in-memory-runtime.js +491 -0
  36. package/dist/in-memory-runtime.js.map +1 -0
  37. package/dist/index.d.ts +36 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +36 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/integrations.d.ts +37 -0
  42. package/dist/integrations.d.ts.map +1 -0
  43. package/dist/integrations.js +48 -0
  44. package/dist/integrations.js.map +1 -0
  45. package/dist/local-event-logger.d.ts +19 -0
  46. package/dist/local-event-logger.d.ts.map +1 -0
  47. package/dist/local-event-logger.js +163 -0
  48. package/dist/local-event-logger.js.map +1 -0
  49. package/dist/local-event-schema.d.ts +99 -0
  50. package/dist/local-event-schema.d.ts.map +1 -0
  51. package/dist/local-event-schema.js +43 -0
  52. package/dist/local-event-schema.js.map +1 -0
  53. package/dist/local-tools.d.ts +99 -0
  54. package/dist/local-tools.d.ts.map +1 -0
  55. package/dist/local-tools.js +418 -0
  56. package/dist/local-tools.js.map +1 -0
  57. package/dist/mcp-server-config.d.ts +16 -0
  58. package/dist/mcp-server-config.d.ts.map +1 -0
  59. package/dist/mcp-server-config.js +75 -0
  60. package/dist/mcp-server-config.js.map +1 -0
  61. package/dist/mock-provider.d.ts +8 -0
  62. package/dist/mock-provider.d.ts.map +1 -0
  63. package/dist/mock-provider.js +47 -0
  64. package/dist/mock-provider.js.map +1 -0
  65. package/dist/model-catalog.d.ts +24 -0
  66. package/dist/model-catalog.d.ts.map +1 -0
  67. package/dist/model-catalog.js +92 -0
  68. package/dist/model-catalog.js.map +1 -0
  69. package/dist/monoid-integration.d.ts +33 -0
  70. package/dist/monoid-integration.d.ts.map +1 -0
  71. package/dist/monoid-integration.js +184 -0
  72. package/dist/monoid-integration.js.map +1 -0
  73. package/dist/openai-oauth.d.ts +69 -0
  74. package/dist/openai-oauth.d.ts.map +1 -0
  75. package/dist/openai-oauth.js +127 -0
  76. package/dist/openai-oauth.js.map +1 -0
  77. package/dist/permission-grant-store.d.ts +7 -0
  78. package/dist/permission-grant-store.d.ts.map +1 -0
  79. package/dist/permission-grant-store.js +77 -0
  80. package/dist/permission-grant-store.js.map +1 -0
  81. package/dist/permission-grants.d.ts +38 -0
  82. package/dist/permission-grants.d.ts.map +1 -0
  83. package/dist/permission-grants.js +93 -0
  84. package/dist/permission-grants.js.map +1 -0
  85. package/dist/personas.d.ts +51 -0
  86. package/dist/personas.d.ts.map +1 -0
  87. package/dist/personas.js +137 -0
  88. package/dist/personas.js.map +1 -0
  89. package/dist/project-tool-registry.d.ts +16 -0
  90. package/dist/project-tool-registry.d.ts.map +1 -0
  91. package/dist/project-tool-registry.js +86 -0
  92. package/dist/project-tool-registry.js.map +1 -0
  93. package/dist/projects.d.ts +88 -0
  94. package/dist/projects.d.ts.map +1 -0
  95. package/dist/projects.js +243 -0
  96. package/dist/projects.js.map +1 -0
  97. package/dist/prompt-context.d.ts +13 -0
  98. package/dist/prompt-context.d.ts.map +1 -0
  99. package/dist/prompt-context.js +170 -0
  100. package/dist/prompt-context.js.map +1 -0
  101. package/dist/proposed-plan.d.ts +24 -0
  102. package/dist/proposed-plan.d.ts.map +1 -0
  103. package/dist/proposed-plan.js +74 -0
  104. package/dist/proposed-plan.js.map +1 -0
  105. package/dist/providers.d.ts +53 -0
  106. package/dist/providers.d.ts.map +1 -0
  107. package/dist/providers.js +31 -0
  108. package/dist/providers.js.map +1 -0
  109. package/dist/question-requests.d.ts +39 -0
  110. package/dist/question-requests.d.ts.map +1 -0
  111. package/dist/question-requests.js +135 -0
  112. package/dist/question-requests.js.map +1 -0
  113. package/dist/renderer-api.d.ts +52 -0
  114. package/dist/renderer-api.d.ts.map +1 -0
  115. package/dist/renderer-api.js +2 -0
  116. package/dist/renderer-api.js.map +1 -0
  117. package/dist/runtime-tool-execution.d.ts +22 -0
  118. package/dist/runtime-tool-execution.d.ts.map +1 -0
  119. package/dist/runtime-tool-execution.js +245 -0
  120. package/dist/runtime-tool-execution.js.map +1 -0
  121. package/dist/runtime.d.ts +154 -0
  122. package/dist/runtime.d.ts.map +1 -0
  123. package/dist/runtime.js +184 -0
  124. package/dist/runtime.js.map +1 -0
  125. package/dist/secrets.d.ts +75 -0
  126. package/dist/secrets.d.ts.map +1 -0
  127. package/dist/secrets.js +255 -0
  128. package/dist/secrets.js.map +1 -0
  129. package/dist/session-actions.d.ts +45 -0
  130. package/dist/session-actions.d.ts.map +1 -0
  131. package/dist/session-actions.js +393 -0
  132. package/dist/session-actions.js.map +1 -0
  133. package/dist/skills.d.ts +43 -0
  134. package/dist/skills.d.ts.map +1 -0
  135. package/dist/skills.js +333 -0
  136. package/dist/skills.js.map +1 -0
  137. package/dist/test/setup.d.ts +2 -0
  138. package/dist/test/setup.d.ts.map +1 -0
  139. package/dist/test/setup.js +17 -0
  140. package/dist/test/setup.js.map +1 -0
  141. package/dist/tool-requests.d.ts +58 -0
  142. package/dist/tool-requests.d.ts.map +1 -0
  143. package/dist/tool-requests.js +122 -0
  144. package/dist/tool-requests.js.map +1 -0
  145. package/dist/tools.d.ts +45 -0
  146. package/dist/tools.d.ts.map +1 -0
  147. package/dist/tools.js +50 -0
  148. package/dist/tools.js.map +1 -0
  149. package/dist/wyrdos-integration.d.ts +32 -0
  150. package/dist/wyrdos-integration.d.ts.map +1 -0
  151. package/dist/wyrdos-integration.js +183 -0
  152. package/dist/wyrdos-integration.js.map +1 -0
  153. package/package.json +51 -0
@@ -0,0 +1,54 @@
1
+ import { type JSONValue, type LanguageModel, type ModelMessage, type StreamTextResult, type ToolSet } from "ai";
2
+ import type { ModelRef, ProviderAdapter, ProviderStreamChunk, SessionMessage } from "./runtime.js";
3
+ import type { ProviderConfig, SecretStore } from "./secrets.js";
4
+ import type { ToolDescriptor } from "./tools.js";
5
+ export interface AiSdkProviderAdapterOptions {
6
+ readonly providerConfig: ProviderConfig;
7
+ readonly secretStore: SecretStore;
8
+ readonly providerOptions?: AiSdkProviderOptions;
9
+ readonly streamText?: AiSdkStreamText;
10
+ readonly createModel?: AiSdkModelFactory;
11
+ }
12
+ export type AiSdkProviderOptions = Record<string, Record<string, JSONValue>>;
13
+ export type AiSdkModelFactory = (input: {
14
+ readonly providerConfig: ProviderConfig;
15
+ readonly modelId: string;
16
+ readonly apiKey: string;
17
+ readonly fetch?: typeof fetch;
18
+ readonly baseURL?: string;
19
+ }) => LanguageModel;
20
+ export type AiSdkStreamText = (input: {
21
+ readonly model: LanguageModel;
22
+ readonly messages: ModelMessage[];
23
+ readonly system?: string;
24
+ readonly tools?: ToolSet;
25
+ readonly abortSignal?: AbortSignal;
26
+ readonly providerOptions?: AiSdkProviderOptions;
27
+ }) => Pick<StreamTextResult<ToolSet, never>, "fullStream">;
28
+ export declare function createAiSdkProviderAdapter(options: AiSdkProviderAdapterOptions): ProviderAdapter;
29
+ export declare class AiSdkProviderAdapter implements ProviderAdapter {
30
+ readonly id: string;
31
+ readonly displayName: string;
32
+ private readonly providerConfig;
33
+ private readonly secretStore;
34
+ private readonly providerOptions;
35
+ private readonly runStreamText;
36
+ private readonly createModel;
37
+ constructor(options: AiSdkProviderAdapterOptions);
38
+ streamMessage(input: {
39
+ readonly messages: readonly SessionMessage[];
40
+ readonly model?: ModelRef;
41
+ readonly tools?: readonly ToolDescriptor[];
42
+ readonly signal?: AbortSignal;
43
+ }): AsyncIterable<ProviderStreamChunk>;
44
+ private resolveAuth;
45
+ }
46
+ export declare class AiSdkProviderError extends Error {
47
+ readonly code: string;
48
+ constructor(code: string, message: string, options?: ErrorOptions);
49
+ }
50
+ export declare function normalizeAiSdkProviderError(error: unknown): {
51
+ readonly message: string;
52
+ readonly code: string;
53
+ };
54
+ //# sourceMappingURL=ai-sdk-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-sdk-provider.d.ts","sourceRoot":"","sources":["../src/ai-sdk-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,335 @@
1
+ import { createOpenAI } from "@ai-sdk/openai";
2
+ import { ensureFreshOpenAiOAuthCredential, } from "./openai-oauth.js";
3
+ import { jsonSchema, streamText, } from "ai";
4
+ import { normalizeSessionMessage, sessionMessageText } from "./runtime.js";
5
+ export function createAiSdkProviderAdapter(options) {
6
+ return new AiSdkProviderAdapter(options);
7
+ }
8
+ export class AiSdkProviderAdapter {
9
+ id;
10
+ displayName;
11
+ providerConfig;
12
+ secretStore;
13
+ providerOptions;
14
+ runStreamText;
15
+ createModel;
16
+ constructor(options) {
17
+ this.providerConfig = options.providerConfig;
18
+ this.secretStore = options.secretStore;
19
+ this.providerOptions = options.providerOptions;
20
+ this.runStreamText = options.streamText ?? ((input) => streamText(input));
21
+ this.createModel = options.createModel ?? createDefaultAiSdkModel;
22
+ this.id = `ai-sdk:${options.providerConfig.providerId}`;
23
+ this.displayName = `${options.providerConfig.name} (AI SDK)`;
24
+ }
25
+ async *streamMessage(input) {
26
+ const modelId = resolveModelId(this.providerConfig, input.model);
27
+ const auth = await this.resolveAuth();
28
+ const streamInput = {
29
+ model: this.createModel({
30
+ providerConfig: this.providerConfig,
31
+ modelId,
32
+ apiKey: auth.apiKey,
33
+ ...(auth.fetch ? { fetch: auth.fetch } : {}),
34
+ ...(auth.baseURL ? { baseURL: auth.baseURL } : {}),
35
+ }),
36
+ messages: toAiSdkInputMessages(input.messages),
37
+ };
38
+ const system = toAiSdkSystemPrompt(input.messages);
39
+ const tools = toAiSdkTools(input.tools);
40
+ if (tools) {
41
+ streamInput.tools = tools;
42
+ }
43
+ if (input.signal) {
44
+ streamInput.abortSignal = input.signal;
45
+ }
46
+ const providerOptions = withOpenAiOAuthInstructions(this.providerConfig, this.providerOptions, variantProviderOptions(this.providerConfig, input.model), system);
47
+ if (providerOptions) {
48
+ streamInput.providerOptions = providerOptions;
49
+ }
50
+ if (system && !usesOpenAiOAuth(this.providerConfig)) {
51
+ streamInput.system = system;
52
+ }
53
+ const result = this.runStreamText(streamInput);
54
+ for await (const part of result.fullStream) {
55
+ if (part.type === "finish") {
56
+ const usage = toTokenUsage(part.totalUsage);
57
+ if (usage) {
58
+ yield { type: "usage", usage };
59
+ }
60
+ yield { type: "finish", finishReason: part.finishReason };
61
+ continue;
62
+ }
63
+ const chunk = toProviderStreamChunk(part);
64
+ if (chunk) {
65
+ yield chunk;
66
+ }
67
+ }
68
+ }
69
+ async resolveAuth() {
70
+ if (this.providerConfig.authMethod === "oauth") {
71
+ return {
72
+ apiKey: "actor-oauth-dummy-key",
73
+ baseURL: "https://chatgpt.com/backend-api/codex",
74
+ fetch: createOpenAiOAuthFetch({
75
+ providerConfig: this.providerConfig,
76
+ secretStore: this.secretStore,
77
+ }),
78
+ };
79
+ }
80
+ const apiKey = await this.secretStore.getSecret(this.providerConfig.secretRef.secretId);
81
+ if (!apiKey) {
82
+ throw new AiSdkProviderError("missing_api_key", `Missing API key for provider: ${this.providerConfig.providerId}`);
83
+ }
84
+ return { apiKey };
85
+ }
86
+ }
87
+ export class AiSdkProviderError extends Error {
88
+ code;
89
+ constructor(code, message, options) {
90
+ super(message, options);
91
+ this.name = "AiSdkProviderError";
92
+ this.code = code;
93
+ }
94
+ }
95
+ export function normalizeAiSdkProviderError(error) {
96
+ if (error instanceof AiSdkProviderError) {
97
+ return { message: redactProviderSecrets(error.message), code: error.code };
98
+ }
99
+ if (error instanceof Error) {
100
+ const message = redactProviderSecrets(error.message);
101
+ const status = getErrorStatus(error);
102
+ if (error.name === "AbortError") {
103
+ return { message, code: "provider_cancelled" };
104
+ }
105
+ if (status === 401 || /api key|unauthorized|invalid auth/i.test(message)) {
106
+ return { message, code: "provider_auth_error" };
107
+ }
108
+ if (status === 429 || /rate limit|too many requests/i.test(message)) {
109
+ return { message, code: "provider_rate_limited" };
110
+ }
111
+ if (status && status >= 500) {
112
+ return { message, code: "provider_unavailable" };
113
+ }
114
+ if (/network|fetch failed|econnreset|etimedout/i.test(message)) {
115
+ return { message, code: "provider_network_error" };
116
+ }
117
+ return { message, code: "provider_error" };
118
+ }
119
+ return { message: "Provider error", code: "provider_error" };
120
+ }
121
+ function getErrorStatus(error) {
122
+ const candidate = error;
123
+ const status = candidate.status ?? candidate.statusCode ?? candidate.response?.status;
124
+ return typeof status === "number" ? status : undefined;
125
+ }
126
+ function redactProviderSecrets(message) {
127
+ return message
128
+ .replace(/sk-[A-Za-z0-9_-]{8,}/g, "[REDACTED]")
129
+ .replace(/Bearer\s+[A-Za-z0-9._-]{8,}/gi, "Bearer [REDACTED]");
130
+ }
131
+ function resolveModelId(providerConfig, model) {
132
+ if (providerConfig.authMethod === "oauth" &&
133
+ providerConfig.providerId === "openai") {
134
+ return normalizeOpenAiOAuthModelId(model?.modelId ?? providerConfig.models.defaultModelId);
135
+ }
136
+ if (!model) {
137
+ return providerConfig.models.defaultModelId;
138
+ }
139
+ if (model.providerId !== providerConfig.providerId) {
140
+ throw new AiSdkProviderError("provider_model_mismatch", `Model provider "${model.providerId}" does not match configured provider "${providerConfig.providerId}".`);
141
+ }
142
+ if (!providerConfig.models.availableModelIds.includes(model.modelId)) {
143
+ throw new AiSdkProviderError("unknown_model", `Model "${model.modelId}" is not configured for provider "${providerConfig.providerId}".`);
144
+ }
145
+ return model.modelId;
146
+ }
147
+ function mergeProviderOptions(base, override) {
148
+ if (!base) {
149
+ return override;
150
+ }
151
+ if (!override) {
152
+ return base;
153
+ }
154
+ return Object.fromEntries([...new Set([...Object.keys(base), ...Object.keys(override)])].map((providerId) => [
155
+ providerId,
156
+ {
157
+ ...(base[providerId] ?? {}),
158
+ ...(override[providerId] ?? {}),
159
+ },
160
+ ]));
161
+ }
162
+ function variantProviderOptions(providerConfig, model) {
163
+ if (providerConfig.providerId !== "openai") {
164
+ return undefined;
165
+ }
166
+ if (!model?.variantId || model.variantId === "standard") {
167
+ return undefined;
168
+ }
169
+ if (model.variantId === "low" ||
170
+ model.variantId === "medium" ||
171
+ model.variantId === "high" ||
172
+ model.variantId === "xhigh") {
173
+ return {
174
+ openai: {
175
+ reasoningEffort: model.variantId,
176
+ },
177
+ };
178
+ }
179
+ return undefined;
180
+ }
181
+ function normalizeOpenAiOAuthModelId(modelId) {
182
+ if (modelId === "gpt-5" || modelId === "gpt-5-mini") {
183
+ return "gpt-5.5";
184
+ }
185
+ return modelId;
186
+ }
187
+ function createDefaultAiSdkModel(input) {
188
+ if (input.providerConfig.providerId === "openai") {
189
+ return createOpenAI({
190
+ apiKey: input.apiKey,
191
+ ...(input.fetch ? { fetch: input.fetch } : {}),
192
+ ...(input.baseURL ? { baseURL: input.baseURL } : {}),
193
+ })(input.modelId);
194
+ }
195
+ throw new AiSdkProviderError("unsupported_provider", `AI SDK provider is not implemented yet: ${input.providerConfig.providerId}`);
196
+ }
197
+ function createOpenAiOAuthFetch(options) {
198
+ let refreshPromise;
199
+ return async (input, init) => {
200
+ if (!refreshPromise) {
201
+ refreshPromise = ensureFreshOpenAiOAuthCredential({
202
+ secretStore: options.secretStore,
203
+ secretId: options.providerConfig.secretRef.secretId,
204
+ clientId: "app_EMoamEEZ73f0CkXaXp7hrann",
205
+ fetch,
206
+ }).finally(() => {
207
+ refreshPromise = undefined;
208
+ });
209
+ }
210
+ const credential = await refreshPromise;
211
+ if (!credential) {
212
+ throw new AiSdkProviderError("missing_oauth_credential", `Missing OAuth credential for provider: ${options.providerConfig.providerId}`);
213
+ }
214
+ const headers = new Headers(init?.headers);
215
+ headers.set("authorization", `Bearer ${credential.accessToken}`);
216
+ if (credential.accountId) {
217
+ headers.set("ChatGPT-Account-Id", credential.accountId);
218
+ }
219
+ return fetch(toOpenAiOAuthFetchUrl(input), { ...init, headers });
220
+ };
221
+ }
222
+ function toOpenAiOAuthFetchUrl(input) {
223
+ const url = input instanceof URL
224
+ ? input
225
+ : new URL(typeof input === "string" ? input : input.url);
226
+ if (url.pathname.includes("/responses") ||
227
+ url.pathname.includes("/chat/completions")) {
228
+ return "https://chatgpt.com/backend-api/codex/responses";
229
+ }
230
+ return input;
231
+ }
232
+ function toAiSdkInputMessages(messages) {
233
+ return messages
234
+ .map(normalizeSessionMessage)
235
+ .filter((message) => message.message?.role !== "system")
236
+ .map((message) => message.message);
237
+ }
238
+ function toAiSdkSystemPrompt(messages) {
239
+ const system = messages
240
+ .map(normalizeSessionMessage)
241
+ .filter((message) => message.message?.role === "system")
242
+ .map((message) => sessionMessageText(message).trim())
243
+ .filter(Boolean)
244
+ .join("\n\n");
245
+ return system || undefined;
246
+ }
247
+ function withOpenAiOAuthInstructions(providerConfig, base, override, system) {
248
+ const merged = mergeProviderOptions(base, override);
249
+ if (!usesOpenAiOAuth(providerConfig))
250
+ return merged;
251
+ return mergeProviderOptions(merged, {
252
+ openai: {
253
+ instructions: system ??
254
+ (typeof merged?.openai?.instructions === "string"
255
+ ? merged.openai.instructions
256
+ : "You are Actor, a helpful local coding assistant."),
257
+ },
258
+ });
259
+ }
260
+ function usesOpenAiOAuth(providerConfig) {
261
+ return (providerConfig.providerId === "openai" &&
262
+ providerConfig.authMethod === "oauth");
263
+ }
264
+ function toAiSdkTools(tools) {
265
+ if (!tools || tools.length === 0) {
266
+ return undefined;
267
+ }
268
+ return Object.fromEntries(tools.map((toolDescriptor) => [
269
+ toolDescriptor.id,
270
+ {
271
+ description: toolDescriptor.description,
272
+ inputSchema: jsonSchema(asJsonSchema(toolDescriptor.inputSchema)),
273
+ needsApproval: toolDescriptor.permissionPolicy !== "always",
274
+ },
275
+ ]));
276
+ }
277
+ function asJsonSchema(inputSchema) {
278
+ if (inputSchema && typeof inputSchema === "object") {
279
+ return inputSchema;
280
+ }
281
+ return { type: "object", additionalProperties: true };
282
+ }
283
+ function toProviderStreamChunk(part) {
284
+ if (part.type === "text-delta") {
285
+ return { type: "text", text: part.text };
286
+ }
287
+ if (part.type === "tool-call") {
288
+ return {
289
+ type: "tool_call",
290
+ toolCallId: part.toolCallId,
291
+ toolName: part.toolName,
292
+ input: part.input,
293
+ };
294
+ }
295
+ if (part.type === "error") {
296
+ throw new AiSdkProviderError("provider_error", normalizeAiSdkProviderError(part.error).message, { cause: part.error });
297
+ }
298
+ if (part.type === "finish") {
299
+ return { type: "finish", finishReason: part.finishReason };
300
+ }
301
+ return undefined;
302
+ }
303
+ function toTokenUsage(value) {
304
+ if (!value || typeof value !== "object") {
305
+ return undefined;
306
+ }
307
+ const usage = value;
308
+ const input = finiteNumber(usage.inputTokens);
309
+ const output = finiteNumber(usage.outputTokens);
310
+ const reasoning = finiteNumber(usage.outputTokenDetails?.reasoningTokens);
311
+ const cacheRead = finiteNumber(usage.inputTokenDetails?.cacheReadTokens);
312
+ const cacheWrite = finiteNumber(usage.inputTokenDetails?.cacheWriteTokens);
313
+ const total = optionalFiniteNumber(usage.totalTokens) ??
314
+ input + output + reasoning + cacheRead + cacheWrite;
315
+ if (total <= 0) {
316
+ return undefined;
317
+ }
318
+ return {
319
+ input,
320
+ output,
321
+ reasoning,
322
+ cacheRead,
323
+ cacheWrite,
324
+ total,
325
+ };
326
+ }
327
+ function finiteNumber(value) {
328
+ return typeof value === "number" && Number.isFinite(value) ? value : 0;
329
+ }
330
+ function optionalFiniteNumber(value) {
331
+ return typeof value === "number" && Number.isFinite(value)
332
+ ? value
333
+ : undefined;
334
+ }
335
+ //# sourceMappingURL=ai-sdk-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-sdk-provider.js","sourceRoot":"","sources":["../src/ai-sdk-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import { type ActorDiscoveredSession, type SessionRolloutWriter } from "@useactor/storage";
2
+ import { type ExportSessionTranscriptResult, type SessionActionResult } from "./session-actions.js";
3
+ import { type ProviderConfig, type SecretStore } from "./secrets.js";
4
+ import type { ActorRuntime, CreateSessionInput, ModelRef, ProviderAdapter, RuntimeEvent, SessionContext, SessionRef, SendMessageInput, StartSessionInput, StartSessionResult } from "./runtime.js";
5
+ import type { ToolRegistry } from "./tools.js";
6
+ import type { PermissionGrantStore } from "./permission-grants.js";
7
+ export declare const defaultOpenAiCodexInstructions = "You are Actor, a helpful local coding assistant.";
8
+ export declare const defaultOpenAiCodexModelId = "gpt-5.5";
9
+ export declare const defaultOpenAiCodexModelIds: readonly ["gpt-5.5", "gpt-5.2", "gpt-5.3-codex", "gpt-5.3-codex-spark", "gpt-5.4", "gpt-5.4-mini"];
10
+ export interface ConfiguredProviderSelection {
11
+ readonly providerConfig: ProviderConfig;
12
+ readonly availableProviders: readonly ProviderConfig[];
13
+ readonly model: ModelRef;
14
+ }
15
+ export interface CreateConfiguredProviderRouterOptions {
16
+ readonly env?: NodeJS.ProcessEnv;
17
+ readonly selection: ConfiguredProviderSelection;
18
+ readonly secretStore?: SecretStore;
19
+ }
20
+ export interface CreateConfiguredProviderOptions {
21
+ readonly env?: NodeJS.ProcessEnv;
22
+ readonly secretStore?: SecretStore;
23
+ }
24
+ export interface CreateActorRuntimeOptions {
25
+ readonly env?: NodeJS.ProcessEnv;
26
+ readonly provider: ProviderAdapter;
27
+ readonly permissionGrantStore?: PermissionGrantStore;
28
+ readonly toolRegistry?: ToolRegistry;
29
+ }
30
+ export interface ActorRuntimeSessionManagerOptions {
31
+ readonly env?: NodeJS.ProcessEnv;
32
+ readonly runtime: ActorRuntime;
33
+ readonly origin: "cli" | "electron";
34
+ }
35
+ export declare class ActorRuntimeSessionManager {
36
+ private readonly env;
37
+ private readonly runtime;
38
+ private readonly origin;
39
+ private readonly sessionPersistence;
40
+ constructor(options: ActorRuntimeSessionManagerOptions);
41
+ createSession(input?: CreateSessionInput): Promise<SessionRef>;
42
+ startSession(input: StartSessionInput): Promise<StartSessionResult>;
43
+ ensureSession(sessionId: string): Promise<SessionRef | undefined>;
44
+ sendMessage(input: SendMessageInput): Promise<{
45
+ readonly runId: string;
46
+ }>;
47
+ forgetSession(sessionId: string): void;
48
+ renameSession(input: {
49
+ readonly sessionId: string;
50
+ readonly title: string;
51
+ }): Promise<void>;
52
+ forkSession(sessionId: string): Promise<SessionActionResult>;
53
+ compactSession(sessionId: string): Promise<SessionActionResult>;
54
+ copyLastAgentMessage(sessionId: string): Promise<string>;
55
+ copySessionTranscript(sessionId: string): Promise<string>;
56
+ exportSessionTranscript(input: {
57
+ readonly sessionId: string;
58
+ readonly cwd: string;
59
+ }): Promise<ExportSessionTranscriptResult>;
60
+ private ensureSessionPersistence;
61
+ private ensureSessionRolloutWriter;
62
+ private updateSessionTitleFromFirstMessage;
63
+ }
64
+ export declare function createSessionTitleFromUserMessage(content: string): string;
65
+ export declare function selectConfiguredProvider(env?: NodeJS.ProcessEnv, modelOverride?: ModelRef): Promise<ConfiguredProviderSelection>;
66
+ export declare function createConfiguredProviderRouter(options: CreateConfiguredProviderRouterOptions): ProviderAdapter;
67
+ export declare function createConfiguredProvider(options?: CreateConfiguredProviderOptions): ProviderAdapter;
68
+ export declare function createActorRuntime(options: CreateActorRuntimeOptions): Promise<ActorRuntime>;
69
+ export declare function persistRuntimeEvent(options: {
70
+ readonly env?: NodeJS.ProcessEnv;
71
+ readonly event: RuntimeEvent;
72
+ readonly origin: "cli" | "electron";
73
+ readonly rolloutWriter: SessionRolloutWriter;
74
+ } & SessionContext): Promise<void>;
75
+ export declare function readPersistedSessionEvents(env: NodeJS.ProcessEnv, sessionId: string): Promise<readonly RuntimeEvent[]>;
76
+ export declare function updatePersistedSessionTitle(options: {
77
+ readonly env?: NodeJS.ProcessEnv;
78
+ readonly sessionId: string;
79
+ readonly title: string;
80
+ }): Promise<void>;
81
+ export declare function normalizeProviderForRuntime(providerConfig: ProviderConfig): ProviderConfig;
82
+ export type { ActorDiscoveredSession };
83
+ //# sourceMappingURL=app-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-runtime.d.ts","sourceRoot":"","sources":["../src/app-runtime.ts"],"names":[],"mappings":"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"}