@agent-native/core 0.4.2 → 0.4.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.
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +9 -3
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/types.d.ts +2 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/application-state/emitter.d.ts +10 -0
- package/dist/application-state/emitter.d.ts.map +1 -0
- package/dist/application-state/emitter.js +18 -0
- package/dist/application-state/emitter.js.map +1 -0
- package/dist/application-state/handlers.d.ts +20 -0
- package/dist/application-state/handlers.d.ts.map +1 -0
- package/dist/application-state/handlers.js +94 -0
- package/dist/application-state/handlers.js.map +1 -0
- package/dist/application-state/index.d.ts +5 -0
- package/dist/application-state/index.d.ts.map +1 -0
- package/dist/application-state/index.js +9 -0
- package/dist/application-state/index.js.map +1 -0
- package/dist/application-state/script-helpers.d.ts +17 -0
- package/dist/application-state/script-helpers.d.ts.map +1 -0
- package/dist/application-state/script-helpers.js +28 -0
- package/dist/application-state/script-helpers.js.map +1 -0
- package/dist/application-state/store.d.ts +9 -0
- package/dist/application-state/store.d.ts.map +1 -0
- package/dist/application-state/store.js +93 -0
- package/dist/application-state/store.js.map +1 -0
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +38 -24
- package/dist/cli/create.js.map +1 -1
- package/dist/client/AgentPanel.d.ts +53 -0
- package/dist/client/AgentPanel.d.ts.map +1 -0
- package/dist/client/AgentPanel.js +70 -0
- package/dist/client/AgentPanel.js.map +1 -0
- package/dist/client/AssistantChat.d.ts +27 -0
- package/dist/client/AssistantChat.d.ts.map +1 -0
- package/dist/client/AssistantChat.js +165 -0
- package/dist/client/AssistantChat.js.map +1 -0
- package/dist/client/ErrorBoundary.d.ts +4 -0
- package/dist/client/ErrorBoundary.d.ts.map +1 -0
- package/dist/client/ErrorBoundary.js +22 -0
- package/dist/client/ErrorBoundary.js.map +1 -0
- package/dist/client/MultiTabAssistantChat.d.ts +4 -0
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -0
- package/dist/client/MultiTabAssistantChat.js +125 -0
- package/dist/client/MultiTabAssistantChat.js.map +1 -0
- package/dist/client/ProductionAgentPanel.d.ts +3 -7
- package/dist/client/ProductionAgentPanel.d.ts.map +1 -1
- package/dist/client/ProductionAgentPanel.js +3 -118
- package/dist/client/ProductionAgentPanel.js.map +1 -1
- package/dist/client/agent-chat-adapter.d.ts +10 -0
- package/dist/client/agent-chat-adapter.d.ts.map +1 -0
- package/dist/client/agent-chat-adapter.js +235 -0
- package/dist/client/agent-chat-adapter.js.map +1 -0
- package/dist/client/agent-chat.d.ts +9 -1
- package/dist/client/agent-chat.d.ts.map +1 -1
- package/dist/client/agent-chat.js +11 -1
- package/dist/client/agent-chat.js.map +1 -1
- package/dist/client/index.d.ts +8 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +9 -2
- package/dist/client/index.js.map +1 -1
- package/dist/client/terminal/AgentTerminal.d.ts +35 -0
- package/dist/client/terminal/AgentTerminal.d.ts.map +1 -0
- package/dist/client/terminal/AgentTerminal.js +346 -0
- package/dist/client/terminal/AgentTerminal.js.map +1 -0
- package/dist/client/terminal/index.d.ts +7 -0
- package/dist/client/terminal/index.d.ts.map +1 -0
- package/dist/client/terminal/index.js +7 -0
- package/dist/client/terminal/index.js.map +1 -0
- package/dist/client/use-agent-chat.d.ts +1 -1
- package/dist/client/use-agent-chat.d.ts.map +1 -1
- package/dist/client/use-agent-chat.js +1 -1
- package/dist/client/use-agent-chat.js.map +1 -1
- package/dist/client/useProductionAgent.d.ts +6 -1
- package/dist/client/useProductionAgent.d.ts.map +1 -1
- package/dist/client/useProductionAgent.js +4 -2
- package/dist/client/useProductionAgent.js.map +1 -1
- package/dist/db/create-get-db.d.ts +3 -0
- package/dist/db/create-get-db.d.ts.map +1 -0
- package/dist/db/create-get-db.js +18 -0
- package/dist/db/create-get-db.js.map +1 -0
- package/dist/db/index.d.ts +2 -0
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +2 -0
- package/dist/db/index.js.map +1 -1
- package/dist/db/migrations.d.ts +7 -0
- package/dist/db/migrations.d.ts.map +1 -0
- package/dist/db/migrations.js +35 -0
- package/dist/db/migrations.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/oauth-tokens/index.d.ts +2 -0
- package/dist/oauth-tokens/index.d.ts.map +1 -0
- package/dist/oauth-tokens/index.js +2 -0
- package/dist/oauth-tokens/index.js.map +1 -0
- package/dist/oauth-tokens/store.d.ts +9 -0
- package/dist/oauth-tokens/store.d.ts.map +1 -0
- package/dist/oauth-tokens/store.js +90 -0
- package/dist/oauth-tokens/store.js.map +1 -0
- package/dist/scripts/db/exec.d.ts.map +1 -1
- package/dist/scripts/db/exec.js +31 -16
- package/dist/scripts/db/exec.js.map +1 -1
- package/dist/scripts/db/query.d.ts.map +1 -1
- package/dist/scripts/db/query.js +24 -8
- package/dist/scripts/db/query.js.map +1 -1
- package/dist/scripts/db/schema.d.ts.map +1 -1
- package/dist/scripts/db/schema.js +56 -28
- package/dist/scripts/db/schema.js.map +1 -1
- package/dist/scripts/dev/index.d.ts +15 -0
- package/dist/scripts/dev/index.d.ts.map +1 -0
- package/dist/scripts/dev/index.js +118 -0
- package/dist/scripts/dev/index.js.map +1 -0
- package/dist/scripts/dev/list-files.d.ts +5 -0
- package/dist/scripts/dev/list-files.d.ts.map +1 -0
- package/dist/scripts/dev/list-files.js +102 -0
- package/dist/scripts/dev/list-files.js.map +1 -0
- package/dist/scripts/dev/read-file.d.ts +5 -0
- package/dist/scripts/dev/read-file.d.ts.map +1 -0
- package/dist/scripts/dev/read-file.js +68 -0
- package/dist/scripts/dev/read-file.js.map +1 -0
- package/dist/scripts/dev/search-files.d.ts +5 -0
- package/dist/scripts/dev/search-files.d.ts.map +1 -0
- package/dist/scripts/dev/search-files.js +133 -0
- package/dist/scripts/dev/search-files.js.map +1 -0
- package/dist/scripts/dev/shell.d.ts +5 -0
- package/dist/scripts/dev/shell.d.ts.map +1 -0
- package/dist/scripts/dev/shell.js +65 -0
- package/dist/scripts/dev/shell.js.map +1 -0
- package/dist/scripts/dev/write-file.d.ts +5 -0
- package/dist/scripts/dev/write-file.d.ts.map +1 -0
- package/dist/scripts/dev/write-file.js +50 -0
- package/dist/scripts/dev/write-file.js.map +1 -0
- package/dist/scripts/index.d.ts +1 -0
- package/dist/scripts/index.d.ts.map +1 -1
- package/dist/scripts/index.js +1 -0
- package/dist/scripts/index.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts +43 -0
- package/dist/server/agent-chat-plugin.d.ts.map +1 -0
- package/dist/server/agent-chat-plugin.js +92 -0
- package/dist/server/agent-chat-plugin.js.map +1 -0
- package/dist/server/auth-plugin.d.ts +6 -0
- package/dist/server/auth-plugin.d.ts.map +1 -0
- package/dist/server/auth-plugin.js +8 -0
- package/dist/server/auth-plugin.js.map +1 -0
- package/dist/server/auth.d.ts +18 -2
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +103 -46
- package/dist/server/auth.js.map +1 -1
- package/dist/server/create-server.d.ts +7 -0
- package/dist/server/create-server.d.ts.map +1 -1
- package/dist/server/create-server.js +7 -1
- package/dist/server/create-server.js.map +1 -1
- package/dist/server/default-watcher.d.ts +17 -0
- package/dist/server/default-watcher.d.ts.map +1 -0
- package/dist/server/default-watcher.js +37 -0
- package/dist/server/default-watcher.js.map +1 -0
- package/dist/server/file-sync-plugin.d.ts +7 -0
- package/dist/server/file-sync-plugin.d.ts.map +1 -0
- package/dist/server/file-sync-plugin.js +38 -0
- package/dist/server/file-sync-plugin.js.map +1 -0
- package/dist/server/google-auth-plugin.d.ts +22 -0
- package/dist/server/google-auth-plugin.d.ts.map +1 -0
- package/dist/server/google-auth-plugin.js +122 -0
- package/dist/server/google-auth-plugin.js.map +1 -0
- package/dist/server/index.d.ts +9 -2
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +9 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/sse.d.ts +9 -4
- package/dist/server/sse.d.ts.map +1 -1
- package/dist/server/sse.js +19 -12
- package/dist/server/sse.js.map +1 -1
- package/dist/settings/handlers.d.ts +9 -0
- package/dist/settings/handlers.d.ts.map +1 -0
- package/dist/settings/handlers.js +29 -0
- package/dist/settings/handlers.js.map +1 -0
- package/dist/settings/index.d.ts +5 -0
- package/dist/settings/index.d.ts.map +1 -0
- package/dist/settings/index.js +9 -0
- package/dist/settings/index.js.map +1 -0
- package/dist/settings/script-helpers.d.ts +9 -0
- package/dist/settings/script-helpers.d.ts.map +1 -0
- package/dist/settings/script-helpers.js +16 -0
- package/dist/settings/script-helpers.js.map +1 -0
- package/dist/settings/store.d.ts +7 -0
- package/dist/settings/store.d.ts.map +1 -0
- package/dist/settings/store.js +88 -0
- package/dist/settings/store.js.map +1 -0
- package/dist/settings/user-settings.d.ts +21 -0
- package/dist/settings/user-settings.d.ts.map +1 -0
- package/dist/settings/user-settings.js +35 -0
- package/dist/settings/user-settings.js.map +1 -0
- package/dist/tailwind.preset.js +1 -1
- package/dist/tailwind.preset.js.map +1 -1
- package/dist/terminal/cli-registry.d.ts +16 -0
- package/dist/terminal/cli-registry.d.ts.map +1 -0
- package/dist/terminal/cli-registry.js +42 -0
- package/dist/terminal/cli-registry.js.map +1 -0
- package/dist/terminal/index.d.ts +9 -0
- package/dist/terminal/index.d.ts.map +1 -0
- package/dist/terminal/index.js +9 -0
- package/dist/terminal/index.js.map +1 -0
- package/dist/terminal/pty-server.d.ts +31 -0
- package/dist/terminal/pty-server.d.ts.map +1 -0
- package/dist/terminal/pty-server.js +252 -0
- package/dist/terminal/pty-server.js.map +1 -0
- package/dist/terminal/terminal-plugin.d.ts +23 -0
- package/dist/terminal/terminal-plugin.d.ts.map +1 -0
- package/dist/terminal/terminal-plugin.js +90 -0
- package/dist/terminal/terminal-plugin.js.map +1 -0
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +19 -1
- package/dist/vite/client.js.map +1 -1
- package/dist/vite/dev-api-server.d.ts.map +1 -1
- package/dist/vite/dev-api-server.js +12 -0
- package/dist/vite/dev-api-server.js.map +1 -1
- package/package.json +50 -4
- package/src/templates/default/.agents/skills/create-skill/SKILL.md +1 -1
- package/src/templates/default/.agents/skills/delegate-to-agent/SKILL.md +3 -3
- package/src/templates/default/.agents/skills/files-as-database/SKILL.md +82 -63
- package/src/templates/default/.agents/skills/frontend-design/SKILL.md +2 -2
- package/src/templates/default/.agents/skills/scripts/SKILL.md +20 -17
- package/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +2 -2
- package/src/templates/default/.agents/skills/sse-file-watcher/SKILL.md +49 -64
- package/src/templates/default/.ignore +0 -0
- package/src/templates/default/AGENTS.md +30 -55
- package/src/templates/default/app/global.css +95 -0
- package/src/templates/default/{client → app}/root.tsx +22 -9
- package/src/templates/default/app/routes/_index.tsx +62 -0
- package/src/templates/default/application-state/.gitkeep +0 -0
- package/src/templates/default/components.json +1 -1
- package/src/templates/default/data/sync-config.json +1 -0
- package/src/templates/default/package.json +2 -1
- package/src/templates/default/react-router.config.ts +1 -1
- package/src/templates/default/scripts/run.ts +1 -8
- package/src/templates/default/server/plugins/agent-chat.ts +1 -0
- package/src/templates/default/server/plugins/auth.ts +1 -5
- package/src/templates/default/server/plugins/file-sync.ts +1 -39
- package/src/templates/default/server/plugins/terminal.ts +1 -0
- package/src/templates/default/server/routes/api/events.get.ts +2 -6
- package/src/templates/default/server/routes/api/file-sync/status.get.ts +2 -11
- package/src/templates/default/tailwind.config.ts +1 -1
- package/src/templates/default/tsconfig.json +1 -1
- package/tsconfig.base.json +2 -2
- package/src/templates/default/client/App.tsx +0 -56
- package/src/templates/default/client/global.css +0 -75
- package/src/templates/default/client/routes/_index.tsx +0 -19
- package/src/templates/default/server/lib/watcher.ts +0 -21
- /package/src/templates/default/{client → app}/entry.client.tsx +0 -0
- /package/src/templates/default/{client → app}/entry.server.tsx +0 -0
- /package/src/templates/default/{client → app}/lib/utils.ts +0 -0
- /package/src/templates/default/{client → app}/routes.ts +0 -0
- /package/src/templates/default/{client → app}/vite-env.d.ts +0 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { createProductionAgentHandler, } from "../agent/production-agent.js";
|
|
2
|
+
import { createDevScriptRegistry } from "../scripts/dev/index.js";
|
|
3
|
+
import { defineEventHandler, readBody, setResponseStatus, getMethod } from "h3";
|
|
4
|
+
import { upsertEnvFile } from "./create-server.js";
|
|
5
|
+
import path from "path";
|
|
6
|
+
const DEFAULT_SYSTEM_PROMPT = `You are an AI assistant for this application. You can help users by running available tools and answering questions.
|
|
7
|
+
|
|
8
|
+
Be concise and helpful. Use the available tools to read data, make changes, and assist the user.`;
|
|
9
|
+
const DEFAULT_DEV_PROMPT = `You are a development assistant with full access to the project filesystem, shell, and database.
|
|
10
|
+
|
|
11
|
+
You can:
|
|
12
|
+
- Read, write, and edit any file in the project (read-file, write-file)
|
|
13
|
+
- List and search files (list-files, search-files)
|
|
14
|
+
- Run shell commands (shell) — use for git, build, install, etc.
|
|
15
|
+
- Query and modify the database (db-schema, db-query, db-exec)
|
|
16
|
+
- Plus all application-specific tools
|
|
17
|
+
|
|
18
|
+
When editing code, maintain existing patterns and conventions. After writing files, mention what you changed. Use read-file before write-file to understand existing content.
|
|
19
|
+
|
|
20
|
+
`;
|
|
21
|
+
/**
|
|
22
|
+
* Creates a Nitro plugin that mounts the agent chat endpoint.
|
|
23
|
+
*
|
|
24
|
+
* In dev mode (NODE_ENV !== "production"), automatically includes
|
|
25
|
+
* file system, shell, and database tools alongside any template-specific scripts.
|
|
26
|
+
*
|
|
27
|
+
* Usage in templates:
|
|
28
|
+
* ```ts
|
|
29
|
+
* // server/plugins/agent-chat.ts
|
|
30
|
+
* import { createAgentChatPlugin } from "@agent-native/core/server";
|
|
31
|
+
* import { scriptRegistry } from "../../scripts/registry.js";
|
|
32
|
+
*
|
|
33
|
+
* export default createAgentChatPlugin({
|
|
34
|
+
* scripts: scriptRegistry,
|
|
35
|
+
* systemPrompt: "You are an email assistant...",
|
|
36
|
+
* });
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export function createAgentChatPlugin(options) {
|
|
40
|
+
return async (nitroApp) => {
|
|
41
|
+
const isDev = process.env.NODE_ENV !== "production";
|
|
42
|
+
const routePath = options?.path ?? "/api/agent-chat";
|
|
43
|
+
// Resolve scripts — supports lazy loading to avoid import issues with Vite SSR
|
|
44
|
+
const rawScripts = options?.scripts;
|
|
45
|
+
const templateScripts = typeof rawScripts === "function"
|
|
46
|
+
? await rawScripts()
|
|
47
|
+
: (rawScripts ?? {});
|
|
48
|
+
const scripts = isDev
|
|
49
|
+
? { ...templateScripts, ...(await createDevScriptRegistry()) }
|
|
50
|
+
: templateScripts;
|
|
51
|
+
// Build system prompt
|
|
52
|
+
const basePrompt = options?.systemPrompt ?? DEFAULT_SYSTEM_PROMPT;
|
|
53
|
+
const devPrefix = options?.devSystemPrompt ?? DEFAULT_DEV_PROMPT;
|
|
54
|
+
const systemPrompt = isDev ? devPrefix + basePrompt : basePrompt;
|
|
55
|
+
const handler = createProductionAgentHandler({
|
|
56
|
+
scripts,
|
|
57
|
+
systemPrompt,
|
|
58
|
+
model: options?.model,
|
|
59
|
+
apiKey: options?.apiKey,
|
|
60
|
+
});
|
|
61
|
+
// Mount save-key BEFORE the prefix handler so it isn't shadowed
|
|
62
|
+
nitroApp.h3App.use(`${routePath}/save-key`, defineEventHandler(async (event) => {
|
|
63
|
+
if (getMethod(event) !== "POST") {
|
|
64
|
+
setResponseStatus(event, 405);
|
|
65
|
+
return { error: "Method not allowed" };
|
|
66
|
+
}
|
|
67
|
+
const body = await readBody(event);
|
|
68
|
+
const { key } = body;
|
|
69
|
+
if (!key || typeof key !== "string" || !key.trim()) {
|
|
70
|
+
setResponseStatus(event, 400);
|
|
71
|
+
return { error: "API key is required" };
|
|
72
|
+
}
|
|
73
|
+
const trimmedKey = key.trim();
|
|
74
|
+
const envPath = path.join(process.cwd(), ".env");
|
|
75
|
+
upsertEnvFile(envPath, [
|
|
76
|
+
{ key: "ANTHROPIC_API_KEY", value: trimmedKey },
|
|
77
|
+
]);
|
|
78
|
+
// Update process.env so the agent works immediately
|
|
79
|
+
process.env.ANTHROPIC_API_KEY = trimmedKey;
|
|
80
|
+
return { ok: true };
|
|
81
|
+
}));
|
|
82
|
+
// Mount the main chat handler — must come AFTER save-key to avoid prefix shadowing
|
|
83
|
+
nitroApp.h3App.use(routePath, handler);
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Default agent chat plugin with no template-specific scripts.
|
|
88
|
+
* In dev mode, provides file system, shell, and database tools.
|
|
89
|
+
* In production, provides only the default system prompt.
|
|
90
|
+
*/
|
|
91
|
+
export const defaultAgentChatPlugin = createAgentChatPlugin();
|
|
92
|
+
//# sourceMappingURL=agent-chat-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-chat-plugin.js","sourceRoot":"","sources":["../../src/server/agent-chat-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AuthOptions } from "./auth.js";
|
|
2
|
+
type NitroPluginDef = (nitroApp: any) => void | Promise<void>;
|
|
3
|
+
export declare function createAuthPlugin(options?: AuthOptions): NitroPluginDef;
|
|
4
|
+
export declare const defaultAuthPlugin: NitroPluginDef;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=auth-plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-plugin.d.ts","sourceRoot":"","sources":["../../src/server/auth-plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,KAAK,cAAc,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE9D,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,cAAc,CAItE;AAED,eAAO,MAAM,iBAAiB,EAAE,cAAmC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-plugin.js","sourceRoot":"","sources":["../../src/server/auth-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAK1C,MAAM,UAAU,gBAAgB,CAAC,OAAqB;IACpD,OAAO,CAAC,QAAa,EAAE,EAAE;QACvB,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAmB,gBAAgB,EAAE,CAAC"}
|
package/dist/server/auth.d.ts
CHANGED
|
@@ -7,8 +7,6 @@ export interface AuthSession {
|
|
|
7
7
|
export interface AuthOptions {
|
|
8
8
|
/** Session max age in seconds. Default: 30 days */
|
|
9
9
|
maxAge?: number;
|
|
10
|
-
/** Path to the sessions file. Default: data/.sessions.json */
|
|
11
|
-
sessionsPath?: string;
|
|
12
10
|
/**
|
|
13
11
|
* Custom getSession implementation (for BYOA — Auth.js, Clerk, etc.).
|
|
14
12
|
* When provided, the built-in token auth is bypassed entirely.
|
|
@@ -20,7 +18,25 @@ export interface AuthOptions {
|
|
|
20
18
|
* Both page routes and API routes can be made public.
|
|
21
19
|
*/
|
|
22
20
|
publicPaths?: string[];
|
|
21
|
+
/**
|
|
22
|
+
* Custom login page HTML. When provided, this HTML is served to
|
|
23
|
+
* unauthenticated page requests instead of the built-in token login form.
|
|
24
|
+
* Use this for custom login flows (e.g., "Sign in with Google" button).
|
|
25
|
+
*/
|
|
26
|
+
loginHtml?: string;
|
|
23
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Create a new session. Optionally associate it with an email address
|
|
30
|
+
* (used by Google OAuth and other identity-aware auth providers).
|
|
31
|
+
*/
|
|
32
|
+
export declare function addSession(token: string, email?: string): Promise<void>;
|
|
33
|
+
/** Remove a session by token. */
|
|
34
|
+
export declare function removeSession(token: string): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Look up the email associated with a session token.
|
|
37
|
+
* Returns null if the session doesn't exist, is expired, or has no email.
|
|
38
|
+
*/
|
|
39
|
+
export declare function getSessionEmail(token: string): Promise<string | null>;
|
|
24
40
|
/**
|
|
25
41
|
* Get the current auth session for a request.
|
|
26
42
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/server/auth.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,GAAG,IAAI,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/server/auth.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,GAAG,IAAI,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAOhD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC7D;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA4DD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO7E;AAED,iCAAiC;AACjC,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiB3E;AAyDD;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAW5E;AAkHD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAEzE;AA8GD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAsK5E"}
|
package/dist/server/auth.js
CHANGED
|
@@ -2,61 +2,119 @@ import crypto from "node:crypto";
|
|
|
2
2
|
import fs from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { defineEventHandler, readBody, getMethod, setResponseHeader, setResponseStatus, getCookie, setCookie, deleteCookie, } from "h3";
|
|
5
|
+
import { createClient } from "@libsql/client";
|
|
5
6
|
// ---------------------------------------------------------------------------
|
|
6
7
|
// Constants
|
|
7
8
|
// ---------------------------------------------------------------------------
|
|
8
9
|
const COOKIE_NAME = "an_session";
|
|
9
10
|
const DEFAULT_MAX_AGE = 60 * 60 * 24 * 30; // 30 days
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
// Session store — SQL-backed
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
let _sessionClient;
|
|
15
|
+
let _sessionTableReady = false;
|
|
13
16
|
let sessionMaxAge = DEFAULT_MAX_AGE;
|
|
14
|
-
function
|
|
15
|
-
|
|
17
|
+
function getSessionClient() {
|
|
18
|
+
if (!_sessionClient) {
|
|
19
|
+
const url = process.env.DATABASE_URL || "file:./data/app.db";
|
|
20
|
+
if (url.startsWith("file:")) {
|
|
21
|
+
fs.mkdirSync(path.join(process.cwd(), "data"), { recursive: true });
|
|
22
|
+
}
|
|
23
|
+
_sessionClient = createClient({
|
|
24
|
+
url,
|
|
25
|
+
authToken: process.env.DATABASE_AUTH_TOKEN,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return _sessionClient;
|
|
16
29
|
}
|
|
17
|
-
function
|
|
30
|
+
async function ensureSessionTable() {
|
|
31
|
+
if (_sessionTableReady)
|
|
32
|
+
return;
|
|
33
|
+
const client = getSessionClient();
|
|
34
|
+
await client.execute(`
|
|
35
|
+
CREATE TABLE IF NOT EXISTS sessions (
|
|
36
|
+
token TEXT PRIMARY KEY,
|
|
37
|
+
email TEXT,
|
|
38
|
+
created_at INTEGER NOT NULL
|
|
39
|
+
)
|
|
40
|
+
`);
|
|
41
|
+
// Migration: add email column to existing tables that lack it
|
|
18
42
|
try {
|
|
19
|
-
|
|
20
|
-
const entries = JSON.parse(raw);
|
|
21
|
-
sessions = new Map(entries.map((s) => [s.token, s]));
|
|
43
|
+
await client.execute(`ALTER TABLE sessions ADD COLUMN email TEXT`);
|
|
22
44
|
}
|
|
23
45
|
catch {
|
|
24
|
-
|
|
46
|
+
// Column already exists — ignore
|
|
25
47
|
}
|
|
48
|
+
_sessionTableReady = true;
|
|
26
49
|
}
|
|
27
|
-
function
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
|
|
50
|
+
async function pruneExpiredSessions() {
|
|
51
|
+
await ensureSessionTable();
|
|
52
|
+
const client = getSessionClient();
|
|
53
|
+
const cutoff = Date.now() - sessionMaxAge * 1000;
|
|
54
|
+
await client.execute({
|
|
55
|
+
sql: `DELETE FROM sessions WHERE created_at < ?`,
|
|
56
|
+
args: [cutoff],
|
|
57
|
+
});
|
|
32
58
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Create a new session. Optionally associate it with an email address
|
|
61
|
+
* (used by Google OAuth and other identity-aware auth providers).
|
|
62
|
+
*/
|
|
63
|
+
export async function addSession(token, email) {
|
|
64
|
+
await ensureSessionTable();
|
|
65
|
+
const client = getSessionClient();
|
|
66
|
+
await client.execute({
|
|
67
|
+
sql: `INSERT OR REPLACE INTO sessions (token, email, created_at) VALUES (?, ?, ?)`,
|
|
68
|
+
args: [token, email ?? null, Date.now()],
|
|
69
|
+
});
|
|
44
70
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
71
|
+
/** Remove a session by token. */
|
|
72
|
+
export async function removeSession(token) {
|
|
73
|
+
await ensureSessionTable();
|
|
74
|
+
const client = getSessionClient();
|
|
75
|
+
await client.execute({
|
|
76
|
+
sql: `DELETE FROM sessions WHERE token = ?`,
|
|
77
|
+
args: [token],
|
|
78
|
+
});
|
|
48
79
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Look up the email associated with a session token.
|
|
82
|
+
* Returns null if the session doesn't exist, is expired, or has no email.
|
|
83
|
+
*/
|
|
84
|
+
export async function getSessionEmail(token) {
|
|
85
|
+
await ensureSessionTable();
|
|
86
|
+
const client = getSessionClient();
|
|
87
|
+
const { rows } = await client.execute({
|
|
88
|
+
sql: `SELECT email, created_at FROM sessions WHERE token = ?`,
|
|
89
|
+
args: [token],
|
|
90
|
+
});
|
|
91
|
+
if (rows.length === 0)
|
|
92
|
+
return null;
|
|
93
|
+
const createdAt = rows[0].created_at;
|
|
94
|
+
if (Date.now() - createdAt > sessionMaxAge * 1000) {
|
|
95
|
+
await client.execute({
|
|
96
|
+
sql: `DELETE FROM sessions WHERE token = ?`,
|
|
97
|
+
args: [token],
|
|
98
|
+
});
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
return rows[0].email ?? null;
|
|
52
102
|
}
|
|
53
|
-
function hasSession(token) {
|
|
54
|
-
|
|
55
|
-
|
|
103
|
+
async function hasSession(token) {
|
|
104
|
+
await ensureSessionTable();
|
|
105
|
+
const client = getSessionClient();
|
|
106
|
+
const { rows } = await client.execute({
|
|
107
|
+
sql: `SELECT created_at FROM sessions WHERE token = ?`,
|
|
108
|
+
args: [token],
|
|
109
|
+
});
|
|
110
|
+
if (rows.length === 0)
|
|
56
111
|
return false;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
112
|
+
const createdAt = rows[0].created_at;
|
|
113
|
+
if (Date.now() - createdAt > sessionMaxAge * 1000) {
|
|
114
|
+
await client.execute({
|
|
115
|
+
sql: `DELETE FROM sessions WHERE token = ?`,
|
|
116
|
+
args: [token],
|
|
117
|
+
});
|
|
60
118
|
return false;
|
|
61
119
|
}
|
|
62
120
|
return true;
|
|
@@ -106,7 +164,7 @@ export async function getSession(event) {
|
|
|
106
164
|
if (customGetSession)
|
|
107
165
|
return customGetSession(event);
|
|
108
166
|
const cookie = getCookie(event, COOKIE_NAME);
|
|
109
|
-
if (cookie && hasSession(cookie)) {
|
|
167
|
+
if (cookie && (await hasSession(cookie))) {
|
|
110
168
|
return { email: "user", token: cookie };
|
|
111
169
|
}
|
|
112
170
|
return null;
|
|
@@ -245,7 +303,7 @@ function mountAuthRoutes(app, accessTokens, publicPaths = []) {
|
|
|
245
303
|
return { error: "Invalid token" };
|
|
246
304
|
}
|
|
247
305
|
const sessionToken = crypto.randomBytes(32).toString("hex");
|
|
248
|
-
addSession(sessionToken);
|
|
306
|
+
await addSession(sessionToken);
|
|
249
307
|
setCookie(event, COOKIE_NAME, sessionToken, {
|
|
250
308
|
httpOnly: true,
|
|
251
309
|
secure: true,
|
|
@@ -256,10 +314,10 @@ function mountAuthRoutes(app, accessTokens, publicPaths = []) {
|
|
|
256
314
|
return { ok: true };
|
|
257
315
|
}));
|
|
258
316
|
// POST /api/auth/logout
|
|
259
|
-
app.use("/api/auth/logout", defineEventHandler((event) => {
|
|
317
|
+
app.use("/api/auth/logout", defineEventHandler(async (event) => {
|
|
260
318
|
const cookie = getCookie(event, COOKIE_NAME);
|
|
261
319
|
if (cookie)
|
|
262
|
-
removeSession(cookie);
|
|
320
|
+
await removeSession(cookie);
|
|
263
321
|
deleteCookie(event, COOKIE_NAME, { path: "/" });
|
|
264
322
|
return { ok: true };
|
|
265
323
|
}));
|
|
@@ -338,7 +396,6 @@ export function autoMountAuth(app, options = {}) {
|
|
|
338
396
|
customGetSession = null;
|
|
339
397
|
authDisabledMode = false;
|
|
340
398
|
sessionMaxAge = options.maxAge ?? DEFAULT_MAX_AGE;
|
|
341
|
-
sessionsFilePath = resolveSessionsPath(options.sessionsPath);
|
|
342
399
|
const publicPaths = options.publicPaths ?? [];
|
|
343
400
|
if (options.getSession) {
|
|
344
401
|
customGetSession = options.getSession;
|
|
@@ -372,6 +429,7 @@ export function autoMountAuth(app, options = {}) {
|
|
|
372
429
|
app.use("/api/auth/login", defineEventHandler(() => ({ ok: true })));
|
|
373
430
|
app.use("/api/auth/logout", defineEventHandler(() => ({ ok: true })));
|
|
374
431
|
// Mount auth guard that delegates to custom getSession
|
|
432
|
+
const byoaLoginHtml = options.loginHtml ?? LOGIN_HTML;
|
|
375
433
|
app.use(defineEventHandler(async (event) => {
|
|
376
434
|
const url = event.node.req.url ?? "/";
|
|
377
435
|
const p = url.split("?")[0];
|
|
@@ -394,7 +452,7 @@ export function autoMountAuth(app, options = {}) {
|
|
|
394
452
|
return;
|
|
395
453
|
}
|
|
396
454
|
setResponseHeader(event, "Content-Type", "text/html");
|
|
397
|
-
event.node.res.end(
|
|
455
|
+
event.node.res.end(byoaLoginHtml);
|
|
398
456
|
}));
|
|
399
457
|
console.log("[agent-native] Auth enabled — custom getSession provider.");
|
|
400
458
|
return true;
|
|
@@ -433,8 +491,7 @@ export function autoMountAuth(app, options = {}) {
|
|
|
433
491
|
process.exit(1);
|
|
434
492
|
}
|
|
435
493
|
// Production with tokens — mount auth
|
|
436
|
-
|
|
437
|
-
pruneExpiredSessions();
|
|
494
|
+
pruneExpiredSessions().catch(() => { });
|
|
438
495
|
mountAuthRoutes(app, tokens, publicPaths);
|
|
439
496
|
console.log(`[agent-native] Auth enabled — ${tokens.length} access token(s) configured.`);
|
|
440
497
|
return true;
|
package/dist/server/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/server/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/server/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,13 @@ export interface CreateServerOptions {
|
|
|
19
19
|
/** Env key configuration for the settings UI. Enables /api/env-status and /api/env-vars routes. */
|
|
20
20
|
envKeys?: EnvKeyConfig[];
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Upsert vars into a .env file, preserving existing structure.
|
|
24
|
+
*/
|
|
25
|
+
export declare function upsertEnvFile(envPath: string, vars: Array<{
|
|
26
|
+
key: string;
|
|
27
|
+
value: string;
|
|
28
|
+
}>): void;
|
|
22
29
|
export interface CreateServerResult {
|
|
23
30
|
app: ReturnType<typeof createApp>;
|
|
24
31
|
router: ReturnType<typeof createRouter>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-server.d.ts","sourceRoot":"","sources":["../../src/server/create-server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EAKb,MAAM,IAAI,CAAC;AAKZ,MAAM,WAAW,YAAY;IAC3B,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;IACvC,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mGAAmG;IACnG,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;
|
|
1
|
+
{"version":3,"file":"create-server.d.ts","sourceRoot":"","sources":["../../src/server/create-server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EAKb,MAAM,IAAI,CAAC;AAKZ,MAAM,WAAW,YAAY;IAC3B,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;IACvC,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mGAAmG;IACnG,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AA0BD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GAC1C,IAAI,CA8CN;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;IAClC,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;CACzC;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,OAAO,GAAE,mBAAwB,GAChC,kBAAkB,CAqGpB"}
|
|
@@ -28,7 +28,13 @@ function parseEnvFile(content) {
|
|
|
28
28
|
/**
|
|
29
29
|
* Upsert vars into a .env file, preserving existing structure.
|
|
30
30
|
*/
|
|
31
|
-
function upsertEnvFile(envPath, vars) {
|
|
31
|
+
export function upsertEnvFile(envPath, vars) {
|
|
32
|
+
// Sanitize: reject values that could inject additional env vars
|
|
33
|
+
for (const { key, value } of vars) {
|
|
34
|
+
if (/[\n\r\0]/.test(value)) {
|
|
35
|
+
throw new Error(`Invalid env var value for ${key}: must not contain newlines or control characters`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
32
38
|
let content = "";
|
|
33
39
|
try {
|
|
34
40
|
content = fs.readFileSync(envPath, "utf-8");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-server.js","sourceRoot":"","sources":["../../src/server/create-server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,GAElB,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAwBlD;;GAEG;AACH,SAAS,YAAY,CAAC,OAAe;IACnC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,OAAO,KAAK,CAAC,CAAC;YAAE,SAAS;QAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,2BAA2B;QAC3B,IACE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAC9C,CAAC;YACD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"create-server.js","sourceRoot":"","sources":["../../src/server/create-server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,GAElB,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAwBlD;;GAEG;AACH,SAAS,YAAY,CAAC,OAAe;IACnC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,OAAO,KAAK,CAAC,CAAC;YAAE,SAAS;QAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,2BAA2B;QAC3B,IACE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAC9C,CAAC;YACD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAe,EACf,IAA2C;IAE3C,gEAAgE;IAChE,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC;QAClC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,6BAA6B,GAAG,mDAAmD,CACpF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,yBAAyB;IAC3B,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE7D,iCAAiC;IACjC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACrD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,OAAO,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAChC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;YAClC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,kBAAkB;IAClB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,0BAA0B;IAC1B,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,IAAI,CAAC;IAE3C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC;AAOD;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,UAA+B,EAAE;IAEjC,MAAM,GAAG,GAAG,SAAS,CAAC;QACpB,OAAO,CAAC,KAAK,EAAE,KAAK;YAClB,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;KACF,CAAC,CAAC;IAEH,kBAAkB;IAClB,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3B,GAAG,CAAC,GAAG,CACL,kBAAkB,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;YAC/B,OAAO,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;YACtD,OAAO,CAAC,SAAS,CACf,8BAA8B,EAC9B,mCAAmC,CACpC,CAAC;YACF,OAAO,CAAC,SAAS,CACf,8BAA8B,EAC9B,6CAA6C,CAC9C,CAAC;YAEF,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACxC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACvB,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEhB,eAAe;IACf,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CACR,WAAW,EACX,kBAAkB,CAAC,GAAG,EAAE;YACtB,MAAM,OAAO,GACX,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC;YAC5D,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAEhC,MAAM,CAAC,GAAG,CACR,iBAAiB,EACjB,kBAAkB,CAAC,GAAG,EAAE;YACtB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC3B,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,KAAK;gBAC/B,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;aACnC,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,kBAAkB,CAAC,KAAK,EAAE,KAAc,EAAE,EAAE;YAC1C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,EAAE,IAAI,EAAE,GAAG,IAEhB,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9C,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC9B,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;YAC1C,CAAC;YAED,6CAA6C;YAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC9B,OAAO,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC;YACxD,CAAC;YAED,qBAAqB;YACrB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;YACjD,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAEjC,oEAAoE;YACpE,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,QAAQ,EAAE,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC3B,CAAC;YAED,qDAAqD;YACrD,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE3B,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { SSEHandlerOptions } from "./sse.js";
|
|
2
|
+
export declare function getDefaultSSEEmitters(): NonNullable<SSEHandlerOptions["extraEmitters"]>;
|
|
3
|
+
/** @deprecated File sync is no longer used. Returns no-op status. */
|
|
4
|
+
export declare function defaultSyncStatusHandler(): {
|
|
5
|
+
enabled: boolean;
|
|
6
|
+
conflicts: number;
|
|
7
|
+
};
|
|
8
|
+
/** @deprecated File sync is no longer used. No-op. */
|
|
9
|
+
export declare function setDefaultSyncResult(_result: any): void;
|
|
10
|
+
/**
|
|
11
|
+
* Create the default SSE handler for all templates.
|
|
12
|
+
*
|
|
13
|
+
* Streams DB change events (application state, settings) to connected clients.
|
|
14
|
+
* No file watcher — all data lives in SQL.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createDefaultSSEHandler(): import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<void>>;
|
|
17
|
+
//# sourceMappingURL=default-watcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-watcher.d.ts","sourceRoot":"","sources":["../../src/server/default-watcher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAelD,wBAAgB,qBAAqB,IAAI,WAAW,CAClD,iBAAiB,CAAC,eAAe,CAAC,CACnC,CAGA;AAID,qEAAqE;AACrE,wBAAgB,wBAAwB;;;EAEvC;AAED,sDAAsD;AACtD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,GAAG,QAAI;AAErD;;;;;GAKG;AACH,wBAAgB,uBAAuB,+EAKtC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { createSSEHandler } from "./sse.js";
|
|
2
|
+
import { getAppStateEmitter } from "../application-state/emitter.js";
|
|
3
|
+
import { getSettingsEmitter } from "../settings/store.js";
|
|
4
|
+
const _emitters = [];
|
|
5
|
+
let _emittersRegistered = false;
|
|
6
|
+
/** Ensure the DB change emitters are wired into SSE. */
|
|
7
|
+
function ensureEmitters() {
|
|
8
|
+
if (_emittersRegistered)
|
|
9
|
+
return;
|
|
10
|
+
_emittersRegistered = true;
|
|
11
|
+
_emitters.push({ emitter: getAppStateEmitter(), event: "app-state" });
|
|
12
|
+
_emitters.push({ emitter: getSettingsEmitter(), event: "settings" });
|
|
13
|
+
}
|
|
14
|
+
export function getDefaultSSEEmitters() {
|
|
15
|
+
ensureEmitters();
|
|
16
|
+
return _emitters;
|
|
17
|
+
}
|
|
18
|
+
// --- Legacy file sync compat (deprecated — data is SQL-backed now) ---
|
|
19
|
+
/** @deprecated File sync is no longer used. Returns no-op status. */
|
|
20
|
+
export function defaultSyncStatusHandler() {
|
|
21
|
+
return { enabled: false, conflicts: 0 };
|
|
22
|
+
}
|
|
23
|
+
/** @deprecated File sync is no longer used. No-op. */
|
|
24
|
+
export function setDefaultSyncResult(_result) { }
|
|
25
|
+
/**
|
|
26
|
+
* Create the default SSE handler for all templates.
|
|
27
|
+
*
|
|
28
|
+
* Streams DB change events (application state, settings) to connected clients.
|
|
29
|
+
* No file watcher — all data lives in SQL.
|
|
30
|
+
*/
|
|
31
|
+
export function createDefaultSSEHandler() {
|
|
32
|
+
ensureEmitters();
|
|
33
|
+
return createSSEHandler({
|
|
34
|
+
extraEmitters: _emitters,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=default-watcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-watcher.js","sourceRoot":"","sources":["../../src/server/default-watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,SAAS,GAAoD,EAAE,CAAC;AACtE,IAAI,mBAAmB,GAAG,KAAK,CAAC;AAEhC,wDAAwD;AACxD,SAAS,cAAc;IACrB,IAAI,mBAAmB;QAAE,OAAO;IAChC,mBAAmB,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IACtE,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,qBAAqB;IAGnC,cAAc,EAAE,CAAC;IACjB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,wEAAwE;AAExE,qEAAqE;AACrE,MAAM,UAAU,wBAAwB;IACtC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,oBAAoB,CAAC,OAAY,IAAG,CAAC;AAErD;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB;IACrC,cAAc,EAAE,CAAC;IACjB,OAAO,gBAAgB,CAAC;QACtB,aAAa,EAAE,SAAS;KACzB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
type NitroPluginDef = (nitroApp: any) => void | Promise<void>;
|
|
2
|
+
export declare function createFileSyncPlugin(options?: {
|
|
3
|
+
contentRoot?: string;
|
|
4
|
+
}): NitroPluginDef;
|
|
5
|
+
export declare const defaultFileSyncPlugin: NitroPluginDef;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=file-sync-plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-sync-plugin.d.ts","sourceRoot":"","sources":["../../src/server/file-sync-plugin.ts"],"names":[],"mappings":"AAGA,KAAK,cAAc,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE9D,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,cAAc,CAoCjB;AAED,eAAO,MAAM,qBAAqB,EAAE,cAAuC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import { setDefaultSyncResult } from "./default-watcher.js";
|
|
3
|
+
export function createFileSyncPlugin(options) {
|
|
4
|
+
return async () => {
|
|
5
|
+
// Dynamic import to avoid loading sync deps when not needed
|
|
6
|
+
const { createFileSync } = await import("../adapters/sync/index.js");
|
|
7
|
+
const result = await createFileSync({
|
|
8
|
+
contentRoot: options?.contentRoot || "./data",
|
|
9
|
+
});
|
|
10
|
+
setDefaultSyncResult(result);
|
|
11
|
+
if (result.status === "error") {
|
|
12
|
+
console.warn(`[app] File sync failed: ${result.reason}`);
|
|
13
|
+
}
|
|
14
|
+
process.on("SIGTERM", async () => {
|
|
15
|
+
if (result.status === "ready")
|
|
16
|
+
await result.shutdown();
|
|
17
|
+
process.exit(0);
|
|
18
|
+
});
|
|
19
|
+
if (result.status === "ready") {
|
|
20
|
+
result.fileSync.syncEvents.on("sync", (event) => {
|
|
21
|
+
try {
|
|
22
|
+
if (event.type === "conflict-needs-llm") {
|
|
23
|
+
fs.mkdirSync("application-state", { recursive: true });
|
|
24
|
+
fs.writeFileSync("application-state/sync-conflict.json", JSON.stringify(event, null, 2));
|
|
25
|
+
}
|
|
26
|
+
else if (event.type === "conflict-resolved") {
|
|
27
|
+
fs.rmSync("application-state/sync-conflict.json", { force: true });
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
/* best-effort */
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export const defaultFileSyncPlugin = createFileSyncPlugin();
|
|
38
|
+
//# sourceMappingURL=file-sync-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-sync-plugin.js","sourceRoot":"","sources":["../../src/server/file-sync-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAI5D,MAAM,UAAU,oBAAoB,CAAC,OAEpC;IACC,OAAO,KAAK,IAAI,EAAE;QAChB,4DAA4D;QAC5D,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;YAClC,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,QAAQ;SAC9C,CAAC,CAAC;QACH,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAE7B,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,2BAA2B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YAC/B,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;gBAAE,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC9B,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAU,EAAE,EAAE;gBACnD,IAAI,CAAC;oBACH,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;wBACxC,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;wBACvD,EAAE,CAAC,aAAa,CACd,sCAAsC,EACtC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAC/B,CAAC;oBACJ,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;wBAC9C,EAAE,CAAC,MAAM,CAAC,sCAAsC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrE,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,iBAAiB;gBACnB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAmB,oBAAoB,EAAE,CAAC"}
|