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.
Files changed (70) hide show
  1. package/dist/adapter-discord/index.mjs +1 -1
  2. package/dist/adapter-google-chat/index.mjs +1 -1
  3. package/dist/cli/index.mjs +2 -2
  4. package/dist/cli/lite.mjs +5 -3
  5. package/dist/cli/lite.mjs.map +1 -1
  6. package/dist/cli/propose-policy.mjs +2 -0
  7. package/dist/cli/propose-policy.mjs.map +1 -1
  8. package/dist/daemon/index.mjs +23 -8
  9. package/dist/daemon/index.mjs.map +1 -1
  10. package/dist/{lite-BbCFgEjn.mjs → lite-CBxOT1y5.mjs} +2 -2
  11. package/dist/{lite-BbCFgEjn.mjs.map → lite-CBxOT1y5.mjs.map} +1 -1
  12. package/{web/.svelte-kit/output/client/_app/immutable/chunks/uD5YsQE1.js → dist/web/_app/immutable/chunks/9nfWZDAH.js} +1 -1
  13. package/{web/.svelte-kit/output/client/_app/immutable/chunks/ByezTNKv.js → dist/web/_app/immutable/chunks/zsjBVtme.js} +1 -1
  14. package/dist/web/_app/immutable/entry/{app.Dkba_ZYl.js → app.CDP4hzOl.js} +2 -2
  15. package/dist/web/_app/immutable/entry/start.k4GcE1y3.js +1 -0
  16. package/dist/web/_app/immutable/nodes/{0.CFkkEWLe.js → 0.BK2mQuoD.js} +1 -1
  17. package/dist/web/_app/immutable/nodes/{1.BVylC0w0.js → 1.DsQuFekn.js} +1 -1
  18. package/dist/web/_app/immutable/nodes/{3.DEhhZBsS.js → 3.BZVFNxO-.js} +1 -1
  19. package/dist/web/_app/immutable/nodes/{4.C_OhFIXf.js → 4.L2HPGZB4.js} +1 -1
  20. package/dist/web/_app/immutable/nodes/{5.Bj0bsDBW.js → 5.B4lC9vS4.js} +1 -1
  21. package/dist/web/_app/version.json +1 -1
  22. package/dist/web/index.html +6 -6
  23. package/dist/{workspace-CEdb2nPR.mjs → workspace-BJmJBfKi.mjs} +3 -1
  24. package/dist/workspace-BJmJBfKi.mjs.map +1 -0
  25. package/docs/23_custom_token_env/development_log.md +31 -0
  26. package/docs/23_custom_token_env/notes.md +16 -0
  27. package/docs/23_custom_token_env/prd.md +42 -0
  28. package/docs/23_custom_token_env/questions.md +8 -0
  29. package/docs/23_custom_token_env/tickets.md +54 -0
  30. package/napkin.md +1 -0
  31. package/package.json +1 -1
  32. package/src/adapter-google-chat/client.test.ts +1 -1
  33. package/src/cli/e2e/daemon.test.ts +103 -0
  34. package/src/cli/e2e/messages.test.ts +5 -2
  35. package/src/cli/lite.ts +10 -3
  36. package/src/daemon/agent/agent-session.ts +20 -4
  37. package/src/daemon/utils/spawn.ts +2 -1
  38. package/src/shared/config.ts +2 -0
  39. package/templates/environments/macos/sandbox.sb +8 -0
  40. package/templates/environments/macos-proxy/allowlist.txt +4 -0
  41. package/templates/environments/macos-proxy/proxy.mjs +25 -20
  42. package/templates/environments/macos-proxy/sandbox.sb +8 -0
  43. package/templates/gemini/.gemini/settings.json +6 -1
  44. package/templates/gemini/settings.json +22 -21
  45. package/templates/gemini-claw/.gemini/settings.json +6 -1
  46. package/templates/gemini-claw/GEMINI.md +1 -1
  47. package/templates/gemini-claw/settings.json +26 -25
  48. package/web/.svelte-kit/generated/server/internal.js +1 -1
  49. package/web/.svelte-kit/output/client/.vite/manifest.json +26 -26
  50. package/{dist/web/_app/immutable/chunks/uD5YsQE1.js → web/.svelte-kit/output/client/_app/immutable/chunks/9nfWZDAH.js} +1 -1
  51. package/{dist/web/_app/immutable/chunks/ByezTNKv.js → web/.svelte-kit/output/client/_app/immutable/chunks/zsjBVtme.js} +1 -1
  52. package/web/.svelte-kit/output/client/_app/immutable/entry/{app.Dkba_ZYl.js → app.CDP4hzOl.js} +2 -2
  53. package/web/.svelte-kit/output/client/_app/immutable/entry/start.k4GcE1y3.js +1 -0
  54. package/web/.svelte-kit/output/client/_app/immutable/nodes/{0.CFkkEWLe.js → 0.BK2mQuoD.js} +1 -1
  55. package/web/.svelte-kit/output/client/_app/immutable/nodes/{1.BVylC0w0.js → 1.DsQuFekn.js} +1 -1
  56. package/web/.svelte-kit/output/client/_app/immutable/nodes/{3.DEhhZBsS.js → 3.BZVFNxO-.js} +1 -1
  57. package/web/.svelte-kit/output/client/_app/immutable/nodes/{4.C_OhFIXf.js → 4.L2HPGZB4.js} +1 -1
  58. package/web/.svelte-kit/output/client/_app/immutable/nodes/{5.Bj0bsDBW.js → 5.B4lC9vS4.js} +1 -1
  59. package/web/.svelte-kit/output/client/_app/version.json +1 -1
  60. package/web/.svelte-kit/output/server/chunks/internal.js +1 -1
  61. package/web/.svelte-kit/output/server/manifest-full.js +1 -1
  62. package/web/.svelte-kit/output/server/manifest.js +1 -1
  63. package/web/.svelte-kit/output/server/nodes/0.js +1 -1
  64. package/web/.svelte-kit/output/server/nodes/1.js +1 -1
  65. package/web/.svelte-kit/output/server/nodes/3.js +1 -1
  66. package/web/.svelte-kit/output/server/nodes/4.js +1 -1
  67. package/web/.svelte-kit/output/server/nodes/5.js +1 -1
  68. package/dist/web/_app/immutable/entry/start.B_seWfvF.js +0 -1
  69. package/dist/workspace-CEdb2nPR.mjs.map +0 -1
  70. 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 API_URL = process.env.CLAW_API_URL;
13
- const API_TOKEN = process.env.CLAW_API_TOKEN;
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('CLAW_API_URL and CLAW_API_TOKEN must be set in the environment.');
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
- env['CLAW_API_URL'] = proxyUrl;
98
- agentSpecificEnvKeys.add('CLAW_API_URL');
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
- env['CLAW_API_TOKEN'] = token;
108
- agentSpecificEnvKeys.add('CLAW_API_TOKEN');
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 = true;
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) {
@@ -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
  )
@@ -1 +1,5 @@
1
+ # Gemini CLI
1
2
  generativelanguage.googleapis.com
3
+ oauth2.googleapis.com
4
+ play.googleapis.com
5
+ cloudcode-pa.googleapis.com
@@ -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.split('\n')
19
- .map(line => line.trim())
20
- .filter(line => line.length > 0 && !line.startsWith('#'));
21
-
22
- return allowedDomains.some(domain =>
23
- hostname === domain || hostname.endsWith(`.${domain}`)
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(url, {
43
- method: req.method,
44
- headers: req.headers,
45
- }, (proxyRes) => {
46
- res.writeHead(proxyRes.statusCode, proxyRes.headers);
47
- proxyRes.pipe(res, { end: true });
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
- console.log(`[HTTPS] Blocked: ${hostname}`);
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
- console.log(`[HTTPS] Allowed: ${hostname}`);
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
 
@@ -3,9 +3,14 @@
3
3
  "tools": {
4
4
  "exclude": [
5
5
  "ask_user",
6
- "save_memory"
6
+ "save_memory",
7
+ "enter_plan_mode",
8
+ "exit_plan_mode"
7
9
  ]
8
10
  },
11
+ "experimental": {
12
+ "enableAgents": false
13
+ },
9
14
  "hooks": {
10
15
  "BeforeTool": [
11
16
  {
@@ -1,24 +1,25 @@
1
1
  {
2
- "commands": {
3
- "new": "gemini --output-format json --model $MODEL -p \"$CLAW_CLI_MESSAGE\"",
4
- "append": "gemini --output-format json --model $MODEL --resume $SESSION_ID -p \"$CLAW_CLI_MESSAGE\"",
5
- "getSessionId": "jq -r '.session_id'",
6
- "getMessageContent": "jq -r '.response'"
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
- "env": {
9
- "MODEL": "gemini-3.1-pro-preview-customtools",
10
- "GEMINI_API_KEY": true
11
- },
12
- "skillsDir": ".gemini/skills/",
13
- "fallbacks": [
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
  }
@@ -3,9 +3,14 @@
3
3
  "tools": {
4
4
  "exclude": [
5
5
  "ask_user",
6
- "save_memory"
6
+ "save_memory",
7
+ "enter_plan_mode",
8
+ "exit_plan_mode"
7
9
  ]
8
10
  },
11
+ "experimental": {
12
+ "enableAgents": false
13
+ },
9
14
  "hooks": {
10
15
  "BeforeTool": [
11
16
  {
@@ -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
- "commands": {
3
- "new": "gemini --output-format json --model $MODEL -p \"$CLAW_CLI_MESSAGE\"",
4
- "append": "gemini --output-format json --model $MODEL --resume $SESSION_ID -p \"$CLAW_CLI_MESSAGE\"",
5
- "getSessionId": "jq -r '.session_id'",
6
- "getMessageContent": "jq -r '.response'"
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
- "env": {
9
- "MODEL": "gemini-3.1-pro-preview-customtools",
10
- "GEMINI_SYSTEM_MD": "true",
11
- "GEMINI_API_KEY": true
12
- },
13
- "subagentEnv": {
14
- "GEMINI_SYSTEM_MD": ".gemini/subagent-system.md"
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: "461bpx"
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.B_seWfvF.js",
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
- "_uD5YsQE1.js"
8
+ "_9nfWZDAH.js"
9
9
  ]
10
10
  },
11
11
  ".svelte-kit/generated/client-optimized/app.js": {
12
- "file": "_app/immutable/entry/app.Dkba_ZYl.js",
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.CFkkEWLe.js",
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
- "_ByezTNKv.js",
48
+ "_zsjBVtme.js",
49
49
  "_Drm9vgeP.js",
50
- "_uD5YsQE1.js",
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.BVylC0w0.js",
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
- "_ByezTNKv.js"
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.DEhhZBsS.js",
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
- "_uD5YsQE1.js",
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.C_OhFIXf.js",
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
- "_uD5YsQE1.js",
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.Bj0bsDBW.js",
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
- "_uD5YsQE1.js",
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
- "_uD5YsQE1.js": {
247
- "file": "_app/immutable/chunks/uD5YsQE1.js",
248
- "name": "entry",
247
+ "_zsjBVtme.js": {
248
+ "file": "_app/immutable/chunks/zsjBVtme.js",
249
+ "name": "index",
249
250
  "imports": [
250
- "_CME08kGM.js",
251
- "_DhD271EB.js"
251
+ "_9nfWZDAH.js"
252
252
  ]
253
253
  }
254
254
  }