@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,504 @@
1
+ import { appendActorSessionIndexEntry, createSessionRolloutWriter, ensureActorHomeLayout, readActorConfig, } from "@useactor/storage";
2
+ import { appendFile, readFile } from "node:fs/promises";
3
+ import { appendHistoryFromRuntimeEvent, appendSessionIndexFromSession, appendSessionSummaryFromRuntimeEvent, discoverSessionRolloutPath, discoverSessions, } from "./history.js";
4
+ import { compactSession, exportSessionTranscript, forkSession, formatSessionTranscript, getLastAgentMessage, renameSession, } from "./session-actions.js";
5
+ import { createInMemoryRuntime } from "./in-memory-runtime.js";
6
+ import { createAiSdkProviderAdapter, } from "./ai-sdk-provider.js";
7
+ import { createFilePermissionGrantStore } from "./permission-grant-store.js";
8
+ import { createProjectToolRegistry } from "./project-tool-registry.js";
9
+ import { getCatalogContextWindows } from "./model-catalog.js";
10
+ import { createSystemKeychainSecretStore, listProviderConfigs, } from "./secrets.js";
11
+ import { persistLocalRuntimeEvent } from "./local-event-logger.js";
12
+ export const defaultOpenAiCodexInstructions = "You are Actor, a helpful local coding assistant.";
13
+ export const defaultOpenAiCodexModelId = "gpt-5.5";
14
+ export const defaultOpenAiCodexModelIds = [
15
+ "gpt-5.5",
16
+ "gpt-5.2",
17
+ "gpt-5.3-codex",
18
+ "gpt-5.3-codex-spark",
19
+ "gpt-5.4",
20
+ "gpt-5.4-mini",
21
+ ];
22
+ export class ActorRuntimeSessionManager {
23
+ env;
24
+ runtime;
25
+ origin;
26
+ sessionPersistence = new Map();
27
+ constructor(options) {
28
+ this.env = options.env ?? process.env;
29
+ this.runtime = options.runtime;
30
+ this.origin = options.origin;
31
+ this.runtime.subscribeEvents((event) => {
32
+ const persisted = this.sessionPersistence.get(event.sessionId);
33
+ if (!persisted?.rolloutWriter)
34
+ return;
35
+ void persistRuntimeEvent({
36
+ env: this.env,
37
+ event,
38
+ origin: this.origin,
39
+ rolloutWriter: persisted.rolloutWriter,
40
+ ...persisted.session,
41
+ });
42
+ });
43
+ }
44
+ async createSession(input) {
45
+ await ensureActorHomeLayout({ env: this.env });
46
+ const session = await this.runtime.createSession(input);
47
+ this.sessionPersistence.set(session.id, { session });
48
+ return session;
49
+ }
50
+ async startSession(input) {
51
+ const content = input.content.trim();
52
+ if (!content) {
53
+ throw new Error("Cannot start a session with an empty message.");
54
+ }
55
+ const session = await this.createSession({
56
+ title: createSessionTitleFromUserMessage(content),
57
+ ...(input.project ? { project: input.project } : {}),
58
+ ...(input.persona ? { persona: input.persona } : {}),
59
+ ...(input.model ? { model: input.model } : {}),
60
+ });
61
+ const rolloutWriter = await this.ensureSessionRolloutWriter(session);
62
+ const { runId } = await this.runtime.sendMessage({
63
+ sessionId: session.id,
64
+ content,
65
+ ...(input.project ? { project: input.project } : {}),
66
+ ...(input.persona ? { persona: input.persona } : {}),
67
+ ...(input.model ? { model: input.model } : {}),
68
+ });
69
+ await appendSessionIndexFromSession({
70
+ env: this.env,
71
+ session,
72
+ rolloutPath: rolloutWriter.filePath,
73
+ ...(session.project || session.persona || session.model
74
+ ? {
75
+ sessionContext: {
76
+ ...(session.project ? { project: session.project } : {}),
77
+ ...(session.persona ? { persona: session.persona } : {}),
78
+ ...(session.model ? { model: session.model } : {}),
79
+ },
80
+ }
81
+ : {}),
82
+ });
83
+ void this.updateSessionTitleFromFirstMessage({ session, input });
84
+ return { session, runId };
85
+ }
86
+ async ensureSession(sessionId) {
87
+ const persisted = this.sessionPersistence.get(sessionId);
88
+ if (persisted)
89
+ return persisted.session;
90
+ const existingRuntimeSession = await this.runtime.getSession(sessionId);
91
+ if (existingRuntimeSession) {
92
+ this.sessionPersistence.set(sessionId, {
93
+ session: existingRuntimeSession,
94
+ });
95
+ return existingRuntimeSession;
96
+ }
97
+ const sessions = await discoverSessions({ env: this.env });
98
+ const persistedSession = sessions.entries.find((entry) => entry.sessionId === sessionId);
99
+ if (!persistedSession)
100
+ return undefined;
101
+ const session = await this.runtime.createSession({
102
+ id: persistedSession.sessionId,
103
+ ...(persistedSession.title ? { title: persistedSession.title } : {}),
104
+ ...(persistedSession.project
105
+ ? { project: persistedSession.project }
106
+ : {}),
107
+ ...(persistedSession.persona
108
+ ? { persona: persistedSession.persona }
109
+ : {}),
110
+ ...(persistedSession.model ? { model: persistedSession.model } : {}),
111
+ });
112
+ this.sessionPersistence.set(session.id, {
113
+ session,
114
+ rolloutWriter: createRolloutWriterFromPath(persistedSession.rolloutPath),
115
+ });
116
+ return session;
117
+ }
118
+ async sendMessage(input) {
119
+ const session = await this.ensureSession(input.sessionId);
120
+ if (session) {
121
+ await this.ensureSessionPersistence(session);
122
+ }
123
+ return this.runtime.sendMessage(input);
124
+ }
125
+ forgetSession(sessionId) {
126
+ this.sessionPersistence.delete(sessionId);
127
+ }
128
+ async renameSession(input) {
129
+ await renameSession({
130
+ env: this.env,
131
+ sessionId: input.sessionId,
132
+ title: input.title,
133
+ });
134
+ const persisted = this.sessionPersistence.get(input.sessionId);
135
+ if (persisted) {
136
+ this.sessionPersistence.set(input.sessionId, {
137
+ ...persisted,
138
+ session: { ...persisted.session, title: input.title.trim() },
139
+ });
140
+ }
141
+ }
142
+ async forkSession(sessionId) {
143
+ const result = await forkSession({
144
+ env: this.env,
145
+ runtime: this.runtime,
146
+ sessionId,
147
+ });
148
+ this.sessionPersistence.set(result.session.id, {
149
+ session: result.session,
150
+ rolloutWriter: createRolloutWriterFromPath(result.rolloutPath),
151
+ });
152
+ return result;
153
+ }
154
+ async compactSession(sessionId) {
155
+ const result = await compactSession({
156
+ env: this.env,
157
+ runtime: this.runtime,
158
+ sessionId,
159
+ });
160
+ this.sessionPersistence.set(result.session.id, {
161
+ session: result.session,
162
+ rolloutWriter: createRolloutWriterFromPath(result.rolloutPath),
163
+ });
164
+ return result;
165
+ }
166
+ copyLastAgentMessage(sessionId) {
167
+ return getLastAgentMessage({ env: this.env, sessionId });
168
+ }
169
+ copySessionTranscript(sessionId) {
170
+ return formatSessionTranscript({ env: this.env, sessionId });
171
+ }
172
+ exportSessionTranscript(input) {
173
+ return exportSessionTranscript({
174
+ env: this.env,
175
+ sessionId: input.sessionId,
176
+ cwd: input.cwd,
177
+ });
178
+ }
179
+ async ensureSessionPersistence(session) {
180
+ const persisted = this.sessionPersistence.get(session.id);
181
+ if (persisted?.rolloutWriter) {
182
+ return persisted.rolloutWriter;
183
+ }
184
+ const rolloutWriter = await this.ensureSessionRolloutWriter(session);
185
+ await appendSessionIndexFromSession({
186
+ env: this.env,
187
+ session,
188
+ rolloutPath: rolloutWriter.filePath,
189
+ ...(session.project || session.persona || session.model
190
+ ? {
191
+ sessionContext: {
192
+ ...(session.project ? { project: session.project } : {}),
193
+ ...(session.persona ? { persona: session.persona } : {}),
194
+ ...(session.model ? { model: session.model } : {}),
195
+ },
196
+ }
197
+ : {}),
198
+ });
199
+ return rolloutWriter;
200
+ }
201
+ async ensureSessionRolloutWriter(session) {
202
+ const persisted = this.sessionPersistence.get(session.id);
203
+ if (persisted?.rolloutWriter) {
204
+ return persisted.rolloutWriter;
205
+ }
206
+ const rolloutWriter = await createSessionRolloutWriter({
207
+ env: this.env,
208
+ runId: session.id,
209
+ });
210
+ this.sessionPersistence.set(session.id, { session, rolloutWriter });
211
+ return rolloutWriter;
212
+ }
213
+ async updateSessionTitleFromFirstMessage(options) {
214
+ try {
215
+ const suggested = sanitizeSessionTitle(await this.runtime.suggestSessionTitle(options.input));
216
+ if (!suggested || suggested === options.session.title)
217
+ return;
218
+ await updatePersistedSessionTitle({
219
+ env: this.env,
220
+ sessionId: options.session.id,
221
+ title: suggested,
222
+ });
223
+ const persisted = this.sessionPersistence.get(options.session.id);
224
+ if (!persisted)
225
+ return;
226
+ this.sessionPersistence.set(options.session.id, {
227
+ ...persisted,
228
+ session: { ...persisted.session, title: suggested },
229
+ });
230
+ }
231
+ catch {
232
+ return;
233
+ }
234
+ }
235
+ }
236
+ export function createSessionTitleFromUserMessage(content) {
237
+ return sanitizeSessionTitle(content) ?? "New chat";
238
+ }
239
+ function sanitizeSessionTitle(title) {
240
+ const collapsed = title
241
+ ?.replace(/[`"']+/g, "")
242
+ .replace(/\s+/g, " ")
243
+ .trim()
244
+ .replace(/[.!?]+$/g, "")
245
+ .trim();
246
+ if (!collapsed)
247
+ return undefined;
248
+ if (collapsed.length <= 60)
249
+ return collapsed;
250
+ const clipped = collapsed.slice(0, 60).trimEnd();
251
+ const lastSpace = clipped.lastIndexOf(" ");
252
+ if (lastSpace >= 24)
253
+ return clipped.slice(0, lastSpace);
254
+ return clipped;
255
+ }
256
+ export async function selectConfiguredProvider(env = process.env, modelOverride) {
257
+ const [config, providerConfigs] = await Promise.all([
258
+ readActorConfig({ env }),
259
+ listProviderConfigs({ env }),
260
+ ]);
261
+ const runtimeProviderConfigs = providerConfigs.map(normalizeProviderForRuntime);
262
+ if (runtimeProviderConfigs.length === 0) {
263
+ throw new Error("No provider is configured. Add a provider config before sending messages.");
264
+ }
265
+ const defaultModel = getDefaultModel(config);
266
+ const providerId = modelOverride?.providerId || defaultModel?.providerId;
267
+ const providerConfig = providerId
268
+ ? runtimeProviderConfigs.find((provider) => provider.providerId === providerId)
269
+ : runtimeProviderConfigs[0];
270
+ if (!providerConfig) {
271
+ throw new Error(`Configured provider not found: ${providerId ?? ""}`);
272
+ }
273
+ const modelId = resolveConfiguredModelId({
274
+ providerConfig,
275
+ ...(modelOverride ? { modelOverride } : {}),
276
+ ...(defaultModel ? { defaultModel } : {}),
277
+ });
278
+ if (!providerConfig.models.availableModelIds.includes(modelId)) {
279
+ throw new Error(`Configured model "${modelId}" is not available for provider "${providerConfig.providerId}".`);
280
+ }
281
+ return {
282
+ providerConfig,
283
+ availableProviders: runtimeProviderConfigs,
284
+ model: {
285
+ providerId: providerConfig.providerId,
286
+ modelId,
287
+ },
288
+ };
289
+ }
290
+ export function createConfiguredProviderRouter(options) {
291
+ const env = options.env ?? process.env;
292
+ const secretStore = options.secretStore ?? createSystemKeychainSecretStore();
293
+ return {
294
+ id: "configured-provider-router",
295
+ displayName: options.selection.availableProviders.length === 1
296
+ ? `${options.selection.providerConfig.name} (AI SDK)`
297
+ : "Configured Providers",
298
+ async *streamMessage(input) {
299
+ const providerId = input.model?.providerId ?? options.selection.providerConfig.providerId;
300
+ const providerConfig = (await listProviderConfigs({ env }))
301
+ .map(normalizeProviderForRuntime)
302
+ .find((provider) => provider.providerId === providerId);
303
+ if (!providerConfig) {
304
+ throw new Error(`Configured provider not found: ${providerId}`);
305
+ }
306
+ const providerOptions = openAiOAuthProviderOptions(providerConfig);
307
+ const adapter = createAiSdkProviderAdapter({
308
+ providerConfig,
309
+ secretStore,
310
+ ...(providerOptions ? { providerOptions } : {}),
311
+ });
312
+ yield* adapter.streamMessage(input);
313
+ },
314
+ };
315
+ }
316
+ export function createConfiguredProvider(options = {}) {
317
+ const env = options.env ?? process.env;
318
+ const secretStore = options.secretStore ?? createSystemKeychainSecretStore();
319
+ return {
320
+ id: "configured-provider-router",
321
+ displayName: "Configured provider",
322
+ async *streamMessage(input) {
323
+ const selection = await selectConfiguredProvider(env, input.model);
324
+ const provider = createConfiguredProviderRouter({
325
+ env,
326
+ secretStore,
327
+ selection,
328
+ });
329
+ yield* provider.streamMessage({
330
+ ...input,
331
+ model: selection.model,
332
+ });
333
+ },
334
+ };
335
+ }
336
+ export async function createActorRuntime(options) {
337
+ const env = options.env ?? process.env;
338
+ return createInMemoryRuntime({
339
+ env,
340
+ provider: options.provider,
341
+ permissionGrantStore: options.permissionGrantStore ?? createFilePermissionGrantStore({ env }),
342
+ toolRegistry: options.toolRegistry ??
343
+ (await createProjectToolRegistry({
344
+ env,
345
+ includeDynamicLocalTools: true,
346
+ })),
347
+ });
348
+ }
349
+ export async function persistRuntimeEvent(options) {
350
+ const env = options.env ?? process.env;
351
+ await options.rolloutWriter.appendEvent({ ...options.event });
352
+ await persistLocalRuntimeEvent({
353
+ env,
354
+ event: options.event,
355
+ context: {
356
+ origin: options.origin,
357
+ ...(options.project ? { project: options.project } : {}),
358
+ ...(options.persona ? { persona: options.persona } : {}),
359
+ ...(options.model ? { model: options.model } : {}),
360
+ },
361
+ });
362
+ await appendSessionSummaryFromRuntimeEvent({
363
+ env,
364
+ event: options.event,
365
+ rolloutPath: options.rolloutWriter.filePath,
366
+ });
367
+ await appendHistoryFromRuntimeEvent({
368
+ env,
369
+ event: options.event,
370
+ ...(options.model || options.project || options.persona
371
+ ? {
372
+ messageContext: {
373
+ ...(options.model ? { model: options.model } : {}),
374
+ ...(options.project ? { project: options.project } : {}),
375
+ ...(options.persona ? { persona: options.persona } : {}),
376
+ },
377
+ }
378
+ : {}),
379
+ });
380
+ }
381
+ export async function readPersistedSessionEvents(env, sessionId) {
382
+ const rolloutPath = await discoverSessionRolloutPath({ env, sessionId });
383
+ if (!rolloutPath)
384
+ return [];
385
+ let file = "";
386
+ try {
387
+ file = await readFile(rolloutPath, "utf8");
388
+ }
389
+ catch {
390
+ return [];
391
+ }
392
+ const events = [];
393
+ for (const line of file.split("\n")) {
394
+ if (!line.trim())
395
+ continue;
396
+ try {
397
+ const parsed = JSON.parse(line);
398
+ if (parsed.sessionId === sessionId)
399
+ events.push(parsed);
400
+ }
401
+ catch {
402
+ continue;
403
+ }
404
+ }
405
+ return events;
406
+ }
407
+ export async function updatePersistedSessionTitle(options) {
408
+ const env = options.env ?? process.env;
409
+ const sessions = await discoverSessions({ env });
410
+ const session = sessions.entries.find((entry) => entry.sessionId === options.sessionId);
411
+ if (!session) {
412
+ throw new Error(`Session not found: ${options.sessionId}`);
413
+ }
414
+ const now = new Date().toISOString();
415
+ await appendActorSessionIndexEntry({
416
+ env,
417
+ entry: {
418
+ sessionId: options.sessionId,
419
+ title: options.title.trim(),
420
+ createdAt: session.createdAt ?? now,
421
+ updatedAt: now,
422
+ rolloutPath: session.rolloutPath,
423
+ ...(session.project ? { project: session.project } : {}),
424
+ ...(session.persona ? { persona: session.persona } : {}),
425
+ ...(session.model ? { model: session.model } : {}),
426
+ ...(session.summary ? { summary: session.summary } : {}),
427
+ },
428
+ });
429
+ }
430
+ export function normalizeProviderForRuntime(providerConfig) {
431
+ if (providerConfig.providerId !== "openai" ||
432
+ providerConfig.authMethod !== "oauth") {
433
+ return providerConfig;
434
+ }
435
+ const configuredModels = providerConfig.models.availableModelIds.filter(isOpenAiCodexOAuthModelId);
436
+ const availableModelIds = configuredModels.length > 0
437
+ ? configuredModels
438
+ : [...defaultOpenAiCodexModelIds];
439
+ const defaultModelId = isOpenAiCodexOAuthModelId(providerConfig.models.defaultModelId)
440
+ ? providerConfig.models.defaultModelId
441
+ : defaultOpenAiCodexModelId;
442
+ return {
443
+ ...providerConfig,
444
+ models: {
445
+ ...providerConfig.models,
446
+ defaultModelId: availableModelIds.includes(defaultModelId)
447
+ ? defaultModelId
448
+ : availableModelIds[0],
449
+ availableModelIds,
450
+ contextWindowByModelId: {
451
+ ...getCatalogContextWindows({
452
+ providerId: providerConfig.providerId,
453
+ modelIds: availableModelIds,
454
+ }),
455
+ ...(providerConfig.models.contextWindowByModelId ?? {}),
456
+ },
457
+ },
458
+ };
459
+ }
460
+ function openAiOAuthProviderOptions(providerConfig) {
461
+ if (providerConfig.providerId !== "openai" ||
462
+ providerConfig.authMethod !== "oauth") {
463
+ return undefined;
464
+ }
465
+ return {
466
+ openai: {
467
+ store: false,
468
+ instructions: defaultOpenAiCodexInstructions,
469
+ },
470
+ };
471
+ }
472
+ function resolveConfiguredModelId(input) {
473
+ if (input.modelOverride)
474
+ return input.modelOverride.modelId;
475
+ if (input.defaultModel?.providerId === input.providerConfig.providerId &&
476
+ input.providerConfig.models.availableModelIds.includes(input.defaultModel.modelId)) {
477
+ return input.defaultModel.modelId;
478
+ }
479
+ return input.providerConfig.models.defaultModelId;
480
+ }
481
+ function isOpenAiCodexOAuthModelId(modelId) {
482
+ if (defaultOpenAiCodexModelIds.includes(modelId)) {
483
+ return true;
484
+ }
485
+ const match = modelId.match(/^gpt-(\d+\.\d+)/);
486
+ return match ? Number.parseFloat(match[1]) > 5.4 : false;
487
+ }
488
+ function getDefaultModel(config) {
489
+ if (!config.defaults?.model)
490
+ return undefined;
491
+ return {
492
+ providerId: config.defaults.model.providerId,
493
+ modelId: config.defaults.model.modelId,
494
+ };
495
+ }
496
+ function createRolloutWriterFromPath(filePath) {
497
+ return {
498
+ filePath,
499
+ async appendEvent(event) {
500
+ await appendFile(filePath, `${JSON.stringify(event)}\n`, "utf8");
501
+ },
502
+ };
503
+ }
504
+ //# sourceMappingURL=app-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-runtime.js","sourceRoot":"","sources":["../src/app-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { ArtifactEvent, EventContext } from "./events.js";
2
+ import type { ActorId } from "./runtime.js";
3
+ export type ArtifactKind = "local_file" | "app_update";
4
+ export interface LocalFileArtifactRef {
5
+ readonly kind: "local_file";
6
+ readonly path: string;
7
+ }
8
+ export interface AppUpdateArtifactRef {
9
+ readonly kind: "app_update";
10
+ readonly appId: ActorId;
11
+ readonly resourceId?: string;
12
+ }
13
+ export type ArtifactRef = LocalFileArtifactRef | AppUpdateArtifactRef;
14
+ export interface ArtifactMetadata {
15
+ readonly id: ActorId;
16
+ readonly sessionId: ActorId;
17
+ readonly runId: ActorId;
18
+ readonly kind: ArtifactKind;
19
+ readonly name: string;
20
+ readonly createdAt: string;
21
+ readonly ref: ArtifactRef;
22
+ readonly mediaType?: string;
23
+ readonly description?: string;
24
+ readonly metadata?: Record<string, string | number | boolean | null>;
25
+ }
26
+ export interface CreateArtifactInput {
27
+ readonly sessionId: ActorId;
28
+ readonly runId: ActorId;
29
+ readonly name: string;
30
+ readonly ref: ArtifactRef;
31
+ readonly mediaType?: string;
32
+ readonly description?: string;
33
+ readonly metadata?: Record<string, string | number | boolean | null>;
34
+ }
35
+ export interface ListArtifactsOptions {
36
+ readonly sessionId?: ActorId;
37
+ readonly runId?: ActorId;
38
+ }
39
+ export interface ArtifactStore {
40
+ createArtifact(input: CreateArtifactInput): Promise<ArtifactMetadata>;
41
+ listArtifacts(options?: ListArtifactsOptions): Promise<readonly ArtifactMetadata[]>;
42
+ listArtifactsForSession(sessionId: ActorId): Promise<readonly ArtifactMetadata[]>;
43
+ }
44
+ export declare function createInMemoryArtifactStore(options?: {
45
+ readonly now?: () => Date;
46
+ readonly createId?: () => ActorId;
47
+ }): ArtifactStore;
48
+ export declare function createArtifactEventFromMetadata(context: EventContext, artifact: ArtifactMetadata): ArtifactEvent;
49
+ //# sourceMappingURL=artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;AAEvD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,WAAW,GAAG,oBAAoB,GAAG,oBAAoB,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;CACtE;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;CACtE;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtE,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAAC;IACpF,uBAAuB,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAAC;CACnF;AAED,wBAAgB,2BAA2B,CACzC,OAAO,GAAE;IACP,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC;CAC9B,GACL,aAAa,CA2Cf;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,gBAAgB,GACzB,aAAa,CAUf"}
@@ -0,0 +1,50 @@
1
+ import { createArtifactEvent } from "./events.js";
2
+ export function createInMemoryArtifactStore(options = {}) {
3
+ const now = options.now ?? (() => new Date());
4
+ const createId = options.createId ?? (() => `artifact_${crypto.randomUUID()}`);
5
+ const artifacts = new Map();
6
+ return {
7
+ async createArtifact(input) {
8
+ const artifact = {
9
+ id: createId(),
10
+ sessionId: input.sessionId,
11
+ runId: input.runId,
12
+ kind: input.ref.kind,
13
+ name: input.name,
14
+ createdAt: now().toISOString(),
15
+ ref: input.ref,
16
+ ...(input.mediaType ? { mediaType: input.mediaType } : {}),
17
+ ...(input.description ? { description: input.description } : {}),
18
+ ...(input.metadata ? { metadata: input.metadata } : {})
19
+ };
20
+ artifacts.set(artifact.id, artifact);
21
+ return artifact;
22
+ },
23
+ async listArtifacts(options = {}) {
24
+ return [...artifacts.values()].filter((artifact) => {
25
+ if (options.sessionId && artifact.sessionId !== options.sessionId) {
26
+ return false;
27
+ }
28
+ if (options.runId && artifact.runId !== options.runId) {
29
+ return false;
30
+ }
31
+ return true;
32
+ });
33
+ },
34
+ async listArtifactsForSession(sessionId) {
35
+ return this.listArtifacts({ sessionId });
36
+ }
37
+ };
38
+ }
39
+ export function createArtifactEventFromMetadata(context, artifact) {
40
+ return createArtifactEvent(context, {
41
+ artifactId: artifact.id,
42
+ kind: artifact.kind,
43
+ name: artifact.name,
44
+ ref: artifact.ref,
45
+ ...(artifact.mediaType ? { mediaType: artifact.mediaType } : {}),
46
+ ...(artifact.description ? { description: artifact.description } : {}),
47
+ ...(artifact.metadata ? { metadata: artifact.metadata } : {})
48
+ });
49
+ }
50
+ //# sourceMappingURL=artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { type ActorPathResolverOptions } from "@useactor/storage";
2
+ import type { IntegrationRegistration } from "./integrations.js";
3
+ import type { ToolPermissionPolicy } from "./tools.js";
4
+ export interface CliDefinedToolConfig {
5
+ readonly id: string;
6
+ readonly name: string;
7
+ readonly description: string;
8
+ readonly command: string;
9
+ readonly args?: readonly string[];
10
+ readonly inputSchema?: unknown;
11
+ readonly permissionPolicy: ToolPermissionPolicy;
12
+ }
13
+ export declare function saveCliDefinedToolConfig(config: CliDefinedToolConfig, options?: ActorPathResolverOptions): Promise<void>;
14
+ export declare function listCliDefinedToolConfigs(options?: ActorPathResolverOptions): Promise<readonly CliDefinedToolConfig[]>;
15
+ export declare function deleteCliDefinedToolConfig(toolId: string, options?: ActorPathResolverOptions): Promise<boolean>;
16
+ export declare function createCliDefinedIntegration(config: CliDefinedToolConfig): IntegrationRegistration;
17
+ //# sourceMappingURL=cli-defined-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-defined-tools.d.ts","sourceRoot":"","sources":["../src/cli-defined-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAGtG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAkB,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAIvE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;CACjD;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,oBAAoB,EAC5B,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,SAAS,oBAAoB,EAAE,CAAC,CAK1C;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,OAAO,CAAC,CAqBlB;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,oBAAoB,GAAG,uBAAuB,CAkDjG"}