clawmini 0.0.4 → 0.0.6
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/adapter-discord/index.mjs +1 -1
- package/dist/adapter-google-chat/index.mjs +1 -1
- package/dist/cli/index.mjs +2 -2
- package/dist/cli/lite.mjs +5 -3
- package/dist/cli/lite.mjs.map +1 -1
- package/dist/cli/propose-policy.mjs +2 -0
- package/dist/cli/propose-policy.mjs.map +1 -1
- package/dist/daemon/index.mjs +23 -8
- package/dist/daemon/index.mjs.map +1 -1
- package/dist/{lite-BbCFgEjn.mjs → lite-CBxOT1y5.mjs} +2 -2
- package/dist/{lite-BbCFgEjn.mjs.map → lite-CBxOT1y5.mjs.map} +1 -1
- package/{web/.svelte-kit/output/client/_app/immutable/chunks/uD5YsQE1.js → dist/web/_app/immutable/chunks/9nfWZDAH.js} +1 -1
- package/{web/.svelte-kit/output/client/_app/immutable/chunks/ByezTNKv.js → dist/web/_app/immutable/chunks/zsjBVtme.js} +1 -1
- package/dist/web/_app/immutable/entry/{app.Dkba_ZYl.js → app.CDP4hzOl.js} +2 -2
- package/dist/web/_app/immutable/entry/start.k4GcE1y3.js +1 -0
- package/dist/web/_app/immutable/nodes/{0.CFkkEWLe.js → 0.BK2mQuoD.js} +1 -1
- package/dist/web/_app/immutable/nodes/{1.BVylC0w0.js → 1.DsQuFekn.js} +1 -1
- package/dist/web/_app/immutable/nodes/{3.DEhhZBsS.js → 3.BZVFNxO-.js} +1 -1
- package/dist/web/_app/immutable/nodes/{4.C_OhFIXf.js → 4.L2HPGZB4.js} +1 -1
- package/dist/web/_app/immutable/nodes/{5.Bj0bsDBW.js → 5.B4lC9vS4.js} +1 -1
- package/dist/web/_app/version.json +1 -1
- package/dist/web/index.html +6 -6
- package/dist/{workspace-CEdb2nPR.mjs → workspace-BJmJBfKi.mjs} +3 -1
- package/dist/workspace-BJmJBfKi.mjs.map +1 -0
- package/docs/23_custom_token_env/development_log.md +31 -0
- package/docs/23_custom_token_env/notes.md +16 -0
- package/docs/23_custom_token_env/prd.md +42 -0
- package/docs/23_custom_token_env/questions.md +8 -0
- package/docs/23_custom_token_env/tickets.md +54 -0
- package/napkin.md +1 -0
- package/package.json +1 -1
- package/src/adapter-google-chat/client.test.ts +1 -1
- package/src/cli/e2e/daemon.test.ts +103 -0
- package/src/cli/e2e/messages.test.ts +5 -2
- package/src/cli/lite.ts +10 -3
- package/src/daemon/agent/agent-session.ts +20 -4
- package/src/daemon/utils/spawn.ts +2 -1
- package/src/shared/config.ts +2 -0
- package/templates/environments/macos/sandbox.sb +8 -0
- package/templates/environments/macos-proxy/allowlist.txt +4 -0
- package/templates/environments/macos-proxy/proxy.mjs +25 -20
- package/templates/environments/macos-proxy/sandbox.sb +8 -0
- package/templates/gemini/.gemini/settings.json +6 -1
- package/templates/gemini/settings.json +22 -21
- package/templates/gemini-claw/.gemini/settings.json +6 -1
- package/templates/gemini-claw/GEMINI.md +1 -1
- package/templates/gemini-claw/settings.json +26 -25
- package/web/.svelte-kit/generated/server/internal.js +1 -1
- package/web/.svelte-kit/output/client/.vite/manifest.json +26 -26
- package/{dist/web/_app/immutable/chunks/uD5YsQE1.js → web/.svelte-kit/output/client/_app/immutable/chunks/9nfWZDAH.js} +1 -1
- package/{dist/web/_app/immutable/chunks/ByezTNKv.js → web/.svelte-kit/output/client/_app/immutable/chunks/zsjBVtme.js} +1 -1
- package/web/.svelte-kit/output/client/_app/immutable/entry/{app.Dkba_ZYl.js → app.CDP4hzOl.js} +2 -2
- package/web/.svelte-kit/output/client/_app/immutable/entry/start.k4GcE1y3.js +1 -0
- package/web/.svelte-kit/output/client/_app/immutable/nodes/{0.CFkkEWLe.js → 0.BK2mQuoD.js} +1 -1
- package/web/.svelte-kit/output/client/_app/immutable/nodes/{1.BVylC0w0.js → 1.DsQuFekn.js} +1 -1
- package/web/.svelte-kit/output/client/_app/immutable/nodes/{3.DEhhZBsS.js → 3.BZVFNxO-.js} +1 -1
- package/web/.svelte-kit/output/client/_app/immutable/nodes/{4.C_OhFIXf.js → 4.L2HPGZB4.js} +1 -1
- package/web/.svelte-kit/output/client/_app/immutable/nodes/{5.Bj0bsDBW.js → 5.B4lC9vS4.js} +1 -1
- package/web/.svelte-kit/output/client/_app/version.json +1 -1
- package/web/.svelte-kit/output/server/chunks/internal.js +1 -1
- package/web/.svelte-kit/output/server/manifest-full.js +1 -1
- package/web/.svelte-kit/output/server/manifest.js +1 -1
- package/web/.svelte-kit/output/server/nodes/0.js +1 -1
- package/web/.svelte-kit/output/server/nodes/1.js +1 -1
- package/web/.svelte-kit/output/server/nodes/3.js +1 -1
- package/web/.svelte-kit/output/server/nodes/4.js +1 -1
- package/web/.svelte-kit/output/server/nodes/5.js +1 -1
- package/dist/web/_app/immutable/entry/start.B_seWfvF.js +0 -1
- package/dist/workspace-CEdb2nPR.mjs.map +0 -1
- package/web/.svelte-kit/output/client/_app/immutable/entry/start.B_seWfvF.js +0 -1
package/src/cli/lite.ts
CHANGED
|
@@ -9,8 +9,15 @@ import { registerSubagentCommands } from './subagent-commands.js';
|
|
|
9
9
|
/**
|
|
10
10
|
* clawmini-lite - A standalone client
|
|
11
11
|
*/
|
|
12
|
-
const
|
|
13
|
-
const
|
|
12
|
+
const urlVarName = process.env.CLAW_LITE_URL_VAR || 'CLAW_API_URL';
|
|
13
|
+
const API_URL = process.env.CLAW_LITE_URL_VAR
|
|
14
|
+
? process.env[process.env.CLAW_LITE_URL_VAR]
|
|
15
|
+
: process.env.CLAW_API_URL;
|
|
16
|
+
|
|
17
|
+
const tokenVarName = process.env.CLAW_LITE_API_VAR || 'CLAW_API_TOKEN';
|
|
18
|
+
const API_TOKEN = process.env.CLAW_LITE_API_VAR
|
|
19
|
+
? process.env[process.env.CLAW_LITE_API_VAR]
|
|
20
|
+
: process.env.CLAW_API_TOKEN;
|
|
14
21
|
|
|
15
22
|
function getClient() {
|
|
16
23
|
return createTRPCClient<AppRouter>({
|
|
@@ -35,7 +42,7 @@ program
|
|
|
35
42
|
.description('A standalone client for clawmini')
|
|
36
43
|
.hook('preAction', () => {
|
|
37
44
|
if (!API_URL || !API_TOKEN) {
|
|
38
|
-
console.error(
|
|
45
|
+
console.error(`${urlVarName} and ${tokenVarName} must be set in the environment.`);
|
|
39
46
|
process.exit(1);
|
|
40
47
|
}
|
|
41
48
|
});
|
|
@@ -94,8 +94,16 @@ export class AgentSession {
|
|
|
94
94
|
const proxyUrl = apiCtx.proxy_host
|
|
95
95
|
? `${apiCtx.proxy_host}:${apiCtx.port}`
|
|
96
96
|
: `http://${apiCtx.host}:${apiCtx.port}`;
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
|
|
98
|
+
if (currentAgent.apiUrlEnvVar) {
|
|
99
|
+
env[currentAgent.apiUrlEnvVar] = proxyUrl;
|
|
100
|
+
agentSpecificEnvKeys.add(currentAgent.apiUrlEnvVar);
|
|
101
|
+
env['CLAW_LITE_URL_VAR'] = currentAgent.apiUrlEnvVar;
|
|
102
|
+
agentSpecificEnvKeys.add('CLAW_LITE_URL_VAR');
|
|
103
|
+
} else {
|
|
104
|
+
env['CLAW_API_URL'] = proxyUrl;
|
|
105
|
+
agentSpecificEnvKeys.add('CLAW_API_URL');
|
|
106
|
+
}
|
|
99
107
|
|
|
100
108
|
const token = generateToken({
|
|
101
109
|
chatId: this.chatId,
|
|
@@ -104,8 +112,16 @@ export class AgentSession {
|
|
|
104
112
|
...(this.subagentId ? { subagentId: this.subagentId } : {}),
|
|
105
113
|
timestamp: Date.now(),
|
|
106
114
|
});
|
|
107
|
-
|
|
108
|
-
|
|
115
|
+
|
|
116
|
+
if (currentAgent.apiTokenEnvVar) {
|
|
117
|
+
env[currentAgent.apiTokenEnvVar] = token;
|
|
118
|
+
agentSpecificEnvKeys.add(currentAgent.apiTokenEnvVar);
|
|
119
|
+
env['CLAW_LITE_API_VAR'] = currentAgent.apiTokenEnvVar;
|
|
120
|
+
agentSpecificEnvKeys.add('CLAW_LITE_API_VAR');
|
|
121
|
+
} else {
|
|
122
|
+
env['CLAW_API_TOKEN'] = token;
|
|
123
|
+
agentSpecificEnvKeys.add('CLAW_API_TOKEN');
|
|
124
|
+
}
|
|
109
125
|
}
|
|
110
126
|
|
|
111
127
|
let command = initialCommand;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
2
|
import type { RunCommandFn } from '../agent/types.js';
|
|
3
3
|
|
|
4
|
-
const LOG_TO_TERMINAL =
|
|
4
|
+
const LOG_TO_TERMINAL = false;
|
|
5
5
|
|
|
6
6
|
export const runCommand: RunCommandFn = async ({
|
|
7
7
|
command,
|
|
@@ -11,6 +11,7 @@ export const runCommand: RunCommandFn = async ({
|
|
|
11
11
|
signal,
|
|
12
12
|
}: Parameters<RunCommandFn>[0] & { logToTerminal?: boolean }) => {
|
|
13
13
|
return new Promise<{ stdout: string; stderr: string; exitCode: number }>((resolve, reject) => {
|
|
14
|
+
console.log('RUN: ', command);
|
|
14
15
|
const p = spawn(command, { shell: true, cwd, env, signal });
|
|
15
16
|
|
|
16
17
|
if (stdin && p.stdin) {
|
package/src/shared/config.ts
CHANGED
|
@@ -23,6 +23,8 @@ export const AgentSchema = z.looseObject({
|
|
|
23
23
|
getMessageContent: z.string().optional(),
|
|
24
24
|
})
|
|
25
25
|
.optional(),
|
|
26
|
+
apiTokenEnvVar: z.string().optional(),
|
|
27
|
+
apiUrlEnvVar: z.string().optional(),
|
|
26
28
|
env: z.record(z.string(), z.union([z.string(), z.boolean()])).optional(),
|
|
27
29
|
subagentEnv: z.record(z.string(), z.union([z.string(), z.boolean()])).optional(),
|
|
28
30
|
directory: z.string().optional(),
|
|
@@ -18,4 +18,12 @@
|
|
|
18
18
|
(literal "/dev/null")
|
|
19
19
|
(literal "/dev/ptmx")
|
|
20
20
|
(regex #"^/dev/ttys[0-9]*$")
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
;; deny access to .clawmini folder
|
|
24
|
+
(deny file-read*
|
|
25
|
+
(subpath (string-append (param "WORKSPACE") "/.clawmini"))
|
|
26
|
+
)
|
|
27
|
+
(deny file-write*
|
|
28
|
+
(subpath (string-append (param "WORKSPACE") "/.clawmini"))
|
|
21
29
|
)
|
|
@@ -15,13 +15,12 @@ function isAllowed(hostname) {
|
|
|
15
15
|
return hostname === 'generativelanguage.googleapis.com';
|
|
16
16
|
}
|
|
17
17
|
const content = fs.readFileSync(allowlistPath, 'utf8');
|
|
18
|
-
const allowedDomains = content
|
|
19
|
-
.
|
|
20
|
-
.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
);
|
|
18
|
+
const allowedDomains = content
|
|
19
|
+
.split('\n')
|
|
20
|
+
.map((line) => line.trim())
|
|
21
|
+
.filter((line) => line.length > 0 && !line.startsWith('#'));
|
|
22
|
+
|
|
23
|
+
return allowedDomains.some((domain) => hostname === domain || hostname.endsWith(`.${domain}`));
|
|
25
24
|
} catch (err) {
|
|
26
25
|
console.error('Error reading allowlist:', err);
|
|
27
26
|
return false;
|
|
@@ -32,20 +31,24 @@ const server = http.createServer((req, res) => {
|
|
|
32
31
|
try {
|
|
33
32
|
const url = new URL(req.url);
|
|
34
33
|
if (!isAllowed(url.hostname)) {
|
|
35
|
-
console.log(`[HTTP] Blocked: ${url.hostname}`);
|
|
34
|
+
console.log(`[${new Date().toISOString()}] [HTTP] Blocked: ${url.hostname}`);
|
|
36
35
|
res.writeHead(403);
|
|
37
36
|
res.end('Domain not allowed by proxy allowlist\n');
|
|
38
37
|
return;
|
|
39
38
|
}
|
|
40
|
-
console.log(`[HTTP] Allowed: ${url.hostname}`);
|
|
41
|
-
|
|
42
|
-
const proxyReq = http.request(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
39
|
+
// console.log(`[HTTP] Allowed: ${url.hostname}`);
|
|
40
|
+
|
|
41
|
+
const proxyReq = http.request(
|
|
42
|
+
url,
|
|
43
|
+
{
|
|
44
|
+
method: req.method,
|
|
45
|
+
headers: req.headers,
|
|
46
|
+
},
|
|
47
|
+
(proxyRes) => {
|
|
48
|
+
res.writeHead(proxyRes.statusCode, proxyRes.headers);
|
|
49
|
+
proxyRes.pipe(res, { end: true });
|
|
50
|
+
}
|
|
51
|
+
);
|
|
49
52
|
req.pipe(proxyReq, { end: true });
|
|
50
53
|
proxyReq.on('error', (err) => {
|
|
51
54
|
res.writeHead(500);
|
|
@@ -61,13 +64,15 @@ server.on('connect', (req, clientSocket, head) => {
|
|
|
61
64
|
try {
|
|
62
65
|
const { port, hostname } = new URL(`http://${req.url}`);
|
|
63
66
|
if (!isAllowed(hostname)) {
|
|
64
|
-
|
|
67
|
+
// Log the domain and timestamp
|
|
68
|
+
console.log(`[${new Date().toISOString()}] [HTTPS] Blocked: ${hostname}`);
|
|
65
69
|
clientSocket.write('HTTP/1.1 403 Forbidden\r\n\r\nDomain not allowed by proxy allowlist\n');
|
|
66
70
|
clientSocket.end();
|
|
67
71
|
return;
|
|
68
72
|
}
|
|
69
|
-
|
|
70
|
-
|
|
73
|
+
// Only log blocked domains for now
|
|
74
|
+
// console.log(`[HTTPS] Allowed: ${hostname}`);
|
|
75
|
+
|
|
71
76
|
const serverSocket = net.connect(port || 443, hostname, () => {
|
|
72
77
|
clientSocket.write('HTTP/1.1 200 Connection Established\r\n\r\n');
|
|
73
78
|
serverSocket.write(head);
|
|
@@ -20,6 +20,14 @@
|
|
|
20
20
|
(regex #"^/dev/ttys[0-9]*$")
|
|
21
21
|
)
|
|
22
22
|
|
|
23
|
+
;; deny access to .clawmini folder
|
|
24
|
+
(deny file-read*
|
|
25
|
+
(subpath (string-append (param "WORKSPACE") "/.clawmini"))
|
|
26
|
+
)
|
|
27
|
+
(deny file-write*
|
|
28
|
+
(subpath (string-append (param "WORKSPACE") "/.clawmini"))
|
|
29
|
+
)
|
|
30
|
+
|
|
23
31
|
;; deny all network EXCEPT local proxy and basic network operations
|
|
24
32
|
(deny network-outbound)
|
|
25
33
|
|
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
"apiTokenEnvVar": "GEMINI_CLI_CLAW_API_TOKEN",
|
|
3
|
+
"commands": {
|
|
4
|
+
"new": "gemini --yolo --output-format json --model $MODEL -p \"$CLAW_CLI_MESSAGE\"",
|
|
5
|
+
"append": "gemini --yolo --output-format json --model $MODEL --resume $SESSION_ID -p \"$CLAW_CLI_MESSAGE\"",
|
|
6
|
+
"getSessionId": "jq -r '.session_id'",
|
|
7
|
+
"getMessageContent": "jq -r '.response'"
|
|
8
|
+
},
|
|
9
|
+
"env": {
|
|
10
|
+
"MODEL": "gemini-3.1-pro-preview-customtools",
|
|
11
|
+
"GEMINI_API_KEY": true
|
|
12
|
+
},
|
|
13
|
+
"skillsDir": ".gemini/skills/",
|
|
14
|
+
"fallbacks": [
|
|
15
|
+
{
|
|
16
|
+
"retries": 1
|
|
7
17
|
},
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"retries": 1
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
"env": {
|
|
19
|
-
"MODEL": "gemini-3-flash-preview"
|
|
20
|
-
},
|
|
21
|
-
"retries": 3
|
|
22
|
-
}
|
|
23
|
-
]
|
|
18
|
+
{
|
|
19
|
+
"env": {
|
|
20
|
+
"MODEL": "gemini-3-flash-preview"
|
|
21
|
+
},
|
|
22
|
+
"retries": 3
|
|
23
|
+
}
|
|
24
|
+
]
|
|
24
25
|
}
|
|
@@ -2,7 +2,7 @@ This folder is home. Treat it that way.
|
|
|
2
2
|
|
|
3
3
|
## First Run
|
|
4
4
|
|
|
5
|
-
If `BOOTSTRAP.md` exists, that's your birth certificate. Follow it, figure out who you are, then delete it. You won't need it again. You can remove this instruction from `GEMINI.md` when complete.
|
|
5
|
+
If `BOOTSTRAP.md` exists, that's your birth certificate. Follow it, figure out who you are, then delete it. You won't need it again. You can remove this instruction from `GEMINI.md` when complete. Do not use a subagent for this.
|
|
6
6
|
|
|
7
7
|
## Every Session
|
|
8
8
|
|
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
"apiTokenEnvVar": "GEMINI_CLI_CLAW_API_TOKEN",
|
|
3
|
+
"commands": {
|
|
4
|
+
"new": "gemini --yolo --output-format json --model $MODEL -p \"$CLAW_CLI_MESSAGE\"",
|
|
5
|
+
"append": "gemini --yolo --output-format json --model $MODEL --resume $SESSION_ID -p \"$CLAW_CLI_MESSAGE\"",
|
|
6
|
+
"getSessionId": "jq -r '.session_id'",
|
|
7
|
+
"getMessageContent": "jq -r '.response'"
|
|
8
|
+
},
|
|
9
|
+
"env": {
|
|
10
|
+
"MODEL": "gemini-3.1-pro-preview-customtools",
|
|
11
|
+
"GEMINI_SYSTEM_MD": "true",
|
|
12
|
+
"GEMINI_API_KEY": true
|
|
13
|
+
},
|
|
14
|
+
"subagentEnv": {
|
|
15
|
+
"GEMINI_SYSTEM_MD": ".gemini/subagent-system.md"
|
|
16
|
+
},
|
|
17
|
+
"skillsDir": ".gemini/skills/",
|
|
18
|
+
"fallbacks": [
|
|
19
|
+
{
|
|
20
|
+
"retries": 1
|
|
7
21
|
},
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
},
|
|
16
|
-
"skillsDir": ".gemini/skills/",
|
|
17
|
-
"fallbacks": [
|
|
18
|
-
{
|
|
19
|
-
"retries": 1
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"env": {
|
|
23
|
-
"MODEL": "gemini-3-flash-preview"
|
|
24
|
-
},
|
|
25
|
-
"retries": 3
|
|
26
|
-
}
|
|
27
|
-
]
|
|
22
|
+
{
|
|
23
|
+
"env": {
|
|
24
|
+
"MODEL": "gemini-3-flash-preview"
|
|
25
|
+
},
|
|
26
|
+
"retries": 3
|
|
27
|
+
}
|
|
28
|
+
]
|
|
28
29
|
}
|
|
@@ -25,7 +25,7 @@ export const options = {
|
|
|
25
25
|
app: ({ head, body, assets, nonce, env }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, interactive-widget=resizes-content\" />\n\t\t" + head + "\n\t</head>\n\t<body data-sveltekit-preload-data=\"hover\">\n\t\t<div style=\"display: contents\">" + body + "</div>\n\t</body>\n</html>\n",
|
|
26
26
|
error: ({ status, message }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<title>" + message + "</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\t--bg: white;\n\t\t\t\t--fg: #222;\n\t\t\t\t--divider: #ccc;\n\t\t\t\tbackground: var(--bg);\n\t\t\t\tcolor: var(--fg);\n\t\t\t\tfont-family:\n\t\t\t\t\tsystem-ui,\n\t\t\t\t\t-apple-system,\n\t\t\t\t\tBlinkMacSystemFont,\n\t\t\t\t\t'Segoe UI',\n\t\t\t\t\tRoboto,\n\t\t\t\t\tOxygen,\n\t\t\t\t\tUbuntu,\n\t\t\t\t\tCantarell,\n\t\t\t\t\t'Open Sans',\n\t\t\t\t\t'Helvetica Neue',\n\t\t\t\t\tsans-serif;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.error {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tmax-width: 32rem;\n\t\t\t\tmargin: 0 1rem;\n\t\t\t}\n\n\t\t\t.status {\n\t\t\t\tfont-weight: 200;\n\t\t\t\tfont-size: 3rem;\n\t\t\t\tline-height: 1;\n\t\t\t\tposition: relative;\n\t\t\t\ttop: -0.05rem;\n\t\t\t}\n\n\t\t\t.message {\n\t\t\t\tborder-left: 1px solid var(--divider);\n\t\t\t\tpadding: 0 0 0 1rem;\n\t\t\t\tmargin: 0 0 0 1rem;\n\t\t\t\tmin-height: 2.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t}\n\n\t\t\t.message h1 {\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-size: 1em;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t@media (prefers-color-scheme: dark) {\n\t\t\t\tbody {\n\t\t\t\t\t--bg: #222;\n\t\t\t\t\t--fg: #ddd;\n\t\t\t\t\t--divider: #666;\n\t\t\t\t}\n\t\t\t}\n\t\t</style>\n\t</head>\n\t<body>\n\t\t<div class=\"error\">\n\t\t\t<span class=\"status\">" + status + "</span>\n\t\t\t<div class=\"message\">\n\t\t\t\t<h1>" + message + "</h1>\n\t\t\t</div>\n\t\t</div>\n\t</body>\n</html>\n"
|
|
27
27
|
},
|
|
28
|
-
version_hash: "
|
|
28
|
+
version_hash: "miui9j"
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
export async function get_hooks() {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"../node_modules/@sveltejs/kit/src/runtime/client/entry.js": {
|
|
3
|
-
"file": "_app/immutable/entry/start.
|
|
3
|
+
"file": "_app/immutable/entry/start.k4GcE1y3.js",
|
|
4
4
|
"name": "entry/start",
|
|
5
5
|
"src": "../node_modules/@sveltejs/kit/src/runtime/client/entry.js",
|
|
6
6
|
"isEntry": true,
|
|
7
7
|
"imports": [
|
|
8
|
-
"
|
|
8
|
+
"_9nfWZDAH.js"
|
|
9
9
|
]
|
|
10
10
|
},
|
|
11
11
|
".svelte-kit/generated/client-optimized/app.js": {
|
|
12
|
-
"file": "_app/immutable/entry/app.
|
|
12
|
+
"file": "_app/immutable/entry/app.CDP4hzOl.js",
|
|
13
13
|
"name": "entry/app",
|
|
14
14
|
"src": ".svelte-kit/generated/client-optimized/app.js",
|
|
15
15
|
"isEntry": true,
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
]
|
|
32
32
|
},
|
|
33
33
|
".svelte-kit/generated/client-optimized/nodes/0.js": {
|
|
34
|
-
"file": "_app/immutable/nodes/0.
|
|
34
|
+
"file": "_app/immutable/nodes/0.BK2mQuoD.js",
|
|
35
35
|
"name": "nodes/0",
|
|
36
36
|
"src": ".svelte-kit/generated/client-optimized/nodes/0.js",
|
|
37
37
|
"isEntry": true,
|
|
@@ -45,9 +45,9 @@
|
|
|
45
45
|
"_CK9JZLaG.js",
|
|
46
46
|
"_Zeh-C-mx.js",
|
|
47
47
|
"_Ck-be5J2.js",
|
|
48
|
-
"
|
|
48
|
+
"_zsjBVtme.js",
|
|
49
49
|
"_Drm9vgeP.js",
|
|
50
|
-
"
|
|
50
|
+
"_9nfWZDAH.js",
|
|
51
51
|
"_Ck3rYNON.js",
|
|
52
52
|
"_DsIToJCP.js"
|
|
53
53
|
],
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
]
|
|
57
57
|
},
|
|
58
58
|
".svelte-kit/generated/client-optimized/nodes/1.js": {
|
|
59
|
-
"file": "_app/immutable/nodes/1.
|
|
59
|
+
"file": "_app/immutable/nodes/1.DsQuFekn.js",
|
|
60
60
|
"name": "nodes/1",
|
|
61
61
|
"src": ".svelte-kit/generated/client-optimized/nodes/1.js",
|
|
62
62
|
"isEntry": true,
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"_CME08kGM.js",
|
|
68
68
|
"_DMtIqaiV.js",
|
|
69
69
|
"_DpuLqk8d.js",
|
|
70
|
-
"
|
|
70
|
+
"_zsjBVtme.js"
|
|
71
71
|
]
|
|
72
72
|
},
|
|
73
73
|
".svelte-kit/generated/client-optimized/nodes/2.js": {
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
]
|
|
83
83
|
},
|
|
84
84
|
".svelte-kit/generated/client-optimized/nodes/3.js": {
|
|
85
|
-
"file": "_app/immutable/nodes/3.
|
|
85
|
+
"file": "_app/immutable/nodes/3.BZVFNxO-.js",
|
|
86
86
|
"name": "nodes/3",
|
|
87
87
|
"src": ".svelte-kit/generated/client-optimized/nodes/3.js",
|
|
88
88
|
"isEntry": true,
|
|
@@ -94,14 +94,14 @@
|
|
|
94
94
|
"_B6YN0Nuq.js",
|
|
95
95
|
"_CK9JZLaG.js",
|
|
96
96
|
"_Zeh-C-mx.js",
|
|
97
|
-
"
|
|
97
|
+
"_9nfWZDAH.js",
|
|
98
98
|
"_Drm9vgeP.js",
|
|
99
99
|
"_Ck-be5J2.js",
|
|
100
100
|
"_Ck3rYNON.js"
|
|
101
101
|
]
|
|
102
102
|
},
|
|
103
103
|
".svelte-kit/generated/client-optimized/nodes/4.js": {
|
|
104
|
-
"file": "_app/immutable/nodes/4.
|
|
104
|
+
"file": "_app/immutable/nodes/4.L2HPGZB4.js",
|
|
105
105
|
"name": "nodes/4",
|
|
106
106
|
"src": ".svelte-kit/generated/client-optimized/nodes/4.js",
|
|
107
107
|
"isEntry": true,
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
"_DMtIqaiV.js",
|
|
114
114
|
"_B6YN0Nuq.js",
|
|
115
115
|
"_CK9JZLaG.js",
|
|
116
|
-
"
|
|
116
|
+
"_9nfWZDAH.js",
|
|
117
117
|
"_DsIToJCP.js",
|
|
118
118
|
"_Ck3rYNON.js"
|
|
119
119
|
],
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
]
|
|
123
123
|
},
|
|
124
124
|
".svelte-kit/generated/client-optimized/nodes/5.js": {
|
|
125
|
-
"file": "_app/immutable/nodes/5.
|
|
125
|
+
"file": "_app/immutable/nodes/5.B4lC9vS4.js",
|
|
126
126
|
"name": "nodes/5",
|
|
127
127
|
"src": ".svelte-kit/generated/client-optimized/nodes/5.js",
|
|
128
128
|
"isEntry": true,
|
|
@@ -133,11 +133,19 @@
|
|
|
133
133
|
"_DMtIqaiV.js",
|
|
134
134
|
"_B6YN0Nuq.js",
|
|
135
135
|
"_CK9JZLaG.js",
|
|
136
|
-
"
|
|
136
|
+
"_9nfWZDAH.js",
|
|
137
137
|
"_Drm9vgeP.js",
|
|
138
138
|
"_Ck3rYNON.js"
|
|
139
139
|
]
|
|
140
140
|
},
|
|
141
|
+
"_9nfWZDAH.js": {
|
|
142
|
+
"file": "_app/immutable/chunks/9nfWZDAH.js",
|
|
143
|
+
"name": "entry",
|
|
144
|
+
"imports": [
|
|
145
|
+
"_CME08kGM.js",
|
|
146
|
+
"_DhD271EB.js"
|
|
147
|
+
]
|
|
148
|
+
},
|
|
141
149
|
"_B6YN0Nuq.js": {
|
|
142
150
|
"file": "_app/immutable/chunks/B6YN0Nuq.js",
|
|
143
151
|
"name": "props",
|
|
@@ -152,13 +160,6 @@
|
|
|
152
160
|
"_CME08kGM.js"
|
|
153
161
|
]
|
|
154
162
|
},
|
|
155
|
-
"_ByezTNKv.js": {
|
|
156
|
-
"file": "_app/immutable/chunks/ByezTNKv.js",
|
|
157
|
-
"name": "index",
|
|
158
|
-
"imports": [
|
|
159
|
-
"_uD5YsQE1.js"
|
|
160
|
-
]
|
|
161
|
-
},
|
|
162
163
|
"_CK9JZLaG.js": {
|
|
163
164
|
"file": "_app/immutable/chunks/CK9JZLaG.js",
|
|
164
165
|
"name": "Icon",
|
|
@@ -243,12 +244,11 @@
|
|
|
243
244
|
"_B6YN0Nuq.js"
|
|
244
245
|
]
|
|
245
246
|
},
|
|
246
|
-
"
|
|
247
|
-
"file": "_app/immutable/chunks/
|
|
248
|
-
"name": "
|
|
247
|
+
"_zsjBVtme.js": {
|
|
248
|
+
"file": "_app/immutable/chunks/zsjBVtme.js",
|
|
249
|
+
"name": "index",
|
|
249
250
|
"imports": [
|
|
250
|
-
"
|
|
251
|
-
"_DhD271EB.js"
|
|
251
|
+
"_9nfWZDAH.js"
|
|
252
252
|
]
|
|
253
253
|
}
|
|
254
254
|
}
|