{
	"name": "@fuzdev/zzz",
	"repo_name": "zzz",
	"repo_url": "https://github.com/fuzdev/zzz",
	"owner_name": "fuzdev",
	"homepage_url": "https://www.zzz.software/",
	"logo_url": "https://www.zzz.software/logo.svg",
	"logo_alt": "three sleepy z's",
	"npm_url": null,
	"changelog_url": null,
	"published": false,
	"package_json": {
		"name": "@fuzdev/zzz",
		"version": "0.0.1",
		"description": "local-first forge for power users and devs",
		"motto": "nice web things for the tired",
		"glyph": "💤",
		"logo": "logo.svg",
		"logo_alt": "three sleepy z's",
		"license": "MIT",
		"homepage": "https://www.zzz.software/",
		"repository": "https://github.com/fuzdev/zzz",
		"author": {
			"name": "Ryan Atkinson",
			"email": "mail@ryanatkn.com",
			"url": "https://www.ryanatkn.com/"
		},
		"bugs": "https://github.com/fuzdev/zzz/issues",
		"funding": "https://www.ryanatkn.com/funding",
		"scripts": {
			"start": "gro dev",
			"dev": "gro dev",
			"build": "gro build",
			"check": "gro check",
			"typecheck": "gro typecheck",
			"test": "gro test",
			"preview": "vite preview",
			"deploy": "gro deploy",
			"serve": "gro build && npm run preview & node dist_server/server/server.js"
		},
		"type": "module",
		"engines": {
			"node": ">=22.15"
		},
		"peerDependencies": {
			"@sveltejs/kit": "^2",
			"svelte": "^5"
		},
		"devDependencies": {
			"@changesets/changelog-git": "^0.2.1",
			"@fuzdev/fuz_code": "^0.45.1",
			"@fuzdev/fuz_css": "^0.57.0",
			"@fuzdev/fuz_ui": "^0.191.1",
			"@fuzdev/fuz_util": "^0.55.0",
			"@jridgewell/trace-mapping": "^0.3.31",
			"@ryanatkn/eslint-config": "^0.9.0",
			"@sveltejs/adapter-node": "^5.4.0",
			"@sveltejs/adapter-static": "^3.0.10",
			"@sveltejs/kit": "^2.55.0",
			"@sveltejs/vite-plugin-svelte": "^6.2.4",
			"@types/estree": "^1.0.8",
			"@types/node": "^24.10.1",
			"@webref/css": "^8.2.0",
			"eslint": "^9.39.1",
			"eslint-plugin-svelte": "^3.13.1",
			"jsdom": "^27.2.0",
			"magic-string": "^0.30.21",
			"ollama": "^0.6.3",
			"prettier": "^3.7.4",
			"prettier-plugin-svelte": "^3.4.1",
			"svelte": "^5.54.0",
			"svelte-check": "^4.4.5",
			"svelte2tsx": "^0.7.52",
			"tslib": "^2.8.1",
			"typescript": "^5.9.3",
			"typescript-eslint": "^8.48.1",
			"vitest": "^4.0.15",
			"zimmerframe": "^1.1.4"
		},
		"dependencies": {
			"@anthropic-ai/sdk": "^0.71.2",
			"@fuzdev/gro": "^0.197.1",
			"@google/generative-ai": "^0.24.1",
			"@hono/node-server": "^1.19.6",
			"@hono/node-ws": "^1.2.0",
			"date-fns": "^4.1.0",
			"esm-env": "^1.2.2",
			"hono": "^4.10.7",
			"openai": "^6.10.0",
			"zod": "^4.3.6"
		},
		"prettier": {
			"plugins": [
				"prettier-plugin-svelte"
			],
			"useTabs": true,
			"printWidth": 100,
			"singleQuote": true,
			"bracketSpacing": false,
			"overrides": [
				{
					"files": "package.json",
					"options": {
						"useTabs": false
					}
				}
			]
		},
		"sideEffects": [
			"**/*.css"
		],
		"files": [
			"dist"
		],
		"exports": {
			"./package.json": "./package.json",
			"./*.js": {
				"types": "./dist/*.d.ts",
				"default": "./dist/*.js"
			},
			"./*.ts": {
				"types": "./dist/*.d.ts",
				"default": "./dist/*.js"
			},
			"./*.svelte": {
				"types": "./dist/*.svelte.d.ts",
				"svelte": "./dist/*.svelte",
				"default": "./dist/*.svelte"
			}
		}
	},
	"source_json": {
		"name": "@fuzdev/zzz",
		"version": "0.0.1",
		"modules": [
			{
				"path": "action_collection_helpers.ts",
				"declarations": [
					{
						"name": "parse_action_input",
						"kind": "function",
						"doc_comment": "Parse action params with validation.",
						"source_line": 8,
						"type_signature": "<TMethod extends keyof typeof ActionInputs>(method: TMethod, data: unknown): ActionInputs[TMethod]",
						"return_type": "ActionInputs[TMethod]",
						"parameters": [
							{
								"name": "method",
								"type": "TMethod"
							},
							{
								"name": "data",
								"type": "unknown"
							}
						]
					},
					{
						"name": "parse_action_output",
						"kind": "function",
						"doc_comment": "Parse action result with validation.",
						"source_line": 16,
						"type_signature": "<TMethod extends keyof typeof ActionOutputs>(method: TMethod, data: unknown): ActionOutputs[TMethod]",
						"return_type": "ActionOutputs[TMethod]",
						"parameters": [
							{
								"name": "method",
								"type": "TMethod"
							},
							{
								"name": "data",
								"type": "unknown"
							}
						]
					},
					{
						"name": "safe_parse_action_input",
						"kind": "function",
						"doc_comment": "Safe parse action params.",
						"source_line": 24,
						"type_signature": "<TMethod extends keyof typeof ActionInputs>(method: TMethod, data: unknown): ZodSafeParseResult<ActionInputs[TMethod]>",
						"return_type": "ZodSafeParseResult<ActionInputs[TMethod]>",
						"parameters": [
							{
								"name": "method",
								"type": "TMethod"
							},
							{
								"name": "data",
								"type": "unknown"
							}
						]
					},
					{
						"name": "safe_parse_action_output",
						"kind": "function",
						"doc_comment": "Safe parse action result.",
						"source_line": 33,
						"type_signature": "<TMethod extends keyof typeof ActionOutputs>(method: TMethod, data: unknown): ZodSafeParseResult<ActionOutputs[TMethod]>",
						"return_type": "ZodSafeParseResult<ActionOutputs[TMethod]>",
						"parameters": [
							{
								"name": "method",
								"type": "TMethod"
							},
							{
								"name": "data",
								"type": "unknown"
							}
						]
					}
				],
				"dependencies": [
					"action_collections.ts"
				],
				"dependents": [
					"action_event.ts"
				]
			},
			{
				"path": "action_collections.gen.ts",
				"declarations": [],
				"dependencies": [
					"action_helpers.ts",
					"action_registry.ts",
					"action_spec.ts",
					"action_specs.ts",
					"codegen.ts"
				]
			},
			{
				"path": "action_collections.ts",
				"declarations": [
					{
						"name": "ActionMethods",
						"kind": "type",
						"doc_comment": "All method types combined.",
						"source_line": 16,
						"type_signature": "ZodEnum<{ completion_create: \"completion_create\"; completion_progress: \"completion_progress\"; directory_create: \"directory_create\"; diskfile_delete: \"diskfile_delete\"; diskfile_update: \"diskfile_update\"; ... 14 more ...; toggle_main_menu: \"toggle_main_menu\"; }>"
					},
					{
						"name": "ActionSpecs",
						"kind": "type",
						"doc_comment": "Action specifications indexed by method name.\nThese represent the complete action spec definitions.",
						"source_line": 44,
						"type_signature": "{ readonly completion_create: { method: \"completion_create\"; kind: \"request_response\"; initiator: \"frontend\"; auth: \"public\"; side_effects: true; input: ZodObject<{ completion_request: ZodObject<{ created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; provider_name: ZodEnum<...>; model: ZodString; prom..."
					},
					{
						"name": "action_specs",
						"kind": "variable",
						"source_line": 89,
						"type_signature": "({ method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"; ... 6 more ...; async: true; } | { ...; } | { ...; })[]"
					},
					{
						"name": "ActionInputs",
						"kind": "type",
						"doc_comment": "Action parameter schemas indexed by method name.\nThese represent the input data for each action,\ne.g. JSON-RPC request/notification params and local call arguments.",
						"source_line": 96,
						"type_signature": "{ readonly completion_create: ZodObject<{ completion_request: ZodObject<{ created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; provider_name: ZodEnum<...>; model: ZodString; prompt: ZodString; completion_messages: ZodOptional<...>; }, $strict>; _meta: ZodOptional<...>; }, $strict>; ... 18 more ...; r..."
					},
					{
						"name": "ActionOutputs",
						"kind": "type",
						"doc_comment": "Action result schemas indexed by method name.\nThese represent the output data for each action,\ne.g. JSON-RPC response results and local call return values.",
						"source_line": 146,
						"type_signature": "{ readonly completion_create: ZodObject<{ completion_response: ZodObject<{ created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; provider_name: ZodEnum<...>; model: ZodString; data: ZodDiscriminatedUnion<...>; }, $strict>; _meta: ZodOptional<...>; }, $strict>; ... 18 more ...; readonly toggle_main_men..."
					},
					{
						"name": "ActionEventDatas",
						"kind": "type",
						"doc_comment": "Action event data types indexed by method name.\nThese represent the full discriminated union of all possible states\nfor each action's event data, properly typed with inputs and outputs.",
						"source_line": 196,
						"type_signature": "ActionEventDatas",
						"properties": [
							{
								"name": "completion_create",
								"kind": "variable",
								"type_signature": "ActionEventRequestResponseData<'completion_create'>"
							},
							{
								"name": "completion_progress",
								"kind": "variable",
								"type_signature": "ActionEventRemoteNotificationData<'completion_progress'>"
							},
							{
								"name": "directory_create",
								"kind": "variable",
								"type_signature": "ActionEventRequestResponseData<'directory_create'>"
							},
							{
								"name": "diskfile_delete",
								"kind": "variable",
								"type_signature": "ActionEventRequestResponseData<'diskfile_delete'>"
							},
							{
								"name": "diskfile_update",
								"kind": "variable",
								"type_signature": "ActionEventRequestResponseData<'diskfile_update'>"
							},
							{
								"name": "filer_change",
								"kind": "variable",
								"type_signature": "ActionEventRemoteNotificationData<'filer_change'>"
							},
							{
								"name": "ollama_copy",
								"kind": "variable",
								"type_signature": "ActionEventRequestResponseData<'ollama_copy'>"
							},
							{
								"name": "ollama_create",
								"kind": "variable",
								"type_signature": "ActionEventRequestResponseData<'ollama_create'>"
							},
							{
								"name": "ollama_delete",
								"kind": "variable",
								"type_signature": "ActionEventRequestResponseData<'ollama_delete'>"
							},
							{
								"name": "ollama_list",
								"kind": "variable",
								"type_signature": "ActionEventRequestResponseData<'ollama_list'>"
							},
							{
								"name": "ollama_progress",
								"kind": "variable",
								"type_signature": "ActionEventRemoteNotificationData<'ollama_progress'>"
							},
							{
								"name": "ollama_ps",
								"kind": "variable",
								"type_signature": "ActionEventRequestResponseData<'ollama_ps'>"
							},
							{
								"name": "ollama_pull",
								"kind": "variable",
								"type_signature": "ActionEventRequestResponseData<'ollama_pull'>"
							},
							{
								"name": "ollama_show",
								"kind": "variable",
								"type_signature": "ActionEventRequestResponseData<'ollama_show'>"
							},
							{
								"name": "ollama_unload",
								"kind": "variable",
								"type_signature": "ActionEventRequestResponseData<'ollama_unload'>"
							},
							{
								"name": "ping",
								"kind": "variable",
								"type_signature": "ActionEventRequestResponseData<'ping'>"
							},
							{
								"name": "provider_load_status",
								"kind": "variable",
								"type_signature": "ActionEventRequestResponseData<'provider_load_status'>"
							},
							{
								"name": "provider_update_api_key",
								"kind": "variable",
								"type_signature": "ActionEventRequestResponseData<'provider_update_api_key'>"
							},
							{
								"name": "session_load",
								"kind": "variable",
								"type_signature": "ActionEventRequestResponseData<'session_load'>"
							},
							{
								"name": "toggle_main_menu",
								"kind": "variable",
								"type_signature": "ActionEventLocalCallData<'toggle_main_menu'>"
							}
						]
					}
				],
				"dependencies": [
					"action_specs.ts"
				],
				"dependents": [
					"action.svelte.ts",
					"action_collection_helpers.ts",
					"frontend.svelte.ts",
					"server/backend_provider_ollama.ts",
					"server/helpers.ts",
					"server/server.ts"
				]
			},
			{
				"path": "action_event_data.ts",
				"declarations": [
					{
						"name": "ActionEventData",
						"kind": "type",
						"source_line": 17,
						"type_signature": "ZodObject<{ kind: ZodEnum<{ request_response: \"request_response\"; remote_notification: \"remote_notification\"; local_call: \"local_call\"; }>; phase: ZodEnum<{ send_request: \"send_request\"; ... 7 more ...; execute: \"execute\"; }>; ... 9 more ...; notification: ZodNullable<...>; }, $strict>"
					},
					{
						"name": "ActionEventRequestResponseData",
						"kind": "type",
						"source_line": 35,
						"type_signature": "ActionEventRequestResponseData<TMethod>",
						"generic_params": [
							{
								"name": "TMethod",
								"constraint": "ActionMethod",
								"default_type": "ActionMethod"
							}
						]
					},
					{
						"name": "ActionEventRemoteNotificationData",
						"kind": "type",
						"source_line": 431,
						"type_signature": "ActionEventRemoteNotificationData<TMethod>",
						"generic_params": [
							{
								"name": "TMethod",
								"constraint": "ActionMethod",
								"default_type": "ActionMethod"
							}
						]
					},
					{
						"name": "ActionEventLocalCallData",
						"kind": "type",
						"source_line": 573,
						"type_signature": "ActionEventLocalCallData<TMethod>",
						"generic_params": [
							{
								"name": "TMethod",
								"constraint": "ActionMethod",
								"default_type": "ActionMethod"
							}
						]
					},
					{
						"name": "ActionEventDataUnion",
						"kind": "type",
						"source_line": 646,
						"type_signature": "ActionEventDataUnion<TMethod>",
						"generic_params": [
							{
								"name": "TMethod",
								"constraint": "ActionMethod",
								"default_type": "ActionMethod"
							}
						]
					}
				],
				"dependencies": [
					"action_event_types.ts",
					"action_metatypes.ts",
					"action_types.ts",
					"jsonrpc.ts"
				],
				"dependents": [
					"action.svelte.ts",
					"action_event.ts"
				]
			},
			{
				"path": "action_event_helpers.ts",
				"declarations": [
					{
						"name": "is_request_response",
						"kind": "function",
						"source_line": 25,
						"type_signature": "(data: { kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }): data is ActionEventRequestResponseData",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "data",
								"type": "{ kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }"
							}
						]
					},
					{
						"name": "is_remote_notification",
						"kind": "function",
						"source_line": 29,
						"type_signature": "(data: { kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }): data is ActionEventRemoteNotificationData",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "data",
								"type": "{ kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }"
							}
						]
					},
					{
						"name": "is_local_call",
						"kind": "function",
						"source_line": 33,
						"type_signature": "(data: { kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }): data is ActionEventLocalCallData",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "data",
								"type": "{ kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }"
							}
						]
					},
					{
						"name": "is_send_request",
						"kind": "function",
						"source_line": 37,
						"type_signature": "(data: { kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }): data is ({ ...; } & { ...; }) | ... 3 more ... | ({ ...; } & { ...; })",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "data",
								"type": "{ kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }"
							}
						]
					},
					{
						"name": "is_receive_request",
						"kind": "function",
						"source_line": 42,
						"type_signature": "(data: { kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }): data is ({ ...; } & { ...; }) | ... 3 more ... | ({ ...; } & { ...; })",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "data",
								"type": "{ kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }"
							}
						]
					},
					{
						"name": "is_send_response",
						"kind": "function",
						"source_line": 47,
						"type_signature": "(data: { kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }): data is ({ ...; } & { ...; }) | ... 3 more ... | ({ ...; } & { ...; })",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "data",
								"type": "{ kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }"
							}
						]
					},
					{
						"name": "is_receive_response",
						"kind": "function",
						"source_line": 52,
						"type_signature": "(data: { kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }): data is ({ ...; } & { ...; }) | ... 3 more ... | ({ ...; } & { ...; })",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "data",
								"type": "{ kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }"
							}
						]
					},
					{
						"name": "is_notification_send",
						"kind": "function",
						"source_line": 57,
						"type_signature": "(data: { kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }): data is ({ ...; } & { ...; }) | ... 3 more ... | ({ ...; } & { ...; })",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "data",
								"type": "{ kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }"
							}
						]
					},
					{
						"name": "is_notification_receive",
						"kind": "function",
						"source_line": 62,
						"type_signature": "(data: { kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }): data is ({ ...; } & { ...; }) | ... 3 more ... | ({ ...; } & { ...; })",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "data",
								"type": "{ kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }"
							}
						]
					},
					{
						"name": "is_execute",
						"kind": "function",
						"source_line": 67,
						"type_signature": "(data: { kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }): data is ActionEventLocalCallData & { ...; }",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "data",
								"type": "{ kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }"
							}
						]
					},
					{
						"name": "is_initial",
						"kind": "function",
						"source_line": 73,
						"type_signature": "(data: { kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }): data is { ...; } & { ...; }",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "data",
								"type": "{ kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }"
							}
						]
					},
					{
						"name": "is_parsed",
						"kind": "function",
						"source_line": 76,
						"type_signature": "(data: { kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }): data is { ...; } & { ...; }",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "data",
								"type": "{ kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }"
							}
						]
					},
					{
						"name": "is_handling",
						"kind": "function",
						"source_line": 79,
						"type_signature": "(data: { kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }): data is { ...; } & { ...; }",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "data",
								"type": "{ kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }"
							}
						]
					},
					{
						"name": "is_handled",
						"kind": "function",
						"source_line": 82,
						"type_signature": "(data: { kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }): data is { ...; } & { ...; }",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "data",
								"type": "{ kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }"
							}
						]
					},
					{
						"name": "is_failed",
						"kind": "function",
						"source_line": 85,
						"type_signature": "(data: { kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }): data is { ...; } & { ...; }",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "data",
								"type": "{ kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }"
							}
						]
					},
					{
						"name": "is_send_request_with_parsed_input",
						"kind": "function",
						"source_line": 91,
						"type_signature": "<TMethod extends ActionMethod = \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | ... 11 more ... | \"toggle_main_menu\">(data: { ...; }): data is ({ ...; } & { ...; }) | ({ ...; } & { ...; })",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "data",
								"type": "{ kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }"
							}
						]
					},
					{
						"name": "is_notification_send_with_parsed_input",
						"kind": "function",
						"source_line": 99,
						"type_signature": "<TMethod extends ActionMethod = \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | ... 11 more ... | \"toggle_main_menu\">(data: { ...; }): data is ({ ...; } & { ...; }) | ({ ...; } & { ...; })",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "data",
								"type": "{ kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }"
							}
						]
					},
					{
						"name": "validate_step_transition",
						"kind": "function",
						"source_line": 108,
						"type_signature": "(from: \"initial\" | \"parsed\" | \"handling\" | \"handled\" | \"failed\", to: \"initial\" | \"parsed\" | \"handling\" | \"handled\" | \"failed\"): void",
						"return_type": "void",
						"parameters": [
							{
								"name": "from",
								"type": "\"initial\" | \"parsed\" | \"handling\" | \"handled\" | \"failed\""
							},
							{
								"name": "to",
								"type": "\"initial\" | \"parsed\" | \"handling\" | \"handled\" | \"failed\""
							}
						]
					},
					{
						"name": "validate_phase_for_kind",
						"kind": "function",
						"source_line": 115,
						"type_signature": "(kind: \"request_response\" | \"remote_notification\" | \"local_call\", phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"): void",
						"return_type": "void",
						"parameters": [
							{
								"name": "kind",
								"type": "\"request_response\" | \"remote_notification\" | \"local_call\""
							},
							{
								"name": "phase",
								"type": "\"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\""
							}
						]
					},
					{
						"name": "validate_phase_transition",
						"kind": "function",
						"source_line": 122,
						"type_signature": "(from: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\", to: \"send_request\" | \"receive_request\" | ... 6 more ... | \"execute\"): void",
						"return_type": "void",
						"parameters": [
							{
								"name": "from",
								"type": "\"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\""
							},
							{
								"name": "to",
								"type": "\"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\""
							}
						]
					},
					{
						"name": "get_initial_phase",
						"kind": "function",
						"source_line": 129,
						"type_signature": "(kind: \"request_response\" | \"remote_notification\" | \"local_call\", initiator: \"frontend\" | \"backend\" | \"both\", executor: \"frontend\" | \"backend\"): \"send_request\" | \"receive_request\" | ... 7 more ... | null",
						"return_type": "\"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\" | null",
						"parameters": [
							{
								"name": "kind",
								"type": "\"request_response\" | \"remote_notification\" | \"local_call\""
							},
							{
								"name": "initiator",
								"type": "\"frontend\" | \"backend\" | \"both\""
							},
							{
								"name": "executor",
								"type": "\"frontend\" | \"backend\""
							}
						]
					},
					{
						"name": "should_validate_output",
						"kind": "function",
						"source_line": 146,
						"type_signature": "(kind: \"request_response\" | \"remote_notification\" | \"local_call\", phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"): boolean",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "kind",
								"type": "\"request_response\" | \"remote_notification\" | \"local_call\""
							},
							{
								"name": "phase",
								"type": "\"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\""
							}
						]
					},
					{
						"name": "is_action_complete",
						"kind": "function",
						"source_line": 150,
						"type_signature": "(data: { kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }): boolean",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "data",
								"type": "{ kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }"
							}
						]
					},
					{
						"name": "create_initial_data",
						"kind": "function",
						"source_line": 159,
						"type_signature": "(kind: \"request_response\" | \"remote_notification\" | \"local_call\", phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\", method: \"completion_create\" | ... 18 more ... | \"toggle_main_menu\", executor: \"frontend\" | \"backend\", input: unknown): { ...; }",
						"return_type": "{ kind: \"request_response\" | \"remote_notification\" | \"local_call\"; phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"; ... 9 more ...; notification: { ...; } | null; }",
						"parameters": [
							{
								"name": "kind",
								"type": "\"request_response\" | \"remote_notification\" | \"local_call\""
							},
							{
								"name": "phase",
								"type": "\"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\""
							},
							{
								"name": "method",
								"type": "\"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\""
							},
							{
								"name": "executor",
								"type": "\"frontend\" | \"backend\""
							},
							{
								"name": "input",
								"type": "unknown"
							}
						]
					},
					{
						"name": "extract_action_result",
						"kind": "function",
						"source_line": 180,
						"type_signature": "(event: ActionEvent<\"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\", ActionEventEnvironment, \"send_request\" | ... 7 more ... | \"execute\", \"initial\" | ... 3 more ... | \"failed\">): Result<...>",
						"return_type": "Result<{ value: unknown; }, { error: { [x: string]: unknown; code: -32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<\"JsonrpcServerErrorCode\">); message: string; data?: unknown; }; }>",
						"parameters": [
							{
								"name": "event",
								"type": "ActionEvent<\"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\", ActionEventEnvironment, \"send_request\" | ... 7 more ... | \"execute\", \"initial\" | ... 3 more..."
							}
						]
					}
				],
				"dependencies": [
					"action_event_types.ts"
				],
				"dependents": [
					"action.svelte.ts",
					"action_event.ts",
					"frontend_actions_api.ts"
				]
			},
			{
				"path": "action_event_types.ts",
				"declarations": [
					{
						"name": "ActionEventStep",
						"kind": "type",
						"source_line": 12,
						"type_signature": "ZodEnum<{ initial: \"initial\"; parsed: \"parsed\"; handling: \"handling\"; handled: \"handled\"; failed: \"failed\"; }>"
					},
					{
						"name": "ActionEventPhase",
						"kind": "type",
						"source_line": 15,
						"type_signature": "ZodEnum<{ send_request: \"send_request\"; receive_request: \"receive_request\"; send_response: \"send_response\"; receive_response: \"receive_response\"; send_error: \"send_error\"; receive_error: \"receive_error\"; send: \"send\"; receive: \"receive\"; execute: \"execute\"; }>"
					},
					{
						"name": "ACTION_EVENT_STEP_TRANSITIONS",
						"kind": "variable",
						"source_line": 28,
						"type_signature": "Record<\"initial\" | \"parsed\" | \"handling\" | \"handled\" | \"failed\", readonly (\"initial\" | \"parsed\" | \"handling\" | \"handled\" | \"failed\")[]>"
					},
					{
						"name": "ACTION_EVENT_PHASE_BY_KIND",
						"kind": "variable",
						"source_line": 36,
						"type_signature": "Record<\"request_response\" | \"remote_notification\" | \"local_call\", readonly (\"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\")[]>"
					},
					{
						"name": "ACTION_EVENT_PHASE_TRANSITIONS",
						"kind": "variable",
						"source_line": 49,
						"type_signature": "Record<\"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\", \"send_request\" | \"receive_request\" | ... 7 more ... | null>"
					},
					{
						"name": "ActionEventEnvironment",
						"kind": "type",
						"source_line": 61,
						"type_signature": "ActionEventEnvironment",
						"properties": [
							{
								"name": "executor",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ActionExecutor"
							},
							{
								"name": "peer",
								"kind": "variable",
								"type_signature": "ActionPeer"
							},
							{
								"name": "lookup_action_handler",
								"kind": "variable",
								"type_signature": "(\n\t\tmethod: ActionMethod,\n\t\tphase: ActionEventPhase,\n\t) => ((event: any) => any) | undefined"
							},
							{
								"name": "lookup_action_spec",
								"kind": "variable",
								"type_signature": "(method: ActionMethod) => ActionSpecUnion | undefined"
							},
							{
								"name": "log",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Logger | null"
							},
							{
								"name": "actions",
								"kind": "variable",
								"type_signature": "Actions"
							}
						]
					}
				],
				"dependents": [
					"action_event_data.ts",
					"action_event_helpers.ts",
					"frontend.svelte.ts"
				]
			},
			{
				"path": "action_event.ts",
				"declarations": [
					{
						"name": "ActionEventChangeObserver",
						"kind": "type",
						"source_line": 45,
						"type_signature": "ActionEventChangeObserver<TMethod>",
						"generic_params": [
							{
								"name": "TMethod",
								"constraint": "ActionMethod"
							}
						]
					},
					{
						"name": "ActionEvent",
						"kind": "class",
						"doc_comment": "Action event that manages the lifecycle of an action through its state machine.",
						"source_line": 54,
						"generic_params": [
							{
								"name": "TMethod",
								"constraint": "ActionMethod",
								"default_type": "ActionMethod"
							},
							{
								"name": "TEnvironment",
								"constraint": "ActionEventEnvironment",
								"default_type": "ActionEventEnvironment"
							},
							{
								"name": "TPhase",
								"constraint": "ActionEventPhase",
								"default_type": "ActionEventPhase"
							},
							{
								"name": "TStep",
								"constraint": "ActionEventStep",
								"default_type": "ActionEventStep"
							}
						],
						"members": [
							{
								"name": "environment",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "TEnvironment"
							},
							{
								"name": "spec",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ActionSpecUnion"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "<TMethod extends ActionMethod = \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | ... 11 more ... | \"toggle_main_menu\", TEnvironment extends ActionEventEnvironment = ActionEventEnvironment, TPhase extends ActionEventPhase = \"send_request\" | ... 7 more ... | \"execute\", TStep extends ActionEventStep = \"initial\" | ... 3 more ... | \"failed\">(environment: TEnvironment, spec: { ...; } | ... 1 more ... | { ...; }, data: ActionEventDatas[TMethod]): ActionEvent<...>",
								"parameters": [
									{
										"name": "environment",
										"type": "TEnvironment"
									},
									{
										"name": "spec",
										"type": "{ method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"; ... 6 more ...; async: true; } | { ...; } | { ...; }"
									},
									{
										"name": "data",
										"type": "ActionEventDatas[TMethod]"
									}
								]
							},
							{
								"name": "toJSON",
								"kind": "function",
								"type_signature": "(): ActionEventDatas[TMethod]",
								"return_type": "ActionEventDatas[TMethod]",
								"parameters": []
							},
							{
								"name": "observe",
								"kind": "function",
								"type_signature": "(listener: ActionEventChangeObserver<TMethod>): () => void",
								"return_type": "() => void",
								"parameters": [
									{
										"name": "listener",
										"type": "ActionEventChangeObserver<TMethod>"
									}
								]
							},
							{
								"name": "set_data",
								"kind": "function",
								"type_signature": "(new_data: ActionEventDatas[TMethod]): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "new_data",
										"type": "ActionEventDatas[TMethod]"
									}
								]
							},
							{
								"name": "parse",
								"kind": "function",
								"doc_comment": "Parse input data according to the action's schema.",
								"type_signature": "(): this",
								"return_type": "this",
								"parameters": []
							},
							{
								"name": "handle_async",
								"kind": "function",
								"doc_comment": "Execute the handler for the current phase.",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							},
							{
								"name": "handle_sync",
								"kind": "function",
								"doc_comment": "Execute handler synchronously (only for sync local_call actions).",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "transition",
								"kind": "function",
								"doc_comment": "Transition to a new phase.",
								"type_signature": "(phase: \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\"): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "phase",
										"type": "\"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\""
									}
								]
							},
							{
								"name": "is_complete",
								"kind": "function",
								"type_signature": "(): boolean",
								"return_type": "boolean",
								"parameters": []
							},
							{
								"name": "update_progress",
								"kind": "function",
								"type_signature": "(progress: unknown): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "progress",
										"type": "unknown"
									}
								]
							},
							{
								"name": "set_request",
								"kind": "function",
								"type_signature": "(request: { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "request",
										"type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }"
									}
								]
							},
							{
								"name": "set_response",
								"kind": "function",
								"type_signature": "(response: { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); message: string; data?: unknown; }; }): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "response",
										"type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); message: string..."
									}
								]
							},
							{
								"name": "set_notification",
								"kind": "function",
								"type_signature": "(notification: { [x: string]: unknown; jsonrpc: \"2.0\"; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; } | undefined; }): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "notification",
										"type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; } | undefined; }"
									}
								]
							}
						]
					},
					{
						"name": "create_action_event",
						"kind": "function",
						"doc_comment": "Create an action event from a spec and initial input.",
						"source_line": 453,
						"type_signature": "<TMethod extends ActionMethod>(environment: ActionEventEnvironment, spec: { method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | ... 15 more ... | \"toggle_main_menu\"; ... 6 more ...; async: true; } | { ...; } | { ...; }, input: unknown, initial_phase?: \"send_request\" | ... 8 more ... | undefined): ActionEvent<...>",
						"return_type": "ActionEvent<TMethod, ActionEventEnvironment, \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\", \"initial\" | ... 3 more ... | \"failed\">",
						"parameters": [
							{
								"name": "environment",
								"type": "ActionEventEnvironment"
							},
							{
								"name": "spec",
								"type": "{ method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"; ... 6 more ...; async: true; } | { ...; } | { ...; }"
							},
							{
								"name": "input",
								"type": "unknown"
							},
							{
								"name": "initial_phase",
								"type": "\"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\" | undefined",
								"optional": true
							}
						]
					},
					{
						"name": "create_action_event_from_json",
						"kind": "function",
						"doc_comment": "Reconstruct an action event from serialized JSON data.",
						"source_line": 480,
						"type_signature": "<TMethod extends ActionMethod>(json: ActionEventDatas[TMethod], environment: ActionEventEnvironment): ActionEvent<TMethod, ActionEventEnvironment, \"send_request\" | ... 7 more ... | \"execute\", \"initial\" | ... 3 more ... | \"failed\">",
						"return_type": "ActionEvent<TMethod, ActionEventEnvironment, \"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\", \"initial\" | ... 3 more ... | \"failed\">",
						"parameters": [
							{
								"name": "json",
								"type": "ActionEventDatas[TMethod]"
							},
							{
								"name": "environment",
								"type": "ActionEventEnvironment"
							}
						]
					},
					{
						"name": "parse_action_event",
						"kind": "function",
						"source_line": 494,
						"type_signature": "(raw_json: unknown, environment: ActionEventEnvironment): ActionEvent<\"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | ... 14 more ... | \"toggle_main_menu\", ActionEventEnvironment, \"send_request\" | ... 7 more ... | \"execute\", \"initial\" | ... 3 more ... | \"failed\">",
						"return_type": "ActionEvent<\"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\", ActionEventEnvironment, \"send_request\" | ... 7 more ... | \"execute\", \"initial\" | ... 3 more...",
						"parameters": [
							{
								"name": "raw_json",
								"type": "unknown"
							},
							{
								"name": "environment",
								"type": "ActionEventEnvironment"
							}
						]
					}
				],
				"dependencies": [
					"action_collection_helpers.ts",
					"action_event_data.ts",
					"action_event_helpers.ts",
					"constants.ts",
					"jsonrpc_errors.ts",
					"jsonrpc_helpers.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"action_peer.ts",
					"frontend_actions_api.ts",
					"server/backend_actions_api.ts"
				]
			},
			{
				"path": "action_helpers.ts",
				"declarations": [
					{
						"name": "ACTION_DATE_FORMAT",
						"kind": "variable",
						"source_line": 3,
						"type_signature": "\"MMM d, p\""
					},
					{
						"name": "ACTION_TIME_FORMAT",
						"kind": "variable",
						"source_line": 4,
						"type_signature": "\"p\""
					},
					{
						"name": "to_action_spec_identifier",
						"kind": "function",
						"source_line": 7,
						"type_signature": "(method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "method",
								"type": "\"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\""
							}
						]
					},
					{
						"name": "to_action_spec_input_identifier",
						"kind": "function",
						"source_line": 8,
						"type_signature": "(method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "method",
								"type": "\"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\""
							}
						]
					},
					{
						"name": "to_action_spec_output_identifier",
						"kind": "function",
						"source_line": 10,
						"type_signature": "(method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "method",
								"type": "\"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\""
							}
						]
					}
				],
				"dependencies": [
					"action_metatypes.ts"
				],
				"dependents": [
					"action_collections.gen.ts",
					"action_registry.ts"
				]
			},
			{
				"path": "action_metatypes.gen.ts",
				"declarations": [],
				"dependencies": [
					"action_registry.ts",
					"action_spec.ts",
					"action_specs.ts",
					"codegen.ts",
					"zod_helpers.ts"
				]
			},
			{
				"path": "action_metatypes.ts",
				"declarations": [
					{
						"name": "ActionMethod",
						"kind": "type",
						"doc_comment": "All action method names. Request/response actions have two types per method.",
						"source_line": 11,
						"type_signature": "ZodEnum<{ completion_create: \"completion_create\"; completion_progress: \"completion_progress\"; directory_create: \"directory_create\"; diskfile_delete: \"diskfile_delete\"; diskfile_update: \"diskfile_update\"; ... 14 more ...; toggle_main_menu: \"toggle_main_menu\"; }>"
					},
					{
						"name": "RequestResponseActionMethod",
						"kind": "type",
						"doc_comment": "Names of all request_response actions.",
						"source_line": 38,
						"type_signature": "ZodEnum<{ completion_create: \"completion_create\"; directory_create: \"directory_create\"; diskfile_delete: \"diskfile_delete\"; diskfile_update: \"diskfile_update\"; ollama_copy: \"ollama_copy\"; ... 10 more ...; session_load: \"session_load\"; }>"
					},
					{
						"name": "RemoteNotificationActionMethod",
						"kind": "type",
						"doc_comment": "Names of all remote_notification actions.",
						"source_line": 61,
						"type_signature": "ZodEnum<{ completion_progress: \"completion_progress\"; filer_change: \"filer_change\"; ollama_progress: \"ollama_progress\"; }>"
					},
					{
						"name": "LocalCallActionMethod",
						"kind": "type",
						"doc_comment": "Names of all local_call actions.",
						"source_line": 71,
						"type_signature": "ZodEnum<{ toggle_main_menu: \"toggle_main_menu\"; }>"
					},
					{
						"name": "FrontendActionMethod",
						"kind": "type",
						"doc_comment": "Names of all actions that may be handled on the client.",
						"source_line": 77,
						"type_signature": "ZodEnum<{ completion_create: \"completion_create\"; completion_progress: \"completion_progress\"; directory_create: \"directory_create\"; diskfile_delete: \"diskfile_delete\"; diskfile_update: \"diskfile_update\"; ... 14 more ...; toggle_main_menu: \"toggle_main_menu\"; }>"
					},
					{
						"name": "BackendActionMethod",
						"kind": "type",
						"doc_comment": "Names of all actions that may be handled on the server.",
						"source_line": 104,
						"type_signature": "ZodEnum<{ completion_create: \"completion_create\"; completion_progress: \"completion_progress\"; directory_create: \"directory_create\"; diskfile_delete: \"diskfile_delete\"; diskfile_update: \"diskfile_update\"; ... 13 more ...; session_load: \"session_load\"; }>"
					},
					{
						"name": "ActionsApi",
						"kind": "type",
						"doc_comment": "Interface for action dispatch functions.\nAll async methods return Result types for type-safe error handling.\nSync methods (like toggle_main_menu) return values directly.",
						"source_line": 132,
						"type_signature": "ActionsApi",
						"properties": [
							{
								"name": "completion_create",
								"kind": "variable",
								"type_signature": "(\n\t\tinput: ActionInputs['completion_create'],\n\t) => Promise<Result<{value: ActionOutputs['completion_create']}, {error: JsonrpcErrorJson}>>"
							},
							{
								"name": "completion_progress",
								"kind": "variable",
								"type_signature": "(\n\t\tinput: ActionInputs['completion_progress'],\n\t) => Promise<Result<{value: ActionOutputs['completion_progress']}, {error: JsonrpcErrorJson}>>"
							},
							{
								"name": "directory_create",
								"kind": "variable",
								"type_signature": "(\n\t\tinput: ActionInputs['directory_create'],\n\t) => Promise<Result<{value: ActionOutputs['directory_create']}, {error: JsonrpcErrorJson}>>"
							},
							{
								"name": "diskfile_delete",
								"kind": "variable",
								"type_signature": "(\n\t\tinput: ActionInputs['diskfile_delete'],\n\t) => Promise<Result<{value: ActionOutputs['diskfile_delete']}, {error: JsonrpcErrorJson}>>"
							},
							{
								"name": "diskfile_update",
								"kind": "variable",
								"type_signature": "(\n\t\tinput: ActionInputs['diskfile_update'],\n\t) => Promise<Result<{value: ActionOutputs['diskfile_update']}, {error: JsonrpcErrorJson}>>"
							},
							{
								"name": "filer_change",
								"kind": "variable",
								"type_signature": "(\n\t\tinput: ActionInputs['filer_change'],\n\t) => Promise<Result<{value: ActionOutputs['filer_change']}, {error: JsonrpcErrorJson}>>"
							},
							{
								"name": "ollama_copy",
								"kind": "variable",
								"type_signature": "(\n\t\tinput: ActionInputs['ollama_copy'],\n\t) => Promise<Result<{value: ActionOutputs['ollama_copy']}, {error: JsonrpcErrorJson}>>"
							},
							{
								"name": "ollama_create",
								"kind": "variable",
								"type_signature": "(\n\t\tinput: ActionInputs['ollama_create'],\n\t) => Promise<Result<{value: ActionOutputs['ollama_create']}, {error: JsonrpcErrorJson}>>"
							},
							{
								"name": "ollama_delete",
								"kind": "variable",
								"type_signature": "(\n\t\tinput: ActionInputs['ollama_delete'],\n\t) => Promise<Result<{value: ActionOutputs['ollama_delete']}, {error: JsonrpcErrorJson}>>"
							},
							{
								"name": "ollama_list",
								"kind": "variable",
								"type_signature": "(\n\t\tinput?: void,\n\t) => Promise<Result<{value: ActionOutputs['ollama_list']}, {error: JsonrpcErrorJson}>>"
							},
							{
								"name": "ollama_progress",
								"kind": "variable",
								"type_signature": "(\n\t\tinput: ActionInputs['ollama_progress'],\n\t) => Promise<Result<{value: ActionOutputs['ollama_progress']}, {error: JsonrpcErrorJson}>>"
							},
							{
								"name": "ollama_ps",
								"kind": "variable",
								"type_signature": "(\n\t\tinput?: void,\n\t) => Promise<Result<{value: ActionOutputs['ollama_ps']}, {error: JsonrpcErrorJson}>>"
							},
							{
								"name": "ollama_pull",
								"kind": "variable",
								"type_signature": "(\n\t\tinput: ActionInputs['ollama_pull'],\n\t) => Promise<Result<{value: ActionOutputs['ollama_pull']}, {error: JsonrpcErrorJson}>>"
							},
							{
								"name": "ollama_show",
								"kind": "variable",
								"type_signature": "(\n\t\tinput: ActionInputs['ollama_show'],\n\t) => Promise<Result<{value: ActionOutputs['ollama_show']}, {error: JsonrpcErrorJson}>>"
							},
							{
								"name": "ollama_unload",
								"kind": "variable",
								"type_signature": "(\n\t\tinput: ActionInputs['ollama_unload'],\n\t) => Promise<Result<{value: ActionOutputs['ollama_unload']}, {error: JsonrpcErrorJson}>>"
							},
							{
								"name": "ping",
								"kind": "variable",
								"type_signature": "(\n\t\tinput?: void,\n\t) => Promise<Result<{value: ActionOutputs['ping']}, {error: JsonrpcErrorJson}>>"
							},
							{
								"name": "provider_load_status",
								"kind": "variable",
								"type_signature": "(\n\t\tinput: ActionInputs['provider_load_status'],\n\t) => Promise<Result<{value: ActionOutputs['provider_load_status']}, {error: JsonrpcErrorJson}>>"
							},
							{
								"name": "provider_update_api_key",
								"kind": "variable",
								"type_signature": "(\n\t\tinput: ActionInputs['provider_update_api_key'],\n\t) => Promise<\n\t\tResult<{value: ActionOutputs['provider_update_api_key']}, {error: JsonrpcErrorJson}>\n\t>"
							},
							{
								"name": "session_load",
								"kind": "variable",
								"type_signature": "(\n\t\tinput?: void,\n\t) => Promise<Result<{value: ActionOutputs['session_load']}, {error: JsonrpcErrorJson}>>"
							},
							{
								"name": "toggle_main_menu",
								"kind": "variable",
								"type_signature": "(input?: ActionInputs['toggle_main_menu']) => ActionOutputs['toggle_main_menu']"
							}
						]
					}
				],
				"dependents": [
					"action.svelte.ts",
					"action_event_data.ts",
					"action_helpers.ts",
					"action_spec.ts",
					"actions.svelte.ts"
				]
			},
			{
				"path": "action_peer.ts",
				"declarations": [
					{
						"name": "ActionPeerSendOptions",
						"kind": "type",
						"source_line": 30,
						"type_signature": "ActionPeerSendOptions",
						"properties": [
							{
								"name": "transport_name",
								"kind": "variable",
								"type_signature": "TransportName"
							}
						]
					},
					{
						"name": "ActionPeerOptions",
						"kind": "type",
						"source_line": 34,
						"type_signature": "ActionPeerOptions",
						"properties": [
							{
								"name": "environment",
								"kind": "variable",
								"type_signature": "ActionEventEnvironment"
							},
							{
								"name": "transports",
								"kind": "variable",
								"type_signature": "Transports"
							},
							{
								"name": "default_send_options",
								"kind": "variable",
								"type_signature": "Partial<ActionPeerSendOptions>"
							}
						]
					},
					{
						"name": "ActionPeer",
						"kind": "class",
						"source_line": 44,
						"members": [
							{
								"name": "environment",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ActionEventEnvironment"
							},
							{
								"name": "transports",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Transports"
							},
							{
								"name": "default_send_options",
								"kind": "variable",
								"type_signature": "ActionPeerSendOptions"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: ActionPeerOptions): ActionPeer",
								"parameters": [
									{
										"name": "options",
										"type": "ActionPeerOptions"
									}
								]
							},
							{
								"name": "send",
								"kind": "function",
								"type_signature": "(message: { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }, options?: ActionPeerSendOptions | undefined): Promise<...>",
								"return_type": "Promise<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); message...",
								"parameters": [
									{
										"name": "message",
										"type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }"
									},
									{
										"name": "options",
										"type": "ActionPeerSendOptions | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "send",
								"kind": "function",
								"type_signature": "(message: { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }, options?: ActionPeerSendOptions | undefined): Promise<...>",
								"return_type": "Promise<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); message...",
								"parameters": [
									{
										"name": "message",
										"type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }"
									},
									{
										"name": "options",
										"type": "ActionPeerSendOptions | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "send",
								"kind": "function",
								"type_signature": "(message: { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }, options?: ActionPeerSendOptions | undefined): Promise<...>",
								"return_type": "Promise<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); message...",
								"parameters": [
									{
										"name": "message",
										"type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }"
									},
									{
										"name": "options",
										"type": "ActionPeerSendOptions | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "receive",
								"kind": "function",
								"type_signature": "(message: unknown): Promise<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { ...; }; } | { ...; } | null>",
								"return_type": "Promise<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); message...",
								"parameters": [
									{
										"name": "message",
										"type": "unknown"
									}
								]
							}
						]
					}
				],
				"dependencies": [
					"action_event.ts",
					"constants.ts",
					"jsonrpc.ts",
					"jsonrpc_errors.ts",
					"jsonrpc_helpers.ts",
					"transports.ts"
				],
				"dependents": [
					"frontend.svelte.ts",
					"server/backend.ts"
				]
			},
			{
				"path": "action_registry.ts",
				"declarations": [
					{
						"name": "ActionRegistry",
						"kind": "class",
						"doc_comment": "Utility class to manage and query action specifications.\nProvides helper methods to get actions by various criteria.",
						"source_line": 18,
						"members": [
							{
								"name": "specs",
								"kind": "variable",
								"type_signature": "Array<ActionSpecUnion>"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(specs: ({ method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | ... 11 more ... | \"toggle_main_menu\"; ... 6 more ...; async: true; } | { ...; } | { ...; })[]): ActionRegistry",
								"parameters": [
									{
										"name": "specs",
										"type": "({ method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"; ... 6 more ...; async: true; } | { ...; } | { ...; })[]"
									}
								]
							},
							{
								"name": "get_schema_imports",
								"kind": "function",
								"type_signature": "(): string[]",
								"return_type": "string[]",
								"parameters": []
							}
						]
					}
				],
				"dependencies": [
					"action_helpers.ts"
				],
				"dependents": [
					"action_collections.gen.ts",
					"action_metatypes.gen.ts",
					"frontend.svelte.ts",
					"frontend_action_types.gen.ts",
					"server/backend.ts",
					"server/backend_action_types.gen.ts"
				]
			},
			{
				"path": "action_spec.ts",
				"declarations": [
					{
						"name": "ActionSpec",
						"kind": "type",
						"source_line": 8,
						"type_signature": "ZodObject<{ method: ZodEnum<{ completion_create: \"completion_create\"; completion_progress: \"completion_progress\"; directory_create: \"directory_create\"; diskfile_delete: \"diskfile_delete\"; diskfile_update: \"diskfile_update\"; ... 14 more ...; toggle_main_menu: \"toggle_main_menu\"; }>; ... 6 more ...; async: ZodBoolean;..."
					},
					{
						"name": "RequestResponseActionSpec",
						"kind": "type",
						"source_line": 30,
						"type_signature": "ZodObject<{ method: ZodEnum<{ completion_create: \"completion_create\"; completion_progress: \"completion_progress\"; directory_create: \"directory_create\"; diskfile_delete: \"diskfile_delete\"; diskfile_update: \"diskfile_update\"; ... 14 more ...; toggle_main_menu: \"toggle_main_menu\"; }>; ... 6 more ...; async: ZodDefault<..."
					},
					{
						"name": "RemoteNotificationActionSpec",
						"kind": "type",
						"source_line": 37,
						"type_signature": "ZodObject<{ method: ZodEnum<{ completion_create: \"completion_create\"; completion_progress: \"completion_progress\"; directory_create: \"directory_create\"; diskfile_delete: \"diskfile_delete\"; diskfile_update: \"diskfile_update\"; ... 14 more ...; toggle_main_menu: \"toggle_main_menu\"; }>; ... 6 more ...; async: ZodDefault<..."
					},
					{
						"name": "LocalCallActionSpec",
						"kind": "type",
						"doc_comment": "Local calls can wrap synchronous or asynchronous actions,\nand are the escape hatch for remote APIs that do not support SAES.",
						"source_line": 50,
						"type_signature": "ZodObject<{ method: ZodEnum<{ completion_create: \"completion_create\"; completion_progress: \"completion_progress\"; directory_create: \"directory_create\"; diskfile_delete: \"diskfile_delete\"; diskfile_update: \"diskfile_update\"; ... 14 more ...; toggle_main_menu: \"toggle_main_menu\"; }>; ... 6 more ...; auth: ZodDefault<...."
					},
					{
						"name": "ActionSpecUnion",
						"kind": "type",
						"source_line": 56,
						"type_signature": "ZodUnion<readonly [ZodObject<{ method: ZodEnum<{ completion_create: \"completion_create\"; completion_progress: \"completion_progress\"; directory_create: \"directory_create\"; diskfile_delete: \"diskfile_delete\"; ... 15 more ...; toggle_main_menu: \"toggle_main_menu\"; }>; ... 6 more ...; async: ZodDefault<...>; }, $strict>..."
					},
					{
						"name": "is_action_spec",
						"kind": "function",
						"source_line": 63,
						"type_signature": "(value: unknown): value is { method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | ... 11 more ... | \"toggle_main_menu\"; ... 6 more ...; async: true; } | { ...; } | { ...; }",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "value",
								"type": "unknown"
							}
						]
					}
				],
				"dependencies": [
					"action_metatypes.ts",
					"action_types.ts"
				],
				"dependents": [
					"action_collections.gen.ts",
					"action_metatypes.gen.ts",
					"frontend_action_types.gen.ts",
					"server/backend_action_types.gen.ts"
				]
			},
			{
				"path": "action_specs.ts",
				"declarations": [
					{
						"name": "ping_action_spec",
						"kind": "variable",
						"source_line": 34,
						"type_signature": "{ method: \"ping\"; kind: \"request_response\"; initiator: \"both\"; auth: \"public\"; side_effects: null; input: ZodOptional<ZodVoid>; output: ZodObject<{ ping_id: ZodUnion<readonly [ZodString, ZodNumber]>; }, $strict>; async: true; }"
					},
					{
						"name": "session_load_action_spec",
						"kind": "variable",
						"source_line": 47,
						"type_signature": "{ method: \"session_load\"; kind: \"request_response\"; initiator: \"frontend\"; auth: \"public\"; side_effects: null; input: ZodOptional<ZodVoid>; output: ZodObject<{ data: ZodObject<{ zzz_dir: $ZodBranded<...>; scoped_dirs: ZodReadonly<...>; files: ZodArray<...>; provider_status: ZodArray<...>; }, $strict>; }, $strict>; a..."
					},
					{
						"name": "filer_change_action_spec",
						"kind": "variable",
						"source_line": 68,
						"type_signature": "{ method: \"filer_change\"; kind: \"remote_notification\"; initiator: \"backend\"; auth: null; side_effects: true; input: ZodObject<{ change: ZodObject<{ type: ZodEnum<{ add: \"add\"; change: \"change\"; delete: \"delete\"; }>; path: $ZodBranded<...>; }, $strict>; disknode: ZodObject<...>; }, $strict>; output: ZodVoid; async: t..."
					},
					{
						"name": "diskfile_update_action_spec",
						"kind": "variable",
						"source_line": 82,
						"type_signature": "{ method: \"diskfile_update\"; kind: \"request_response\"; initiator: \"frontend\"; auth: \"public\"; side_effects: true; input: ZodObject<{ path: $ZodBranded<ZodString, \"DiskfilePath\", \"out\">; content: ZodString; }, $strict>; output: ZodNull; async: true; }"
					},
					{
						"name": "diskfile_delete_action_spec",
						"kind": "variable",
						"source_line": 96,
						"type_signature": "{ method: \"diskfile_delete\"; kind: \"request_response\"; initiator: \"frontend\"; auth: \"public\"; side_effects: true; input: ZodObject<{ path: $ZodBranded<ZodString, \"DiskfilePath\", \"out\">; }, $strict>; output: ZodNull; async: true; }"
					},
					{
						"name": "directory_create_action_spec",
						"kind": "variable",
						"source_line": 109,
						"type_signature": "{ method: \"directory_create\"; kind: \"request_response\"; initiator: \"frontend\"; auth: \"public\"; side_effects: true; input: ZodObject<{ path: $ZodBranded<ZodString, \"DiskfilePath\", \"out\">; }, $strict>; output: ZodNull; async: true; }"
					},
					{
						"name": "completion_create_action_spec",
						"kind": "variable",
						"source_line": 122,
						"type_signature": "{ method: \"completion_create\"; kind: \"request_response\"; initiator: \"frontend\"; auth: \"public\"; side_effects: true; input: ZodObject<{ completion_request: ZodObject<{ created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; provider_name: ZodEnum<...>; model: ZodString; prompt: ZodString; completion_mess..."
					},
					{
						"name": "completion_progress_action_spec",
						"kind": "variable",
						"source_line": 139,
						"type_signature": "{ method: \"completion_progress\"; kind: \"remote_notification\"; initiator: \"backend\"; auth: null; side_effects: true; input: ZodObject<{ chunk: ZodOptional<ZodObject<{ model: ZodOptional<ZodString>; created_at: ZodOptional<...>; done: ZodOptional<...>; message: ZodOptional<...>; }, $loose>>; _meta: ZodOptional<...>; }..."
					},
					{
						"name": "ollama_progress_action_spec",
						"kind": "variable",
						"source_line": 179,
						"type_signature": "{ method: \"ollama_progress\"; kind: \"remote_notification\"; initiator: \"backend\"; auth: null; side_effects: true; input: ZodObject<{ status: ZodString; digest: ZodOptional<ZodString>; total: ZodOptional<...>; completed: ZodOptional<...>; _meta: ZodOptional<...>; }, $strict>; output: ZodVoid; async: true; }"
					},
					{
						"name": "toggle_main_menu_action_spec",
						"kind": "variable",
						"source_line": 195,
						"type_signature": "{ method: \"toggle_main_menu\"; kind: \"local_call\"; initiator: \"frontend\"; auth: null; side_effects: true; input: ZodOptional<ZodObject<{ show: ZodOptional<ZodBoolean>; }, $strict>>; output: ZodObject<...>; async: false; }"
					},
					{
						"name": "ollama_list_action_spec",
						"kind": "variable",
						"source_line": 206,
						"type_signature": "{ method: \"ollama_list\"; kind: \"request_response\"; initiator: \"frontend\"; auth: \"public\"; side_effects: null; input: ZodOptional<ZodVoid>; output: ZodUnion<readonly [ZodObject<{ models: ZodArray<...>; }, $loose>, ZodNull]>; async: true; }"
					},
					{
						"name": "ollama_ps_action_spec",
						"kind": "variable",
						"source_line": 217,
						"type_signature": "{ method: \"ollama_ps\"; kind: \"request_response\"; initiator: \"frontend\"; auth: \"public\"; side_effects: null; input: ZodOptional<ZodVoid>; output: ZodUnion<readonly [ZodObject<{ models: ZodArray<ZodObject<...>>; }, $loose>, ZodNull]>; async: true; }"
					},
					{
						"name": "ollama_show_action_spec",
						"kind": "variable",
						"source_line": 228,
						"type_signature": "{ method: \"ollama_show\"; kind: \"request_response\"; initiator: \"frontend\"; auth: \"public\"; side_effects: null; input: ZodObject<{ model: ZodString; system: ZodOptional<ZodString>; template: ZodOptional<...>; options: ZodOptional<...>; }, $loose>; output: ZodUnion<...>; async: true; }"
					},
					{
						"name": "ollama_pull_action_spec",
						"kind": "variable",
						"source_line": 239,
						"type_signature": "{ method: \"ollama_pull\"; kind: \"request_response\"; initiator: \"frontend\"; auth: \"public\"; side_effects: true; input: ZodObject<{ model: ZodString; insecure: ZodOptional<ZodBoolean>; stream: ZodOptional<...>; _meta: ZodOptional<...>; }, $strict>; output: ZodOptional<...>; async: true; }"
					},
					{
						"name": "ollama_delete_action_spec",
						"kind": "variable",
						"source_line": 254,
						"type_signature": "{ method: \"ollama_delete\"; kind: \"request_response\"; initiator: \"frontend\"; auth: \"public\"; side_effects: true; input: ZodObject<{ model: ZodString; }, $loose>; output: ZodOptional<...>; async: true; }"
					},
					{
						"name": "ollama_copy_action_spec",
						"kind": "variable",
						"source_line": 265,
						"type_signature": "{ method: \"ollama_copy\"; kind: \"request_response\"; initiator: \"frontend\"; auth: \"public\"; side_effects: true; input: ZodObject<{ source: ZodString; destination: ZodString; }, $loose>; output: ZodOptional<...>; async: true; }"
					},
					{
						"name": "ollama_create_action_spec",
						"kind": "variable",
						"source_line": 276,
						"type_signature": "{ method: \"ollama_create\"; kind: \"request_response\"; initiator: \"frontend\"; auth: \"public\"; side_effects: true; input: ZodObject<{ model: ZodString; from: ZodOptional<ZodString>; ... 8 more ...; _meta: ZodOptional<...>; }, $strict>; output: ZodOptional<...>; async: true; }"
					},
					{
						"name": "ollama_unload_action_spec",
						"kind": "variable",
						"source_line": 291,
						"type_signature": "{ method: \"ollama_unload\"; kind: \"request_response\"; initiator: \"frontend\"; auth: \"public\"; side_effects: true; input: ZodObject<{ model: ZodString; }, $strict>; output: ZodOptional<...>; async: true; }"
					},
					{
						"name": "provider_load_status_action_spec",
						"kind": "variable",
						"source_line": 304,
						"type_signature": "{ method: \"provider_load_status\"; kind: \"request_response\"; initiator: \"frontend\"; auth: \"public\"; side_effects: null; input: ZodObject<{ provider_name: ZodEnum<{ ollama: \"ollama\"; claude: \"claude\"; chatgpt: \"chatgpt\"; gemini: \"gemini\"; }>; reload: ZodOptional<...>; }, $strict>; output: ZodObject<...>; async: true; }"
					},
					{
						"name": "provider_update_api_key_action_spec",
						"kind": "variable",
						"source_line": 320,
						"type_signature": "{ method: \"provider_update_api_key\"; kind: \"request_response\"; initiator: \"frontend\"; auth: \"public\"; side_effects: true; input: ZodObject<{ provider_name: ZodEnum<{ ollama: \"ollama\"; claude: \"claude\"; chatgpt: \"chatgpt\"; gemini: \"gemini\"; }>; api_key: ZodString; }, $strict>; output: ZodObject<...>; async: true; }"
					}
				],
				"dependencies": [
					"completion_types.ts",
					"diskfile_types.ts",
					"jsonrpc.ts",
					"ollama_helpers.ts",
					"provider_types.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"action_collections.gen.ts",
					"action_collections.ts",
					"action_metatypes.gen.ts",
					"frontend_action_types.gen.ts",
					"server/backend_action_types.gen.ts",
					"server/backend_actions_api.ts"
				]
			},
			{
				"path": "action_types.ts",
				"declarations": [
					{
						"name": "ActionKind",
						"kind": "type",
						"source_line": 5,
						"type_signature": "ZodEnum<{ request_response: \"request_response\"; remote_notification: \"remote_notification\"; local_call: \"local_call\"; }>"
					},
					{
						"name": "ActionExecutor",
						"kind": "type",
						"source_line": 9,
						"type_signature": "ZodEnum<{ frontend: \"frontend\"; backend: \"backend\"; }>"
					},
					{
						"name": "ActionInitiator",
						"kind": "type",
						"source_line": 15,
						"type_signature": "ZodEnum<{ frontend: \"frontend\"; backend: \"backend\"; both: \"both\"; }>"
					},
					{
						"name": "is_action_initiator",
						"kind": "function",
						"source_line": 19,
						"type_signature": "(v: unknown): v is \"frontend\" | \"backend\" | \"both\"",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "v",
								"type": "unknown"
							}
						]
					},
					{
						"name": "ActionAuth",
						"kind": "type",
						"doc_comment": "",
						"source_line": 24,
						"type_signature": "ZodUnion<readonly [ZodLiteral<\"public\">, ZodLiteral<\"authorize\">]>"
					},
					{
						"name": "ActionSideEffects",
						"kind": "type",
						"source_line": 31,
						"type_signature": "ZodUnion<readonly [ZodLiteral<true>, ZodNull]>"
					},
					{
						"name": "ActionInput",
						"kind": "type",
						"source_line": 34,
						"type_signature": "ZodUnion<readonly [ZodUnion<readonly [ZodObject<{ _meta: ZodOptional<ZodObject<{ progressToken: ZodOptional<ZodUnion<readonly [ZodString, ZodNumber]>>; }, $loose>>; }, $loose>, ZodObject<...>]>, ZodUndefined, ZodVoid]>"
					},
					{
						"name": "ActionOutput",
						"kind": "type",
						"source_line": 37,
						"type_signature": "ZodUnion<readonly [ZodObject<{ _meta: ZodOptional<ZodObject<{}, $loose>>; }, $loose>, ZodUndefined, ZodVoid]>"
					}
				],
				"dependencies": [
					"jsonrpc.ts"
				],
				"dependents": [
					"action.svelte.ts",
					"action_event_data.ts",
					"action_spec.ts",
					"codegen.ts",
					"frontend.svelte.ts"
				]
			},
			{
				"path": "action.svelte.ts",
				"declarations": [
					{
						"name": "ActionJson",
						"kind": "type",
						"source_line": 16,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; method: ZodEnum<...>; action_event_data: ZodOptional<...>; }, $strict>"
					},
					{
						"name": "ActionJsonInput",
						"kind": "type",
						"source_line": 21,
						"type_signature": "{ method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"; id?: string | undefined; created?: string | undefined; updated?: string | undefined; action_e..."
					},
					{
						"name": "ActionOptions",
						"kind": "type",
						"source_line": 23,
						"type_signature": "ActionOptions",
						"extends": [
							"CellOptions<typeof ActionJson>"
						],
						"properties": []
					},
					{
						"name": "Action",
						"kind": "class",
						"doc_comment": "Represents a single action in the system, tracking its full lifecycle through action events.",
						"source_line": 28,
						"extends": [
							"Cell<typeof ActionJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "method",
								"kind": "variable",
								"type_signature": "ActionMethod"
							},
							{
								"name": "action_event_data",
								"kind": "variable",
								"type_signature": "ActionEventData | undefined"
							},
							{
								"name": "spec",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ActionSpecUnion"
							},
							{
								"name": "kind",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ActionKind"
							},
							{
								"name": "has_error",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "pending",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Returns true if the action is still pending (not in a terminal state).\nAn action is complete when it reaches a terminal phase (where next phase is null)\nAND the step is terminal (handled or failed)."
							},
							{
								"name": "failed",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "success",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Returns true if the action completed successfully.\nSuccess means: action is complete (terminal phase + step), step is 'handled', and no error."
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: ActionOptions): Action",
								"parameters": [
									{
										"name": "options",
										"type": "ActionOptions"
									}
								]
							},
							{
								"name": "unlisten_to_action_event",
								"kind": "variable",
								"type_signature": "(() => void) | undefined"
							},
							{
								"name": "action_event",
								"kind": "variable",
								"type_signature": "ActionEvent | undefined"
							},
							{
								"name": "listen_to_action_event",
								"kind": "function",
								"type_signature": "(action_event: ActionEvent<\"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\", ActionEventEnvironment, \"send_request\" | ... 7 more ... | \"execute\", \"initial\" | ... 3 more ... | \"failed\">): () => void",
								"return_type": "() => void",
								"parameters": [
									{
										"name": "action_event",
										"type": "ActionEvent<\"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\", ActionEventEnvironment, \"send_request\" | ... 7 more ... | \"execute\", \"initial\" | ... 3 more..."
									}
								]
							},
							{
								"name": "dispose",
								"kind": "function",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							}
						]
					},
					{
						"name": "ActionSchema",
						"kind": "variable",
						"source_line": 104,
						"type_signature": "ZodCustom<Action, Action>"
					}
				],
				"dependencies": [
					"action_collections.ts",
					"action_event_data.ts",
					"action_event_helpers.ts",
					"action_metatypes.ts",
					"action_types.ts",
					"cell.svelte.ts",
					"cell_types.ts"
				],
				"dependents": [
					"actions.svelte.ts",
					"cell_classes.ts"
				]
			},
			{
				"path": "ActionContextmenu.svelte",
				"declarations": [
					{
						"name": "ActionContextmenu",
						"kind": "component",
						"props": [
							{
								"name": "action",
								"type": "Action"
							},
							{
								"name": "children",
								"type": "Snippet"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ContextmenuEntryCopyToClipboard.svelte",
					"Glyph.svelte",
					"frontend.svelte.ts",
					"glyphs.ts"
				],
				"dependents": [
					"ActionListitem.svelte"
				]
			},
			{
				"path": "ActionDetail.svelte",
				"declarations": [
					{
						"name": "ActionDetail",
						"kind": "component",
						"props": [
							{
								"name": "action",
								"type": "Action"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"DashboardActions.svelte"
				]
			},
			{
				"path": "ActionList.svelte",
				"declarations": [
					{
						"name": "ActionList",
						"kind": "component",
						"props": [
							{
								"name": "limit",
								"type": "number | undefined",
								"optional": true
							},
							{
								"name": "selected_action_id",
								"type": "string | null | undefined",
								"optional": true
							},
							{
								"name": "attrs",
								"type": "SvelteHTMLElements['div'] | undefined",
								"optional": true
							},
							{
								"name": "onselect",
								"type": "((action: Action) => void) | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ActionListitem.svelte",
					"SortableList.svelte",
					"frontend.svelte.ts",
					"sortable.svelte.ts"
				],
				"dependents": [
					"DashboardActions.svelte"
				]
			},
			{
				"path": "ActionListitem.svelte",
				"declarations": [
					{
						"name": "ActionListitem",
						"kind": "component",
						"props": [
							{
								"name": "action",
								"type": "Action"
							},
							{
								"name": "selected",
								"type": "boolean",
								"optional": true
							},
							{
								"name": "onselect",
								"type": "((action: Action) => void) | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ActionContextmenu.svelte",
					"Glyph.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"ActionList.svelte"
				]
			},
			{
				"path": "actions.svelte.ts",
				"declarations": [
					{
						"name": "HISTORY_LIMIT_DEFAULT",
						"kind": "variable",
						"source_line": 11,
						"type_signature": "512"
					},
					{
						"name": "PONG_DISPLAY_LIMIT",
						"kind": "variable",
						"source_line": 12,
						"type_signature": "6"
					},
					{
						"name": "ActionsJson",
						"kind": "type",
						"source_line": 14,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; items: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "ActionsJsonInput",
						"kind": "type",
						"source_line": 18,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; items?: { method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | ... 15 more ... | \"toggle_main_menu\"; id?: string | undefined; created?: string | undefined; updated?: string | undefined; ac..."
					},
					{
						"name": "ActionsOptions",
						"kind": "type",
						"source_line": 20,
						"type_signature": "ActionsOptions",
						"extends": [
							"CellOptions<typeof ActionsJson>"
						],
						"properties": [
							{
								"name": "history_limit",
								"kind": "variable",
								"type_signature": "number"
							}
						]
					},
					{
						"name": "Actions",
						"kind": "class",
						"doc_comment": "Stores the action history.",
						"source_line": 25,
						"extends": [
							"Cell<typeof ActionsJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "items",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "IndexedCollection<Action>"
							},
							{
								"name": "history_limit",
								"kind": "variable",
								"type_signature": "number"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: ActionsOptions): Actions",
								"parameters": [
									{
										"name": "options",
										"type": "ActionsOptions"
									}
								]
							},
							{
								"name": "set_json",
								"kind": "function",
								"doc_comment": "Override to populate the indexed collection after parsing JSON.",
								"type_signature": "(value?: { id?: string | undefined; created?: string | undefined; updated?: string | undefined; items?: { method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | ... 15 more ... | \"toggle_main_menu\"; id?: string | undefined; created?: string | undefined; updated?: string | undefined; action_event_data?: { ...; } | undefined; }[] | undefined; } | undefined): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "value",
										"type": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; items?: { method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | ... 15 more ... | \"toggle_main_menu\"; id?: string | undefined; created?: string | undefined; updated?: string | undefined; ac...",
										"optional": true
									}
								]
							},
							{
								"name": "add",
								"kind": "function",
								"type_signature": "(action: Action): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "action",
										"type": "Action"
									}
								]
							},
							{
								"name": "add_from_json",
								"kind": "function",
								"type_signature": "(action_json: { method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"; id?: string | undefined; created?: string | undefined; updated?: string | undefined; action_event_data?: { ...; } | undefined; }): Action",
								"return_type": "Action",
								"parameters": [
									{
										"name": "action_json",
										"type": "{ method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"; id?: string | undefined; created?: string | undefined; updated?: string | undefined; action_e..."
									}
								]
							}
						]
					}
				],
				"dependencies": [
					"action.svelte.ts",
					"action_metatypes.ts",
					"cell.svelte.ts",
					"cell_helpers.ts",
					"cell_types.ts",
					"indexed_collection.svelte.ts",
					"indexed_collection_helpers.svelte.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"frontend.svelte.ts"
				]
			},
			{
				"path": "app.svelte.ts",
				"declarations": [
					{
						"name": "app_context",
						"kind": "variable",
						"doc_comment": "This is an example of a user-typed alias of `frontend_context`.\nI like this pattern in my apps but there are other patterns too.",
						"source_line": 17,
						"type_signature": "{ get: (error_message?: string | undefined) => App; get_maybe: () => App | undefined; set: (value: App) => App; }"
					},
					{
						"name": "AppOptions",
						"kind": "type",
						"source_line": 19,
						"type_signature": "AppOptions",
						"extends": [
							"FrontendOptions"
						],
						"properties": []
					},
					{
						"name": "App",
						"kind": "class",
						"doc_comment": "The `App` is the user's implementation of the Zzz client app.\nIt extends `Frontend` and should be able to customize as much as possible,\nincluding both behaviors and types. (both a work in progress)",
						"source_line": 26,
						"extends": [
							"Frontend"
						],
						"implements": [],
						"members": [
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options?: AppOptions | undefined): App",
								"parameters": [
									{
										"name": "options",
										"type": "AppOptions | undefined",
										"optional": true
									}
								]
							}
						]
					}
				],
				"dependencies": [
					"cell_classes.ts",
					"constants.ts",
					"frontend.svelte.ts",
					"frontend_action_handlers.ts"
				],
				"dependents": [
					"DashboardActions.svelte"
				]
			},
			{
				"path": "capabilities.svelte.ts",
				"declarations": [
					{
						"name": "PING_HISTORY_MAX",
						"kind": "variable",
						"doc_comment": "Maximum number of ping records to keep.",
						"source_line": 21,
						"type_signature": "6"
					},
					{
						"name": "CapabilitiesJson",
						"kind": "type",
						"source_line": 23,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "CapabilitiesJsonInput",
						"kind": "type",
						"source_line": 25,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; }"
					},
					{
						"name": "Capability",
						"kind": "type",
						"doc_comment": "Generic interface for a capability with standardized status tracking.",
						"source_line": 30,
						"type_signature": "Capability<T>",
						"generic_params": [
							{
								"name": "T"
							}
						],
						"properties": [
							{
								"name": "name",
								"kind": "variable",
								"type_signature": "string",
								"doc_comment": "The capability name."
							},
							{
								"name": "data",
								"kind": "variable",
								"type_signature": "T",
								"doc_comment": "The capability's status: undefined=not initialized, null=checking, otherwise available or not."
							},
							{
								"name": "status",
								"kind": "variable",
								"type_signature": "AsyncStatus",
								"doc_comment": "Async status tracking the connection/check state."
							},
							{
								"name": "message_id",
								"kind": "variable",
								"type_signature": "JsonrpcRequestId | null",
								"doc_comment": "Message id of the last request for this capability's info, if any."
							},
							{
								"name": "error_message",
								"kind": "variable",
								"type_signature": "string | null",
								"doc_comment": "Error message if any."
							},
							{
								"name": "updated",
								"kind": "variable",
								"type_signature": "number | null",
								"doc_comment": "Timestamp when the capability was last checked."
							}
						]
					},
					{
						"name": "PingData",
						"kind": "type",
						"source_line": 46,
						"type_signature": "PingData",
						"properties": [
							{
								"name": "ping_id",
								"kind": "variable",
								"type_signature": "JsonrpcRequestId"
							},
							{
								"name": "completed",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "sent_time",
								"kind": "variable",
								"type_signature": "number"
							},
							{
								"name": "received_time",
								"kind": "variable",
								"type_signature": "number | null"
							},
							{
								"name": "round_trip_time",
								"kind": "variable",
								"type_signature": "number | null"
							}
						]
					},
					{
						"name": "ServerCapabilityData",
						"kind": "type",
						"source_line": 54,
						"type_signature": "ServerCapabilityData",
						"properties": [
							{
								"name": "round_trip_time",
								"kind": "variable",
								"type_signature": "number"
							}
						]
					},
					{
						"name": "WebsocketCapabilityData",
						"kind": "type",
						"source_line": 61,
						"type_signature": "WebsocketCapabilityData",
						"properties": [
							{
								"name": "url",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "connected",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "reconnect_count",
								"kind": "variable",
								"type_signature": "number"
							},
							{
								"name": "last_connect_time",
								"kind": "variable",
								"type_signature": "number | null"
							},
							{
								"name": "last_send_time",
								"kind": "variable",
								"type_signature": "number | null"
							},
							{
								"name": "last_receive_time",
								"kind": "variable",
								"type_signature": "number | null"
							},
							{
								"name": "connection_duration",
								"kind": "variable",
								"type_signature": "number | null"
							},
							{
								"name": "pending_pings",
								"kind": "variable",
								"type_signature": "number"
							}
						]
					},
					{
						"name": "FilesystemCapabilityData",
						"kind": "type",
						"source_line": 72,
						"type_signature": "FilesystemCapabilityData",
						"properties": [
							{
								"name": "zzz_dir",
								"kind": "variable",
								"type_signature": "DiskfileDirectoryPath | null | undefined"
							},
							{
								"name": "scoped_dirs",
								"kind": "variable",
								"type_signature": "ReadonlyArray<DiskfileDirectoryPath>"
							}
						]
					},
					{
						"name": "OllamaCapabilityData",
						"kind": "type",
						"source_line": 77,
						"type_signature": "OllamaCapabilityData",
						"properties": [
							{
								"name": "list_response",
								"kind": "variable",
								"type_signature": "OllamaListResponse | null"
							},
							{
								"name": "ps_response",
								"kind": "variable",
								"type_signature": "OllamaPsResponse | null"
							},
							{
								"name": "round_trip_time",
								"kind": "variable",
								"type_signature": "number | null"
							}
						]
					},
					{
						"name": "Capabilities",
						"kind": "class",
						"doc_comment": "A class that encapsulates system capabilities detection and management.\nThis is NOT generic or extensible - it contains hardcoded logic for\nall capabilities the system supports.",
						"source_line": 88,
						"extends": [
							"Cell<typeof CapabilitiesJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "backend",
								"kind": "variable",
								"type_signature": "Capability<ServerCapabilityData | null | undefined>"
							},
							{
								"name": "websocket",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "WebSocket capability that derives its state from the socket.",
								"type_signature": "Capability<WebsocketCapabilityData | null | undefined>"
							},
							{
								"name": "filesystem",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "The filesystem capability derives its state from the backend and `zzz_dir`.",
								"type_signature": "Capability<FilesystemCapabilityData | null | undefined>"
							},
							{
								"name": "ollama",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Ollama capability that derives its state from provider_status (authoritative)\nand app.ollama (for richer data when available).",
								"type_signature": "Capability<OllamaCapabilityData | null | undefined>"
							},
							{
								"name": "claude",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Claude capability that derives its state from provider_status.",
								"type_signature": "Capability<null | undefined>"
							},
							{
								"name": "chatgpt",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "ChatGPT capability that derives its state from provider_status.",
								"type_signature": "Capability<null | undefined>"
							},
							{
								"name": "gemini",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Gemini capability that derives its state from provider_status.",
								"type_signature": "Capability<null | undefined>"
							},
							{
								"name": "pings",
								"kind": "variable",
								"doc_comment": "Store pings - both pending and completed.",
								"type_signature": "Array<PingData>"
							},
							{
								"name": "latest_ping_time",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Most recent completed ping round trip time in milliseconds.",
								"type_signature": "number | null"
							},
							{
								"name": "completed_pings",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Completed pings (for display).",
								"type_signature": "Array<PingData>"
							},
							{
								"name": "pending_ping_count",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Number of pending pings.",
								"type_signature": "number"
							},
							{
								"name": "has_pending_pings",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Has pending pings.",
								"type_signature": "boolean"
							},
							{
								"name": "backend_available",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Convenience accessor for backend availability.\n`undefined` means uninitialized, `null` means loading/checking.\nboolean indicates if available.",
								"type_signature": "boolean | null | undefined"
							},
							{
								"name": "ollama_available",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Convenience accessor for ollama availability.\n`undefined` means uninitialized, `null` means loading/checking.\nboolean indicates if available.",
								"type_signature": "boolean | null | undefined"
							},
							{
								"name": "websocket_available",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Convenience accessor for websocket availability.\n`undefined` means uninitialized, `null` means loading/checking.\nboolean indicates if the socket is actively connected.",
								"type_signature": "boolean | null | undefined"
							},
							{
								"name": "filesystem_available",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Convenience accessor for filesystem availability.\n`undefined` means uninitialized, `null` means loading/checking.\nboolean indicates if filesystem is available.",
								"type_signature": "boolean | null | undefined"
							},
							{
								"name": "ollama_models",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Latest Ollama model list response, if available.",
								"type_signature": "Array<{\n\t\tname: string;\n\t\tsize: number;\n\t\tmodel_response: OllamaListResponseItem;\n\t}>"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: CellOptions<ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; }, $strict>>): Capabilities",
								"parameters": [
									{
										"name": "options",
										"type": "CellOptions<ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; }, $strict>>"
									}
								]
							},
							{
								"name": "init_backend_check",
								"kind": "function",
								"doc_comment": "Check backend availability only if it hasn't been checked before.\n(when status is 'initial')",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							},
							{
								"name": "check_backend",
								"kind": "function",
								"doc_comment": "Check backend availability with a ping.",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							},
							{
								"name": "init_ollama_check",
								"kind": "function",
								"doc_comment": "Check Ollama availability only if it hasn't been checked before.\n(when status is 'initial')",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							},
							{
								"name": "check_ollama",
								"kind": "function",
								"doc_comment": "Check Ollama availability by loading provider status and refreshing models.",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							},
							{
								"name": "handle_ping_sent",
								"kind": "function",
								"type_signature": "(request_id: string | number): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "request_id",
										"type": "string | number"
									}
								]
							},
							{
								"name": "handle_ping_received",
								"kind": "function",
								"type_signature": "(ping_id: string | number): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "ping_id",
										"type": "string | number"
									}
								]
							},
							{
								"name": "handle_ping_error",
								"kind": "function",
								"type_signature": "(ping_id: string | number, error_message: string): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "ping_id",
										"type": "string | number"
									},
									{
										"name": "error_message",
										"type": "string"
									}
								]
							},
							{
								"name": "reset_backend",
								"kind": "function",
								"doc_comment": "Reset just the backend capability to uninitialized state.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "init_claude_check",
								"kind": "function",
								"doc_comment": "Check Claude availability only if it hasn't been checked before.",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							},
							{
								"name": "check_claude",
								"kind": "function",
								"doc_comment": "Check Claude availability by loading provider status.",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							},
							{
								"name": "init_chatgpt_check",
								"kind": "function",
								"doc_comment": "Check ChatGPT availability only if it hasn't been checked before.",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							},
							{
								"name": "check_chatgpt",
								"kind": "function",
								"doc_comment": "Check ChatGPT availability by loading provider status.",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							},
							{
								"name": "init_gemini_check",
								"kind": "function",
								"doc_comment": "Check Gemini availability only if it hasn't been checked before.",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							},
							{
								"name": "check_gemini",
								"kind": "function",
								"doc_comment": "Check Gemini availability by loading provider status.",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							}
						]
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_types.ts"
				],
				"dependents": [
					"PingForm.svelte",
					"cell_classes.ts",
					"frontend.svelte.ts"
				]
			},
			{
				"path": "CapabilitiesView.svelte",
				"declarations": [
					{
						"name": "CapabilitiesView",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"CapabilityBackend.svelte",
					"CapabilityFilesystem.svelte",
					"CapabilityProvider.svelte",
					"CapabilitySystem.svelte",
					"CapabilityWebsocket.svelte",
					"Glyph.svelte",
					"ProviderLogo.svelte",
					"glyphs.ts",
					"logos.ts"
				],
				"dependents": [
					"DashboardCapabilities.svelte"
				]
			},
			{
				"path": "CapabilityBackend.svelte",
				"declarations": [
					{
						"name": "CapabilityBackend",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"ErrorMessage.svelte",
					"ExternalLink.svelte",
					"Glyph.svelte",
					"PingForm.svelte",
					"constants.ts",
					"frontend.svelte.ts",
					"glyphs.ts"
				],
				"dependents": [
					"CapabilitiesView.svelte"
				]
			},
			{
				"path": "CapabilityFilesystem.svelte",
				"declarations": [
					{
						"name": "CapabilityFilesystem",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"frontend.svelte.ts"
				],
				"dependents": [
					"CapabilitiesView.svelte"
				]
			},
			{
				"path": "CapabilityProvider.svelte",
				"declarations": [
					{
						"name": "CapabilityProvider",
						"kind": "component",
						"props": [
							{
								"name": "provider_name",
								"type": "ProviderName"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"CapabilityProviderApi.svelte",
					"CapabilityProviderOllama.svelte"
				],
				"dependents": [
					"CapabilitiesView.svelte"
				]
			},
			{
				"path": "CapabilityProviderApi.svelte",
				"declarations": [
					{
						"name": "CapabilityProviderApi",
						"kind": "component",
						"props": [
							{
								"name": "provider_name",
								"type": "'claude' | 'chatgpt' | 'gemini'"
							},
							{
								"name": "show_info",
								"type": "boolean",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ErrorMessage.svelte",
					"ExternalLink.svelte",
					"Glyph.svelte",
					"ProviderLink.svelte",
					"frontend.svelte.ts",
					"glyphs.ts"
				],
				"dependents": [
					"CapabilityProvider.svelte",
					"ProviderDetail.svelte"
				]
			},
			{
				"path": "CapabilityProviderOllama.svelte",
				"declarations": [
					{
						"name": "CapabilityProviderOllama",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"ErrorMessage.svelte",
					"ExternalLink.svelte",
					"Glyph.svelte",
					"ModelLink.svelte",
					"OllamaPsStatus.svelte",
					"ProviderLink.svelte",
					"frontend.svelte.ts",
					"glyphs.ts"
				],
				"dependents": [
					"CapabilityProvider.svelte"
				]
			},
			{
				"path": "CapabilitySystem.svelte",
				"declarations": [
					{
						"name": "CapabilitySystem",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"ExternalLink.svelte",
					"library.ts"
				],
				"dependents": [
					"CapabilitiesView.svelte"
				]
			},
			{
				"path": "CapabilityWebsocket.svelte",
				"declarations": [
					{
						"name": "CapabilityWebsocket",
						"kind": "component",
						"props": [
							{
								"name": "socket",
								"type": "Socket | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ConfirmButton.svelte",
					"Glyph.svelte",
					"SocketMessageQueue.svelte",
					"constants.ts",
					"frontend.svelte.ts",
					"glyphs.ts",
					"socket_helpers.ts",
					"time_helpers.ts"
				],
				"dependents": [
					"CapabilitiesView.svelte"
				]
			},
			{
				"path": "cell_classes.ts",
				"declarations": [
					{
						"name": "cell_classes",
						"kind": "variable",
						"source_line": 28,
						"type_signature": "{ Parts: typeof Parts; Capabilities: typeof Capabilities; Chat: typeof Chat; Chats: typeof Chats; Diskfile: typeof Diskfile; DiskfileTab: typeof DiskfileTab; DiskfileTabs: typeof DiskfileTabs; ... 18 more ...; Ui: typeof Ui; }"
					},
					{
						"name": "CellClasses",
						"kind": "type",
						"source_line": 57,
						"type_signature": "{ Parts: typeof Parts; Capabilities: typeof Capabilities; Chat: typeof Chat; Chats: typeof Chats; Diskfile: typeof Diskfile; DiskfileTab: typeof DiskfileTab; DiskfileTabs: typeof DiskfileTabs; ... 18 more ...; Ui: typeof Ui; }"
					},
					{
						"name": "CellClassNames",
						"kind": "type",
						"source_line": 59,
						"type_signature": "\"Action\" | \"Actions\" | \"Capabilities\" | \"Parts\" | \"Chat\" | \"Chats\" | \"Diskfile\" | \"DiskfileTab\" | \"DiskfileTabs\" | \"DiskfilePart\" | \"DiskfileHistory\" | \"Diskfiles\" | \"DiskfilesEditor\" | ... 12 more ... | \"Ui\""
					},
					{
						"name": "CellRegistryMap",
						"kind": "type",
						"source_line": 61,
						"type_signature": "CellRegistryMap"
					},
					{
						"name": "is_cell_type",
						"kind": "function",
						"doc_comment": "Type guard to check if a cell is an instance of a specific cell class.",
						"source_line": 68,
						"type_signature": "<K extends CellClassNames>(cell: Cell<any> | null | undefined, class_name: K): cell is CellRegistryMap[K]",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "cell",
								"type": "Cell<any> | null | undefined"
							},
							{
								"name": "class_name",
								"type": "K"
							}
						]
					},
					{
						"name": "get_cell_class_names",
						"kind": "function",
						"doc_comment": "Get a list of all registered cell class names.",
						"source_line": 76,
						"type_signature": "(): (\"Action\" | \"Actions\" | \"Capabilities\" | \"Parts\" | \"Chat\" | \"Chats\" | \"Diskfile\" | \"DiskfileTab\" | \"DiskfileTabs\" | \"DiskfilePart\" | \"DiskfileHistory\" | \"Diskfiles\" | \"DiskfilesEditor\" | ... 12 more ... | \"Ui\")[]",
						"return_type": "(\"Action\" | \"Actions\" | \"Capabilities\" | \"Parts\" | \"Chat\" | \"Chats\" | \"Diskfile\" | \"DiskfileTab\" | \"DiskfileTabs\" | \"DiskfilePart\" | \"DiskfileHistory\" | \"Diskfiles\" | \"DiskfilesEditor\" | ... 12 more ... | \"Ui\")[]",
						"parameters": []
					}
				],
				"dependencies": [
					"action.svelte.ts",
					"actions.svelte.ts",
					"capabilities.svelte.ts",
					"chat.svelte.ts",
					"chats.svelte.ts",
					"diskfile.svelte.ts",
					"diskfile_history.svelte.ts",
					"diskfile_tab.svelte.ts",
					"diskfile_tabs.svelte.ts",
					"diskfiles.svelte.ts",
					"diskfiles_editor.svelte.ts",
					"model.svelte.ts",
					"models.svelte.ts",
					"part.svelte.ts",
					"parts.svelte.ts",
					"prompt.svelte.ts",
					"prompts.svelte.ts",
					"provider.svelte.ts",
					"providers.svelte.ts",
					"socket.svelte.ts",
					"thread.svelte.ts",
					"threads.svelte.ts",
					"time.svelte.ts",
					"turn.svelte.ts",
					"ui.svelte.ts"
				],
				"dependents": [
					"app.svelte.ts",
					"frontend.svelte.ts"
				]
			},
			{
				"path": "cell_helpers.ts",
				"declarations": [
					{
						"name": "HANDLED",
						"kind": "variable",
						"doc_comment": "Sentinel value to indicate a parser has completely handled a property.",
						"source_line": 5,
						"type_signature": "unique symbol"
					},
					{
						"name": "FILE_SHORT_DATE_FORMAT",
						"kind": "variable",
						"source_line": 8,
						"type_signature": "\"MMM d, p\""
					},
					{
						"name": "FILE_DATETIME_FORMAT",
						"kind": "variable",
						"source_line": 9,
						"type_signature": "\"MMM d, yyyy h:mm:ss a\""
					},
					{
						"name": "FILE_TIME_FORMAT",
						"kind": "variable",
						"source_line": 10,
						"type_signature": "\"HH:mm:ss\""
					},
					{
						"name": "SchemaClassInfo",
						"kind": "type",
						"doc_comment": "Schema class information extracted from a Zod schema.",
						"source_line": 15,
						"type_signature": "SchemaClassInfo",
						"properties": [
							{
								"name": "type",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "is_array",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "class_name",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "element_class",
								"kind": "variable",
								"type_signature": "string"
							}
						]
					},
					{
						"name": "ValueParser",
						"kind": "type",
						"source_line": 23,
						"type_signature": "ValueParser<TSchema, TKey>",
						"generic_params": [
							{
								"name": "TSchema",
								"constraint": "z.ZodType"
							},
							{
								"name": "TKey",
								"constraint": "keyof z.infer<TSchema>",
								"default_type": "keyof z.infer<TSchema>"
							}
						]
					},
					{
						"name": "CellValueDecoder",
						"kind": "type",
						"doc_comment": "Type helper for decoders that includes base schema properties.\nUse this instead of `ValueParser` when creating decoders for cells\nto properly type the base properties.",
						"source_line": 35,
						"type_signature": "CellValueDecoder<TSchema, TKey>",
						"generic_params": [
							{
								"name": "TSchema",
								"constraint": "z.ZodType"
							},
							{
								"name": "TKey",
								"constraint": "keyof z.infer<TSchema>",
								"default_type": "keyof z.infer<TSchema>"
							}
						]
					},
					{
						"name": "get_schema_class_info",
						"kind": "function",
						"doc_comment": "Get schema class information from a Zod schema.\nThis helps determine how to decode values based on their schema definition.",
						"source_line": 46,
						"type_signature": "(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> | null | undefined): SchemaClassInfo | null",
						"return_type": "SchemaClassInfo | null",
						"parameters": [
							{
								"name": "schema",
								"type": "ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> | null | undefined"
							}
						]
					}
				],
				"dependencies": [
					"zod_helpers.ts"
				],
				"dependents": [
					"actions.svelte.ts",
					"cell.svelte.ts",
					"chats.svelte.ts",
					"diskfiles.svelte.ts",
					"frontend.svelte.ts",
					"models.svelte.ts",
					"parts.svelte.ts",
					"prompts.svelte.ts",
					"thread.svelte.ts",
					"threads.svelte.ts",
					"time_helpers.ts"
				]
			},
			{
				"path": "cell_registry.svelte.ts",
				"declarations": [
					{
						"name": "ClassNotRegisteredError",
						"kind": "class",
						"doc_comment": "Error thrown when attempting to instantiate an unregistered class.",
						"source_line": 13,
						"extends": [
							"Error"
						],
						"implements": [],
						"members": [
							{
								"name": "class_name",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string"
							},
							{
								"name": "available_classes",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<string>"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(class_name: string, available_classes: string[], options?: ErrorOptions | undefined): ClassNotRegisteredError",
								"parameters": [
									{
										"name": "class_name",
										"type": "string"
									},
									{
										"name": "available_classes",
										"type": "string[]"
									},
									{
										"name": "options",
										"type": "ErrorOptions | undefined",
										"optional": true
									}
								]
							}
						]
					},
					{
						"name": "CellRegistry",
						"kind": "class",
						"doc_comment": "Registry for managing cell classes and their instances.\nThe goal is to allow dynamic instantiation of all cells from serializable JSON.\n`CellRegistry` does not currently justify its weight/complexity and may be removed in the future,\nbut I want to continue exploring the ideas behind it until we get fully snapshottable UI.",
						"source_line": 32,
						"members": [
							{
								"name": "app",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Frontend"
							},
							{
								"name": "class_names",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<string>"
							},
							{
								"name": "all",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Map<Uuid, Cell>"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(app: Frontend): CellRegistry",
								"parameters": [
									{
										"name": "app",
										"type": "Frontend"
									}
								]
							},
							{
								"name": "register",
								"kind": "function",
								"doc_comment": "Register a cell class with the registry.",
								"type_signature": "(constructor: ClassConstructor<Cell<ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>>>): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "constructor",
										"type": "ClassConstructor<Cell<ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>>>"
									}
								]
							},
							{
								"name": "unregister",
								"kind": "function",
								"doc_comment": "Unregister a cell class from the registry.",
								"type_signature": "(class_name: string): boolean",
								"return_type": "boolean",
								"parameters": [
									{
										"name": "class_name",
										"type": "string"
									}
								]
							},
							{
								"name": "maybe_instantiate",
								"kind": "function",
								"doc_comment": "Attempt to instantiate a class, returning null if not found.\nLogs an error in development if the class isn't registered.",
								"type_signature": "<K extends keyof CellRegistryMap>(class_name: K, json?: (CellRegistryMap[K] extends Cell<infer TSchema extends ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>> ? input<...> : never) | undefined, options?: object | undefined): CellRegistryMap[K] | null",
								"return_type": "CellRegistryMap[K] | null",
								"parameters": [
									{
										"name": "class_name",
										"type": "K"
									},
									{
										"name": "json",
										"type": "(CellRegistryMap[K] extends Cell<infer TSchema extends ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>> ? input<TSchema> : never) | undefined",
										"optional": true
									},
									{
										"name": "options",
										"type": "object | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "instantiate",
								"kind": "function",
								"doc_comment": "Create an instance of a registered cell class by name.\nThrows if the class isn't found.\n\nType is automatically inferred from class name literals.",
								"type_signature": "<K extends keyof CellRegistryMap>(class_name: K, json?: (CellRegistryMap[K] extends Cell<infer TSchema extends ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>> ? input<...> : never) | undefined, options?: object | undefined): CellRegistryMap[K]",
								"return_type": "CellRegistryMap[K]",
								"parameters": [
									{
										"name": "class_name",
										"type": "K"
									},
									{
										"name": "json",
										"type": "(CellRegistryMap[K] extends Cell<infer TSchema extends ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>> ? input<TSchema> : never) | undefined",
										"optional": true
									},
									{
										"name": "options",
										"type": "object | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "add_cell",
								"kind": "function",
								"type_signature": "(cell: Cell<any>): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "cell",
										"type": "Cell<any>"
									}
								]
							},
							{
								"name": "remove_cell",
								"kind": "function",
								"type_signature": "(id: string & $brand<\"Uuid\">): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							}
						]
					}
				],
				"dependents": [
					"frontend.svelte.ts"
				]
			},
			{
				"path": "cell_types.ts",
				"declarations": [
					{
						"name": "SchemaKeys",
						"kind": "type",
						"doc_comment": "Get keys from a Zod schema object.",
						"source_line": 7,
						"type_signature": "SchemaKeys<T>",
						"generic_params": [
							{
								"name": "T",
								"constraint": "z.ZodType"
							}
						]
					},
					{
						"name": "SchemaValue",
						"kind": "type",
						"doc_comment": "Get value type for a specific key in a Zod schema.",
						"source_line": 12,
						"type_signature": "SchemaValue<T, K>",
						"generic_params": [
							{
								"name": "T",
								"constraint": "z.ZodType"
							},
							{
								"name": "K",
								"constraint": "SchemaKeys<T>"
							}
						]
					},
					{
						"name": "CellJson",
						"kind": "type",
						"doc_comment": "Base schema that defines common properties for all cells.",
						"source_line": 17,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "CellJsonInput",
						"kind": "type",
						"source_line": 24,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; }"
					}
				],
				"dependencies": [
					"zod_helpers.ts"
				],
				"dependents": [
					"action.svelte.ts",
					"actions.svelte.ts",
					"capabilities.svelte.ts",
					"chat.svelte.ts",
					"chats.svelte.ts",
					"diskfile_history.svelte.ts",
					"diskfile_tab.svelte.ts",
					"diskfile_tabs.svelte.ts",
					"diskfile_types.ts",
					"diskfiles.svelte.ts",
					"diskfiles_editor.svelte.ts",
					"frontend.svelte.ts",
					"model.svelte.ts",
					"models.svelte.ts",
					"ollama.svelte.ts",
					"part.svelte.ts",
					"parts.svelte.ts",
					"prompt.svelte.ts",
					"prompts.svelte.ts",
					"provider.svelte.ts",
					"providers.svelte.ts",
					"socket.svelte.ts",
					"thread_types.ts",
					"threads.svelte.ts",
					"time.svelte.ts",
					"turn_types.ts",
					"ui.svelte.ts"
				]
			},
			{
				"path": "cell.svelte.ts",
				"declarations": [
					{
						"name": "CellOptions",
						"kind": "type",
						"doc_comment": "Any options besides these declared ones are ignored,\nso they're safe to forward when subclassing without needing to extract the rest options.",
						"source_line": 26,
						"type_signature": "CellOptions<TSchema>",
						"generic_params": [
							{
								"name": "TSchema",
								"constraint": "z.ZodType"
							}
						],
						"properties": [
							{
								"name": "app",
								"kind": "variable",
								"type_signature": "Frontend"
							},
							{
								"name": "json",
								"kind": "variable",
								"type_signature": "z.input<TSchema>"
							}
						]
					},
					{
						"name": "get_global_cell_count",
						"kind": "function",
						"doc_comment": "A monotonic id for cell instances on the client.\nThis is not reactive and never changes on the instance,\nwhereas `id` can change. It's useful for ordering -\nthe motivating usecase was correctly sorting objects with the same `created` millisecond.\n\nThis may cause issues based on how data gets queried, but at least it's stable once loaded.\nHowever we may need to revisit this if it causes problems.",
						"source_line": 40,
						"type_signature": "(): number",
						"return_type": "number",
						"parameters": []
					},
					{
						"name": "Cell",
						"kind": "class",
						"doc_comment": "The `Cell` is the base class for schema-driven data models in Zzz.\nThe goals are still evolving, but a main idea is to have fully reactive state\nthat can be flexibly snapshotted and reinstantiated in a typesafe, extensible system\nthat uses normal Svelte patterns.\n\nThe design aims for:\n\n- Integration with Svelte's reactivity, encouraging single-depth inheritance\n\t\twith Svelte class patterns for both persistent and ephemeral state\n- Schema-driven parsing/validation and JSON serialization/deserialization\n\t\t(supporting snapshot and restore/replay patterns) via Zod\n- Custom property encoding/decoding for complex types,\n\t\tand no boilerplate for schema-inferrable properties\n- Lifecycle management with generic instantiation/registration and disposal\n\t\t(conceptually a WIP, partially implemented)\n- Runtime type metadata for reflection\n\nCells are automatically registered in the global registry by `id`,\nmaking them discoverable and referenceable throughout the system.\nEach cell has common properties including `id` and `created`/`updated` timestamps.\n\nThere are currently a lot of rough edges and missing features!\nMy hope is that this could be generic enough to extract to a library, but it's not there yet.\nI assume there's a really nice design in this space that takes full advantage of Svelte runes.\n\nMany things will be possible with this pattern, but it's still a work in progress.",
						"source_line": 71,
						"extends": [],
						"implements": [
							"CellJson"
						],
						"generic_params": [
							{
								"name": "TSchema",
								"constraint": "z.ZodType",
								"default_type": "z.ZodType"
							}
						],
						"members": [
							{
								"name": "cid",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "id",
								"kind": "variable",
								"type_signature": "Uuid"
							},
							{
								"name": "created",
								"kind": "variable",
								"type_signature": "Datetime"
							},
							{
								"name": "updated",
								"kind": "variable",
								"type_signature": "Datetime"
							},
							{
								"name": "schema",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "TSchema"
							},
							{
								"name": "schema_keys",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<SchemaKeys<TSchema>>"
							},
							{
								"name": "field_schemas",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Map<SchemaKeys<TSchema>, z.ZodType>"
							},
							{
								"name": "field_schema_info",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Map<SchemaKeys<TSchema>, SchemaClassInfo | null>"
							},
							{
								"name": "json",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "z.output<TSchema>"
							},
							{
								"name": "json_serialized",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string"
							},
							{
								"name": "json_parsed",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "z.ZodSafeParseResult<z.output<TSchema>>"
							},
							{
								"name": "app",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Frontend"
							},
							{
								"name": "decoders",
								"kind": "variable",
								"modifiers": [
									"protected"
								],
								"doc_comment": "Type-safe decoders for custom field decoding.\nOverride in subclasses to handle special field types.\n\nEach decoder function takes a value of any type and should either:\n1. Return a value (including null) to be assigned to the property\n2. Return undefined to use the default decoding behavior\n3. Return `HANDLED` to indicate the decoder has fully processed the property\n   (virtual properties MUST return `HANDLED` if they exist in schema but not in class)",
								"type_signature": "CellValueDecoder<TSchema>"
							},
							{
								"name": "created_date",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Date"
							},
							{
								"name": "created_formatted_short_date",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string"
							},
							{
								"name": "created_formatted_datetime",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string"
							},
							{
								"name": "created_formatted_time",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string"
							},
							{
								"name": "updated_date",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Date"
							},
							{
								"name": "updated_formatted_short_date",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string"
							},
							{
								"name": "updated_formatted_datetime",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string"
							},
							{
								"name": "updated_formatted_time",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "<TSchema extends z.ZodType = ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>>(schema: TSchema, options: CellOptions<TSchema>): Cell<TSchema>",
								"parameters": [
									{
										"name": "schema",
										"type": "TSchema"
									},
									{
										"name": "options",
										"type": "CellOptions<TSchema>"
									}
								]
							},
							{
								"name": "init",
								"kind": "function",
								"modifiers": [
									"protected"
								],
								"doc_comment": "Initialize the instance with `options.json` data if provided.\nMust be called before using the instance -\nthe current pattern is calling it at the end of subclass constructors.\n\nWe should investigate deferring to callers so e.g. instantiating from the registry\nwould init automatically, subclasses need no init logic (which can get unwieldy with inheritance),\nand then callers could always do custom init patterns if they wanted.\n\nCan't be called automatically by the `Cell`'s constructor because\nthe subclass' constructor needs to run first to support field initialization.\nA design goal behind the `Cell` is to support normal TS and Svelte patterns\nwith the most power and least intrusion. (there's a balance to find from Zzz's POV)",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "dispose",
								"kind": "function",
								"doc_comment": "Clean up resources when this cell is no longer needed.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "[Symbol.dispose]",
								"kind": "function",
								"doc_comment": "This is not supported in Safari, don't rely on this yet.\nUncomment temporarily to experiment in dev.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "register",
								"kind": "function",
								"modifiers": [
									"protected"
								],
								"doc_comment": "Register this cell in the global cell registry.\nCalled automatically by `init()`.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "unregister",
								"kind": "function",
								"modifiers": [
									"protected"
								],
								"doc_comment": "Unregister this cell from the global cell registry.\nCalled automatically by `dispose()`.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "toJSON",
								"kind": "function",
								"doc_comment": "For Svelte's $snapshot.",
								"type_signature": "(): output<TSchema>",
								"return_type": "output<TSchema>",
								"parameters": []
							},
							{
								"name": "to_json",
								"kind": "function",
								"doc_comment": "Encodes the cell's serializable state as JSON.\nUse the derived `cell.json` if you don't need a fresh copy.",
								"type_signature": "(): output<TSchema>",
								"return_type": "output<TSchema>",
								"parameters": []
							},
							{
								"name": "set_json",
								"kind": "function",
								"doc_comment": "Apply JSON data to this instance.\nOverwrites all properties including 'id'.\nSpecial-cases `created` and `updated` for synchronization.",
								"type_signature": "(value: input<TSchema> | undefined): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "value",
										"type": "input<TSchema> | undefined"
									}
								]
							},
							{
								"name": "set_json_partial",
								"kind": "function",
								"doc_comment": "Update only the specified properties on this instance.\nPreserves current values for any properties not included in the input.",
								"type_signature": "(partial_value: Partial<input<TSchema>>): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "partial_value",
										"type": "Partial<input<TSchema>>"
									}
								]
							},
							{
								"name": "encode_property",
								"kind": "function",
								"doc_comment": "Encode a value during serialization. Can be overridden for custom encoding logic.\nDefaults to Svelte's `$state.snapshot`,\nwhich handles most cases and uses `toJSON` when available,\nso overriding `to_json` is sufficient for most cases before overriding `encode_property`.",
								"type_signature": "(value: unknown, _key: string): unknown",
								"return_type": "unknown",
								"parameters": [
									{
										"name": "value",
										"type": "unknown"
									},
									{
										"name": "_key",
										"type": "string"
									}
								]
							},
							{
								"name": "decode_property",
								"kind": "function",
								"doc_comment": "Decode a value based on its schema type information.\nThis handles instantiating classes, transforming arrays, and special types.\n\nComplex property types might require custom handling in parser functions\nrather than using this general decoding mechanism.",
								"type_signature": "<K extends SchemaKeys<TSchema>>(value: unknown, key: K): any",
								"return_type": "any",
								"parameters": [
									{
										"name": "value",
										"type": "unknown"
									},
									{
										"name": "key",
										"type": "K"
									}
								]
							},
							{
								"name": "assign_property",
								"kind": "function",
								"modifiers": [
									"protected"
								],
								"doc_comment": "Process a single schema property during JSON deserialization.\nThis method handles the workflow for mapping schema properties to instance properties.\n\nFlow:\n1. If a decoder exists for this property, try to use it\n2. If decoder returns `HANDLED`, consider the property fully handled (short circuit)\n3. If decoder returns a value other than `HANDLED` or undefined, use that value\n4. If decoder returns undefined, fall through to standard decoding\n5. For properties not directly represented in the class instance but defined\n   in the schema, the decoder MUST return `HANDLED` to indicate proper handling",
								"type_signature": "(key: SchemaKeys<TSchema>, value: unknown): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "key",
										"type": "SchemaKeys<TSchema>"
									},
									{
										"name": "value",
										"type": "unknown"
									}
								]
							},
							{
								"name": "clone",
								"kind": "function",
								"doc_comment": "Generic clone method that works for any subclass.",
								"type_signature": "(json?: input<TSchema> | undefined, options?: CellOptions<TSchema> | undefined): this",
								"return_type": "this",
								"parameters": [
									{
										"name": "json",
										"type": "input<TSchema> | undefined",
										"optional": true
									},
									{
										"name": "options",
										"type": "CellOptions<TSchema> | undefined",
										"optional": true
									}
								]
							}
						]
					}
				],
				"dependencies": [
					"cell_helpers.ts",
					"time_helpers.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"action.svelte.ts",
					"actions.svelte.ts",
					"capabilities.svelte.ts",
					"chat.svelte.ts",
					"chats.svelte.ts",
					"diskfile.svelte.ts",
					"diskfile_history.svelte.ts",
					"diskfile_tab.svelte.ts",
					"diskfile_tabs.svelte.ts",
					"diskfiles.svelte.ts",
					"diskfiles_editor.svelte.ts",
					"frontend.svelte.ts",
					"model.svelte.ts",
					"models.svelte.ts",
					"ollama.svelte.ts",
					"part.svelte.ts",
					"parts.svelte.ts",
					"prompt.svelte.ts",
					"prompts.svelte.ts",
					"provider.svelte.ts",
					"providers.svelte.ts",
					"socket.svelte.ts",
					"thread.svelte.ts",
					"threads.svelte.ts",
					"time.svelte.ts",
					"turn.svelte.ts",
					"turn_types.ts",
					"ui.svelte.ts"
				]
			},
			{
				"path": "chat_template.ts",
				"declarations": [
					{
						"name": "ChatTemplate",
						"kind": "type",
						"doc_comment": "Represents a template for creating a new chat with specific model configurations",
						"source_line": 8,
						"type_signature": "ChatTemplate",
						"properties": [
							{
								"name": "id",
								"kind": "variable",
								"type_signature": "Uuid"
							},
							{
								"name": "name",
								"kind": "variable",
								"type_signature": "string",
								"doc_comment": "Human-readable name of the template."
							},
							{
								"name": "model_names",
								"kind": "variable",
								"type_signature": "Array<string>",
								"doc_comment": "List of model names to include in chats created from this template."
							}
						]
					}
				]
			},
			{
				"path": "chat.svelte.ts",
				"declarations": [
					{
						"name": "ChatViewMode",
						"kind": "type",
						"source_line": 16,
						"type_signature": "\"simple\" | \"multi\""
					},
					{
						"name": "ChatJson",
						"kind": "type",
						"source_line": 18,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; ... 5 more ...; selected_thread_id: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "ChatJsonInput",
						"kind": "type",
						"source_line": 26,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; thread_ids?: string[] | undefined; main_input?: string | undefined; view_mode?: \"simple\" | ... 1 more ... | undefined; selected_thread_id?: string | ... 1 more ... | undefined; }"
					},
					{
						"name": "ChatOptions",
						"kind": "type",
						"source_line": 28,
						"type_signature": "ChatOptions",
						"extends": [
							"CellOptions<typeof ChatJson>"
						],
						"properties": []
					},
					{
						"name": "Chat",
						"kind": "class",
						"source_line": 30,
						"extends": [
							"Cell<typeof ChatJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "name",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "thread_ids",
								"kind": "variable",
								"type_signature": "Array<Uuid>"
							},
							{
								"name": "main_input",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "view_mode",
								"kind": "variable",
								"type_signature": "ChatViewMode"
							},
							{
								"name": "selected_thread_id",
								"kind": "variable",
								"type_signature": "Uuid | null"
							},
							{
								"name": "main_input_length",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number"
							},
							{
								"name": "main_input_token_count",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number"
							},
							{
								"name": "threads",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<Thread>"
							},
							{
								"name": "enabled_threads",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "selected_thread",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Thread | undefined"
							},
							{
								"name": "current_thread",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Thread | undefined"
							},
							{
								"name": "init_name_status",
								"kind": "variable",
								"type_signature": "AsyncStatus"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: ChatOptions): Chat",
								"parameters": [
									{
										"name": "options",
										"type": "ChatOptions"
									}
								]
							},
							{
								"name": "add_thread",
								"kind": "function",
								"type_signature": "(model: Model, select?: boolean | undefined): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "model",
										"type": "Model"
									},
									{
										"name": "select",
										"type": "boolean | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "add_threads_by_model_tag",
								"kind": "function",
								"type_signature": "(tag: string): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "tag",
										"type": "string"
									}
								]
							},
							{
								"name": "remove_thread",
								"kind": "function",
								"type_signature": "(id: string & $brand<\"Uuid\">): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "remove_threads",
								"kind": "function",
								"type_signature": "(ids: (string & $brand<\"Uuid\">)[]): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "ids",
										"type": "(string & $brand<\"Uuid\">)[]"
									}
								]
							},
							{
								"name": "remove_threads_by_model_tag",
								"kind": "function",
								"type_signature": "(tag: string): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "tag",
										"type": "string"
									}
								]
							},
							{
								"name": "remove_all_threads",
								"kind": "function",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "send_to_all",
								"kind": "function",
								"type_signature": "(content: string): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": [
									{
										"name": "content",
										"type": "string"
									}
								]
							},
							{
								"name": "send_to_thread",
								"kind": "function",
								"type_signature": "(thread_id: string & $brand<\"Uuid\">, content: string): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": [
									{
										"name": "thread_id",
										"type": "string & $brand<\"Uuid\">"
									},
									{
										"name": "content",
										"type": "string"
									}
								]
							},
							{
								"name": "init_name_from_turns",
								"kind": "function",
								"doc_comment": "Uses an LLM to name the chat based on the user input and AI response.\nIgnores failures and retries on next intention.",
								"type_signature": "(user_content: string, assistant_content: string): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": [
									{
										"name": "user_content",
										"type": "string"
									},
									{
										"name": "assistant_content",
										"type": "string"
									}
								]
							},
							{
								"name": "select_thread",
								"kind": "function",
								"doc_comment": "Reorder threads by moving from one index to another",
								"type_signature": "(thread_id: (string & $brand<\"Uuid\">) | null): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "thread_id",
										"type": "(string & $brand<\"Uuid\">) | null"
									}
								]
							},
							{
								"name": "reorder_threads",
								"kind": "function",
								"type_signature": "(from_index: number, to_index: number): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "from_index",
										"type": "number"
									},
									{
										"name": "to_index",
										"type": "number"
									}
								]
							}
						]
					},
					{
						"name": "ChatSchema",
						"kind": "variable",
						"source_line": 219,
						"type_signature": "ZodCustom<Chat, Chat>"
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_types.ts",
					"completion_types.ts",
					"helpers.ts",
					"list_helpers.ts",
					"response_helpers.ts",
					"thread.svelte.ts",
					"thread_helpers.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"ChatThreadManageByTag.svelte",
					"ChatView.svelte",
					"ChatViewMulti.svelte",
					"cell_classes.ts",
					"chats.svelte.ts"
				]
			},
			{
				"path": "ChatContextmenu.svelte",
				"declarations": [
					{
						"name": "ChatContextmenu",
						"kind": "component",
						"props": [
							{
								"name": "chat",
								"type": "Chat"
							},
							{
								"name": "children",
								"type": "Snippet"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ContextmenuEntryCopyToClipboard.svelte",
					"Glyph.svelte",
					"ModelPickerDialog.svelte",
					"frontend.svelte.ts",
					"glyphs.ts"
				],
				"dependents": [
					"ChatListitem.svelte",
					"DashboardChats.svelte"
				]
			},
			{
				"path": "ChatInitializer.svelte",
				"declarations": [
					{
						"name": "ChatInitializer",
						"kind": "component",
						"props": [
							{
								"name": "chat",
								"type": "Chat",
								"optional": true
							},
							{
								"name": "oninit",
								"type": "(chat_id: Uuid) => void",
								"optional": true
							},
							{
								"name": "heading",
								"type": "string",
								"optional": true
							},
							{
								"name": "items",
								"type": "Array<Model>",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ModelPicker.svelte",
					"ProviderLogo.svelte",
					"frontend.svelte.ts"
				],
				"dependents": [
					"ChatView.svelte"
				]
			},
			{
				"path": "ChatList.svelte",
				"declarations": [
					{
						"name": "ChatList",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"ChatListitem.svelte",
					"SortableList.svelte",
					"frontend.svelte.ts",
					"sortable.svelte.ts"
				],
				"dependents": [
					"DashboardChats.svelte",
					"DashboardHome.svelte"
				]
			},
			{
				"path": "ChatListitem.svelte",
				"declarations": [
					{
						"name": "ChatListitem",
						"kind": "component",
						"props": [
							{
								"name": "chat",
								"type": "Chat"
							},
							{
								"name": "selected",
								"type": "boolean | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ChatContextmenu.svelte",
					"Glyph.svelte",
					"NavLink.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"ChatList.svelte"
				]
			},
			{
				"path": "chats.svelte.ts",
				"declarations": [
					{
						"name": "ChatsJson",
						"kind": "type",
						"source_line": 18,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; ... 4 more ...; show_sort_controls: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "ChatsJsonInput",
						"kind": "type",
						"source_line": 25,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; items?: { id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; thread_ids?: string[] | undefined; main_input?: string | undefined; view_mode?: \"simple\" | ... 1 more ... | ..."
					},
					{
						"name": "ChatsOptions",
						"kind": "type",
						"source_line": 27,
						"type_signature": "ChatsOptions",
						"extends": [
							"CellOptions<typeof ChatsJson>"
						],
						"properties": []
					},
					{
						"name": "Chats",
						"kind": "class",
						"source_line": 29,
						"extends": [
							"Cell<typeof ChatsJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "items",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "IndexedCollection<Chat>"
							},
							{
								"name": "selected_id_last_non_null",
								"kind": "variable",
								"type_signature": "Uuid | null"
							},
							{
								"name": "selected",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Chat | undefined"
							},
							{
								"name": "selected_id_error",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "boolean"
							},
							{
								"name": "show_sort_controls",
								"kind": "variable",
								"doc_comment": "Controls visibility of sort controls in the chats list.",
								"type_signature": "boolean"
							},
							{
								"name": "ordered_items",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Ordered array of chats derived from the `manual_order` index.",
								"type_signature": "Array<Chat>"
							},
							{
								"name": "items_by_name",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: ChatsOptions): Chats",
								"parameters": [
									{
										"name": "options",
										"type": "ChatsOptions"
									}
								]
							},
							{
								"name": "add",
								"kind": "function",
								"type_signature": "(json?: { id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; thread_ids?: string[] | undefined; main_input?: string | undefined; view_mode?: \"simple\" | ... 1 more ... | undefined; selected_thread_id?: string | ... 1 more ... | undefined; } | undefined, select?: boolean | undefined): Chat",
								"return_type": "Chat",
								"parameters": [
									{
										"name": "json",
										"type": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; thread_ids?: string[] | undefined; main_input?: string | undefined; view_mode?: \"simple\" | ... 1 more ... | undefined; selected_thread_id?: string | ... 1 more ... | undefined; } | undefined",
										"optional": true
									},
									{
										"name": "select",
										"type": "boolean | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "generate_unique_name",
								"kind": "function",
								"type_signature": "(base_name?: string): string",
								"return_type": "string",
								"parameters": [
									{
										"name": "base_name",
										"type": "string",
										"default_value": "'new chat'"
									}
								]
							},
							{
								"name": "add_chat",
								"kind": "function",
								"type_signature": "(chat: Chat, select?: boolean | undefined): Chat",
								"return_type": "Chat",
								"parameters": [
									{
										"name": "chat",
										"type": "Chat"
									},
									{
										"name": "select",
										"type": "boolean | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "add_many",
								"kind": "function",
								"type_signature": "(chats_json: { id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; thread_ids?: string[] | undefined; main_input?: string | undefined; view_mode?: \"simple\" | ... 1 more ... | undefined; selected_thread_id?: string | ... 1 more ... | undefined; }[], select?: number | ... 1 more ... | undefined): Chat[]",
								"return_type": "Chat[]",
								"parameters": [
									{
										"name": "chats_json",
										"type": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; thread_ids?: string[] | undefined; main_input?: string | undefined; view_mode?: \"simple\" | ... 1 more ... | undefined; selected_thread_id?: string | ... 1 more ... | undefined; }[]"
									},
									{
										"name": "select",
										"type": "number | boolean | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "remove",
								"kind": "function",
								"type_signature": "(id: string & $brand<\"Uuid\">): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "remove_many",
								"kind": "function",
								"type_signature": "(ids: (string & $brand<\"Uuid\">)[]): number",
								"return_type": "number",
								"parameters": [
									{
										"name": "ids",
										"type": "(string & $brand<\"Uuid\">)[]"
									}
								]
							},
							{
								"name": "select",
								"kind": "function",
								"type_signature": "(chat_id: (string & $brand<\"Uuid\">) | null): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": [
									{
										"name": "chat_id",
										"type": "(string & $brand<\"Uuid\">) | null"
									}
								]
							},
							{
								"name": "select_next",
								"kind": "function",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							},
							{
								"name": "navigate_to",
								"kind": "function",
								"type_signature": "(chat_id: (string & $brand<\"Uuid\">) | null, force?: boolean): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": [
									{
										"name": "chat_id",
										"type": "(string & $brand<\"Uuid\">) | null"
									},
									{
										"name": "force",
										"type": "boolean",
										"default_value": "false"
									}
								]
							},
							{
								"name": "reorder_chats",
								"kind": "function",
								"type_signature": "(from_index: number, to_index: number): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "from_index",
										"type": "number"
									},
									{
										"name": "to_index",
										"type": "number"
									}
								]
							},
							{
								"name": "toggle_sort_controls",
								"kind": "function",
								"doc_comment": "Toggles the visibility of sort controls in the chats list.",
								"type_signature": "(value?: boolean): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "value",
										"type": "boolean",
										"default_value": "!this.show_sort_controls"
									}
								]
							},
							{
								"name": "chat_templates",
								"kind": "variable"
							},
							{
								"name": "get_template_by_id",
								"kind": "function",
								"type_signature": "(id: string): ChatTemplate | undefined",
								"return_type": "ChatTemplate | undefined",
								"parameters": [
									{
										"name": "id",
										"type": "string"
									}
								]
							},
							{
								"name": "get_default_template",
								"kind": "function",
								"type_signature": "(): ChatTemplate",
								"return_type": "ChatTemplate",
								"parameters": []
							}
						]
					},
					{
						"name": "ChatsSchema",
						"kind": "variable",
						"source_line": 192,
						"type_signature": "ZodCustom<Chats, Chats>"
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_helpers.ts",
					"cell_types.ts",
					"chat.svelte.ts",
					"config_defaults.ts",
					"helpers.ts",
					"indexed_collection.svelte.ts",
					"indexed_collection_helpers.svelte.ts",
					"list_helpers.ts",
					"nav_helpers.ts",
					"navigation_helpers.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"frontend.svelte.ts"
				]
			},
			{
				"path": "ChatsContextmenu.svelte",
				"declarations": [
					{
						"name": "ChatsContextmenu",
						"kind": "component",
						"props": [
							{
								"name": "children",
								"type": "Snippet"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"frontend.svelte.ts",
					"glyphs.ts"
				],
				"dependents": [
					"DashboardChats.svelte"
				]
			},
			{
				"path": "ChatThread.svelte",
				"declarations": [
					{
						"name": "ChatThread",
						"kind": "component",
						"props": [
							{
								"name": "thread",
								"type": "Thread"
							},
							{
								"name": "onsend",
								"type": "(input: string) => Promise<void>"
							},
							{
								"name": "focus_key",
								"type": "string | number | null | undefined",
								"optional": true
							},
							{
								"name": "pending_element_to_focus_key",
								"type": "string | number | null | undefined",
								"optional": true,
								"bindable": true
							},
							{
								"name": "turns_attrs",
								"type": "SvelteHTMLElements['div'] | undefined",
								"optional": true
							},
							{
								"name": "attrs",
								"type": "SvelteHTMLElements['div'] | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ContentEditor.svelte",
					"Glyph.svelte",
					"ModelContextmenu.svelte",
					"ModelPickerDialog.svelte",
					"ProviderLink.svelte",
					"ThreadContextmenu.svelte",
					"TurnList.svelte",
					"glyphs.ts",
					"helpers.ts"
				],
				"dependents": [
					"ChatViewMulti.svelte",
					"ChatViewSimple.svelte"
				]
			},
			{
				"path": "ChatThreadAddByModel.svelte",
				"declarations": [
					{
						"name": "ChatThreadAddByModel",
						"kind": "component",
						"props": [
							{
								"name": "chat",
								"type": "Chat"
							},
							{
								"name": "attrs",
								"type": "SvelteHTMLElements['div'] | undefined",
								"optional": true
							},
							{
								"name": "children",
								"type": "Snippet | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ModelPicker.svelte"
				],
				"dependents": [
					"ChatView.svelte",
					"ChatViewSimple.svelte"
				]
			},
			{
				"path": "ChatThreadManageByTag.svelte",
				"declarations": [
					{
						"name": "ChatThreadManageByTag",
						"kind": "component",
						"props": [
							{
								"name": "chat",
								"type": "Chat"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ConfirmButton.svelte",
					"chat.svelte.ts"
				],
				"dependents": [
					"ChatView.svelte",
					"ChatViewSimple.svelte"
				]
			},
			{
				"path": "ChatView.svelte",
				"declarations": [
					{
						"name": "ChatView",
						"kind": "component",
						"props": [
							{
								"name": "chat",
								"type": "Chat"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ChatInitializer.svelte",
					"ChatThreadAddByModel.svelte",
					"ChatThreadManageByTag.svelte",
					"ChatViewMulti.svelte",
					"ChatViewSimple.svelte",
					"ConfirmButton.svelte",
					"EditableText.svelte",
					"Glyph.svelte",
					"ThreadList.svelte",
					"ToggleButton.svelte",
					"chat.svelte.ts",
					"frontend.svelte.ts",
					"glyphs.ts"
				],
				"dependents": [
					"DashboardChats.svelte"
				]
			},
			{
				"path": "ChatViewMulti.svelte",
				"declarations": [
					{
						"name": "ChatViewMulti",
						"kind": "component",
						"props": [
							{
								"name": "chat",
								"type": "Chat"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ChatThread.svelte",
					"ConfirmButton.svelte",
					"ContentEditor.svelte",
					"Glyph.svelte",
					"ModelPickerDialog.svelte",
					"chat.svelte.ts",
					"glyphs.ts"
				],
				"dependents": [
					"ChatView.svelte"
				]
			},
			{
				"path": "ChatViewSimple.svelte",
				"declarations": [
					{
						"name": "ChatViewSimple",
						"kind": "component",
						"props": [
							{
								"name": "chat",
								"type": "Chat"
							},
							{
								"name": "thread",
								"type": "Thread | undefined"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ChatThread.svelte",
					"ChatThreadAddByModel.svelte",
					"ChatThreadManageByTag.svelte"
				],
				"dependents": [
					"ChatView.svelte"
				]
			},
			{
				"path": "ClearRestoreButton.svelte",
				"declarations": [
					{
						"name": "ClearRestoreButton",
						"kind": "component",
						"props": [
							{
								"name": "value",
								"type": "string",
								"bindable": true
							},
							{
								"name": "restore_icon",
								"type": "Snippet | string | undefined",
								"optional": true
							},
							{
								"name": "clear_icon",
								"type": "Snippet | string | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ToggleButton.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"ContentEditor.svelte",
					"DiskfileActions.svelte"
				]
			},
			{
				"path": "codegen.ts",
				"declarations": [
					{
						"name": "ImportBuilder",
						"kind": "class",
						"doc_comment": "Manages imports for generated code, building them on demand.\nAutomatically optimizes type-only imports to use `import type` syntax.\n\nWhy this matters:\n- `import type` statements are completely removed during compilation\n- Mixed imports like `import { type A, B }` cannot be safely removed\n- This ensures optimal tree-shaking and smaller bundle sizes",
						"examples": [
							"```ts\nconst imports = new ImportBuilder();\nimports.add_types('./types.js', 'Foo', 'Bar');\nimports.add('./utils.js', 'helper');\nimports.add_type('./utils.js', 'HelperOptions');\nimports.add('./action_specs.js', '* as specs');\n\n// Generates:\n// import type {Foo, Bar} from './types.js';\n// import {helper, type HelperOptions} from './utils.js';\n// import * as specs from './action_specs.js';\n```"
						],
						"source_line": 43,
						"members": [
							{
								"name": "imports",
								"kind": "variable",
								"type_signature": "Map<string, Map<string, ImportItem>>"
							},
							{
								"name": "add",
								"kind": "function",
								"doc_comment": "Add a value import to be included in the generated code.",
								"type_signature": "(from: string, what: string): this",
								"return_type": "this",
								"parameters": [
									{
										"name": "from",
										"type": "string",
										"description": "The module to import from"
									},
									{
										"name": "what",
										"type": "string",
										"description": "What to import (value)"
									}
								]
							},
							{
								"name": "add_type",
								"kind": "function",
								"doc_comment": "Add a type import to be included in the generated code.",
								"type_signature": "(from: string, what: string): this",
								"return_type": "this",
								"parameters": [
									{
										"name": "from",
										"type": "string",
										"description": "The module to import from"
									},
									{
										"name": "what",
										"type": "string",
										"description": "What to import (type)"
									}
								]
							},
							{
								"name": "add_many",
								"kind": "function",
								"doc_comment": "Add multiple value imports from the same module.",
								"type_signature": "(from: string, ...items: string[]): this",
								"return_type": "this",
								"parameters": [
									{
										"name": "from",
										"type": "string"
									},
									{
										"name": "items",
										"type": "string[]"
									}
								]
							},
							{
								"name": "add_types",
								"kind": "function",
								"doc_comment": "Add multiple type imports from the same module.",
								"type_signature": "(from: string, ...items: string[]): this",
								"return_type": "this",
								"parameters": [
									{
										"name": "from",
										"type": "string"
									},
									{
										"name": "items",
										"type": "string[]"
									}
								]
							},
							{
								"name": "build",
								"kind": "function",
								"doc_comment": "Generates the import statements.\nIf all imports from a module are types, uses `import type` syntax.",
								"type_signature": "(): string",
								"return_type": "string",
								"parameters": []
							},
							{
								"name": "has_imports",
								"kind": "function",
								"doc_comment": "Check if the builder has any imports.",
								"type_signature": "(): boolean",
								"return_type": "boolean",
								"parameters": []
							},
							{
								"name": "preview",
								"kind": "function",
								"doc_comment": "Preview what imports will be generated (useful for debugging).",
								"type_signature": "(): string[]",
								"return_type": "string[]",
								"return_description": "Array of import statement strings",
								"parameters": []
							},
							{
								"name": "clear",
								"kind": "function",
								"doc_comment": "Clear all imports.",
								"type_signature": "(): this",
								"return_type": "this",
								"parameters": []
							}
						]
					},
					{
						"name": "get_executor_phases",
						"kind": "function",
						"doc_comment": "Determines which phases an executor can handle based on the action spec.",
						"source_line": 204,
						"type_signature": "(spec: { method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | ... 11 more ... | \"toggle_main_menu\"; ... 6 more ...; async: true; } | { ...; } | { ...; }, executor: \"frontend\" | \"backend\"): (\"send_request\" | ... 7 more ... | \"execute\")[]",
						"return_type": "(\"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\")[]",
						"parameters": [
							{
								"name": "spec",
								"type": "{ method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"; ... 6 more ...; async: true; } | { ...; } | { ...; }"
							},
							{
								"name": "executor",
								"type": "\"frontend\" | \"backend\""
							}
						]
					},
					{
						"name": "get_handler_return_type",
						"kind": "function",
						"doc_comment": "Gets the handler return type for a specific phase and spec.\nAlso adds necessary imports to the `ImportBuilder`.",
						"source_line": 278,
						"type_signature": "(spec: { method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | ... 11 more ... | \"toggle_main_menu\"; ... 6 more ...; async: true; } | { ...; } | { ...; }, phase: \"send_request\" | ... 7 more ... | \"execute\", imports: ImportBuilder, path_prefix: string): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "spec",
								"type": "{ method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"; ... 6 more ...; async: true; } | { ...; } | { ...; }"
							},
							{
								"name": "phase",
								"type": "\"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\""
							},
							{
								"name": "imports",
								"type": "ImportBuilder"
							},
							{
								"name": "path_prefix",
								"type": "string"
							}
						]
					},
					{
						"name": "generate_phase_handlers",
						"kind": "function",
						"doc_comment": "Generates the phase handlers for an action spec using the unified `ActionEvent` type\nwith the new phase/step type parameters.",
						"source_line": 307,
						"type_signature": "(spec: { method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | ... 11 more ... | \"toggle_main_menu\"; ... 6 more ...; async: true; } | { ...; } | { ...; }, executor: \"frontend\" | \"backend\", imports: ImportBuilder): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "spec",
								"type": "{ method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"; ... 6 more ...; async: true; } | { ...; } | { ...; }"
							},
							{
								"name": "executor",
								"type": "\"frontend\" | \"backend\""
							},
							{
								"name": "imports",
								"type": "ImportBuilder"
							}
						]
					},
					{
						"name": "create_banner",
						"kind": "function",
						"doc_comment": "Creates a file banner comment.",
						"source_line": 347,
						"type_signature": "(origin_path: string): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "origin_path",
								"type": "string"
							}
						]
					}
				],
				"dependencies": [
					"action_types.ts"
				],
				"dependents": [
					"action_collections.gen.ts",
					"action_metatypes.gen.ts",
					"frontend_action_types.gen.ts",
					"server/backend_action_types.gen.ts"
				]
			},
			{
				"path": "completion_types.ts",
				"declarations": [
					{
						"name": "CompletionRole",
						"kind": "type",
						"source_line": 7,
						"type_signature": "ZodString"
					},
					{
						"name": "CompletionMessage",
						"kind": "type",
						"source_line": 10,
						"type_signature": "ZodObject<{ role: ZodString; content: ZodString; }, $loose>"
					},
					{
						"name": "CompletionRequest",
						"kind": "type",
						"source_line": 16,
						"type_signature": "ZodObject<{ created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; provider_name: ZodEnum<{ ollama: \"ollama\"; claude: \"claude\"; chatgpt: \"chatgpt\"; gemini: \"gemini\"; }>; model: ZodString; prompt: ZodString; completion_messages: ZodOptional<...>; }, $strict>"
					},
					{
						"name": "CompletionResponse",
						"kind": "type",
						"source_line": 26,
						"type_signature": "ZodObject<{ created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; provider_name: ZodEnum<{ ollama: \"ollama\"; claude: \"claude\"; chatgpt: \"chatgpt\"; gemini: \"gemini\"; }>; model: ZodString; data: ZodDiscriminatedUnion<...>; }, $strict>"
					}
				],
				"dependencies": [
					"provider_types.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"action_specs.ts",
					"chat.svelte.ts",
					"thread.svelte.ts",
					"turn_types.ts"
				]
			},
			{
				"path": "config_defaults.ts",
				"declarations": [
					{
						"name": "SYSTEM_MESSAGE_DEFAULT",
						"kind": "variable",
						"source_line": 12,
						"type_signature": "\"You are a helpful assistant that responds succinctly unless asked for more.\""
					},
					{
						"name": "OUTPUT_TOKEN_MAX_DEFAULT",
						"kind": "variable",
						"source_line": 14,
						"type_signature": "1000"
					},
					{
						"name": "TEMPERATURE_DEFAULT",
						"kind": "variable",
						"source_line": 15,
						"type_signature": "number | undefined"
					},
					{
						"name": "SEED_DEFAULT",
						"kind": "variable",
						"source_line": 16,
						"type_signature": "number | undefined"
					},
					{
						"name": "TOP_K_DEFAULT",
						"kind": "variable",
						"source_line": 17,
						"type_signature": "number | undefined"
					},
					{
						"name": "TOP_P_DEFAULT",
						"kind": "variable",
						"source_line": 18,
						"type_signature": "number | undefined"
					},
					{
						"name": "FREQUENCY_PENALTY_DEFAULT",
						"kind": "variable",
						"source_line": 19,
						"type_signature": "number | undefined"
					},
					{
						"name": "PRESENCE_PENALTY_DEFAULT",
						"kind": "variable",
						"source_line": 20,
						"type_signature": "number | undefined"
					},
					{
						"name": "STOP_SEQUENCES_DEFAULT",
						"kind": "variable",
						"source_line": 21,
						"type_signature": "string[] | undefined"
					},
					{
						"name": "BOTS_DEFAULT",
						"kind": "variable",
						"source_line": 22,
						"type_signature": "{ namerbot: string; }"
					},
					{
						"name": "providers_default",
						"kind": "variable",
						"source_line": 28,
						"type_signature": "{ name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; title: string; url: string; homepage: string; company: string; api_key_url: string | null; id?: string | undefined; created?: string | undefined; updated?: string | undefined; }[]"
					},
					{
						"name": "models_default",
						"kind": "variable",
						"source_line": 65,
						"type_signature": "{ name: string; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; id?: string | undefined; created?: string | undefined; updated?: string | undefined; tags?: string[] | undefined; ... 13 more ...; ollama_show_response_error?: string | undefined; }[]"
					},
					{
						"name": "chat_template_defaults",
						"kind": "variable",
						"doc_comment": "Default chat templates available in the application",
						"source_line": 105,
						"type_signature": "ChatTemplate[]"
					}
				],
				"dependencies": [
					"zod_helpers.ts"
				],
				"dependents": [
					"chats.svelte.ts",
					"config.ts",
					"frontend.svelte.ts"
				]
			},
			{
				"path": "config_helpers.ts",
				"declarations": [
					{
						"name": "ZzzConfigCreator",
						"kind": "type",
						"source_line": 7,
						"type_signature": "ZzzConfigCreator"
					},
					{
						"name": "ZzzConfig",
						"kind": "type",
						"doc_comment": "",
						"source_line": 12,
						"type_signature": "ZzzConfig",
						"properties": [
							{
								"name": "providers",
								"kind": "variable",
								"type_signature": "Array<ProviderJsonInput>"
							},
							{
								"name": "models",
								"kind": "variable",
								"type_signature": "Array<ModelJsonInput>"
							},
							{
								"name": "system_message",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "output_token_max",
								"kind": "variable",
								"type_signature": "number"
							},
							{
								"name": "temperature",
								"kind": "variable",
								"type_signature": "number | undefined"
							},
							{
								"name": "seed",
								"kind": "variable",
								"type_signature": "number | undefined"
							},
							{
								"name": "top_k",
								"kind": "variable",
								"type_signature": "number | undefined"
							},
							{
								"name": "top_p",
								"kind": "variable",
								"type_signature": "number | undefined"
							},
							{
								"name": "frequency_penalty",
								"kind": "variable",
								"type_signature": "number | undefined"
							},
							{
								"name": "presence_penalty",
								"kind": "variable",
								"type_signature": "number | undefined"
							},
							{
								"name": "stop_sequences",
								"kind": "variable",
								"type_signature": "Array<string> | undefined"
							},
							{
								"name": "bots",
								"kind": "variable",
								"type_signature": "{\n\t\t/**\n\t\t * Names things.\n\t\t */\n\t\tnamerbot: ModelName;\n\t}"
							}
						]
					}
				]
			},
			{
				"path": "config.ts",
				"declarations": [
					{
						"name": "default",
						"kind": "variable",
						"source_line": 39,
						"type_signature": "ZzzConfigCreator"
					}
				],
				"dependencies": [
					"config_defaults.ts"
				],
				"dependents": [
					"server/server.ts"
				]
			},
			{
				"path": "ConfirmButton.svelte",
				"declarations": [
					{
						"name": "ConfirmButton",
						"kind": "component",
						"props": [
							{
								"name": "onconfirm",
								"type": "(popover: Popover) => void"
							},
							{
								"name": "popover_button_attrs",
								"type": "SvelteHTMLElements['button'] | undefined",
								"optional": true
							},
							{
								"name": "hide_on_confirm",
								"type": "boolean | undefined",
								"optional": true
							},
							{
								"name": "popover_content",
								"type": "Snippet<[popover: Popover, confirm: () => void]> | undefined",
								"optional": true,
								"description": "Unlike on `PopoverButton` this is optional and has a `confirm` arg"
							},
							{
								"name": "popover_button_content",
								"type": "Snippet<[popover: Popover, confirm: () => void]> | undefined",
								"optional": true,
								"description": "Content for the popover button"
							},
							{
								"name": "children",
								"type": "Snippet<[popover: Popover, confirm: () => void]> | undefined",
								"optional": true,
								"description": "Unlike on `PopoverButton` this has a `confirm` arg"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"PopoverButton.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"CapabilityWebsocket.svelte",
					"ChatThreadManageByTag.svelte",
					"ChatView.svelte",
					"ChatViewMulti.svelte",
					"DashboardPrompts.svelte",
					"DiskfileActions.svelte",
					"DiskfileHistoryView.svelte",
					"OllamaModelDetail.svelte",
					"PartRemoveButton.svelte",
					"SocketMessageQueue.svelte",
					"ThreadListitem.svelte",
					"XmlAttributeEditor.svelte"
				]
			},
			{
				"path": "constants.ts",
				"declarations": [
					{
						"name": "SERVER_PROTOCOL",
						"kind": "variable",
						"source_line": 29,
						"type_signature": "string"
					},
					{
						"name": "SERVER_HOST",
						"kind": "variable",
						"source_line": 31,
						"type_signature": "string"
					},
					{
						"name": "SERVER_URL",
						"kind": "variable",
						"doc_comment": "",
						"source_line": 37,
						"type_signature": "string"
					},
					{
						"name": "SERVER_PROXIED_PORT",
						"kind": "variable",
						"source_line": 39,
						"type_signature": "number"
					},
					{
						"name": "BACKEND_ARTIFICIAL_RESPONSE_DELAY",
						"kind": "variable",
						"source_line": 41,
						"type_signature": "number"
					},
					{
						"name": "ZZZ_DIR",
						"kind": "variable",
						"doc_comment": "",
						"source_line": 47,
						"type_signature": "string"
					},
					{
						"name": "ZZZ_DIR_STATE",
						"kind": "variable",
						"source_line": 50,
						"type_signature": "\"state\""
					},
					{
						"name": "ZZZ_DIR_STATE_COMPLETIONS",
						"kind": "variable",
						"source_line": 51,
						"type_signature": "\"completions\""
					},
					{
						"name": "ZZZ_DIR_RUN",
						"kind": "variable",
						"source_line": 52,
						"type_signature": "\"run\""
					},
					{
						"name": "ZZZ_DIR_CACHE",
						"kind": "variable",
						"source_line": 53,
						"type_signature": "\"cache\""
					},
					{
						"name": "ZZZ_SCOPED_DIRS",
						"kind": "variable",
						"doc_comment": "Comma-separated list of filesystem paths that Zzz can access.\nEmpty array means no scoped filesystem access.",
						"source_line": 59,
						"type_signature": "string[]"
					},
					{
						"name": "CONTENT_PREVIEW_LENGTH",
						"kind": "variable",
						"source_line": 65,
						"type_signature": "100"
					},
					{
						"name": "API_PATH",
						"kind": "variable",
						"doc_comment": "",
						"source_line": 71,
						"type_signature": "string"
					},
					{
						"name": "API_URL",
						"kind": "variable",
						"doc_comment": "",
						"source_line": 80,
						"type_signature": "string"
					},
					{
						"name": "API_PATH_FOR_HTTP_RPC",
						"kind": "variable",
						"doc_comment": "",
						"source_line": 86,
						"type_signature": "string"
					},
					{
						"name": "API_URL_FOR_HTTP_RPC",
						"kind": "variable",
						"doc_comment": "",
						"source_line": 92,
						"type_signature": "string"
					},
					{
						"name": "WEBSOCKET_URL",
						"kind": "variable",
						"doc_comment": "",
						"source_line": 99,
						"type_signature": "string"
					},
					{
						"name": "WEBSOCKET_URL_OBJECT",
						"kind": "variable",
						"source_line": 103,
						"type_signature": "URL | null"
					},
					{
						"name": "WEBSOCKET_PATH",
						"kind": "variable",
						"doc_comment": "",
						"source_line": 109,
						"type_signature": "string | undefined"
					},
					{
						"name": "UNKNOWN_ERROR_MESSAGE",
						"kind": "variable",
						"source_line": 111,
						"type_signature": "string"
					}
				],
				"dependencies": [
					"zod_helpers.ts"
				],
				"dependents": [
					"CapabilityBackend.svelte",
					"CapabilityWebsocket.svelte",
					"TurnListitem.svelte",
					"action_event.ts",
					"action_peer.ts",
					"app.svelte.ts",
					"frontend_http_transport.ts",
					"frontend_websocket_transport.ts",
					"helpers.ts",
					"part.svelte.ts",
					"server/backend.ts",
					"server/backend_action_handlers.ts",
					"server/helpers.ts",
					"server/register_http_actions.ts",
					"server/register_websocket_actions.ts",
					"server/server.ts",
					"server/server_info.ts",
					"socket.svelte.ts"
				]
			},
			{
				"path": "ContentEditor.svelte",
				"declarations": [
					{
						"name": "ContentEditor",
						"kind": "component",
						"doc_comment": "Focus the textarea element - exposed for parent components.",
						"props": [
							{
								"name": "content",
								"type": "string",
								"bindable": true
							},
							{
								"name": "token_count",
								"type": "number | undefined",
								"optional": true,
								"description": "Estimated if not provided and `show_stats` is true."
							},
							{
								"name": "placeholder",
								"type": "string | null | undefined",
								"optional": true
							},
							{
								"name": "readonly",
								"type": "boolean | undefined",
								"optional": true
							},
							{
								"name": "show_stats",
								"type": "boolean | undefined",
								"optional": true
							},
							{
								"name": "show_actions",
								"type": "boolean | undefined",
								"optional": true
							},
							{
								"name": "textarea_height",
								"type": "string | undefined",
								"optional": true
							},
							{
								"name": "focus_key",
								"type": "string | number | null | undefined",
								"optional": true
							},
							{
								"name": "pending_element_to_focus_key",
								"type": "string | number | null | undefined",
								"optional": true,
								"bindable": true
							},
							{
								"name": "attrs",
								"type": "SvelteHTMLElements['textarea'] | undefined",
								"optional": true
							},
							{
								"name": "after",
								"type": "Snippet | undefined",
								"optional": true
							},
							{
								"name": "children",
								"type": "Snippet | undefined",
								"optional": true
							},
							{
								"name": "onsave",
								"type": "((value: string) => void) | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ClearRestoreButton.svelte",
					"ContentStats.svelte",
					"Glyph.svelte",
					"glyphs.ts",
					"helpers.ts"
				],
				"dependents": [
					"ChatThread.svelte",
					"ChatViewMulti.svelte",
					"DiskfileEditorView.svelte",
					"PartEditorForDiskfile.svelte",
					"PartEditorForText.svelte"
				]
			},
			{
				"path": "ContentPreview.svelte",
				"declarations": [
					{
						"name": "ContentPreview",
						"kind": "component",
						"props": [
							{
								"name": "content",
								"type": "string"
							},
							{
								"name": "height",
								"type": "string | undefined",
								"optional": true
							},
							{
								"name": "min_height",
								"type": "string | undefined",
								"optional": true
							},
							{
								"name": "max_height",
								"type": "string | undefined",
								"optional": true
							},
							{
								"name": "attrs",
								"type": "SvelteHTMLElements['pre'] | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependents": [
					"DashboardPrompts.svelte"
				]
			},
			{
				"path": "ContentStats.svelte",
				"declarations": [
					{
						"name": "ContentStats",
						"kind": "component",
						"props": [
							{
								"name": "token_count",
								"type": "number"
							}
						],
						"source_line": 1
					}
				],
				"dependents": [
					"ContentEditor.svelte",
					"PartStats.svelte",
					"PromptStats.svelte"
				]
			},
			{
				"path": "ContextmenuEntryCopyToClipboard.svelte",
				"declarations": [
					{
						"name": "ContextmenuEntryCopyToClipboard",
						"kind": "component",
						"props": [
							{
								"name": "content",
								"type": "string | Thunk<string> | undefined"
							},
							{
								"name": "label",
								"type": "string | undefined",
								"optional": true
							},
							{
								"name": "preview",
								"type": "string | undefined",
								"optional": true
							},
							{
								"name": "preview_limit",
								"type": "number | undefined",
								"optional": true
							},
							{
								"name": "show_preview",
								"type": "boolean | undefined",
								"optional": true
							},
							{
								"name": "children",
								"type": "Snippet | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"glyphs.ts",
					"helpers.ts"
				],
				"dependents": [
					"ActionContextmenu.svelte",
					"ChatContextmenu.svelte",
					"DiskfileContextmenu.svelte",
					"ModelContextmenu.svelte",
					"PartContextmenu.svelte",
					"PromptContextmenu.svelte",
					"ThreadContextmenu.svelte",
					"TurnContextmenu.svelte"
				]
			},
			{
				"path": "ContextmenuEntryToggle.svelte",
				"declarations": [
					{
						"name": "ContextmenuEntryToggle",
						"kind": "component",
						"props": [
							{
								"name": "enabled",
								"type": "boolean",
								"bindable": true
							},
							{
								"name": "label",
								"type": "string | undefined",
								"optional": true
							},
							{
								"name": "children",
								"type": "Snippet<[enabled: boolean]> | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"PartContextmenu.svelte",
					"ThreadContextmenu.svelte"
				]
			},
			{
				"path": "Dashboard.svelte",
				"declarations": [
					{
						"name": "Dashboard",
						"kind": "component",
						"props": [
							{
								"name": "children",
								"type": "Snippet"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"NavLink.svelte",
					"frontend.svelte.ts",
					"glyphs.ts",
					"logos.ts",
					"nav.ts"
				],
				"dependents": [
					"FrontendRoot.svelte"
				]
			},
			{
				"path": "DashboardActions.svelte",
				"declarations": [
					{
						"name": "DashboardActions",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"ActionDetail.svelte",
					"ActionList.svelte",
					"DashboardHeader.svelte",
					"Glyph.svelte",
					"TimeWidget.svelte",
					"app.svelte.ts",
					"glyphs.ts"
				]
			},
			{
				"path": "DashboardCapabilities.svelte",
				"declarations": [
					{
						"name": "DashboardCapabilities",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"CapabilitiesView.svelte",
					"DashboardHeader.svelte",
					"Footer.svelte",
					"Glyph.svelte",
					"TimeWidget.svelte",
					"frontend.svelte.ts",
					"glyphs.ts"
				]
			},
			{
				"path": "DashboardChats.svelte",
				"declarations": [
					{
						"name": "DashboardChats",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"ChatContextmenu.svelte",
					"ChatList.svelte",
					"ChatView.svelte",
					"ChatsContextmenu.svelte",
					"ErrorMessage.svelte",
					"Glyph.svelte",
					"TutorialForChats.svelte",
					"TutorialForDatabase.svelte",
					"frontend.svelte.ts",
					"glyphs.ts"
				]
			},
			{
				"path": "DashboardDiskfiles.svelte",
				"declarations": [
					{
						"name": "DashboardDiskfiles",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"DiskfileEditorView.svelte",
					"DiskfileExplorer.svelte",
					"DiskfilePickerDialog.svelte",
					"DiskfileTabListitem.svelte",
					"ErrorMessage.svelte",
					"frontend.svelte.ts",
					"reorderable.svelte.ts"
				]
			},
			{
				"path": "DashboardHeader.svelte",
				"declarations": [
					{
						"name": "DashboardHeader",
						"kind": "component",
						"props": [
							{
								"name": "header",
								"type": "Snippet"
							},
							{
								"name": "children",
								"type": "Snippet"
							}
						],
						"source_line": 1
					}
				],
				"dependents": [
					"DashboardActions.svelte",
					"DashboardCapabilities.svelte",
					"DashboardSettings.svelte"
				]
			},
			{
				"path": "DashboardHome.svelte",
				"declarations": [
					{
						"name": "DashboardHome",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"ChatList.svelte",
					"Glyph.svelte",
					"ModelLink.svelte",
					"PromptList.svelte",
					"ProviderLink.svelte",
					"frontend.svelte.ts",
					"glyphs.ts",
					"nav.ts"
				]
			},
			{
				"path": "DashboardModels.svelte",
				"declarations": [
					{
						"name": "DashboardModels",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"ModelSummary.svelte",
					"frontend.svelte.ts",
					"glyphs.ts"
				]
			},
			{
				"path": "DashboardPrompts.svelte",
				"declarations": [
					{
						"name": "DashboardPrompts",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"ConfirmButton.svelte",
					"ContentPreview.svelte",
					"DiskfilePickerDialog.svelte",
					"EditableText.svelte",
					"Glyph.svelte",
					"PartList.svelte",
					"PartView.svelte",
					"PromptContextmenu.svelte",
					"PromptList.svelte",
					"PromptStats.svelte",
					"TutorialForDatabase.svelte",
					"TutorialForPrompts.svelte",
					"frontend.svelte.ts",
					"glyphs.ts",
					"helpers.ts",
					"part.svelte.ts"
				]
			},
			{
				"path": "DashboardProviders.svelte",
				"declarations": [
					{
						"name": "DashboardProviders",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"ExternalLink.svelte",
					"Glyph.svelte",
					"ModelLink.svelte",
					"ProviderLink.svelte",
					"ProviderLogo.svelte",
					"frontend.svelte.ts",
					"glyphs.ts"
				]
			},
			{
				"path": "DashboardSettings.svelte",
				"declarations": [
					{
						"name": "DashboardSettings",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"DashboardHeader.svelte",
					"Footer.svelte",
					"Glyph.svelte",
					"Settings.svelte",
					"TimeWidget.svelte",
					"frontend.svelte.ts",
					"glyphs.ts"
				]
			},
			{
				"path": "diskfile_editor_state.svelte.ts",
				"declarations": [
					{
						"name": "DiskfileEditorState",
						"kind": "class",
						"doc_comment": "Manages the editor state for a diskfile.",
						"source_line": 14,
						"members": [
							{
								"name": "app",
								"kind": "variable",
								"type_signature": "Frontend"
							},
							{
								"name": "diskfile",
								"kind": "variable",
								"type_signature": "Diskfile"
							},
							{
								"name": "unsaved_edit_entry_id",
								"kind": "variable",
								"type_signature": "Uuid | null"
							},
							{
								"name": "selected_history_entry_id",
								"kind": "variable",
								"type_signature": "Uuid | null"
							},
							{
								"name": "content_was_modified_by_user",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "last_seen_disk_content",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "original_content",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string | null"
							},
							{
								"name": "path",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "DiskfilePath"
							},
							{
								"name": "has_changes",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "history",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "DiskfileHistory | undefined"
							},
							{
								"name": "selected_history_entry",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "content_history",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<HistoryEntry>"
							},
							{
								"name": "saved_history_entries",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<HistoryEntry>"
							},
							{
								"name": "unsaved_history_entries",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<HistoryEntry>"
							},
							{
								"name": "has_history",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "has_unsaved_edits",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "can_clear_history",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "can_clear_unsaved_edits",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "unsaved_entry_ids",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "content_matching_entry_ids",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<Uuid>"
							},
							{
								"name": "original_length",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "current_length",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "length_diff",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "length_diff_percent",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "original_token_count",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "current_token_count",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "token_diff",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "token_diff_percent",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: { app: Frontend; diskfile: Diskfile; }): DiskfileEditorState",
								"parameters": [
									{
										"name": "options",
										"type": "{ app: Frontend; diskfile: Diskfile; }"
									}
								]
							},
							{
								"name": "reset",
								"kind": "function",
								"doc_comment": "Clear and reset the editor state to match the current diskfile content.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "check_disk_changes",
								"kind": "function",
								"doc_comment": "Check if the diskfile content has changed on disk.\nCall this when receiving file updates from the server.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "save_changes",
								"kind": "function",
								"doc_comment": "Save changes to the diskfile.",
								"type_signature": "(): Promise<boolean>",
								"return_type": "Promise<boolean>",
								"parameters": []
							},
							{
								"name": "set_content_from_history",
								"kind": "function",
								"doc_comment": "Set content from history entry.",
								"type_signature": "(id: string & $brand<\"Uuid\">): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "update_diskfile",
								"kind": "function",
								"doc_comment": "Update the diskfile reference.\nThis allows reusing the same editor state instance with a new diskfile.",
								"type_signature": "(diskfile: Diskfile): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "diskfile",
										"type": "Diskfile"
									}
								]
							},
							{
								"name": "clear_history",
								"kind": "function",
								"doc_comment": "Clear content history, keeping only specific entries based on selection state.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "clear_unsaved_edits",
								"kind": "function",
								"doc_comment": "Clear all unsaved edit entries from history and reset the editor state if needed.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							}
						]
					}
				],
				"dependencies": [
					"helpers.ts"
				],
				"dependents": [
					"DiskfileEditorView.svelte",
					"PartEditorForDiskfile.svelte"
				]
			},
			{
				"path": "diskfile_helpers.ts",
				"declarations": [
					{
						"name": "is_path_absolute",
						"kind": "function",
						"source_line": 16,
						"type_signature": "(path: string): boolean",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "path",
								"type": "string"
							}
						]
					},
					{
						"name": "to_relative_path",
						"kind": "function",
						"source_line": 19,
						"type_signature": "(path: string, parent: string): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "path",
								"type": "string"
							},
							{
								"name": "parent",
								"type": "string"
							}
						]
					},
					{
						"name": "map_watcher_change_to_diskfile_change",
						"kind": "function",
						"doc_comment": "Maps watcher change types to diskfile change types.",
						"source_line": 25,
						"type_signature": "(type: WatcherChangeType): \"add\" | \"change\" | \"delete\"",
						"return_type": "\"add\" | \"change\" | \"delete\"",
						"parameters": [
							{
								"name": "type",
								"type": "WatcherChangeType"
							}
						]
					},
					{
						"name": "disknode_to_diskfile_json",
						"kind": "function",
						"doc_comment": "Converts a `SerializableDisknode` to the `DiskfileJson` format.",
						"source_line": 38,
						"type_signature": "(disknode: { id: string & $brand<\"DiskfilePath\">; source_dir: string & $brand<\"DiskfilePath\"> & $brand<\"DiskfileDirectoryPath\">; contents: string | null; ctime: number | null; mtime: number | null; dependents: [...][]; dependencies: [...][]; }, existing_id?: string & $brand<...>): { ...; }",
						"return_type": "{ id: string & $brand<\"Uuid\">; created: string & $brand<\"Datetime\">; updated: string & $brand<\"Datetime\">; path: (string & $brand<\"DiskfilePath\">) | null; source_dir: string & ... 1 more ... & $brand<...>; content: string | null; dependents: [...][] | null; dependencies: [...][] | null; }",
						"parameters": [
							{
								"name": "disknode",
								"type": "{ id: string & $brand<\"DiskfilePath\">; source_dir: string & $brand<\"DiskfilePath\"> & $brand<\"DiskfileDirectoryPath\">; contents: string | null; ctime: number | null; mtime: number | null; dependents: [...][]; dependencies: [...][]; }",
								"description": "The source file to convert"
							},
							{
								"name": "existing_id",
								"type": "string & $brand<\"Uuid\">",
								"description": "Optional existing `Uuid` to preserve id stability across updates",
								"default_value": "create_uuid()"
							}
						]
					},
					{
						"name": "SUPPORTED_CODE_FILETYPE_MATCHER",
						"kind": "variable",
						"source_line": 59,
						"type_signature": "RegExp"
					},
					{
						"name": "has_dependencies",
						"kind": "function",
						"source_line": 60,
						"type_signature": "(diskfile: Diskfile): boolean",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "diskfile",
								"type": "Diskfile"
							}
						]
					},
					{
						"name": "to_serializable_disknode",
						"kind": "function",
						"source_line": 66,
						"type_signature": "(disknode: Disknode, dir: string): { id: string & $brand<\"DiskfilePath\">; source_dir: string & $brand<\"DiskfilePath\"> & $brand<\"DiskfileDirectoryPath\">; ... 4 more ...; dependencies: [...][]; }",
						"return_type": "{ id: string & $brand<\"DiskfilePath\">; source_dir: string & $brand<\"DiskfilePath\"> & $brand<\"DiskfileDirectoryPath\">; contents: string | null; ctime: number | null; mtime: number | null; dependents: [...][]; dependencies: [...][]; }",
						"parameters": [
							{
								"name": "disknode",
								"type": "Disknode"
							},
							{
								"name": "dir",
								"type": "string"
							}
						]
					}
				],
				"dependencies": [
					"diskfile_types.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"DiskfileInfo.svelte",
					"diskfile_types.ts",
					"diskfiles.svelte.ts",
					"server/backend_action_handlers.ts",
					"server/backend_actions_api.ts"
				]
			},
			{
				"path": "diskfile_history.svelte.ts",
				"declarations": [
					{
						"name": "HistoryEntry",
						"kind": "type",
						"doc_comment": "Schema for history entries.",
						"source_line": 14,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodNumber; content: ZodString; label: ZodString; is_disk_change: ZodDefault<...>; is_unsaved_edit: ZodDefault<...>; is_original_state: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "DiskfileHistoryJson",
						"kind": "type",
						"doc_comment": "Schema for the DiskfileHistory cell.",
						"source_line": 28,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; path: $ZodBranded<...>; entries: ZodDefault<...>; max_entries: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "DiskfileHistoryJsonInput",
						"kind": "type",
						"source_line": 34,
						"type_signature": "{ path: string; id?: string | undefined; created?: string | undefined; updated?: string | undefined; entries?: { created: number; content: string; label: string; id?: string | undefined; is_disk_change?: boolean | undefined; is_unsaved_edit?: boolean | undefined; is_original_state?: boolean | undefined; }[] | undefi..."
					},
					{
						"name": "DiskfileHistoryOptions",
						"kind": "type",
						"source_line": 36,
						"type_signature": "DiskfileHistoryOptions"
					},
					{
						"name": "DiskfileHistory",
						"kind": "class",
						"doc_comment": "Stores edit history for a single diskfile.",
						"source_line": 41,
						"extends": [
							"Cell<typeof DiskfileHistoryJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "path",
								"kind": "variable",
								"type_signature": "DiskfilePath"
							},
							{
								"name": "entries",
								"kind": "variable",
								"type_signature": "Array<HistoryEntry>"
							},
							{
								"name": "max_entries",
								"kind": "variable",
								"type_signature": "number"
							},
							{
								"name": "current_entry",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "The most recent history entry (by creation timestamp)\nSince entries are always kept sorted by creation time (newest first),\nthe most recent is always the first element.",
								"type_signature": "HistoryEntry | null"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: DiskfileHistoryOptions): DiskfileHistory",
								"parameters": [
									{
										"name": "options",
										"type": "DiskfileHistoryOptions"
									}
								]
							},
							{
								"name": "add_entry",
								"kind": "function",
								"doc_comment": "Add a new history entry.",
								"type_signature": "(content: string, options?: { is_disk_change?: boolean | undefined; is_unsaved_edit?: boolean | undefined; is_original_state?: boolean | undefined; label?: string | undefined; created?: number | undefined; }): { ...; }",
								"return_type": "{ id: string & $brand<\"Uuid\">; created: number; content: string; label: string; is_disk_change: boolean; is_unsaved_edit: boolean; is_original_state: boolean; }",
								"parameters": [
									{
										"name": "content",
										"type": "string"
									},
									{
										"name": "options",
										"type": "{ is_disk_change?: boolean | undefined; is_unsaved_edit?: boolean | undefined; is_original_state?: boolean | undefined; label?: string | undefined; created?: number | undefined; }",
										"default_value": "EMPTY_OBJECT"
									}
								]
							},
							{
								"name": "find_entry_by_id",
								"kind": "function",
								"doc_comment": "Find a history entry by id.",
								"type_signature": "(id: string & $brand<\"Uuid\">): { id: string & $brand<\"Uuid\">; created: number; content: string; label: string; is_disk_change: boolean; is_unsaved_edit: boolean; is_original_state: boolean; } | undefined",
								"return_type": "{ id: string & $brand<\"Uuid\">; created: number; content: string; label: string; is_disk_change: boolean; is_unsaved_edit: boolean; is_original_state: boolean; } | undefined",
								"parameters": [
									{
										"name": "id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "get_content",
								"kind": "function",
								"doc_comment": "Get the content of a specific history entry.",
								"type_signature": "(id: string & $brand<\"Uuid\">): string | null",
								"return_type": "string | null",
								"parameters": [
									{
										"name": "id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "clear_except_current",
								"kind": "function",
								"doc_comment": "Clear all history entries except the most recent one by creation time\nand any entries that match the optional keep predicate.",
								"type_signature": "(keep?: ((entry: { id: string & $brand<\"Uuid\">; created: number; content: string; label: string; is_disk_change: boolean; is_unsaved_edit: boolean; is_original_state: boolean; }) => boolean) | undefined): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "keep",
										"type": "((entry: { id: string & $brand<\"Uuid\">; created: number; content: string; label: string; is_disk_change: boolean; is_unsaved_edit: boolean; is_original_state: boolean; }) => boolean) | undefined",
										"optional": true
									}
								]
							}
						]
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_types.ts",
					"diskfile_types.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"frontend.svelte.ts"
				]
			},
			{
				"path": "diskfile_tab.svelte.ts",
				"declarations": [
					{
						"name": "DiskfileTabJson",
						"kind": "type",
						"source_line": 9,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; diskfile_id: $ZodBranded<...>; }, $strict>"
					},
					{
						"name": "DiskfileTabJsonInput",
						"kind": "type",
						"source_line": 13,
						"type_signature": "{ diskfile_id: string; id?: string | undefined; created?: string | undefined; updated?: string | undefined; }"
					},
					{
						"name": "DiskfileTabOptions",
						"kind": "type",
						"source_line": 15,
						"type_signature": "DiskfileTabOptions",
						"extends": [
							"CellOptions<typeof DiskfileTabJson>"
						],
						"properties": [
							{
								"name": "tabs",
								"kind": "variable",
								"type_signature": "DiskfileTabs"
							}
						]
					},
					{
						"name": "DiskfileTab",
						"kind": "class",
						"source_line": 19,
						"extends": [
							"Cell<typeof DiskfileTabJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "diskfile_id",
								"kind": "variable",
								"type_signature": "Uuid"
							},
							{
								"name": "tabs",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Reference to the parent tabs collection,\nallowing us to have collection-derived data,\nat the cost of requiring exactly 1 parent.\n\nThis pattern is somewhat experimental -\nthe idea is it's more declarative to have things\nlike the \"preview\" or \"selected\" tabs be state on the collection,\nso it doesn't need to be separately managed as state on each tab.",
								"type_signature": "DiskfileTabs"
							},
							{
								"name": "is_preview",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Derived from parent collection's state.",
								"type_signature": "boolean"
							},
							{
								"name": "is_selected",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Derived from parent collection's state.",
								"type_signature": "boolean"
							},
							{
								"name": "diskfile",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Diskfile | undefined"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: DiskfileTabOptions): DiskfileTab",
								"parameters": [
									{
										"name": "options",
										"type": "DiskfileTabOptions"
									}
								]
							}
						]
					},
					{
						"name": "DiskfileTabSchema",
						"kind": "variable",
						"source_line": 51,
						"type_signature": "ZodCustom<DiskfileTab, DiskfileTab>"
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_types.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"diskfile_tabs.svelte.ts"
				]
			},
			{
				"path": "diskfile_tabs.svelte.ts",
				"declarations": [
					{
						"name": "DiskfileTabsJson",
						"kind": "type",
						"source_line": 14,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; ... 5 more ...; max_tab_history: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "DiskfileTabsJsonInput",
						"kind": "type",
						"source_line": 24,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; selected_tab_id?: string | null | undefined; preview_tab_id?: string | null | undefined; tab_order?: string[] | undefined; recent_tab_ids?: string[] | undefined; max_tab_history?: number | undefined; }"
					},
					{
						"name": "DiskfileTabsOptions",
						"kind": "type",
						"source_line": 26,
						"type_signature": "DiskfileTabsOptions"
					},
					{
						"name": "DiskfileTabs",
						"kind": "class",
						"doc_comment": "Manages tabs for diskfiles in the editor with preview behavior.",
						"source_line": 31,
						"extends": [
							"Cell<typeof DiskfileTabsJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "selected_tab_id",
								"kind": "variable",
								"type_signature": "Uuid | null"
							},
							{
								"name": "preview_tab_id",
								"kind": "variable",
								"type_signature": "Uuid | null"
							},
							{
								"name": "tab_order",
								"kind": "variable",
								"type_signature": "Array<Uuid>"
							},
							{
								"name": "recent_tab_ids",
								"kind": "variable",
								"type_signature": "Array<Uuid>"
							},
							{
								"name": "max_tab_history",
								"kind": "variable",
								"type_signature": "number"
							},
							{
								"name": "items",
								"kind": "variable",
								"type_signature": "IndexedCollection<DiskfileTab>"
							},
							{
								"name": "by_diskfile_id",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Map for looking up tabs by their associated diskfile_id.",
								"type_signature": "Map<Uuid, DiskfileTab>"
							},
							{
								"name": "ordered_tabs",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Ordered array of tabs derived directly from tab_order.\nIncludes tabs in the explicit order plus any tabs not yet in the order.",
								"type_signature": "Array<DiskfileTab>"
							},
							{
								"name": "selected_tab",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "The currently selected tab.",
								"type_signature": "DiskfileTab | undefined"
							},
							{
								"name": "selected_diskfile_id",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "The selected tab's diskfile id.",
								"type_signature": "Uuid | null"
							},
							{
								"name": "preview_tab",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "The preview tab, if any.",
								"type_signature": "DiskfileTab | undefined"
							},
							{
								"name": "recent_tabs",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<DiskfileTab>"
							},
							{
								"name": "recently_closed_tabs",
								"kind": "variable",
								"doc_comment": "Recently closed tabs for potential reopening.",
								"type_signature": "Array<DiskfileTab>"
							},
							{
								"name": "closed_tab_diskfiles",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Map of closed tab ids to their diskfile ids - used for browser navigation.",
								"type_signature": "SvelteMap<Uuid, Uuid>"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: DiskfileTabsOptions): DiskfileTabs",
								"parameters": [
									{
										"name": "options",
										"type": "DiskfileTabsOptions"
									}
								]
							},
							{
								"name": "find_most_recent_tab",
								"kind": "function",
								"doc_comment": "Returns the most recently accessed tab id that still exists,\nexcluding the specified tab id.",
								"type_signature": "(exclude_id: string & $brand<\"Uuid\">): (string & $brand<\"Uuid\">) | null",
								"return_type": "(string & $brand<\"Uuid\">) | null",
								"parameters": [
									{
										"name": "exclude_id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "select_tab",
								"kind": "function",
								"doc_comment": "Sets the selected tab.",
								"type_signature": "(tab_id: string & $brand<\"Uuid\">): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "tab_id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "preview_diskfile",
								"kind": "function",
								"doc_comment": "Handles preview state when opening a file.\nIf a preview tab for this file already exists, it just selects it.",
								"type_signature": "(diskfile_id: string & $brand<\"Uuid\">): DiskfileTab",
								"return_type": "DiskfileTab",
								"parameters": [
									{
										"name": "diskfile_id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "open_diskfile",
								"kind": "function",
								"doc_comment": "Opens a diskfile as a permanent tab (not preview).\nIf the file is already in a preview tab, promotes it to permanent.",
								"type_signature": "(diskfile_id: string & $brand<\"Uuid\">): DiskfileTab",
								"return_type": "DiskfileTab",
								"parameters": [
									{
										"name": "diskfile_id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "promote_preview_to_permanent",
								"kind": "function",
								"doc_comment": "Promotes the current preview tab to a permanent tab.",
								"type_signature": "(): boolean",
								"return_type": "boolean",
								"return_description": "true if a tab was promoted, false otherwise",
								"parameters": []
							},
							{
								"name": "close_tab",
								"kind": "function",
								"doc_comment": "Closes a tab by id.",
								"type_signature": "(tab_id: string & $brand<\"Uuid\">): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "tab_id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "navigate_to_tab",
								"kind": "function",
								"doc_comment": "Navigates to a tab by id. If the tab doesn't exist but was previously closed,\ncreates a preview tab for that diskfile.",
								"type_signature": "(tab_id: string & $brand<\"Uuid\">): { resulting_tab_id: (string & $brand<\"Uuid\">) | null; created_preview: boolean; }",
								"return_type": "{ resulting_tab_id: (string & $brand<\"Uuid\">) | null; created_preview: boolean; }",
								"return_description": "Object containing the resulting tab id and a boolean indicating if a new tab was created",
								"parameters": [
									{
										"name": "tab_id",
										"type": "string & $brand<\"Uuid\">",
										"description": "The tab id to navigate to"
									}
								]
							},
							{
								"name": "open_tab",
								"kind": "function",
								"doc_comment": "Opens (makes permanent) a tab by id.",
								"type_signature": "(tab_id: string & $brand<\"Uuid\">): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "tab_id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "reorder_tabs",
								"kind": "function",
								"doc_comment": "Reorders tabs by dragging.",
								"type_signature": "(from_index: number, to_index: number): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "from_index",
										"type": "number"
									},
									{
										"name": "to_index",
										"type": "number"
									}
								]
							},
							{
								"name": "reopen_last_closed_tab",
								"kind": "function",
								"doc_comment": "Reopens the last closed tab.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "close_all_tabs",
								"kind": "function",
								"doc_comment": "Closes all tabs.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							}
						]
					},
					{
						"name": "DiskfileTabsSchema",
						"kind": "variable",
						"source_line": 448,
						"type_signature": "ZodCustom<DiskfileTabs, DiskfileTabs>"
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_types.ts",
					"diskfile_tab.svelte.ts",
					"indexed_collection.svelte.ts",
					"iterable_helpers.ts",
					"list_helpers.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"diskfiles_editor.svelte.ts"
				]
			},
			{
				"path": "diskfile_types.ts",
				"declarations": [
					{
						"name": "DiskfileChangeType",
						"kind": "type",
						"source_line": 7,
						"type_signature": "ZodEnum<{ add: \"add\"; change: \"change\"; delete: \"delete\"; }>"
					},
					{
						"name": "DiskfilePath",
						"kind": "type",
						"doc_comment": "An absolute Unix-style file path.",
						"source_line": 11,
						"type_signature": "$ZodBranded<ZodString, \"DiskfilePath\", \"out\">"
					},
					{
						"name": "DiskfileDirectoryPath",
						"kind": "type",
						"doc_comment": "These always have a trailing slash.",
						"source_line": 18,
						"type_signature": "$ZodBranded<ZodPipe<ZodPipe<ZodString, ZodTransform<string, string>>, $ZodBranded<ZodString, \"DiskfilePath\", \"out\">>, \"DiskfileDirectoryPath\", \"out\">"
					},
					{
						"name": "DiskfileChange",
						"kind": "type",
						"source_line": 22,
						"type_signature": "ZodObject<{ type: ZodEnum<{ add: \"add\"; change: \"change\"; delete: \"delete\"; }>; path: $ZodBranded<ZodString, \"DiskfilePath\", \"out\">; }, $strict>"
					},
					{
						"name": "SerializableDisknode",
						"kind": "type",
						"source_line": 29,
						"type_signature": "ZodObject<{ id: $ZodBranded<ZodString, \"DiskfilePath\", \"out\">; source_dir: $ZodBranded<ZodPipe<ZodPipe<ZodString, ZodTransform<string, string>>, $ZodBranded<...>>, \"DiskfileDirectoryPath\", \"out\">; ... 4 more ...; dependencies: ZodArray<...>; }, $strict>"
					},
					{
						"name": "DiskfileJson",
						"kind": "type",
						"source_line": 41,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; ... 5 more ...; dependencies: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "DiskfileJsonInput",
						"kind": "type",
						"source_line": 55,
						"type_signature": "{ source_dir: string; id?: string | undefined; created?: string | undefined; updated?: string | undefined; path?: string | null | undefined; content?: string | null | undefined; dependents?: [...][] | ... 1 more ... | undefined; dependencies?: [...][] | ... 1 more ... | undefined; }"
					}
				],
				"dependencies": [
					"cell_types.ts",
					"diskfile_helpers.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"action_specs.ts",
					"diskfile.svelte.ts",
					"diskfile_helpers.ts",
					"diskfile_history.svelte.ts",
					"diskfiles.svelte.ts",
					"frontend.svelte.ts",
					"part.svelte.ts",
					"server/backend.ts",
					"server/backend_action_handlers.ts",
					"server/backend_actions_api.ts"
				]
			},
			{
				"path": "diskfile.svelte.ts",
				"declarations": [
					{
						"name": "DiskfileOptions",
						"kind": "type",
						"source_line": 16,
						"type_signature": "DiskfileOptions",
						"extends": [
							"CellOptions<typeof DiskfileJson>"
						],
						"properties": []
					},
					{
						"name": "Diskfile",
						"kind": "class",
						"source_line": 18,
						"extends": [
							"Cell<typeof DiskfileJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "path",
								"kind": "variable",
								"type_signature": "DiskfilePath"
							},
							{
								"name": "source_dir",
								"kind": "variable",
								"type_signature": "DiskfileDirectoryPath"
							},
							{
								"name": "content",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "part",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "PartUnion | undefined"
							},
							{
								"name": "dependents",
								"kind": "variable",
								"type_signature": "Array<[DiskfilePath, SerializableDisknode]>"
							},
							{
								"name": "dependencies",
								"kind": "variable",
								"type_signature": "Array<[DiskfilePath, SerializableDisknode]>"
							},
							{
								"name": "dependencies_by_id",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Map<DiskfilePath, SerializableDisknode>"
							},
							{
								"name": "dependents_by_id",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Map<DiskfilePath, SerializableDisknode>"
							},
							{
								"name": "dependency_ids",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<DiskfilePath>"
							},
							{
								"name": "dependent_ids",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<DiskfilePath>"
							},
							{
								"name": "has_dependencies",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "boolean"
							},
							{
								"name": "has_dependents",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "boolean"
							},
							{
								"name": "dependencies_count",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number"
							},
							{
								"name": "dependents_count",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number"
							},
							{
								"name": "pathname",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "e.g. .zzz/foo/bar.json",
								"type_signature": "string | null | undefined"
							},
							{
								"name": "path_relative",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "e.g. bar/foo.json",
								"type_signature": "string | null | undefined"
							},
							{
								"name": "content_length",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number"
							},
							{
								"name": "content_token_count",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number | null"
							},
							{
								"name": "content_preview",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: DiskfileOptions): Diskfile",
								"parameters": [
									{
										"name": "options",
										"type": "DiskfileOptions"
									}
								]
							}
						]
					},
					{
						"name": "DiskfileSchema",
						"kind": "variable",
						"source_line": 69,
						"type_signature": "ZodCustom<Diskfile, Diskfile>"
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"diskfile_types.ts",
					"helpers.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"diskfiles.svelte.ts"
				]
			},
			{
				"path": "DiskfileActions.svelte",
				"declarations": [
					{
						"name": "DiskfileActions",
						"kind": "component",
						"props": [
							{
								"name": "diskfile",
								"type": "Diskfile"
							},
							{
								"name": "editor_state",
								"type": "DiskfileEditorState"
							},
							{
								"name": "readonly",
								"type": "boolean | undefined",
								"optional": true
							},
							{
								"name": "auto_save",
								"type": "boolean | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ClearRestoreButton.svelte",
					"ConfirmButton.svelte",
					"Glyph.svelte",
					"frontend.svelte.ts",
					"glyphs.ts"
				],
				"dependents": [
					"DiskfileEditorView.svelte",
					"PartEditorForDiskfile.svelte"
				]
			},
			{
				"path": "DiskfileContextmenu.svelte",
				"declarations": [
					{
						"name": "DiskfileContextmenu",
						"kind": "component",
						"props": [
							{
								"name": "diskfile",
								"type": "Diskfile | null | undefined"
							},
							{
								"name": "children",
								"type": "Snippet"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ContextmenuEntryCopyToClipboard.svelte",
					"Glyph.svelte",
					"frontend.svelte.ts",
					"glyphs.ts"
				],
				"dependents": [
					"DiskfileEditorView.svelte",
					"DiskfileListitem.svelte",
					"DiskfileTabListitem.svelte"
				]
			},
			{
				"path": "DiskfileEditorNav.svelte",
				"declarations": [
					{
						"name": "DiskfileEditorNav",
						"kind": "component",
						"props": [
							{
								"name": "editor_state",
								"type": "DiskfileEditorState"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"frontend.svelte.ts",
					"glyphs.ts"
				],
				"dependents": [
					"DiskfileEditorView.svelte"
				]
			},
			{
				"path": "DiskfileEditorView.svelte",
				"declarations": [
					{
						"name": "DiskfileEditorView",
						"kind": "component",
						"props": [
							{
								"name": "diskfile",
								"type": "Diskfile"
							},
							{
								"name": "onmodified",
								"type": "(diskfile_id: Uuid) => void",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ContentEditor.svelte",
					"DiskfileActions.svelte",
					"DiskfileContextmenu.svelte",
					"DiskfileEditorNav.svelte",
					"DiskfileHistoryView.svelte",
					"DiskfileInfo.svelte",
					"DiskfilePartView.svelte",
					"TutorialForDiskfiles.svelte",
					"diskfile_editor_state.svelte.ts",
					"frontend.svelte.ts",
					"glyphs.ts"
				],
				"dependents": [
					"DashboardDiskfiles.svelte"
				]
			},
			{
				"path": "DiskfileExplorer.svelte",
				"declarations": [
					{
						"name": "DiskfileExplorer",
						"kind": "component",
						"props": [
							{
								"name": "empty",
								"type": "Snippet | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"DiskfileListitem.svelte",
					"Glyph.svelte",
					"SortableList.svelte",
					"frontend.svelte.ts",
					"glyphs.ts",
					"sortable.svelte.ts"
				],
				"dependents": [
					"DashboardDiskfiles.svelte"
				]
			},
			{
				"path": "DiskfileHistoryView.svelte",
				"declarations": [
					{
						"name": "DiskfileHistoryView",
						"kind": "component",
						"props": [
							{
								"name": "editor_state",
								"type": "DiskfileEditorState"
							},
							{
								"name": "onselectentry",
								"type": "(entry_id: Uuid) => void"
							},
							{
								"name": "attrs",
								"type": "SvelteHTMLElements['menu'] | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ConfirmButton.svelte",
					"time_helpers.ts"
				],
				"dependents": [
					"DiskfileEditorView.svelte",
					"PartEditorForDiskfile.svelte"
				]
			},
			{
				"path": "DiskfileInfo.svelte",
				"declarations": [
					{
						"name": "DiskfileInfo",
						"kind": "component",
						"props": [
							{
								"name": "diskfile",
								"type": "Diskfile"
							},
							{
								"name": "editor_state",
								"type": "DiskfileEditorState"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"DiskfileMetrics.svelte",
					"Glyph.svelte",
					"diskfile_helpers.ts",
					"frontend.svelte.ts",
					"glyphs.ts"
				],
				"dependents": [
					"DiskfileEditorView.svelte"
				]
			},
			{
				"path": "DiskfileListitem.svelte",
				"declarations": [
					{
						"name": "DiskfileListitem",
						"kind": "component",
						"props": [
							{
								"name": "diskfile",
								"type": "Diskfile"
							},
							{
								"name": "selected",
								"type": "boolean | undefined",
								"optional": true
							},
							{
								"name": "attrs",
								"type": "Record<string, unknown>",
								"optional": true
							},
							{
								"name": "onselect",
								"type": "(diskfile: Diskfile, open_not_preview: boolean) => void",
								"optional": true,
								"description": "`open_not_preview` indicates a \"open_not_preview select\"\nlike a doubleclick or enter keypress."
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"DiskfileContextmenu.svelte",
					"Glyph.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"DiskfileExplorer.svelte",
					"DiskfilePicker.svelte",
					"DiskfilePickerDialog.svelte"
				]
			},
			{
				"path": "DiskfileMetrics.svelte",
				"declarations": [
					{
						"name": "DiskfileMetrics",
						"kind": "component",
						"props": [
							{
								"name": "editor_state",
								"type": "DiskfileEditorState"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"DiskfileInfo.svelte",
					"PartEditorForDiskfile.svelte"
				]
			},
			{
				"path": "DiskfilePartView.svelte",
				"declarations": [
					{
						"name": "DiskfilePartView",
						"kind": "component",
						"props": [
							{
								"name": "diskfile",
								"type": "Diskfile"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"PartSummary.svelte",
					"frontend.svelte.ts"
				],
				"dependents": [
					"DiskfileEditorView.svelte"
				]
			},
			{
				"path": "DiskfilePicker.svelte",
				"declarations": [
					{
						"name": "DiskfilePicker",
						"kind": "component",
						"props": [
							{
								"name": "onpick",
								"type": "(diskfile: Diskfile | undefined) => boolean | void"
							},
							{
								"name": "filter",
								"type": "((diskfile: Diskfile) => boolean) | undefined",
								"optional": true
							},
							{
								"name": "exclude_ids",
								"type": "Array<Uuid> | undefined",
								"optional": true
							},
							{
								"name": "selected_ids",
								"type": "Array<Uuid> | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"DiskfileListitem.svelte",
					"Picker.svelte",
					"frontend.svelte.ts",
					"sortable.svelte.ts"
				]
			},
			{
				"path": "DiskfilePickerDialog.svelte",
				"declarations": [
					{
						"name": "DiskfilePickerDialog",
						"kind": "component",
						"props": [
							{
								"name": "onpick",
								"type": "(diskfile: Diskfile | undefined) => boolean | void"
							},
							{
								"name": "show",
								"type": "boolean | undefined",
								"optional": true,
								"bindable": true
							},
							{
								"name": "filter",
								"type": "((diskfile: Diskfile) => boolean) | undefined",
								"optional": true
							},
							{
								"name": "exclude_ids",
								"type": "Array<Uuid> | undefined",
								"optional": true
							},
							{
								"name": "selected_ids",
								"type": "Array<Uuid> | undefined",
								"optional": true
							},
							{
								"name": "dialog_props",
								"type": "OmitStrict<ComponentProps<typeof Dialog>, 'children'> | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"DiskfileListitem.svelte",
					"PickerDialog.svelte",
					"frontend.svelte.ts",
					"sortable.svelte.ts"
				],
				"dependents": [
					"DashboardDiskfiles.svelte",
					"DashboardPrompts.svelte",
					"PartEditorForDiskfile.svelte",
					"PromptContextmenu.svelte"
				]
			},
			{
				"path": "diskfiles_editor.svelte.ts",
				"declarations": [
					{
						"name": "DiskfilesEditorJson",
						"kind": "type",
						"source_line": 10,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; show_sort_controls: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "DiskfilesEditorJsonInput",
						"kind": "type",
						"source_line": 14,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; show_sort_controls?: boolean | undefined; }"
					},
					{
						"name": "DiskfilesEditorOptions",
						"kind": "type",
						"source_line": 16,
						"type_signature": "DiskfilesEditorOptions"
					},
					{
						"name": "DiskfilesEditor",
						"kind": "class",
						"doc_comment": "Editor state management for diskfiles.",
						"source_line": 21,
						"extends": [
							"Cell<typeof DiskfilesEditorJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "show_sort_controls",
								"kind": "variable",
								"doc_comment": "Controls visibility of sort controls in the file explorer.",
								"type_signature": "boolean"
							},
							{
								"name": "tabs",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Tabs for managing the open diskfiles.",
								"type_signature": "DiskfileTabs"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: DiskfilesEditorOptions): DiskfilesEditor",
								"parameters": [
									{
										"name": "options",
										"type": "DiskfilesEditorOptions"
									}
								]
							},
							{
								"name": "preview_diskfile",
								"kind": "function",
								"doc_comment": "Opens a diskfile in preview mode.",
								"type_signature": "(diskfile_id: string & $brand<\"Uuid\">): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "diskfile_id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "open_diskfile",
								"kind": "function",
								"doc_comment": "Opens a diskfile in permanent mode.",
								"type_signature": "(diskfile_id: string & $brand<\"Uuid\">): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "diskfile_id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "reorder_tabs",
								"kind": "function",
								"doc_comment": "Reorders tabs.",
								"type_signature": "(from_index: number, to_index: number): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "from_index",
										"type": "number"
									},
									{
										"name": "to_index",
										"type": "number"
									}
								]
							},
							{
								"name": "select_tab",
								"kind": "function",
								"doc_comment": "Selects a tab by id.",
								"type_signature": "(tab_id: string & $brand<\"Uuid\">): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "tab_id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "close_tab",
								"kind": "function",
								"doc_comment": "Closes a tab by id.",
								"type_signature": "(tab_id: string & $brand<\"Uuid\">): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "tab_id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "reopen_last_closed_tab",
								"kind": "function",
								"doc_comment": "Reopens the last closed tab.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "promote_preview_tab",
								"kind": "function",
								"doc_comment": "Promotes the current preview tab to permanent.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "open_tab",
								"kind": "function",
								"doc_comment": "Opens (makes permanent) a tab by id.",
								"type_signature": "(tab_id: string & $brand<\"Uuid\">): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "tab_id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "handle_file_modified",
								"kind": "function",
								"doc_comment": "Handles when a diskfile's content is modified.",
								"type_signature": "(diskfile_id: string & $brand<\"Uuid\">): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "diskfile_id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "sync_selected_file",
								"kind": "function",
								"doc_comment": "Syncs the selected diskfile in diskfiles with the selected tab.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "toggle_sort_controls",
								"kind": "function",
								"doc_comment": "Toggles the visibility of sort controls in the file explorer.",
								"type_signature": "(value?: boolean): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "value",
										"type": "boolean",
										"default_value": "!this.show_sort_controls"
									}
								]
							}
						]
					},
					{
						"name": "DiskfilesEditorSchema",
						"kind": "variable",
						"source_line": 128,
						"type_signature": "ZodCustom<DiskfilesEditor, DiskfilesEditor>"
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_types.ts",
					"diskfile_tabs.svelte.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"diskfiles.svelte.ts"
				]
			},
			{
				"path": "diskfiles.svelte.ts",
				"declarations": [
					{
						"name": "DiskfilesJson",
						"kind": "type",
						"source_line": 15,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; diskfiles: ZodDefault<...>; selected_file_id: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "DiskfilesJsonInput",
						"kind": "type",
						"source_line": 20,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; diskfiles?: { source_dir: string; id?: string | undefined; created?: string | undefined; updated?: string | undefined; path?: string | ... 1 more ... | undefined; content?: string | ... 1 more ... | undefined; dependents?: [...][]..."
					},
					{
						"name": "DiskfilesOptions",
						"kind": "type",
						"source_line": 22,
						"type_signature": "DiskfilesOptions",
						"extends": [
							"CellOptions<typeof DiskfilesJson>"
						],
						"properties": []
					},
					{
						"name": "Diskfiles",
						"kind": "class",
						"source_line": 24,
						"extends": [
							"Cell<typeof DiskfilesJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "items",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "IndexedCollection<Diskfile>"
							},
							{
								"name": "selected_file_id",
								"kind": "variable",
								"type_signature": "Uuid | null"
							},
							{
								"name": "selected_file",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Diskfile | null"
							},
							{
								"name": "editor",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "The editor for managing diskfiles editing state.",
								"type_signature": "DiskfilesEditor"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: DiskfilesOptions): Diskfiles",
								"parameters": [
									{
										"name": "options",
										"type": "DiskfilesOptions"
									}
								]
							},
							{
								"name": "handle_change",
								"kind": "function",
								"type_signature": "(params: { change: { type: \"add\" | \"change\" | \"delete\"; path: string & $brand<\"DiskfilePath\">; }; disknode: { id: string & $brand<\"DiskfilePath\">; source_dir: string & $brand<...> & $brand<...>; ... 4 more ...; dependencies: [...][]; }; }): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "params",
										"type": "{ change: { type: \"add\" | \"change\" | \"delete\"; path: string & $brand<\"DiskfilePath\">; }; disknode: { id: string & $brand<\"DiskfilePath\">; source_dir: string & $brand<\"DiskfilePath\"> & $brand<...>; ... 4 more ...; dependencies: [...][]; }; }"
									}
								]
							},
							{
								"name": "add",
								"kind": "function",
								"type_signature": "(json: { source_dir: string; id?: string | undefined; created?: string | undefined; updated?: string | undefined; path?: string | null | undefined; content?: string | null | undefined; dependents?: [...][] | ... 1 more ... | undefined; dependencies?: [...][] | ... 1 more ... | undefined; }, auto_select?: boolean): Diskfile",
								"return_type": "Diskfile",
								"parameters": [
									{
										"name": "json",
										"type": "{ source_dir: string; id?: string | undefined; created?: string | undefined; updated?: string | undefined; path?: string | null | undefined; content?: string | null | undefined; dependents?: [...][] | ... 1 more ... | undefined; dependencies?: [...][] | ... 1 more ... | undefined; }"
									},
									{
										"name": "auto_select",
										"type": "boolean",
										"default_value": "true"
									}
								]
							},
							{
								"name": "update",
								"kind": "function",
								"type_signature": "(path: string & $brand<\"DiskfilePath\">, content: string): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": [
									{
										"name": "path",
										"type": "string & $brand<\"DiskfilePath\">"
									},
									{
										"name": "content",
										"type": "string"
									}
								]
							},
							{
								"name": "delete",
								"kind": "function",
								"type_signature": "(path: string & $brand<\"DiskfilePath\">): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": [
									{
										"name": "path",
										"type": "string & $brand<\"DiskfilePath\">"
									}
								]
							},
							{
								"name": "create_file",
								"kind": "function",
								"type_signature": "(filename: string, content?: string): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": [
									{
										"name": "filename",
										"type": "string"
									},
									{
										"name": "content",
										"type": "string",
										"default_value": "''"
									}
								]
							},
							{
								"name": "create_directory",
								"kind": "function",
								"type_signature": "(dirname: string): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": [
									{
										"name": "dirname",
										"type": "string"
									}
								]
							},
							{
								"name": "get_by_path",
								"kind": "function",
								"type_signature": "(path: string & $brand<\"DiskfilePath\">): Diskfile | undefined",
								"return_type": "Diskfile | undefined",
								"parameters": [
									{
										"name": "path",
										"type": "string & $brand<\"DiskfilePath\">"
									}
								]
							},
							{
								"name": "to_relative_path",
								"kind": "function",
								"doc_comment": "The value `undefined` means uninitialized, `null` means loading, `''` means none.",
								"type_signature": "(path: string): string | null | undefined",
								"return_type": "string | null | undefined",
								"parameters": [
									{
										"name": "path",
										"type": "string"
									}
								]
							},
							{
								"name": "select",
								"kind": "function",
								"doc_comment": "Select a diskfile by id and also update the editor tabs.\nDefault to the first file if `id` is `undefined`.\nIf `id` is `null`, it selects no file.\nIf `open_not_preview` is `true`, opens as a permanent tab, otherwise previews.",
								"type_signature": "(id: (string & $brand<\"Uuid\">) | null | undefined, open_not_preview?: boolean): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "id",
										"type": "(string & $brand<\"Uuid\">) | null | undefined"
									},
									{
										"name": "open_not_preview",
										"type": "boolean",
										"default_value": "false"
									}
								]
							},
							{
								"name": "select_next",
								"kind": "function",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							}
						]
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_helpers.ts",
					"cell_types.ts",
					"diskfile.svelte.ts",
					"diskfile_helpers.ts",
					"diskfile_types.ts",
					"diskfiles_editor.svelte.ts",
					"indexed_collection.svelte.ts",
					"indexed_collection_helpers.svelte.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"frontend.svelte.ts"
				]
			},
			{
				"path": "DiskfileTabListitem.svelte",
				"declarations": [
					{
						"name": "DiskfileTabListitem",
						"kind": "component",
						"props": [
							{
								"name": "tab",
								"type": "DiskfileTab"
							},
							{
								"name": "onselect",
								"type": "(tab: DiskfileTab) => void"
							},
							{
								"name": "onclose",
								"type": "(tab: DiskfileTab) => void"
							},
							{
								"name": "onopen",
								"type": "(tab: DiskfileTab) => void"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"DiskfileContextmenu.svelte",
					"Glyph.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"DashboardDiskfiles.svelte"
				]
			},
			{
				"path": "EditableText.svelte",
				"declarations": [
					{
						"name": "EditableText",
						"kind": "component",
						"props": [
							{
								"name": "value",
								"type": "string",
								"bindable": true
							},
							{
								"name": "attrs",
								"type": "SvelteHTMLElements['span']",
								"optional": true
							},
							{
								"name": "span_attrs",
								"type": "SvelteHTMLElements['span']",
								"optional": true
							},
							{
								"name": "input_attrs",
								"type": "SvelteHTMLElements['input']",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependents": [
					"ChatView.svelte",
					"DashboardPrompts.svelte"
				]
			},
			{
				"path": "ErrorMessage.svelte",
				"declarations": [
					{
						"name": "ErrorMessage",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependents": [
					"CapabilityBackend.svelte",
					"CapabilityProviderApi.svelte",
					"CapabilityProviderOllama.svelte",
					"DashboardChats.svelte",
					"DashboardDiskfiles.svelte",
					"OllamaConfigure.svelte",
					"OllamaCopyModel.svelte",
					"OllamaCreateModel.svelte",
					"OllamaPullModel.svelte"
				]
			},
			{
				"path": "ErrorMessageInline.svelte",
				"declarations": [
					{
						"name": "ErrorMessageInline",
						"kind": "component",
						"props": [
							{
								"name": "glyph",
								"type": "string | null",
								"optional": true
							},
							{
								"name": "children",
								"type": "Snippet"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"TurnListitem.svelte"
				]
			},
			{
				"path": "ExternalLink.svelte",
				"declarations": [
					{
						"name": "ExternalLink",
						"kind": "component",
						"props": [
							{
								"name": "href",
								"type": "string"
							},
							{
								"name": "new_tab",
								"type": "boolean | undefined",
								"optional": true,
								"description": "Set to false to open in the same tab."
							},
							{
								"name": "icon",
								"type": "Snippet<[known_logo: SvgData | null]> | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ExternalLinkIcon.svelte",
					"logos.ts"
				],
				"dependents": [
					"CapabilityBackend.svelte",
					"CapabilityProviderApi.svelte",
					"CapabilityProviderOllama.svelte",
					"CapabilitySystem.svelte",
					"DashboardProviders.svelte",
					"OllamaManager.svelte",
					"ProviderDetail.svelte",
					"ProviderSummary.svelte",
					"Settings.svelte",
					"TutorialForChats.svelte",
					"TutorialForDatabase.svelte",
					"TutorialForPrompts.svelte"
				]
			},
			{
				"path": "ExternalLinkIcon.svelte",
				"declarations": [
					{
						"name": "ExternalLinkIcon",
						"kind": "component",
						"props": [
							{
								"name": "children",
								"type": "Snippet<[text_icon: string]>",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"ExternalLink.svelte"
				]
			},
			{
				"path": "Footer.svelte",
				"declarations": [
					{
						"name": "Footer",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"library.ts",
					"logos.ts"
				],
				"dependents": [
					"DashboardCapabilities.svelte",
					"DashboardSettings.svelte"
				]
			},
			{
				"path": "format_helpers.ts",
				"declarations": [
					{
						"name": "format_bytes",
						"kind": "function",
						"doc_comment": "Format bytes to human readable string.",
						"source_line": 4,
						"type_signature": "(bytes: number, decimals?: number): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "bytes",
								"type": "number"
							},
							{
								"name": "decimals",
								"type": "number",
								"default_value": "1"
							}
						]
					},
					{
						"name": "format_gigabytes",
						"kind": "function",
						"source_line": 17,
						"type_signature": "(gb: number): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "gb",
								"type": "number"
							}
						]
					},
					{
						"name": "format_percentage",
						"kind": "function",
						"doc_comment": "Format a number as a percentage.",
						"source_line": 23,
						"type_signature": "(value: number, total: number, decimals?: number): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "value",
								"type": "number"
							},
							{
								"name": "total",
								"type": "number"
							},
							{
								"name": "decimals",
								"type": "number",
								"default_value": "1"
							}
						]
					},
					{
						"name": "format_duration",
						"kind": "function",
						"doc_comment": "Format duration in milliseconds to human readable string.",
						"source_line": 31,
						"type_signature": "(ms: number): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "ms",
								"type": "number"
							}
						]
					}
				],
				"dependents": [
					"ModelSummary.svelte",
					"OllamaModelDetail.svelte",
					"OllamaModelListitem.svelte",
					"OllamaPsStatus.svelte"
				]
			},
			{
				"path": "frontend_action_handlers.ts",
				"declarations": [
					{
						"name": "frontend_action_handlers",
						"kind": "variable",
						"source_line": 7,
						"type_signature": "FrontendActionHandlers"
					}
				],
				"dependencies": [
					"response_helpers.ts",
					"turn.svelte.ts"
				],
				"dependents": [
					"app.svelte.ts"
				]
			},
			{
				"path": "frontend_action_types.gen.ts",
				"declarations": [],
				"dependencies": [
					"action_registry.ts",
					"action_spec.ts",
					"action_specs.ts",
					"codegen.ts"
				]
			},
			{
				"path": "frontend_action_types.ts",
				"declarations": [
					{
						"name": "FrontendActionHandlers",
						"kind": "type",
						"doc_comment": "Frontend action handlers organized by method and phase.\nGenerated using spec.initiator to determine valid phases:\n- initiator: 'frontend' → send/execute phases\n- initiator: 'backend' → receive phases\n- initiator: 'both' → all valid phases",
						"source_line": 14,
						"type_signature": "FrontendActionHandlers",
						"properties": [
							{
								"name": "completion_create",
								"kind": "variable",
								"type_signature": "{\n\t\tsend_request?: (\n\t\t\taction_event: ActionEvent<'completion_create', Frontend, 'send_request', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_response?: (\n\t\t\taction_event: ActionEvent<'completion_create', Frontend, 'receive_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'completion_create', Frontend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_error?: (\n\t\t\taction_event: ActionEvent<'completion_create', Frontend, 'receive_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "completion_progress",
								"kind": "variable",
								"type_signature": "{\n\t\treceive?: (\n\t\t\taction_event: ActionEvent<'completion_progress', Frontend, 'receive', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "directory_create",
								"kind": "variable",
								"type_signature": "{\n\t\tsend_request?: (\n\t\t\taction_event: ActionEvent<'directory_create', Frontend, 'send_request', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_response?: (\n\t\t\taction_event: ActionEvent<'directory_create', Frontend, 'receive_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'directory_create', Frontend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_error?: (\n\t\t\taction_event: ActionEvent<'directory_create', Frontend, 'receive_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "diskfile_delete",
								"kind": "variable",
								"type_signature": "{\n\t\tsend_request?: (\n\t\t\taction_event: ActionEvent<'diskfile_delete', Frontend, 'send_request', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_response?: (\n\t\t\taction_event: ActionEvent<'diskfile_delete', Frontend, 'receive_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'diskfile_delete', Frontend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_error?: (\n\t\t\taction_event: ActionEvent<'diskfile_delete', Frontend, 'receive_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "diskfile_update",
								"kind": "variable",
								"type_signature": "{\n\t\tsend_request?: (\n\t\t\taction_event: ActionEvent<'diskfile_update', Frontend, 'send_request', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_response?: (\n\t\t\taction_event: ActionEvent<'diskfile_update', Frontend, 'receive_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'diskfile_update', Frontend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_error?: (\n\t\t\taction_event: ActionEvent<'diskfile_update', Frontend, 'receive_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "filer_change",
								"kind": "variable",
								"type_signature": "{\n\t\treceive?: (\n\t\t\taction_event: ActionEvent<'filer_change', Frontend, 'receive', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ollama_copy",
								"kind": "variable",
								"type_signature": "{\n\t\tsend_request?: (\n\t\t\taction_event: ActionEvent<'ollama_copy', Frontend, 'send_request', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_response?: (\n\t\t\taction_event: ActionEvent<'ollama_copy', Frontend, 'receive_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'ollama_copy', Frontend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_error?: (\n\t\t\taction_event: ActionEvent<'ollama_copy', Frontend, 'receive_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ollama_create",
								"kind": "variable",
								"type_signature": "{\n\t\tsend_request?: (\n\t\t\taction_event: ActionEvent<'ollama_create', Frontend, 'send_request', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_response?: (\n\t\t\taction_event: ActionEvent<'ollama_create', Frontend, 'receive_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'ollama_create', Frontend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_error?: (\n\t\t\taction_event: ActionEvent<'ollama_create', Frontend, 'receive_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ollama_delete",
								"kind": "variable",
								"type_signature": "{\n\t\tsend_request?: (\n\t\t\taction_event: ActionEvent<'ollama_delete', Frontend, 'send_request', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_response?: (\n\t\t\taction_event: ActionEvent<'ollama_delete', Frontend, 'receive_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'ollama_delete', Frontend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_error?: (\n\t\t\taction_event: ActionEvent<'ollama_delete', Frontend, 'receive_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ollama_list",
								"kind": "variable",
								"type_signature": "{\n\t\tsend_request?: (\n\t\t\taction_event: ActionEvent<'ollama_list', Frontend, 'send_request', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_response?: (\n\t\t\taction_event: ActionEvent<'ollama_list', Frontend, 'receive_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'ollama_list', Frontend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_error?: (\n\t\t\taction_event: ActionEvent<'ollama_list', Frontend, 'receive_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ollama_progress",
								"kind": "variable",
								"type_signature": "{\n\t\treceive?: (\n\t\t\taction_event: ActionEvent<'ollama_progress', Frontend, 'receive', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ollama_ps",
								"kind": "variable",
								"type_signature": "{\n\t\tsend_request?: (\n\t\t\taction_event: ActionEvent<'ollama_ps', Frontend, 'send_request', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_response?: (\n\t\t\taction_event: ActionEvent<'ollama_ps', Frontend, 'receive_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'ollama_ps', Frontend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_error?: (\n\t\t\taction_event: ActionEvent<'ollama_ps', Frontend, 'receive_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ollama_pull",
								"kind": "variable",
								"type_signature": "{\n\t\tsend_request?: (\n\t\t\taction_event: ActionEvent<'ollama_pull', Frontend, 'send_request', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_response?: (\n\t\t\taction_event: ActionEvent<'ollama_pull', Frontend, 'receive_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'ollama_pull', Frontend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_error?: (\n\t\t\taction_event: ActionEvent<'ollama_pull', Frontend, 'receive_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ollama_show",
								"kind": "variable",
								"type_signature": "{\n\t\tsend_request?: (\n\t\t\taction_event: ActionEvent<'ollama_show', Frontend, 'send_request', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_response?: (\n\t\t\taction_event: ActionEvent<'ollama_show', Frontend, 'receive_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'ollama_show', Frontend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_error?: (\n\t\t\taction_event: ActionEvent<'ollama_show', Frontend, 'receive_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ollama_unload",
								"kind": "variable",
								"type_signature": "{\n\t\tsend_request?: (\n\t\t\taction_event: ActionEvent<'ollama_unload', Frontend, 'send_request', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_response?: (\n\t\t\taction_event: ActionEvent<'ollama_unload', Frontend, 'receive_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'ollama_unload', Frontend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_error?: (\n\t\t\taction_event: ActionEvent<'ollama_unload', Frontend, 'receive_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ping",
								"kind": "variable",
								"type_signature": "{\n\t\tsend_request?: (\n\t\t\taction_event: ActionEvent<'ping', Frontend, 'send_request', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_response?: (\n\t\t\taction_event: ActionEvent<'ping', Frontend, 'receive_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'ping', Frontend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_error?: (\n\t\t\taction_event: ActionEvent<'ping', Frontend, 'receive_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_request?: (\n\t\t\taction_event: ActionEvent<'ping', Frontend, 'receive_request', 'handling'>,\n\t\t) => ActionOutputs['ping'] | Promise<ActionOutputs['ping']>;\n\t\tsend_response?: (\n\t\t\taction_event: ActionEvent<'ping', Frontend, 'send_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "provider_load_status",
								"kind": "variable",
								"type_signature": "{\n\t\tsend_request?: (\n\t\t\taction_event: ActionEvent<'provider_load_status', Frontend, 'send_request', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_response?: (\n\t\t\taction_event: ActionEvent<'provider_load_status', Frontend, 'receive_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'provider_load_status', Frontend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_error?: (\n\t\t\taction_event: ActionEvent<'provider_load_status', Frontend, 'receive_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "provider_update_api_key",
								"kind": "variable",
								"type_signature": "{\n\t\tsend_request?: (\n\t\t\taction_event: ActionEvent<'provider_update_api_key', Frontend, 'send_request', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_response?: (\n\t\t\taction_event: ActionEvent<\n\t\t\t\t'provider_update_api_key',\n\t\t\t\tFrontend,\n\t\t\t\t'receive_response',\n\t\t\t\t'handling'\n\t\t\t>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'provider_update_api_key', Frontend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_error?: (\n\t\t\taction_event: ActionEvent<'provider_update_api_key', Frontend, 'receive_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "session_load",
								"kind": "variable",
								"type_signature": "{\n\t\tsend_request?: (\n\t\t\taction_event: ActionEvent<'session_load', Frontend, 'send_request', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_response?: (\n\t\t\taction_event: ActionEvent<'session_load', Frontend, 'receive_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'session_load', Frontend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_error?: (\n\t\t\taction_event: ActionEvent<'session_load', Frontend, 'receive_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "toggle_main_menu",
								"kind": "variable",
								"type_signature": "{\n\t\texecute?: (\n\t\t\taction_event: ActionEvent<'toggle_main_menu', Frontend, 'execute', 'handling'>,\n\t\t) => ActionOutputs['toggle_main_menu'];\n\t}"
							}
						]
					}
				]
			},
			{
				"path": "frontend_actions_api.ts",
				"declarations": [
					{
						"name": "create_frontend_actions_api",
						"kind": "function",
						"doc_comment": "Creates the actions API methods for the frontend.\nUses a Proxy to provide dynamic method lookup with full type safety.",
						"source_line": 26,
						"type_signature": "<T extends ActionEventEnvironment>(environment: T): ActionsApi",
						"return_type": "ActionsApi",
						"parameters": [
							{
								"name": "environment",
								"type": "T"
							}
						]
					}
				],
				"dependencies": [
					"action_event.ts",
					"action_event_helpers.ts"
				],
				"dependents": [
					"frontend.svelte.ts"
				]
			},
			{
				"path": "frontend_http_transport.ts",
				"declarations": [
					{
						"name": "FrontendHttpTransport",
						"kind": "class",
						"source_line": 22,
						"extends": [],
						"implements": [
							"Transport"
						],
						"members": [
							{
								"name": "transport_name",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(url: string, headers?: Record<string, string> | undefined): FrontendHttpTransport",
								"parameters": [
									{
										"name": "url",
										"type": "string"
									},
									{
										"name": "headers",
										"type": "Record<string, string> | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "send",
								"kind": "function",
								"type_signature": "(message: { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }): Promise<...>",
								"return_type": "Promise<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); message...",
								"parameters": [
									{
										"name": "message",
										"type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }"
									}
								]
							},
							{
								"name": "send",
								"kind": "function",
								"type_signature": "(message: { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }): Promise<...>",
								"return_type": "Promise<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); message...",
								"parameters": [
									{
										"name": "message",
										"type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }"
									}
								]
							},
							{
								"name": "send",
								"kind": "function",
								"type_signature": "(message: { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }): Promise<...>",
								"return_type": "Promise<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); message...",
								"parameters": [
									{
										"name": "message",
										"type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }"
									}
								]
							},
							{
								"name": "is_ready",
								"kind": "function",
								"type_signature": "(): boolean",
								"return_type": "boolean",
								"parameters": []
							}
						]
					}
				],
				"dependencies": [
					"constants.ts",
					"jsonrpc_errors.ts",
					"jsonrpc_helpers.ts"
				],
				"dependents": [
					"frontend.svelte.ts"
				]
			},
			{
				"path": "frontend_websocket_transport.ts",
				"declarations": [
					{
						"name": "FrontendWebsocketTransport",
						"kind": "class",
						"source_line": 27,
						"extends": [],
						"implements": [
							"Transport"
						],
						"members": [
							{
								"name": "transport_name",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(socket: Socket, request_timeout_ms?: number | undefined): FrontendWebsocketTransport",
								"parameters": [
									{
										"name": "socket",
										"type": "Socket"
									},
									{
										"name": "request_timeout_ms",
										"type": "number | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "send",
								"kind": "function",
								"type_signature": "(message: { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }): Promise<...>",
								"return_type": "Promise<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); message...",
								"parameters": [
									{
										"name": "message",
										"type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }"
									}
								]
							},
							{
								"name": "send",
								"kind": "function",
								"type_signature": "(message: { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }): Promise<...>",
								"return_type": "Promise<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); message...",
								"parameters": [
									{
										"name": "message",
										"type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }"
									}
								]
							},
							{
								"name": "send",
								"kind": "function",
								"type_signature": "(message: { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }): Promise<...>",
								"return_type": "Promise<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); message...",
								"parameters": [
									{
										"name": "message",
										"type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }"
									}
								]
							},
							{
								"name": "is_ready",
								"kind": "function",
								"type_signature": "(): boolean",
								"return_type": "boolean",
								"parameters": []
							},
							{
								"name": "dispose",
								"kind": "function",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							}
						]
					}
				],
				"dependencies": [
					"constants.ts",
					"jsonrpc_errors.ts",
					"jsonrpc_helpers.ts",
					"request_tracker.svelte.ts"
				],
				"dependents": [
					"frontend.svelte.ts"
				]
			},
			{
				"path": "frontend.svelte.ts",
				"declarations": [
					{
						"name": "frontend_context",
						"kind": "variable",
						"source_line": 49,
						"type_signature": "{ get: (error_message?: string | undefined) => Frontend; get_maybe: () => Frontend | undefined; set: (value: Frontend) => Frontend; }"
					},
					{
						"name": "FrontendJson",
						"kind": "type",
						"source_line": 51,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; ui: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "FrontendJsonInput",
						"kind": "type",
						"source_line": 56,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; ui?: { id?: string | undefined; created?: string | undefined; updated?: string | undefined; show_main_dialog?: boolean | undefined; ... 4 more ...; tutorial_for_diskfiles?: boolean | undefined; } | undefined; }"
					},
					{
						"name": "FrontendOptions",
						"kind": "type",
						"source_line": 58,
						"type_signature": "FrontendOptions",
						"extends": [
							"OmitStrict<CellOptions<typeof FrontendJson>, 'app'>"
						],
						"properties": [
							{
								"name": "app",
								"kind": "variable",
								"type_signature": "never",
								"doc_comment": "Do not use - optional to avoid circular reference problem."
							},
							{
								"name": "models",
								"kind": "variable",
								"type_signature": "Array<ModelJsonInput>"
							},
							{
								"name": "bots",
								"kind": "variable",
								"type_signature": "ZzzConfig['bots']"
							},
							{
								"name": "providers",
								"kind": "variable",
								"type_signature": "Array<ProviderJsonInput>"
							},
							{
								"name": "cell_classes",
								"kind": "variable",
								"type_signature": "Record<string, ClassConstructor<Cell<any>>>"
							},
							{
								"name": "action_specs",
								"kind": "variable",
								"type_signature": "Array<ActionSpecUnion>"
							},
							{
								"name": "action_handlers",
								"kind": "variable",
								"type_signature": "FrontendActionHandlers"
							},
							{
								"name": "http_rpc_url",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "http_headers",
								"kind": "variable",
								"type_signature": "Record<string, string>"
							},
							{
								"name": "socket_url",
								"kind": "variable",
								"type_signature": "string | null"
							}
						]
					},
					{
						"name": "Frontend",
						"kind": "class",
						"doc_comment": "The base frontend app, typically used by creating your own `App extends Frontend`.\nGettable with `frontend_context.get()` inside a `FrontendRoot`.",
						"source_line": 78,
						"extends": [
							"Cell<typeof FrontendJson>"
						],
						"implements": [
							"ActionEventEnvironment"
						],
						"members": [
							{
								"name": "executor",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ActionExecutor"
							},
							{
								"name": "cell_registry",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "App-wide cell registry, maps class names to constructor and tracks registered instances.",
								"type_signature": "CellRegistry"
							},
							{
								"name": "action_registry",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ActionRegistry"
							},
							{
								"name": "action_handlers",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "FrontendActionHandlers"
							},
							{
								"name": "api",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ActionsApi"
							},
							{
								"name": "peer",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ActionPeer"
							},
							{
								"name": "time",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Time"
							},
							{
								"name": "ui",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Ui"
							},
							{
								"name": "models",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Models"
							},
							{
								"name": "chats",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Chats"
							},
							{
								"name": "threads",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Threads"
							},
							{
								"name": "providers",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Providers"
							},
							{
								"name": "prompts",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Prompts"
							},
							{
								"name": "parts",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Parts"
							},
							{
								"name": "diskfiles",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Diskfiles"
							},
							{
								"name": "actions",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Actions"
							},
							{
								"name": "socket",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Socket"
							},
							{
								"name": "capabilities",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Capabilities"
							},
							{
								"name": "ollama",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Ollama"
							},
							{
								"name": "bots",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ZzzConfig['bots']"
							},
							{
								"name": "provider_status",
								"kind": "variable",
								"doc_comment": "Tracks which providers are available (configured with API keys).",
								"type_signature": "Array<ProviderStatus>"
							},
							{
								"name": "tags",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Set<string>"
							},
							{
								"name": "diskfile_histories",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "SvelteMap<DiskfilePath, DiskfileHistory>"
							},
							{
								"name": "futuremode",
								"kind": "variable",
								"doc_comment": "See into Zzz's future."
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options?: FrontendOptions): Frontend",
								"parameters": [
									{
										"name": "options",
										"type": "FrontendOptions",
										"default_value": "EMPTY_OBJECT"
									}
								]
							},
							{
								"name": "receive_session",
								"kind": "function",
								"type_signature": "(data: { zzz_dir: string & $brand<\"DiskfilePath\"> & $brand<\"DiskfileDirectoryPath\">; scoped_dirs: readonly (string & $brand<\"DiskfilePath\"> & $brand<\"DiskfileDirectoryPath\">)[]; files: { ...; }[]; provider_status: ({ ...; } | { ...; })[]; }): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "data",
										"type": "{ zzz_dir: string & $brand<\"DiskfilePath\"> & $brand<\"DiskfileDirectoryPath\">; scoped_dirs: readonly (string & $brand<\"DiskfilePath\"> & $brand<\"DiskfileDirectoryPath\">)[]; files: { ...; }[]; provider_status: ({ ...; } | { ...; })[]; }"
									}
								]
							},
							{
								"name": "add_providers",
								"kind": "function",
								"type_signature": "(providers_json: { name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; title: string; url: string; homepage: string; company: string; api_key_url: string | null; id?: string | undefined; created?: string | undefined; updated?: string | undefined; }[]): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "providers_json",
										"type": "{ name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; title: string; url: string; homepage: string; company: string; api_key_url: string | null; id?: string | undefined; created?: string | undefined; updated?: string | undefined; }[]"
									}
								]
							},
							{
								"name": "add_provider",
								"kind": "function",
								"type_signature": "(provider_json: { name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; title: string; url: string; homepage: string; company: string; api_key_url: string | null; id?: string | undefined; created?: string | undefined; updated?: string | undefined; }): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "provider_json",
										"type": "{ name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; title: string; url: string; homepage: string; company: string; api_key_url: string | null; id?: string | undefined; created?: string | undefined; updated?: string | undefined; }"
									}
								]
							},
							{
								"name": "lookup_provider_status",
								"kind": "function",
								"type_signature": "(provider_name: string): { name: string; available: true; checked_at: number; } | { name: string; available: false; error: string; checked_at: number; } | null",
								"return_type": "{ name: string; available: true; checked_at: number; } | { name: string; available: false; error: string; checked_at: number; } | null",
								"parameters": [
									{
										"name": "provider_name",
										"type": "string"
									}
								]
							},
							{
								"name": "update_provider_status",
								"kind": "function",
								"type_signature": "(status: { name: string; available: true; checked_at: number; } | { name: string; available: false; error: string; checked_at: number; }): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "status",
										"type": "{ name: string; available: true; checked_at: number; } | { name: string; available: false; error: string; checked_at: number; }"
									}
								]
							},
							{
								"name": "get_diskfile_history",
								"kind": "function",
								"type_signature": "(path: string & $brand<\"DiskfilePath\">): DiskfileHistory | undefined",
								"return_type": "DiskfileHistory | undefined",
								"parameters": [
									{
										"name": "path",
										"type": "string & $brand<\"DiskfilePath\">"
									}
								]
							},
							{
								"name": "create_diskfile_history",
								"kind": "function",
								"type_signature": "(path: string & $brand<\"DiskfilePath\">): DiskfileHistory",
								"return_type": "DiskfileHistory",
								"parameters": [
									{
										"name": "path",
										"type": "string & $brand<\"DiskfilePath\">"
									}
								]
							},
							{
								"name": "lookup_action_handler",
								"kind": "function",
								"type_signature": "(method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\", phase: \"send_request\" | ... 7 more ... | \"execute\"): ((event: any) => any) | undefined",
								"return_type": "((event: any) => any) | undefined",
								"parameters": [
									{
										"name": "method",
										"type": "\"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\""
									},
									{
										"name": "phase",
										"type": "\"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\""
									}
								]
							},
							{
								"name": "lookup_action_spec",
								"kind": "function",
								"type_signature": "(method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"): { ...; } | ... 2 more ... | undefined",
								"return_type": "{ method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"; ... 6 more ...; async: true; } | { ...; } | { ...; } | undefined",
								"parameters": [
									{
										"name": "method",
										"type": "\"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\""
									}
								]
							},
							{
								"name": "lookup_action_input_schema",
								"kind": "function",
								"type_signature": "<TMethod extends ActionMethod>(method: TMethod): { readonly completion_create: ZodObject<{ completion_request: ZodObject<{ created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; provider_name: ZodEnum<...>; model: ZodString; prompt: ZodString; completion_messages: ZodOptional<...>; }, $strict>; _meta: ZodOptional<...>; }, $strict>; ... 18 more ...; readonly toggle_main_menu: ZodOptional<...>; }[TMethod] | undefined",
								"return_type": "{ readonly completion_create: ZodObject<{ completion_request: ZodObject<{ created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; provider_name: ZodEnum<...>; model: ZodString; prompt: ZodString; completion_messages: ZodOptional<...>; }, $strict>; _meta: ZodOptional<...>; }, $strict>; ... 18 more ...; r...",
								"parameters": [
									{
										"name": "method",
										"type": "TMethod"
									}
								]
							},
							{
								"name": "lookup_action_output_schema",
								"kind": "function",
								"type_signature": "<TMethod extends ActionMethod>(method: TMethod): { readonly completion_create: ZodObject<{ completion_response: ZodObject<{ created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; provider_name: ZodEnum<...>; model: ZodString; data: ZodDiscriminatedUnion<...>; }, $strict>; _meta: ZodOptional<...>; }, $strict>; ... 18 more ...; readonly toggle_main_menu: ZodObject<...>; }[TMethod] | undefined",
								"return_type": "{ readonly completion_create: ZodObject<{ completion_response: ZodObject<{ created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; provider_name: ZodEnum<...>; model: ZodString; data: ZodDiscriminatedUnion<...>; }, $strict>; _meta: ZodOptional<...>; }, $strict>; ... 18 more ...; readonly toggle_main_men...",
								"parameters": [
									{
										"name": "method",
										"type": "TMethod"
									}
								]
							},
							{
								"name": "is_valid_phase_for_method",
								"kind": "function",
								"type_signature": "(method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\", phase: \"send_request\" | ... 7 more ... | \"execute\"): boolean",
								"return_type": "boolean",
								"parameters": [
									{
										"name": "method",
										"type": "\"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\""
									},
									{
										"name": "phase",
										"type": "\"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\""
									}
								]
							}
						]
					}
				],
				"dependencies": [
					"action_collections.ts",
					"action_event_types.ts",
					"action_peer.ts",
					"action_registry.ts",
					"action_types.ts",
					"actions.svelte.ts",
					"capabilities.svelte.ts",
					"cell.svelte.ts",
					"cell_classes.ts",
					"cell_helpers.ts",
					"cell_registry.svelte.ts",
					"cell_types.ts",
					"chats.svelte.ts",
					"config_defaults.ts",
					"diskfile_history.svelte.ts",
					"diskfile_types.ts",
					"diskfiles.svelte.ts",
					"frontend_actions_api.ts",
					"frontend_http_transport.ts",
					"frontend_websocket_transport.ts",
					"models.svelte.ts",
					"ollama.svelte.ts",
					"parts.svelte.ts",
					"prompts.svelte.ts",
					"provider.svelte.ts",
					"providers.svelte.ts",
					"socket.svelte.ts",
					"threads.svelte.ts",
					"time.svelte.ts",
					"ui.svelte.ts"
				],
				"dependents": [
					"ActionContextmenu.svelte",
					"ActionList.svelte",
					"CapabilityBackend.svelte",
					"CapabilityFilesystem.svelte",
					"CapabilityProviderApi.svelte",
					"CapabilityProviderOllama.svelte",
					"CapabilityWebsocket.svelte",
					"ChatContextmenu.svelte",
					"ChatInitializer.svelte",
					"ChatList.svelte",
					"ChatView.svelte",
					"ChatsContextmenu.svelte",
					"Dashboard.svelte",
					"DashboardCapabilities.svelte",
					"DashboardChats.svelte",
					"DashboardDiskfiles.svelte",
					"DashboardHome.svelte",
					"DashboardModels.svelte",
					"DashboardPrompts.svelte",
					"DashboardProviders.svelte",
					"DashboardSettings.svelte",
					"DiskfileActions.svelte",
					"DiskfileContextmenu.svelte",
					"DiskfileEditorNav.svelte",
					"DiskfileEditorView.svelte",
					"DiskfileExplorer.svelte",
					"DiskfileInfo.svelte",
					"DiskfilePartView.svelte",
					"DiskfilePicker.svelte",
					"DiskfilePickerDialog.svelte",
					"FrontendRoot.svelte",
					"MainDialog.svelte",
					"ModelDetail.svelte",
					"ModelPicker.svelte",
					"ModelPickerDialog.svelte",
					"ModelSelect.svelte",
					"OllamaConfigure.svelte",
					"OllamaManager.svelte",
					"OllamaPullModel.svelte",
					"PartContextmenu.svelte",
					"PartEditorForDiskfile.svelte",
					"PartPicker.svelte",
					"PartPickerDialog.svelte",
					"PartView.svelte",
					"PingForm.svelte",
					"PromptContextmenu.svelte",
					"PromptList.svelte",
					"PromptPicker.svelte",
					"PromptPickerDialog.svelte",
					"ProviderDetail.svelte",
					"ThreadContextmenu.svelte",
					"ThreadList.svelte",
					"TurnView.svelte",
					"TutorialForChats.svelte",
					"TutorialForDatabase.svelte",
					"TutorialForDiskfiles.svelte",
					"TutorialForPrompts.svelte",
					"app.svelte.ts"
				]
			},
			{
				"path": "FrontendRoot.svelte",
				"declarations": [
					{
						"name": "FrontendRoot",
						"kind": "component",
						"props": [
							{
								"name": "app",
								"type": "Frontend"
							},
							{
								"name": "children",
								"type": "Snippet<[zzz: Frontend]>"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Dashboard.svelte",
					"MainDialog.svelte",
					"frontend.svelte.ts"
				]
			},
			{
				"path": "Glyph.svelte",
				"declarations": [
					{
						"name": "Glyph",
						"kind": "component",
						"props": [
							{
								"name": "glyph",
								"type": "string"
							},
							{
								"name": "size",
								"type": "string | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependents": [
					"ActionContextmenu.svelte",
					"ActionDetail.svelte",
					"ActionListitem.svelte",
					"CapabilitiesView.svelte",
					"CapabilityBackend.svelte",
					"CapabilityProviderApi.svelte",
					"CapabilityProviderOllama.svelte",
					"CapabilityWebsocket.svelte",
					"ChatContextmenu.svelte",
					"ChatListitem.svelte",
					"ChatThread.svelte",
					"ChatView.svelte",
					"ChatViewMulti.svelte",
					"ChatsContextmenu.svelte",
					"ConfirmButton.svelte",
					"ContentEditor.svelte",
					"ContextmenuEntryCopyToClipboard.svelte",
					"ContextmenuEntryToggle.svelte",
					"Dashboard.svelte",
					"DashboardActions.svelte",
					"DashboardCapabilities.svelte",
					"DashboardChats.svelte",
					"DashboardHome.svelte",
					"DashboardModels.svelte",
					"DashboardPrompts.svelte",
					"DashboardProviders.svelte",
					"DashboardSettings.svelte",
					"DiskfileActions.svelte",
					"DiskfileContextmenu.svelte",
					"DiskfileEditorNav.svelte",
					"DiskfileExplorer.svelte",
					"DiskfileInfo.svelte",
					"DiskfileListitem.svelte",
					"DiskfileMetrics.svelte",
					"DiskfileTabListitem.svelte",
					"ErrorMessageInline.svelte",
					"ExternalLinkIcon.svelte",
					"ModelContextmenu.svelte",
					"ModelDetail.svelte",
					"ModelLink.svelte",
					"ModelSummary.svelte",
					"OllamaActionItem.svelte",
					"OllamaActions.svelte",
					"OllamaConfigure.svelte",
					"OllamaCopyModel.svelte",
					"OllamaCreateModel.svelte",
					"OllamaManager.svelte",
					"OllamaModelDetail.svelte",
					"OllamaPsStatus.svelte",
					"OllamaPullModel.svelte",
					"PartContextmenu.svelte",
					"PartEditorForDiskfile.svelte",
					"PartRemoveButton.svelte",
					"PartSummary.svelte",
					"PartView.svelte",
					"PingForm.svelte",
					"PromptContextmenu.svelte",
					"PromptListitem.svelte",
					"ProviderDetail.svelte",
					"ProviderLink.svelte",
					"SocketMessageQueue.svelte",
					"ThreadContextmenu.svelte",
					"ThreadListitem.svelte",
					"TurnContextmenu.svelte",
					"TurnView.svelte",
					"XmlAttributeEditor.svelte",
					"XmlTagControls.svelte"
				]
			},
			{
				"path": "glyphs.ts",
				"declarations": [
					{
						"name": "GLYPH_UNKNOWN",
						"kind": "variable",
						"source_line": 4,
						"type_signature": "\"⁇\""
					},
					{
						"name": "GLYPH_IMPORTANT",
						"kind": "variable",
						"source_line": 5,
						"type_signature": "\"⁈\""
					},
					{
						"name": "GLYPH_INFO",
						"kind": "variable",
						"source_line": 6,
						"type_signature": "\"ⓘ\""
					},
					{
						"name": "GLYPH_ADD",
						"kind": "variable",
						"source_line": 8,
						"type_signature": "\"✛\""
					},
					{
						"name": "GLYPH_REMOVE",
						"kind": "variable",
						"source_line": 9,
						"type_signature": "\"🗙\""
					},
					{
						"name": "GLYPH_DELETE",
						"kind": "variable",
						"source_line": 10,
						"type_signature": "\"⌧\""
					},
					{
						"name": "GLYPH_CLEAR",
						"kind": "variable",
						"source_line": 11,
						"type_signature": "\"⌫\""
					},
					{
						"name": "GLYPH_RESTORE",
						"kind": "variable",
						"source_line": 12,
						"type_signature": "\"⤻\""
					},
					{
						"name": "GLYPH_CANCEL",
						"kind": "variable",
						"source_line": 13,
						"type_signature": "\"⦸\""
					},
					{
						"name": "GLYPH_DRAG",
						"kind": "variable",
						"source_line": 14,
						"type_signature": "\"≡\""
					},
					{
						"name": "GLYPH_COPY",
						"kind": "variable",
						"source_line": 15,
						"type_signature": "\"⧉\""
					},
					{
						"name": "GLYPH_PASTE",
						"kind": "variable",
						"source_line": 16,
						"type_signature": "\"⎌\""
					},
					{
						"name": "GLYPH_RESET",
						"kind": "variable",
						"source_line": 17,
						"type_signature": "\"⤺\""
					},
					{
						"name": "GLYPH_REFRESH",
						"kind": "variable",
						"source_line": 18,
						"type_signature": "\"⟳\""
					},
					{
						"name": "GLYPH_CONNECT",
						"kind": "variable",
						"source_line": 19,
						"type_signature": "\"⭍\""
					},
					{
						"name": "GLYPH_DISCONNECT",
						"kind": "variable",
						"source_line": 20,
						"type_signature": "\"⊝\""
					},
					{
						"name": "GLYPH_RETRY",
						"kind": "variable",
						"source_line": 21,
						"type_signature": "\"↺\""
					},
					{
						"name": "GLYPH_PLACEHOLDER",
						"kind": "variable",
						"source_line": 22,
						"type_signature": "\"↳\""
					},
					{
						"name": "GLYPH_SEND",
						"kind": "variable",
						"source_line": 23,
						"type_signature": "\"⮥\""
					},
					{
						"name": "GLYPH_PLAY",
						"kind": "variable",
						"source_line": 24,
						"type_signature": "\"▶︎\""
					},
					{
						"name": "GLYPH_PAUSE",
						"kind": "variable",
						"source_line": 25,
						"type_signature": "\"❙❙\""
					},
					{
						"name": "GLYPH_CHECKMARK",
						"kind": "variable",
						"source_line": 30,
						"type_signature": "\"✓\""
					},
					{
						"name": "GLYPH_XMARK",
						"kind": "variable",
						"source_line": 31,
						"type_signature": "\"✗\""
					},
					{
						"name": "GLYPH_XMARK_HEAVY",
						"kind": "variable",
						"source_line": 32,
						"type_signature": "\"✘\""
					},
					{
						"name": "GLYPH_DOWNLOAD",
						"kind": "variable",
						"source_line": 34,
						"type_signature": "\"⭳\""
					},
					{
						"name": "GLYPH_ERROR",
						"kind": "variable",
						"source_line": 35,
						"type_signature": "\"‼\""
					},
					{
						"name": "GLYPH_CHEVRON_UP",
						"kind": "variable",
						"source_line": 36,
						"type_signature": "\"⮝\""
					},
					{
						"name": "GLYPH_CHEVRON_RIGHT",
						"kind": "variable",
						"source_line": 37,
						"type_signature": "\"⮞\""
					},
					{
						"name": "GLYPH_CHEVRON_DOWN",
						"kind": "variable",
						"source_line": 38,
						"type_signature": "\"⮟\""
					},
					{
						"name": "GLYPH_CHEVRON_LEFT",
						"kind": "variable",
						"source_line": 39,
						"type_signature": "\"⮜\""
					},
					{
						"name": "GLYPH_DOUBLE_CHEVRON_LEFT",
						"kind": "variable",
						"source_line": 40,
						"type_signature": "\"«\""
					},
					{
						"name": "GLYPH_DOUBLE_CHEVRON_RIGHT",
						"kind": "variable",
						"source_line": 41,
						"type_signature": "\"»\""
					},
					{
						"name": "GLYPH_EDIT",
						"kind": "variable",
						"source_line": 45,
						"type_signature": "\"✎\""
					},
					{
						"name": "GLYPH_SORT",
						"kind": "variable",
						"source_line": 51,
						"type_signature": "\"⇅\""
					},
					{
						"name": "GLYPH_BACKEND",
						"kind": "variable",
						"source_line": 53,
						"type_signature": "\"🜢\""
					},
					{
						"name": "GLYPH_CHAT",
						"kind": "variable",
						"source_line": 54,
						"type_signature": "\"⌸\""
					},
					{
						"name": "GLYPH_THREAD",
						"kind": "variable",
						"source_line": 55,
						"type_signature": "\"☷\""
					},
					{
						"name": "GLYPH_TURN",
						"kind": "variable",
						"source_line": 56,
						"type_signature": "\"⎍\""
					},
					{
						"name": "GLYPH_FILE",
						"kind": "variable",
						"source_line": 57,
						"type_signature": "\"⧈\""
					},
					{
						"name": "GLYPH_LIST",
						"kind": "variable",
						"source_line": 59,
						"type_signature": "\"▤\""
					},
					{
						"name": "GLYPH_DIRECTORY",
						"kind": "variable",
						"source_line": 60,
						"type_signature": "\"▦\""
					},
					{
						"name": "GLYPH_CREATE_FILE",
						"kind": "variable",
						"source_line": 61,
						"type_signature": "\"🗎\""
					},
					{
						"name": "GLYPH_CREATE_FOLDER",
						"kind": "variable",
						"source_line": 62,
						"type_signature": "\"🗁\""
					},
					{
						"name": "GLYPH_PROMPT",
						"kind": "variable",
						"source_line": 63,
						"type_signature": "\"⌇\""
					},
					{
						"name": "GLYPH_PART",
						"kind": "variable",
						"source_line": 65,
						"type_signature": "\"┊\""
					},
					{
						"name": "GLYPH_PROVIDER",
						"kind": "variable",
						"source_line": 66,
						"type_signature": "\"⨕\""
					},
					{
						"name": "GLYPH_MODEL",
						"kind": "variable",
						"source_line": 67,
						"type_signature": "\"⊛\""
					},
					{
						"name": "GLYPH_ACTION",
						"kind": "variable",
						"source_line": 68,
						"type_signature": "\"⍾\""
					},
					{
						"name": "GLYPH_VIEW",
						"kind": "variable",
						"source_line": 69,
						"type_signature": "\"⍜\""
					},
					{
						"name": "GLYPH_PREVIEW",
						"kind": "variable",
						"source_line": 70,
						"type_signature": "\"⦾\""
					},
					{
						"name": "GLYPH_LOG",
						"kind": "variable",
						"source_line": 71,
						"type_signature": "\"⎙\""
					},
					{
						"name": "GLYPH_TAB",
						"kind": "variable",
						"source_line": 72,
						"type_signature": "\"⛶\""
					},
					{
						"name": "GLYPH_PROJECT",
						"kind": "variable",
						"source_line": 73,
						"type_signature": "\"⌬\""
					},
					{
						"name": "GLYPH_CAPABILITY",
						"kind": "variable",
						"source_line": 74,
						"type_signature": "\"⧰\""
					},
					{
						"name": "GLYPH_SETTINGS",
						"kind": "variable",
						"source_line": 75,
						"type_signature": "\"⛮\""
					},
					{
						"name": "GLYPH_DOMAIN",
						"kind": "variable",
						"source_line": 76,
						"type_signature": "\"⟡\""
					},
					{
						"name": "GLYPH_PAGE",
						"kind": "variable",
						"source_line": 77,
						"type_signature": "\"⌺\""
					},
					{
						"name": "GLYPH_IDEA",
						"kind": "variable",
						"source_line": 79,
						"type_signature": "\"⌆\""
					},
					{
						"name": "GLYPH_PING",
						"kind": "variable",
						"source_line": 81,
						"type_signature": "\"⥀\""
					},
					{
						"name": "GLYPH_HEARTBEAT",
						"kind": "variable",
						"source_line": 82,
						"type_signature": "\"∽\""
					},
					{
						"name": "GLYPH_RESPONSE",
						"kind": "variable",
						"source_line": 83,
						"type_signature": "\"⮑\""
					},
					{
						"name": "GLYPH_SESSION",
						"kind": "variable",
						"source_line": 84,
						"type_signature": "\"⏣\""
					},
					{
						"name": "GLYPH_ACTION_TYPE_LOCAL_CALL",
						"kind": "variable",
						"source_line": 86,
						"type_signature": "\"⤳\""
					},
					{
						"name": "GLYPH_ACTION_TYPE_REMOTE_NOTIFICATION",
						"kind": "variable",
						"source_line": 87,
						"type_signature": "\"⥙\""
					},
					{
						"name": "GLYPH_ACTION_TYPE_REQUEST_RESPONSE",
						"kind": "variable",
						"source_line": 88,
						"type_signature": "\"⥮\""
					},
					{
						"name": "GLYPH_EXTERNAL_LINK",
						"kind": "variable",
						"source_line": 90,
						"type_signature": "\"🡵\""
					},
					{
						"name": "GLYPH_ARROW_RIGHT",
						"kind": "variable",
						"source_line": 92,
						"type_signature": "\"→\""
					},
					{
						"name": "GLYPH_ARROW_LEFT",
						"kind": "variable",
						"source_line": 93,
						"type_signature": "\"←\""
					},
					{
						"name": "get_glyph_for_action_method",
						"kind": "function",
						"source_line": 95,
						"type_signature": "(method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "method",
								"type": "\"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\""
							}
						]
					},
					{
						"name": "get_glyph_for_action_kind",
						"kind": "function",
						"source_line": 112,
						"type_signature": "(kind: \"request_response\" | \"remote_notification\" | \"local_call\"): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "kind",
								"type": "\"request_response\" | \"remote_notification\" | \"local_call\""
							}
						]
					}
				],
				"dependents": [
					"ActionContextmenu.svelte",
					"ActionDetail.svelte",
					"ActionListitem.svelte",
					"CapabilitiesView.svelte",
					"CapabilityBackend.svelte",
					"CapabilityProviderApi.svelte",
					"CapabilityProviderOllama.svelte",
					"CapabilityWebsocket.svelte",
					"ChatContextmenu.svelte",
					"ChatListitem.svelte",
					"ChatThread.svelte",
					"ChatView.svelte",
					"ChatViewMulti.svelte",
					"ChatsContextmenu.svelte",
					"ClearRestoreButton.svelte",
					"ConfirmButton.svelte",
					"ContentEditor.svelte",
					"ContextmenuEntryCopyToClipboard.svelte",
					"ContextmenuEntryToggle.svelte",
					"Dashboard.svelte",
					"DashboardActions.svelte",
					"DashboardCapabilities.svelte",
					"DashboardChats.svelte",
					"DashboardHome.svelte",
					"DashboardModels.svelte",
					"DashboardPrompts.svelte",
					"DashboardProviders.svelte",
					"DashboardSettings.svelte",
					"DiskfileActions.svelte",
					"DiskfileContextmenu.svelte",
					"DiskfileEditorNav.svelte",
					"DiskfileEditorView.svelte",
					"DiskfileExplorer.svelte",
					"DiskfileInfo.svelte",
					"DiskfileListitem.svelte",
					"DiskfileMetrics.svelte",
					"DiskfileTabListitem.svelte",
					"ErrorMessageInline.svelte",
					"ExternalLinkIcon.svelte",
					"ModelContextmenu.svelte",
					"ModelDetail.svelte",
					"ModelLink.svelte",
					"ModelSummary.svelte",
					"OllamaActionItem.svelte",
					"OllamaActions.svelte",
					"OllamaConfigure.svelte",
					"OllamaCopyModel.svelte",
					"OllamaCreateModel.svelte",
					"OllamaManager.svelte",
					"OllamaModelDetail.svelte",
					"OllamaPsStatus.svelte",
					"OllamaPullModel.svelte",
					"PartContextmenu.svelte",
					"PartEditorForDiskfile.svelte",
					"PartRemoveButton.svelte",
					"PingForm.svelte",
					"PromptContextmenu.svelte",
					"PromptListitem.svelte",
					"ProviderDetail.svelte",
					"ProviderLink.svelte",
					"SocketMessageQueue.svelte",
					"ThreadContextmenu.svelte",
					"ThreadListitem.svelte",
					"TurnContextmenu.svelte",
					"XmlAttributeEditor.svelte",
					"XmlTagControls.svelte",
					"nav.ts",
					"part_helpers.ts"
				]
			},
			{
				"path": "helpers.ts",
				"declarations": [
					{
						"name": "DURATION_LG",
						"kind": "variable",
						"source_line": 4,
						"type_signature": "1000"
					},
					{
						"name": "DURATION_SM",
						"kind": "variable",
						"source_line": 5,
						"type_signature": "180"
					},
					{
						"name": "ESTIMATED_CHARS_PER_TOKEN",
						"kind": "variable",
						"source_line": 10,
						"type_signature": "3"
					},
					{
						"name": "estimate_token_count",
						"kind": "function",
						"doc_comment": "Quick and dirty token count estimate using `ESTIMATED_CHARS_PER_TOKEN`.\nReal tokenizers are heavy and of little benefit for our cases right now,\nespecially because each LLM may tokenize differently.",
						"source_line": 17,
						"type_signature": "(text: string): number",
						"return_type": "number",
						"parameters": [
							{
								"name": "text",
								"type": "string"
							}
						]
					},
					{
						"name": "create_client_id",
						"kind": "function",
						"doc_comment": "Creates an id suitable for insecure use on a single client, like for element ids.",
						"source_line": 21,
						"type_signature": "(): string",
						"return_type": "string",
						"parameters": []
					},
					{
						"name": "get_unique_name",
						"kind": "function",
						"source_line": 23,
						"type_signature": "(name: string, existing_names: { has: (name: string) => boolean; } | { includes: (name: string) => boolean; }): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "name",
								"type": "string"
							},
							{
								"name": "existing_names",
								"type": "{ has: (name: string) => boolean; } | { includes: (name: string) => boolean; }"
							}
						]
					},
					{
						"name": "defined",
						"kind": "function",
						"source_line": 38,
						"type_signature": "<T>(value: T | undefined): T",
						"return_type": "T",
						"parameters": [
							{
								"name": "value",
								"type": "T | undefined"
							}
						]
					},
					{
						"name": "to_preview",
						"kind": "function",
						"source_line": 45,
						"type_signature": "(content: string | null | undefined, max_length?: number): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "content",
								"type": "string | null | undefined"
							},
							{
								"name": "max_length",
								"type": "number",
								"default_value": "CONTENT_PREVIEW_LENGTH"
							}
						]
					}
				],
				"dependencies": [
					"constants.ts"
				],
				"dependents": [
					"ChatThread.svelte",
					"ContentEditor.svelte",
					"ContextmenuEntryCopyToClipboard.svelte",
					"DashboardPrompts.svelte",
					"SocketMessageQueue.svelte",
					"TutorialForChats.svelte",
					"TutorialForDatabase.svelte",
					"TutorialForDiskfiles.svelte",
					"TutorialForPrompts.svelte",
					"chat.svelte.ts",
					"chats.svelte.ts",
					"diskfile.svelte.ts",
					"diskfile_editor_state.svelte.ts",
					"part.svelte.ts",
					"parts.svelte.ts",
					"popover.svelte.ts",
					"prompt.svelte.ts",
					"prompts.svelte.ts",
					"reorderable.svelte.ts",
					"thread.svelte.ts",
					"turn.svelte.ts"
				]
			},
			{
				"path": "indexed_collection_helpers.svelte.ts",
				"declarations": [
					{
						"name": "IndexedItem",
						"kind": "type",
						"doc_comment": "Interface for objects that can be stored in an `IndexedCollection`.",
						"source_line": 16,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; }, $strict>"
					},
					{
						"name": "IndexOptions",
						"kind": "type",
						"doc_comment": "Common options interface for all index types.",
						"source_line": 27,
						"type_signature": "IndexOptions<T, TQuery>",
						"generic_params": [
							{
								"name": "T",
								"constraint": "IndexedItem"
							},
							{
								"name": "TQuery",
								"default_type": "any"
							}
						],
						"properties": [
							{
								"name": "key",
								"kind": "variable",
								"type_signature": "string",
								"doc_comment": "Unique key for this index."
							},
							{
								"name": "matches",
								"kind": "variable",
								"type_signature": "(item: T) => boolean",
								"doc_comment": "Optional predicate to determine if an item is relevant to this index."
							},
							{
								"name": "query_schema",
								"kind": "variable",
								"type_signature": "z.ZodType<TQuery>",
								"doc_comment": "Schema for query input validation and typing."
							}
						]
					},
					{
						"name": "SingleIndexOptions",
						"kind": "type",
						"doc_comment": "Options for single-value indexes.",
						"source_line": 41,
						"type_signature": "SingleIndexOptions<T, K>",
						"generic_params": [
							{
								"name": "T",
								"constraint": "IndexedItem"
							},
							{
								"name": "K"
							}
						],
						"extends": [
							"IndexOptions<T, K>"
						],
						"properties": [
							{
								"name": "extractor",
								"kind": "variable",
								"type_signature": "(item: T) => K",
								"doc_comment": "Function that extracts the key from an item."
							}
						]
					},
					{
						"name": "create_single_index",
						"kind": "function",
						"doc_comment": "Create a single-value index (one key maps to one item).",
						"source_line": 49,
						"type_signature": "<T extends IndexedItem, K>(options: SingleIndexOptions<T, K>): IndexDefinition<T, SvelteMap<K, T>, K>",
						"return_type": "IndexDefinition<T, SvelteMap<K, T>, K>",
						"parameters": [
							{
								"name": "options",
								"type": "SingleIndexOptions<T, K>"
							}
						]
					},
					{
						"name": "MultiIndexOptions",
						"kind": "type",
						"doc_comment": "Options for multi-value indexes.",
						"source_line": 117,
						"type_signature": "MultiIndexOptions<T, K>",
						"generic_params": [
							{
								"name": "T",
								"constraint": "IndexedItem"
							},
							{
								"name": "K"
							}
						],
						"extends": [
							"IndexOptions<T, K>"
						],
						"properties": [
							{
								"name": "extractor",
								"kind": "variable",
								"type_signature": "(item: T) => K | Array<K> | undefined",
								"doc_comment": "Function that extracts the key(s) from an item."
							},
							{
								"name": "sort",
								"kind": "variable",
								"type_signature": "(a: T, b: T) => number",
								"doc_comment": "Optional sort function for items in each bucket."
							}
						]
					},
					{
						"name": "create_multi_index",
						"kind": "function",
						"doc_comment": "Create a multi-value index (one key maps to many items).",
						"source_line": 128,
						"type_signature": "<T extends IndexedItem, K>(options: MultiIndexOptions<T, K>): IndexDefinition<T, SvelteMap<K, T[]>, K>",
						"return_type": "IndexDefinition<T, SvelteMap<K, T[]>, K>",
						"parameters": [
							{
								"name": "options",
								"type": "MultiIndexOptions<T, K>"
							}
						]
					},
					{
						"name": "DerivedIndexOptions",
						"kind": "type",
						"doc_comment": "Options for derived indexes.",
						"source_line": 195,
						"type_signature": "DerivedIndexOptions<T, TResult>",
						"generic_params": [
							{
								"name": "T",
								"constraint": "IndexedItem"
							},
							{
								"name": "TResult",
								"constraint": "Array<T>",
								"default_type": "Array<T>"
							}
						],
						"extends": [
							"IndexOptions<T, void>"
						],
						"properties": [
							{
								"name": "compute",
								"kind": "variable",
								"type_signature": "(collection: IndexedCollection<T>) => TResult",
								"doc_comment": "Function that computes the derived collection from the full collection."
							},
							{
								"name": "sort",
								"kind": "variable",
								"type_signature": "(a: T, b: T) => number",
								"doc_comment": "Optional sort function for the derived array."
							},
							{
								"name": "onadd",
								"kind": "variable",
								"type_signature": "(items: TResult, item: T, collection: IndexedCollection<T>) => TResult",
								"doc_comment": "Optional custom add handler."
							},
							{
								"name": "onremove",
								"kind": "variable",
								"type_signature": "(items: TResult, item: T, collection: IndexedCollection<T>) => TResult",
								"doc_comment": "Optional custom remove handler."
							}
						]
					},
					{
						"name": "create_derived_index",
						"kind": "function",
						"doc_comment": "Creates an incremental derived collection index.",
						"source_line": 215,
						"type_signature": "<T extends IndexedItem, TResult extends Array<T> = T[]>(options: DerivedIndexOptions<T, TResult>): IndexDefinition<T, TResult, void>",
						"return_type": "IndexDefinition<T, TResult, void>",
						"parameters": [
							{
								"name": "options",
								"type": "DerivedIndexOptions<T, TResult>"
							}
						]
					},
					{
						"name": "DynamicIndexOptions",
						"kind": "type",
						"doc_comment": "Options for dynamic indexes.",
						"source_line": 266,
						"type_signature": "DynamicIndexOptions<T, F>",
						"generic_params": [
							{
								"name": "T",
								"constraint": "IndexedItem"
							},
							{
								"name": "F",
								"constraint": "(...args: Array<any>) => any"
							}
						],
						"extends": [
							"IndexOptions<T, Parameters<F>[0]>"
						],
						"properties": [
							{
								"name": "factory",
								"kind": "variable",
								"type_signature": "(collection: IndexedCollection<T>) => F",
								"doc_comment": "Function that creates a query function from the collection."
							},
							{
								"name": "onadd",
								"kind": "variable",
								"type_signature": "(fn: F, item: T, collection: IndexedCollection<T>) => F",
								"doc_comment": "Optional custom add handler."
							},
							{
								"name": "onremove",
								"kind": "variable",
								"type_signature": "(fn: F, item: T, collection: IndexedCollection<T>) => F",
								"doc_comment": "Optional custom remove handler."
							}
						]
					},
					{
						"name": "create_dynamic_index",
						"kind": "function",
						"doc_comment": "Create a dynamic index that computes results on-demand based on query parameters.",
						"source_line": 283,
						"type_signature": "<T extends IndexedItem, F extends (...args: Array<any>) => any>(options: DynamicIndexOptions<T, F>): IndexDefinition<T, F, Parameters<F>[0]>",
						"return_type": "IndexDefinition<T, F, Parameters<F>[0]>",
						"parameters": [
							{
								"name": "options",
								"type": "DynamicIndexOptions<T, F>"
							}
						]
					}
				],
				"dependencies": [
					"zod_helpers.ts"
				],
				"dependents": [
					"actions.svelte.ts",
					"chats.svelte.ts",
					"diskfiles.svelte.ts",
					"models.svelte.ts",
					"parts.svelte.ts",
					"prompts.svelte.ts",
					"threads.svelte.ts"
				]
			},
			{
				"path": "indexed_collection.svelte.ts",
				"declarations": [
					{
						"name": "IndexType",
						"kind": "type",
						"doc_comment": "String literals for index types.",
						"source_line": 18,
						"type_signature": "IndexType"
					},
					{
						"name": "IndexDefinition",
						"kind": "type",
						"doc_comment": "Generic index definition with full flexibility.",
						"source_line": 23,
						"type_signature": "IndexDefinition<T, TResult, TQuery>",
						"generic_params": [
							{
								"name": "T",
								"constraint": "IndexedItem"
							},
							{
								"name": "TResult",
								"default_type": "any"
							},
							{
								"name": "TQuery",
								"default_type": "any"
							}
						],
						"properties": [
							{
								"name": "key",
								"kind": "variable",
								"type_signature": "string",
								"doc_comment": "Unique identifier for this index."
							},
							{
								"name": "type",
								"kind": "variable",
								"type_signature": "IndexType",
								"doc_comment": "Optional index type for simpler creation."
							},
							{
								"name": "extractor",
								"kind": "variable",
								"type_signature": "(item: T) => any",
								"doc_comment": "Optional extractor function for single/multi indexes."
							},
							{
								"name": "compute",
								"kind": "variable",
								"type_signature": "(collection: IndexedCollection<T>) => TResult",
								"doc_comment": "Function to compute the index value from scratch."
							},
							{
								"name": "query_schema",
								"kind": "variable",
								"type_signature": "z.ZodType<TQuery>",
								"doc_comment": "Schema for validating query parameters."
							},
							{
								"name": "matches",
								"kind": "variable",
								"type_signature": "(item: T) => boolean",
								"doc_comment": "Optional predicate to determine if an item is relevant to this index."
							},
							{
								"name": "onadd",
								"kind": "variable",
								"type_signature": "(result: TResult, item: T, collection: IndexedCollection<T>) => TResult",
								"doc_comment": "Optional function to update the index when an item is added."
							},
							{
								"name": "onremove",
								"kind": "variable",
								"type_signature": "(result: TResult, item: T, collection: IndexedCollection<T>) => TResult",
								"doc_comment": "Optional function to update the index when an item is removed."
							}
						]
					},
					{
						"name": "IndexedCollectionOptions",
						"kind": "type",
						"source_line": 51,
						"type_signature": "IndexedCollectionOptions<T, TKeySingle, TKeyMulti, TKeyDerived, TKeyDynamic>",
						"generic_params": [
							{
								"name": "T",
								"constraint": "IndexedItem"
							},
							{
								"name": "TKeySingle",
								"constraint": "string",
								"default_type": "string"
							},
							{
								"name": "TKeyMulti",
								"constraint": "string",
								"default_type": "string"
							},
							{
								"name": "TKeyDerived",
								"constraint": "string",
								"default_type": "string"
							},
							{
								"name": "TKeyDynamic",
								"constraint": "string",
								"default_type": "string"
							}
						],
						"properties": [
							{
								"name": "indexes",
								"kind": "variable",
								"type_signature": "Array<IndexDefinition<T>>"
							},
							{
								"name": "initial_items",
								"kind": "variable",
								"type_signature": "Array<T>"
							},
							{
								"name": "validate",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "index_types",
								"kind": "variable",
								"type_signature": "{\n\t\tsingle?: Array<TKeySingle>;\n\t\tmulti?: Array<TKeyMulti>;\n\t\tderived?: Array<TKeyDerived>;\n\t\tdynamic?: Array<TKeyDynamic>;\n\t}"
							}
						]
					},
					{
						"name": "IndexedCollection",
						"kind": "class",
						"doc_comment": "A helper class for managing collections with incremental updates,\nefficient querying, and automatic index maintenance.",
						"source_line": 79,
						"generic_params": [
							{
								"name": "T",
								"constraint": "IndexedItem"
							},
							{
								"name": "TKeySingle",
								"constraint": "string",
								"default_type": "string"
							},
							{
								"name": "TKeyMulti",
								"constraint": "string",
								"default_type": "string"
							},
							{
								"name": "TKeyDerived",
								"constraint": "string",
								"default_type": "string"
							},
							{
								"name": "TKeyDynamic",
								"constraint": "string",
								"default_type": "string"
							}
						],
						"members": [
							{
								"name": "by_id",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "The main source of truth, the full collection keyed by `Uuid`.",
								"type_signature": "SvelteMap<Uuid, T>"
							},
							{
								"name": "values",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<T>"
							},
							{
								"name": "keys",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<Uuid>"
							},
							{
								"name": "size",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Get the current count of items.",
								"type_signature": "number"
							},
							{
								"name": "indexes",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Stores all index values in a reactive object.",
								"type_signature": "Record<string, any>"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "<T extends IndexedItem, TKeySingle extends string = string, TKeyMulti extends string = string, TKeyDerived extends string = string, TKeyDynamic extends string = string>(options?: IndexedCollectionOptions<T, TKeySingle, TKeyMulti, TKeyDerived, TKeyDynamic> | undefined): IndexedCollection<...>",
								"parameters": [
									{
										"name": "options",
										"type": "IndexedCollectionOptions<T, TKeySingle, TKeyMulti, TKeyDerived, TKeyDynamic> | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "toJSON",
								"kind": "function",
								"type_signature": "(): readonly any[]",
								"return_type": "readonly any[]",
								"parameters": []
							},
							{
								"name": "get_index",
								"kind": "function",
								"doc_comment": "Get a typed index value by key.",
								"type_signature": "<TResult = any>(key: TKeySingle | TKeyMulti | TKeyDerived | TKeyDynamic): TResult",
								"return_type": "TResult",
								"parameters": [
									{
										"name": "key",
										"type": "TKeySingle | TKeyMulti | TKeyDerived | TKeyDynamic"
									}
								]
							},
							{
								"name": "single_index",
								"kind": "function",
								"doc_comment": "Get a single-value index with proper typing.",
								"type_signature": "(key: TKeySingle): SvelteMap<any, T>",
								"return_type": "SvelteMap<any, T>",
								"parameters": [
									{
										"name": "key",
										"type": "TKeySingle"
									}
								]
							},
							{
								"name": "multi_index",
								"kind": "function",
								"doc_comment": "Get a multi-value index with proper typing.",
								"type_signature": "(key: TKeyMulti): SvelteMap<any, T[]>",
								"return_type": "SvelteMap<any, T[]>",
								"parameters": [
									{
										"name": "key",
										"type": "TKeyMulti"
									}
								]
							},
							{
								"name": "derived_index",
								"kind": "function",
								"doc_comment": "Get a derived index with proper typing.",
								"type_signature": "(key: TKeyDerived): T[]",
								"return_type": "T[]",
								"parameters": [
									{
										"name": "key",
										"type": "TKeyDerived"
									}
								]
							},
							{
								"name": "dynamic_index",
								"kind": "function",
								"doc_comment": "Get a dynamic (function) index with proper typing.",
								"type_signature": "<Q = any>(key: TKeyDynamic): (query: Q) => T",
								"return_type": "(query: Q) => T",
								"parameters": [
									{
										"name": "key",
										"type": "TKeyDynamic"
									}
								]
							},
							{
								"name": "query",
								"kind": "function",
								"doc_comment": "Query an index with parameters.\n\nThis method is type-aware when the index has a `query_schema` that defines TQuery.",
								"type_signature": "<TResult = any, TQuery = any>(key: TKeySingle | TKeyMulti | TKeyDerived | TKeyDynamic, query: TQuery): TResult",
								"return_type": "TResult",
								"parameters": [
									{
										"name": "key",
										"type": "TKeySingle | TKeyMulti | TKeyDerived | TKeyDynamic"
									},
									{
										"name": "query",
										"type": "TQuery"
									}
								]
							},
							{
								"name": "add",
								"kind": "function",
								"doc_comment": "Add an item to the collection and update all indexes.",
								"type_signature": "(item: T): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "item",
										"type": "T"
									}
								]
							},
							{
								"name": "add_many",
								"kind": "function",
								"doc_comment": "Add multiple items to the collection at once with improved performance.",
								"type_signature": "(items: T[]): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "items",
										"type": "T[]"
									}
								]
							},
							{
								"name": "remove",
								"kind": "function",
								"doc_comment": "Remove an item by its id and update all indexes.",
								"type_signature": "(id: string & $brand<\"Uuid\">): boolean",
								"return_type": "boolean",
								"parameters": [
									{
										"name": "id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "remove_many",
								"kind": "function",
								"doc_comment": "Remove multiple items efficiently.",
								"type_signature": "(ids: (string & $brand<\"Uuid\">)[]): number",
								"return_type": "number",
								"parameters": [
									{
										"name": "ids",
										"type": "(string & $brand<\"Uuid\">)[]"
									}
								]
							},
							{
								"name": "get",
								"kind": "function",
								"doc_comment": "Get an item by its id.",
								"type_signature": "(id: string & $brand<\"Uuid\">): T | undefined",
								"return_type": "T | undefined",
								"parameters": [
									{
										"name": "id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "has",
								"kind": "function",
								"doc_comment": "Check if the collection has an item with the given id.",
								"type_signature": "(id: string & $brand<\"Uuid\">): boolean",
								"return_type": "boolean",
								"parameters": [
									{
										"name": "id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "clear",
								"kind": "function",
								"doc_comment": "Clear all items and reset indexes.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "where",
								"kind": "function",
								"doc_comment": "Get all items matching a multi-indexed property value.\nType-safe version that uses the TKeyMulti generic parameter.",
								"type_signature": "<V = any>(index_key: TKeyMulti, value: V): T[]",
								"return_type": "T[]",
								"parameters": [
									{
										"name": "index_key",
										"type": "TKeyMulti"
									},
									{
										"name": "value",
										"type": "V"
									}
								]
							},
							{
								"name": "first",
								"kind": "function",
								"doc_comment": "Get the first N items matching a multi-indexed property value.\nType-safe version that uses the TKeyMulti generic parameter.",
								"type_signature": "<V = any>(index_key: TKeyMulti, value: V, limit: number): T[]",
								"return_type": "T[]",
								"parameters": [
									{
										"name": "index_key",
										"type": "TKeyMulti"
									},
									{
										"name": "value",
										"type": "V"
									},
									{
										"name": "limit",
										"type": "number"
									}
								]
							},
							{
								"name": "latest",
								"kind": "function",
								"doc_comment": "Get the latest N items matching a multi-indexed property value.\nType-safe version that uses the TKeyMulti generic parameter.",
								"type_signature": "<V = any>(index_key: TKeyMulti, value: V, limit: number): T[]",
								"return_type": "T[]",
								"parameters": [
									{
										"name": "index_key",
										"type": "TKeyMulti"
									},
									{
										"name": "value",
										"type": "V"
									},
									{
										"name": "limit",
										"type": "number"
									}
								]
							},
							{
								"name": "by",
								"kind": "function",
								"doc_comment": "Get an item by a single-value index.\nReturns the item or throws if no item is found.\nType-safe version that uses the TKeySingle generic parameter.",
								"type_signature": "<V = any>(index_key: TKeySingle, value: V): T",
								"return_type": "T",
								"parameters": [
									{
										"name": "index_key",
										"type": "TKeySingle"
									},
									{
										"name": "value",
										"type": "V"
									}
								]
							},
							{
								"name": "by_optional",
								"kind": "function",
								"doc_comment": "Get an item by a single-value index, returning undefined if not found.\nType-safe version that uses the TKeySingle generic parameter.",
								"type_signature": "<V = any>(index_key: TKeySingle, value: V): T | undefined",
								"return_type": "T | undefined",
								"parameters": [
									{
										"name": "index_key",
										"type": "TKeySingle"
									},
									{
										"name": "value",
										"type": "V"
									}
								]
							}
						]
					}
				],
				"dependencies": [
					"zod_helpers.ts"
				],
				"dependents": [
					"actions.svelte.ts",
					"chats.svelte.ts",
					"diskfile_tabs.svelte.ts",
					"diskfiles.svelte.ts",
					"models.svelte.ts",
					"parts.svelte.ts",
					"prompts.svelte.ts",
					"thread.svelte.ts",
					"threads.svelte.ts"
				]
			},
			{
				"path": "iterable_helpers.ts",
				"declarations": [
					{
						"name": "create_map_by_property",
						"kind": "function",
						"doc_comment": "Creates a Map from an iterable, keyed by a specified property.",
						"source_line": 6,
						"type_signature": "<T, K extends keyof T>(items: Iterable<T>, property: K): Map<T[K], T>",
						"return_type": "Map<T[K], T>",
						"parameters": [
							{
								"name": "items",
								"type": "Iterable<T>"
							},
							{
								"name": "property",
								"type": "K"
							}
						]
					}
				],
				"dependents": [
					"diskfile_tabs.svelte.ts",
					"ollama.svelte.ts"
				]
			},
			{
				"path": "jsonrpc_errors.ts",
				"declarations": [
					{
						"name": "JsonrpcErrorName",
						"kind": "type",
						"doc_comment": "Includes standard JSON-RPC error codes and application-specific errors.",
						"source_line": 22,
						"type_signature": "JsonrpcErrorName"
					},
					{
						"name": "JSONRPC_ERROR_CODES",
						"kind": "variable",
						"doc_comment": "Extended JSON-RPC error codes with application-specific errors.",
						"source_line": 42,
						"type_signature": "{ readonly parse_error: -32700; readonly invalid_request: -32600; readonly method_not_found: -32601; readonly invalid_params: -32602; readonly internal_error: -32603; readonly unauthenticated: -32700 | ... 4 more ... | (number & $brand<...>); ... 7 more ...; readonly ai_provider_error: -32700 | ... 4 more ... | (num..."
					},
					{
						"name": "jsonrpc_error_messages",
						"kind": "variable",
						"source_line": 98,
						"type_signature": "{ readonly parse_error: (data?: unknown) => { [x: string]: unknown; code: -32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<\"JsonrpcServerErrorCode\">); message: string; data?: unknown; }; readonly invalid_request: (data?: unknown) => { ...; }; ... 11 more ...; readonly ai_provider_error: (provider?: stri..."
					},
					{
						"name": "ThrownJsonrpcError",
						"kind": "class",
						"doc_comment": "Custom error class for JSON-RPC errors.",
						"source_line": 207,
						"extends": [
							"Error"
						],
						"implements": [],
						"members": [
							{
								"name": "code",
								"kind": "variable",
								"type_signature": "JsonrpcErrorCode"
							},
							{
								"name": "data",
								"kind": "variable",
								"type_signature": "unknown"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(code: -32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<\"JsonrpcServerErrorCode\">), message: string, data?: unknown, options?: ErrorOptions | undefined): ThrownJsonrpcError",
								"parameters": [
									{
										"name": "code",
										"type": "-32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<\"JsonrpcServerErrorCode\">)"
									},
									{
										"name": "message",
										"type": "string"
									},
									{
										"name": "data",
										"type": "unknown",
										"optional": true
									},
									{
										"name": "options",
										"type": "ErrorOptions | undefined",
										"optional": true
									}
								]
							}
						]
					},
					{
						"name": "jsonrpc_errors",
						"kind": "variable",
						"source_line": 227,
						"type_signature": "{ readonly parse_error: (data?: unknown) => ThrownJsonrpcError; readonly invalid_request: (data?: unknown) => ThrownJsonrpcError; readonly method_not_found: (method?: string | undefined, data?: unknown) => ThrownJsonrpcError; ... 10 more ...; readonly ai_provider_error: (provider?: string | undefined, message?: stri..."
					}
				],
				"dependencies": [
					"jsonrpc.ts"
				],
				"dependents": [
					"action_event.ts",
					"action_peer.ts",
					"frontend_http_transport.ts",
					"frontend_websocket_transport.ts",
					"jsonrpc_helpers.ts",
					"request_tracker.svelte.ts",
					"server/backend.ts",
					"server/backend_action_handlers.ts",
					"server/backend_provider.ts",
					"server/backend_websocket_transport.ts",
					"server/register_http_actions.ts",
					"server/register_websocket_actions.ts"
				]
			},
			{
				"path": "jsonrpc_helpers.ts",
				"declarations": [
					{
						"name": "create_jsonrpc_request",
						"kind": "function",
						"source_line": 21,
						"type_signature": "(method: string, params: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined, id: string | number): { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { ...; } | undefined; }",
						"return_type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }",
						"parameters": [
							{
								"name": "method",
								"type": "string"
							},
							{
								"name": "params",
								"type": "{ [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined"
							},
							{
								"name": "id",
								"type": "string | number"
							}
						]
					},
					{
						"name": "create_jsonrpc_response",
						"kind": "function",
						"source_line": 38,
						"type_signature": "(id: string | number, result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }): { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; }",
						"return_type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; }",
						"parameters": [
							{
								"name": "id",
								"type": "string | number"
							},
							{
								"name": "result",
								"type": "{ [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }"
							}
						]
					},
					{
						"name": "create_jsonrpc_notification",
						"kind": "function",
						"source_line": 47,
						"type_signature": "(method: string, params: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; } | undefined): { [x: string]: unknown; jsonrpc: \"2.0\"; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; } | undefined; }",
						"return_type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; } | undefined; }",
						"parameters": [
							{
								"name": "method",
								"type": "string"
							},
							{
								"name": "params",
								"type": "{ [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; } | undefined"
							}
						]
					},
					{
						"name": "create_jsonrpc_error_message",
						"kind": "function",
						"source_line": 62,
						"type_signature": "(id: string | number | null, error: { [x: string]: unknown; code: -32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<\"JsonrpcServerErrorCode\">); message: string; data?: unknown; }): { ...; }",
						"return_type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<\"JsonrpcServerErrorCode\">); message: string; data?: unknown; }; }",
						"parameters": [
							{
								"name": "id",
								"type": "string | number | null"
							},
							{
								"name": "error",
								"type": "{ [x: string]: unknown; code: -32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<\"JsonrpcServerErrorCode\">); message: string; data?: unknown; }"
							}
						]
					},
					{
						"name": "create_jsonrpc_error_message_from_thrown",
						"kind": "function",
						"doc_comment": "Creates a JSON-RPC error response from any error.\nHandles `ThrownJsonrpcError` and regular Error objects.",
						"source_line": 75,
						"type_signature": "(id: string | number | null, error: any): { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<...>); message: string; data?: unknown; }; }",
						"return_type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<\"JsonrpcServerErrorCode\">); message: string; data?: unknown; }; }",
						"parameters": [
							{
								"name": "id",
								"type": "string | number | null"
							},
							{
								"name": "error",
								"type": "any"
							}
						]
					},
					{
						"name": "to_jsonrpc_message_id",
						"kind": "function",
						"source_line": 107,
						"type_signature": "(message_or_id: unknown): string | number | null",
						"return_type": "string | number | null",
						"parameters": [
							{
								"name": "message_or_id",
								"type": "unknown"
							}
						]
					},
					{
						"name": "is_jsonrpc_request_id",
						"kind": "function",
						"source_line": 117,
						"type_signature": "(id: unknown): id is string | number",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "id",
								"type": "unknown"
							}
						]
					},
					{
						"name": "is_jsonrpc_object",
						"kind": "function",
						"source_line": 122,
						"type_signature": "(message: unknown): message is { jsonrpc: \"2.0\"; }",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "message",
								"type": "unknown"
							}
						]
					},
					{
						"name": "is_jsonrpc_message",
						"kind": "function",
						"source_line": 128,
						"type_signature": "(message: unknown): message is { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; } | { ...; } | { ...; } | { ...; }",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "message",
								"type": "unknown"
							}
						]
					},
					{
						"name": "is_jsonrpc_request",
						"kind": "function",
						"source_line": 133,
						"type_signature": "(message: unknown): message is { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "message",
								"type": "unknown"
							}
						]
					},
					{
						"name": "is_jsonrpc_notification",
						"kind": "function",
						"source_line": 136,
						"type_signature": "(message: unknown): message is { [x: string]: unknown; jsonrpc: \"2.0\"; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; } | undefined; }",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "message",
								"type": "unknown"
							}
						]
					},
					{
						"name": "is_jsonrpc_response",
						"kind": "function",
						"source_line": 139,
						"type_signature": "(message: unknown): message is { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; }",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "message",
								"type": "unknown"
							}
						]
					},
					{
						"name": "is_jsonrpc_error_message",
						"kind": "function",
						"source_line": 142,
						"type_signature": "(message: unknown): message is { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<\"JsonrpcServerErrorCode\">); message: string; data?: unknown; }; }",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "message",
								"type": "unknown"
							}
						]
					},
					{
						"name": "is_jsonrpc_singular_message",
						"kind": "function",
						"source_line": 145,
						"type_signature": "(message: unknown): message is { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; } | { ...; } | { ...; } | { ...; }",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "message",
								"type": "unknown"
							}
						]
					},
					{
						"name": "to_jsonrpc_params",
						"kind": "function",
						"doc_comment": "Normalizes input to JSON-RPC params format.\nReturns undefined for null/undefined, wraps primitives in {value}.",
						"source_line": 152,
						"type_signature": "(input: unknown): Record<string, any> | undefined",
						"return_type": "Record<string, any> | undefined",
						"parameters": [
							{
								"name": "input",
								"type": "unknown"
							}
						]
					},
					{
						"name": "to_jsonrpc_result",
						"kind": "function",
						"doc_comment": "Normalizes output to JSON-RPC result format.\nReturns empty object for null/undefined, wraps primitives in {value}.",
						"source_line": 171,
						"type_signature": "(output: unknown): Record<string, any>",
						"return_type": "Record<string, any>",
						"parameters": [
							{
								"name": "output",
								"type": "unknown"
							}
						]
					},
					{
						"name": "JSONRPC_ERROR_CODE_TO_HTTP_STATUS",
						"kind": "variable",
						"doc_comment": "Maps JSON-RPC error codes to HTTP status codes.",
						"source_line": 205,
						"type_signature": "Record<-32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<\"JsonrpcServerErrorCode\">), number>"
					},
					{
						"name": "HTTP_STATUS_TO_JSONRPC_ERROR_CODE",
						"kind": "variable",
						"doc_comment": "Maps HTTP status codes to JSON-RPC error codes.",
						"source_line": 214,
						"type_signature": "Record<number, -32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<\"JsonrpcServerErrorCode\">)>"
					},
					{
						"name": "jsonrpc_error_code_to_http_status",
						"kind": "function",
						"source_line": 222,
						"type_signature": "(code: -32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<\"JsonrpcServerErrorCode\">)): number",
						"return_type": "number",
						"parameters": [
							{
								"name": "code",
								"type": "-32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<\"JsonrpcServerErrorCode\">)"
							}
						]
					},
					{
						"name": "http_status_to_jsonrpc_error_code",
						"kind": "function",
						"source_line": 226,
						"type_signature": "(status: number): -32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<\"JsonrpcServerErrorCode\">)",
						"return_type": "-32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<\"JsonrpcServerErrorCode\">)",
						"parameters": [
							{
								"name": "status",
								"type": "number"
							}
						]
					}
				],
				"dependencies": [
					"jsonrpc.ts",
					"jsonrpc_errors.ts"
				],
				"dependents": [
					"action_event.ts",
					"action_peer.ts",
					"frontend_http_transport.ts",
					"frontend_websocket_transport.ts",
					"server/backend_websocket_transport.ts",
					"server/register_http_actions.ts",
					"server/register_websocket_actions.ts"
				]
			},
			{
				"path": "jsonrpc.ts",
				"declarations": [
					{
						"name": "JSONRPC_VERSION",
						"kind": "variable",
						"source_line": 49,
						"type_signature": "\"2.0\""
					},
					{
						"name": "JSONRPC_LATEST_PROTOCOL_VERSION",
						"kind": "variable",
						"source_line": 50,
						"type_signature": "\"DRAFT-2025-v2\""
					},
					{
						"name": "JsonrpcRequestId",
						"kind": "type",
						"doc_comment": "A uniquely identifying id for a request in JSON-RPC.\n\nLike MCP but unlike JSON-RPC, the type excludes null.",
						"source_line": 57,
						"type_signature": "ZodUnion<readonly [ZodString, ZodNumber]>"
					},
					{
						"name": "JsonrpcMethod",
						"kind": "type",
						"doc_comment": "A JSON-RPC method name, a string with no constraints.",
						"source_line": 63,
						"type_signature": "ZodString"
					},
					{
						"name": "JsonrpcProgressToken",
						"kind": "type",
						"doc_comment": "A progress token, used to associate progress notifications with the original request.",
						"source_line": 69,
						"type_signature": "ZodUnion<readonly [ZodString, ZodNumber]>"
					},
					{
						"name": "JsonrpcMcpMeta",
						"kind": "type",
						"source_line": 72,
						"type_signature": "ZodObject<{}, $loose>"
					},
					{
						"name": "JsonrpcRequestParamsMeta",
						"kind": "type",
						"source_line": 75,
						"type_signature": "ZodObject<{ progressToken: ZodOptional<ZodUnion<readonly [ZodString, ZodNumber]>>; }, $loose>"
					},
					{
						"name": "JsonrpcRequestParams",
						"kind": "type",
						"source_line": 87,
						"type_signature": "ZodObject<{ _meta: ZodOptional<ZodObject<{ progressToken: ZodOptional<ZodUnion<readonly [ZodString, ZodNumber]>>; }, $loose>>; }, $loose>"
					},
					{
						"name": "JsonrpcNotificationParams",
						"kind": "type",
						"source_line": 92,
						"type_signature": "ZodObject<{ _meta: ZodOptional<ZodObject<{}, $loose>>; }, $loose>"
					},
					{
						"name": "JsonrpcParams",
						"kind": "type",
						"source_line": 101,
						"type_signature": "ZodUnion<readonly [ZodObject<{ _meta: ZodOptional<ZodObject<{ progressToken: ZodOptional<ZodUnion<readonly [ZodString, ZodNumber]>>; }, $loose>>; }, $loose>, ZodObject<...>]>"
					},
					{
						"name": "JsonrpcResult",
						"kind": "type",
						"source_line": 104,
						"type_signature": "ZodObject<{ _meta: ZodOptional<ZodObject<{}, $loose>>; }, $loose>"
					},
					{
						"name": "JsonrpcRequest",
						"kind": "type",
						"doc_comment": "A request that expects a response.",
						"source_line": 116,
						"type_signature": "ZodObject<{ jsonrpc: ZodLiteral<\"2.0\">; id: ZodUnion<readonly [ZodString, ZodNumber]>; method: ZodString; params: ZodOptional<ZodObject<{ _meta: ZodOptional<ZodObject<{ progressToken: ZodOptional<...>; }, $loose>>; }, $loose>>; }, $loose>"
					},
					{
						"name": "JsonrpcNotification",
						"kind": "type",
						"doc_comment": "A notification which does not expect a response.",
						"source_line": 127,
						"type_signature": "ZodObject<{ jsonrpc: ZodLiteral<\"2.0\">; method: ZodString; params: ZodOptional<ZodObject<{ _meta: ZodOptional<ZodObject<{}, $loose>>; }, $loose>>; }, $loose>"
					},
					{
						"name": "JsonrpcResponse",
						"kind": "type",
						"doc_comment": "A successful (non-error) response to a request.",
						"source_line": 137,
						"type_signature": "ZodObject<{ jsonrpc: ZodLiteral<\"2.0\">; id: ZodUnion<readonly [ZodString, ZodNumber]>; result: ZodObject<{ _meta: ZodOptional<ZodObject<{}, $loose>>; }, $loose>; }, $loose>"
					},
					{
						"name": "JSONRPC_PARSE_ERROR",
						"kind": "variable",
						"source_line": 146,
						"type_signature": "-32700"
					},
					{
						"name": "JSONRPC_INVALID_REQUEST",
						"kind": "variable",
						"source_line": 147,
						"type_signature": "-32600"
					},
					{
						"name": "JSONRPC_METHOD_NOT_FOUND",
						"kind": "variable",
						"source_line": 148,
						"type_signature": "-32601"
					},
					{
						"name": "JSONRPC_INVALID_PARAMS",
						"kind": "variable",
						"source_line": 149,
						"type_signature": "-32602"
					},
					{
						"name": "JSONRPC_INTERNAL_ERROR",
						"kind": "variable",
						"source_line": 150,
						"type_signature": "-32603"
					},
					{
						"name": "JSONRPC_SERVER_ERROR_START",
						"kind": "variable",
						"source_line": 151,
						"type_signature": "-32000"
					},
					{
						"name": "JSONRPC_SERVER_ERROR_END",
						"kind": "variable",
						"source_line": 152,
						"type_signature": "-32099"
					},
					{
						"name": "JsonrpcServerErrorCode",
						"kind": "type",
						"source_line": 155,
						"type_signature": "$ZodBranded<ZodNumber, \"JsonrpcServerErrorCode\", \"out\">"
					},
					{
						"name": "JsonrpcErrorCode",
						"kind": "type",
						"source_line": 162,
						"type_signature": "ZodUnion<readonly [ZodLiteral<-32700>, ZodLiteral<-32600>, ZodLiteral<-32601>, ZodLiteral<-32602>, ZodLiteral<-32603>, $ZodBranded<...>]>"
					},
					{
						"name": "JsonrpcErrorJson",
						"kind": "type",
						"source_line": 172,
						"type_signature": "ZodObject<{ code: ZodUnion<readonly [ZodLiteral<-32700>, ZodLiteral<-32600>, ZodLiteral<-32601>, ZodLiteral<-32602>, ZodLiteral<-32603>, $ZodBranded<...>]>; message: ZodString; data: ZodOptional<...>; }, $loose>"
					},
					{
						"name": "JsonrpcErrorMessage",
						"kind": "type",
						"doc_comment": "A response to a request that indicates an error occurred.",
						"source_line": 192,
						"type_signature": "ZodObject<{ jsonrpc: ZodLiteral<\"2.0\">; id: ZodNullable<ZodUnion<readonly [ZodString, ZodNumber]>>; error: ZodObject<{ code: ZodUnion<readonly [ZodLiteral<-32700>, ... 4 more ..., $ZodBranded<...>]>; message: ZodString; data: ZodOptional<...>; }, $loose>; }, $loose>"
					},
					{
						"name": "JsonrpcResponseOrError",
						"kind": "type",
						"doc_comment": "Convenience helper union.",
						"source_line": 202,
						"type_signature": "ZodUnion<readonly [ZodObject<{ jsonrpc: ZodLiteral<\"2.0\">; id: ZodUnion<readonly [ZodString, ZodNumber]>; result: ZodObject<{ _meta: ZodOptional<ZodObject<{}, $loose>>; }, $loose>; }, $loose>, ZodObject<...>]>"
					},
					{
						"name": "JsonrpcMessage",
						"kind": "type",
						"doc_comment": "Refers to any valid JSON-RPC object that can be decoded off the wire, or encoded to be sent.",
						"source_line": 208,
						"type_signature": "ZodUnion<readonly [ZodObject<{ jsonrpc: ZodLiteral<\"2.0\">; id: ZodUnion<readonly [ZodString, ZodNumber]>; method: ZodString; params: ZodOptional<ZodObject<{ _meta: ZodOptional<ZodObject<{ progressToken: ZodOptional<...>; }, $loose>>; }, $loose>>; }, $loose>, ZodObject<...>, ZodObject<...>, ZodObject<...>]>"
					},
					{
						"name": "JsonrpcMessageFromClientToServer",
						"kind": "type",
						"source_line": 219,
						"type_signature": "ZodUnion<readonly [ZodObject<{ jsonrpc: ZodLiteral<\"2.0\">; id: ZodUnion<readonly [ZodString, ZodNumber]>; method: ZodString; params: ZodOptional<ZodObject<{ _meta: ZodOptional<ZodObject<{ progressToken: ZodOptional<...>; }, $loose>>; }, $loose>>; }, $loose>, ZodObject<...>]>"
					},
					{
						"name": "JsonrpcMessageFromServerToClient",
						"kind": "type",
						"source_line": 227,
						"type_signature": "ZodUnion<readonly [ZodObject<{ jsonrpc: ZodLiteral<\"2.0\">; method: ZodString; params: ZodOptional<ZodObject<{ _meta: ZodOptional<ZodObject<{}, $loose>>; }, $loose>>; }, $loose>, ZodObject<...>, ZodObject<...>]>"
					},
					{
						"name": "JsonrpcSingularMessage",
						"kind": "type",
						"source_line": 236,
						"type_signature": "ZodUnion<readonly [ZodObject<{ jsonrpc: ZodLiteral<\"2.0\">; id: ZodUnion<readonly [ZodString, ZodNumber]>; method: ZodString; params: ZodOptional<ZodObject<{ _meta: ZodOptional<ZodObject<{ progressToken: ZodOptional<...>; }, $loose>>; }, $loose>>; }, $loose>, ZodObject<...>, ZodObject<...>, ZodObject<...>]>"
					}
				],
				"module_comment": "Following MCP, Zzz supports a subset of JSON-RPC 2.0 as its message format\n(A2A too, but I haven't looked into if they support the full spec).\nIt can be used by multiple transports including HTTP and WebSocket.\n\nThese are the JSON-RPC types from the MCP draft in May 2025,\nchanged to include a prefix on all identifiers.\nIt's also defined with Zod schemas instead of plain TS like the MCP library.\n\nMCP messages are a subset of JSON-RPC:\n\n- `params` does not support the positional array format,\n\t\tand `result` supports only `object` values, instead of being any JSON value.\n- MCP does not support batching,\n\t\tsee https://github.com/modelcontextprotocol/modelcontextprotocol/pull/416\n\t\tand https://github.com/modelcontextprotocol/modelcontextprotocol/pull/228\n\n@source https://github.com/modelcontextprotocol/typescript-sdk\n@see https://modelcontextprotocol.io/\n@license https://github.com/modelcontextprotocol/typescript-sdk/blob/main/LICENSE\n\nMIT License\n\nCopyright (c) 2024 Anthropic, PBC\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.",
				"dependents": [
					"action_event_data.ts",
					"action_peer.ts",
					"action_specs.ts",
					"action_types.ts",
					"jsonrpc_errors.ts",
					"jsonrpc_helpers.ts",
					"request_tracker.svelte.ts"
				]
			},
			{
				"path": "library.ts",
				"declarations": [
					{
						"name": "library_context",
						"kind": "variable",
						"source_line": 4,
						"type_signature": "{ get: (error_message?: string | undefined) => Library; get_maybe: () => Library | undefined; set: (value: Library) => Library; }"
					}
				],
				"dependents": [
					"CapabilitySystem.svelte",
					"Footer.svelte"
				]
			},
			{
				"path": "list_helpers.ts",
				"declarations": [
					{
						"name": "reorder_list",
						"kind": "function",
						"doc_comment": "Reorders an array, mutating it by moving an item from one index to another.",
						"source_line": 4,
						"type_signature": "(items: any[], from_index: number, to_index: number): void",
						"return_type": "void",
						"parameters": [
							{
								"name": "items",
								"type": "any[]"
							},
							{
								"name": "from_index",
								"type": "number"
							},
							{
								"name": "to_index",
								"type": "number"
							}
						]
					},
					{
						"name": "to_reordered_list",
						"kind": "function",
						"doc_comment": "Creates a new reordered array without modifying the original.",
						"source_line": 23,
						"type_signature": "<T>(items: T[], from_index: number, to_index: number): T[]",
						"return_type": "T[]",
						"parameters": [
							{
								"name": "items",
								"type": "T[]"
							},
							{
								"name": "from_index",
								"type": "number"
							},
							{
								"name": "to_index",
								"type": "number"
							}
						]
					}
				],
				"dependents": [
					"chat.svelte.ts",
					"chats.svelte.ts",
					"diskfile_tabs.svelte.ts",
					"prompt.svelte.ts",
					"prompts.svelte.ts",
					"threads.svelte.ts"
				]
			},
			{
				"path": "logos.ts",
				"declarations": [
					{
						"name": "logo_zzz",
						"kind": "variable",
						"source_line": 3,
						"type_signature": "{ label: string; fill: string; paths: { d: string; }[]; }"
					},
					{
						"name": "logo_chatgpt",
						"kind": "variable",
						"source_line": 19,
						"type_signature": "{ label: string; paths: { d: string; }[]; }"
					},
					{
						"name": "logo_claude",
						"kind": "variable",
						"source_line": 28,
						"type_signature": "{ label: string; fill: string; paths: { d: string; }[]; }"
					},
					{
						"name": "logo_gemini",
						"kind": "variable",
						"source_line": 38,
						"type_signature": "{ label: string; fill: string; raw: string; paths: { d: string; }[]; }"
					}
				],
				"dependents": [
					"CapabilitiesView.svelte",
					"Dashboard.svelte",
					"ExternalLink.svelte",
					"Footer.svelte",
					"MainDialog.svelte",
					"ProviderLogo.svelte",
					"nav.ts"
				]
			},
			{
				"path": "MainDialog.svelte",
				"declarations": [
					{
						"name": "MainDialog",
						"kind": "component",
						"props": [
							{
								"name": "disabled",
								"type": "boolean | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"frontend.svelte.ts",
					"logos.ts"
				],
				"dependents": [
					"FrontendRoot.svelte"
				]
			},
			{
				"path": "model.svelte.ts",
				"declarations": [
					{
						"name": "ModelName",
						"kind": "type",
						"source_line": 11,
						"type_signature": "ZodString"
					},
					{
						"name": "ModelJson",
						"kind": "type",
						"source_line": 14,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; ... 17 more ...; ollama_show_response_error: ZodOptional<...>; }, $strict>"
					},
					{
						"name": "ModelJsonInput",
						"kind": "type",
						"source_line": 45,
						"type_signature": "{ name: string; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; id?: string | undefined; created?: string | undefined; updated?: string | undefined; tags?: string[] | undefined; ... 13 more ...; ollama_show_response_error?: string | undefined; }"
					},
					{
						"name": "ModelOptions",
						"kind": "type",
						"source_line": 47,
						"type_signature": "ModelOptions",
						"extends": [
							"CellOptions<typeof ModelJson>"
						],
						"properties": []
					},
					{
						"name": "Model",
						"kind": "class",
						"source_line": 49,
						"extends": [
							"Cell<typeof ModelJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "name",
								"kind": "variable",
								"type_signature": "ModelName"
							},
							{
								"name": "provider_name",
								"kind": "variable",
								"type_signature": "ProviderName"
							},
							{
								"name": "tags",
								"kind": "variable",
								"type_signature": "Array<string>"
							},
							{
								"name": "architecture",
								"kind": "variable",
								"type_signature": "string | undefined"
							},
							{
								"name": "parameter_count",
								"kind": "variable",
								"type_signature": "number | undefined"
							},
							{
								"name": "context_window",
								"kind": "variable",
								"type_signature": "number | undefined"
							},
							{
								"name": "output_token_limit",
								"kind": "variable",
								"type_signature": "number | undefined"
							},
							{
								"name": "embedding_length",
								"kind": "variable",
								"type_signature": "number | undefined"
							},
							{
								"name": "filesize",
								"kind": "variable",
								"doc_comment": "Size in gigabytes.",
								"type_signature": "number | undefined"
							},
							{
								"name": "cost_input",
								"kind": "variable",
								"type_signature": "number | undefined"
							},
							{
								"name": "cost_output",
								"kind": "variable",
								"type_signature": "number | undefined"
							},
							{
								"name": "training_cutoff",
								"kind": "variable",
								"type_signature": "string | undefined"
							},
							{
								"name": "ollama_list_response_item",
								"kind": "variable",
								"type_signature": "OllamaListResponseItem | undefined"
							},
							{
								"name": "ollama_show_response",
								"kind": "variable",
								"type_signature": "OllamaShowResponse | undefined"
							},
							{
								"name": "ollama_show_response_loaded",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "ollama_show_response_loading",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "ollama_show_response_error",
								"kind": "variable",
								"type_signature": "string | undefined"
							},
							{
								"name": "downloaded",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "For models that run locally, this is a boolean indicating if the model is downloaded.\nIs `undefined` for non-local models.",
								"type_signature": "boolean | undefined"
							},
							{
								"name": "provider",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Lookup the provider for this model.",
								"type_signature": "Provider | undefined"
							},
							{
								"name": "context_window_formatted",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string | null"
							},
							{
								"name": "ollama_modified_at",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Get the modified date from Ollama data if available.",
								"type_signature": "Date | undefined"
							},
							{
								"name": "needs_ollama_details",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Check if this model needs its details loaded.",
								"type_signature": "boolean"
							},
							{
								"name": "loaded",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Check if this model is currently loaded/running.\nFor Ollama models, this checks if the model is in the running models set.",
								"type_signature": "boolean"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: ModelOptions): Model",
								"parameters": [
									{
										"name": "options",
										"type": "ModelOptions"
									}
								]
							},
							{
								"name": "navigate_to_download",
								"kind": "function",
								"doc_comment": "Download this model. Currently only works for Ollama models.",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							},
							{
								"name": "navigate_to_provider_model_view",
								"kind": "function",
								"doc_comment": "Navigate to the model view. Currently only works for Ollama models.",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							}
						]
					},
					{
						"name": "ModelSchema",
						"kind": "variable",
						"source_line": 165,
						"type_signature": "ZodCustom<Model, Model>"
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_types.ts",
					"navigation_helpers.ts",
					"ollama_helpers.ts",
					"provider_types.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"models.svelte.ts",
					"ollama.svelte.ts",
					"thread_types.ts",
					"threads.svelte.ts"
				]
			},
			{
				"path": "ModelContextmenu.svelte",
				"declarations": [
					{
						"name": "ModelContextmenu",
						"kind": "component",
						"props": [
							{
								"name": "model",
								"type": "Model"
							},
							{
								"name": "children",
								"type": "Snippet"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ContextmenuEntryCopyToClipboard.svelte",
					"Glyph.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"ChatThread.svelte",
					"ModelDetail.svelte",
					"ModelLink.svelte",
					"ModelListitem.svelte",
					"ModelSummary.svelte",
					"OllamaModelDetail.svelte",
					"OllamaModelListitem.svelte"
				]
			},
			{
				"path": "ModelDetail.svelte",
				"declarations": [
					{
						"name": "ModelDetail",
						"kind": "component",
						"props": [
							{
								"name": "model",
								"type": "Model"
							},
							{
								"name": "attrs",
								"type": "SvelteHTMLElements['span'] | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"ModelContextmenu.svelte",
					"ModelLink.svelte",
					"OllamaModelDetail.svelte",
					"ProviderLink.svelte",
					"frontend.svelte.ts",
					"glyphs.ts"
				]
			},
			{
				"path": "ModelLink.svelte",
				"declarations": [
					{
						"name": "ModelLink",
						"kind": "component",
						"props": [
							{
								"name": "model",
								"type": "Model"
							},
							{
								"name": "icon",
								"type": "boolean | 'svg' | 'glyph' | undefined",
								"optional": true,
								"description": "`true` is equivalent to `'svg'`"
							},
							{
								"name": "name",
								"type": "Snippet | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"ModelContextmenu.svelte",
					"ProviderLogo.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"CapabilityProviderOllama.svelte",
					"DashboardHome.svelte",
					"DashboardProviders.svelte",
					"ModelDetail.svelte",
					"ModelSummary.svelte",
					"OllamaModelDetail.svelte",
					"OllamaPsStatus.svelte"
				]
			},
			{
				"path": "ModelListitem.svelte",
				"declarations": [
					{
						"name": "ModelListitem",
						"kind": "component",
						"props": [
							{
								"name": "model",
								"type": "Model"
							},
							{
								"name": "show_tags",
								"type": "boolean | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ModelContextmenu.svelte",
					"ProviderLogo.svelte"
				],
				"dependents": [
					"ModelPicker.svelte",
					"ModelPickerDialog.svelte"
				]
			},
			{
				"path": "ModelPicker.svelte",
				"declarations": [
					{
						"name": "ModelPicker",
						"kind": "component",
						"props": [
							{
								"name": "onpick",
								"type": "(model: Model | undefined) => boolean | void"
							},
							{
								"name": "items",
								"type": "Array<Model>",
								"optional": true
							},
							{
								"name": "filter",
								"type": "((model: Model) => boolean) | undefined",
								"optional": true
							},
							{
								"name": "heading",
								"type": "string | null",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ModelListitem.svelte",
					"Picker.svelte",
					"frontend.svelte.ts",
					"sortable.svelte.ts"
				],
				"dependents": [
					"ChatInitializer.svelte",
					"ChatThreadAddByModel.svelte"
				]
			},
			{
				"path": "ModelPickerDialog.svelte",
				"declarations": [
					{
						"name": "ModelPickerDialog",
						"kind": "component",
						"props": [
							{
								"name": "show",
								"type": "boolean",
								"bindable": true
							},
							{
								"name": "onpick",
								"type": "(model: Model | undefined) => boolean | void"
							},
							{
								"name": "filter",
								"type": "((model: Model) => boolean) | undefined",
								"optional": true
							},
							{
								"name": "dialog_props",
								"type": "OmitStrict<ComponentProps<typeof Dialog>, 'children'> | undefined",
								"optional": true
							},
							{
								"name": "children",
								"type": "Snippet | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ModelListitem.svelte",
					"PickerDialog.svelte",
					"frontend.svelte.ts",
					"sortable.svelte.ts"
				],
				"dependents": [
					"ChatContextmenu.svelte",
					"ChatThread.svelte",
					"ChatViewMulti.svelte",
					"ThreadContextmenu.svelte"
				]
			},
			{
				"path": "models.svelte.ts",
				"declarations": [
					{
						"name": "ModelsJson",
						"kind": "type",
						"source_line": 14,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; items: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "ModelsJsonInput",
						"kind": "type",
						"source_line": 18,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; items?: { name: string; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; id?: string | undefined; ... 16 more ...; ollama_show_response_error?: string | undefined; }[] | undefined; }"
					},
					{
						"name": "ModelsOptions",
						"kind": "type",
						"source_line": 20,
						"type_signature": "ModelsOptions",
						"extends": [
							"CellOptions<typeof ModelsJson>"
						],
						"properties": []
					},
					{
						"name": "Models",
						"kind": "class",
						"source_line": 22,
						"extends": [
							"Cell<typeof ModelsJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "items",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "IndexedCollection<Model>"
							},
							{
								"name": "ordered_by_name",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Get all models ordered alphabetically by name.",
								"type_signature": "Array<Model>"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: ModelsOptions): Models",
								"parameters": [
									{
										"name": "options",
										"type": "ModelsOptions"
									}
								]
							},
							{
								"name": "add",
								"kind": "function",
								"type_signature": "(model_json: { name: string; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; id?: string | undefined; created?: string | undefined; updated?: string | undefined; tags?: string[] | undefined; ... 13 more ...; ollama_show_response_error?: string | undefined; }): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "model_json",
										"type": "{ name: string; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; id?: string | undefined; created?: string | undefined; updated?: string | undefined; tags?: string[] | undefined; ... 13 more ...; ollama_show_response_error?: string | undefined; }"
									}
								]
							},
							{
								"name": "add_many",
								"kind": "function",
								"type_signature": "(models_json: { name: string; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; id?: string | undefined; created?: string | undefined; updated?: string | undefined; tags?: string[] | undefined; ... 13 more ...; ollama_show_response_error?: string | undefined; }[]): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "models_json",
										"type": "{ name: string; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; id?: string | undefined; created?: string | undefined; updated?: string | undefined; tags?: string[] | undefined; ... 13 more ...; ollama_show_response_error?: string | undefined; }[]"
									}
								]
							},
							{
								"name": "find_by_name",
								"kind": "function",
								"type_signature": "(name: string): Model | undefined",
								"return_type": "Model | undefined",
								"parameters": [
									{
										"name": "name",
										"type": "string"
									}
								]
							},
							{
								"name": "filter_by_names",
								"kind": "function",
								"type_signature": "(names: string[]): Model[] | undefined",
								"return_type": "Model[] | undefined",
								"parameters": [
									{
										"name": "names",
										"type": "string[]"
									}
								]
							},
							{
								"name": "filter_by_tag",
								"kind": "function",
								"type_signature": "(tag: string): Model[]",
								"return_type": "Model[]",
								"parameters": [
									{
										"name": "tag",
										"type": "string"
									}
								]
							},
							{
								"name": "remove_by_name",
								"kind": "function",
								"type_signature": "(name: string): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "name",
										"type": "string"
									}
								]
							},
							{
								"name": "clear",
								"kind": "function",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							}
						]
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_helpers.ts",
					"cell_types.ts",
					"indexed_collection.svelte.ts",
					"indexed_collection_helpers.svelte.ts",
					"model.svelte.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"frontend.svelte.ts"
				]
			},
			{
				"path": "ModelSelect.svelte",
				"declarations": [
					{
						"name": "ModelSelect",
						"kind": "component",
						"props": [
							{
								"name": "selected_model",
								"type": "Model",
								"bindable": true
							},
							{
								"name": "models",
								"type": "Array<Model> | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"frontend.svelte.ts"
				]
			},
			{
				"path": "ModelSummary.svelte",
				"declarations": [
					{
						"name": "ModelSummary",
						"kind": "component",
						"props": [
							{
								"name": "model",
								"type": "Model"
							},
							{
								"name": "omit_provider",
								"type": "boolean | undefined",
								"optional": true
							},
							{
								"name": "attrs",
								"type": "SvelteHTMLElements['div'] | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"ModelContextmenu.svelte",
					"ModelLink.svelte",
					"ProviderLink.svelte",
					"ProviderLogo.svelte",
					"format_helpers.ts",
					"glyphs.ts"
				],
				"dependents": [
					"DashboardModels.svelte",
					"ProviderDetail.svelte",
					"ProviderSummary.svelte"
				]
			},
			{
				"path": "nav_helpers.ts",
				"declarations": [
					{
						"name": "to_chats_url",
						"kind": "function",
						"source_line": 7,
						"type_signature": "(chat_id: (string & $brand<\"Uuid\">) | null): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "chat_id",
								"type": "(string & $brand<\"Uuid\">) | null"
							}
						]
					},
					{
						"name": "to_prompts_url",
						"kind": "function",
						"source_line": 10,
						"type_signature": "(chat_id: (string & $brand<\"Uuid\">) | null): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "chat_id",
								"type": "(string & $brand<\"Uuid\">) | null"
							}
						]
					}
				],
				"dependents": [
					"chats.svelte.ts",
					"prompts.svelte.ts"
				]
			},
			{
				"path": "nav.ts",
				"declarations": [
					{
						"name": "NavLinkItem",
						"kind": "type",
						"source_line": 19,
						"type_signature": "NavLinkItem",
						"properties": [
							{
								"name": "label",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "href",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "icon",
								"kind": "variable",
								"type_signature": "string | SvgData"
							}
						]
					},
					{
						"name": "NavItem",
						"kind": "type",
						"source_line": 26,
						"type_signature": "NavItem",
						"properties": [
							{
								"name": "group",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "items",
								"kind": "variable",
								"type_signature": "Array<NavLinkItem>"
							}
						]
					},
					{
						"name": "to_nav_link_href",
						"kind": "function",
						"source_line": 36,
						"type_signature": "(app: Frontend, label: string, href: string): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "app",
								"type": "Frontend"
							},
							{
								"name": "label",
								"type": "string"
							},
							{
								"name": "href",
								"type": "string"
							}
						]
					},
					{
						"name": "main_nav_items_default",
						"kind": "variable",
						"source_line": 54,
						"type_signature": "NavItem[]"
					}
				],
				"dependencies": [
					"glyphs.ts",
					"logos.ts"
				],
				"dependents": [
					"Dashboard.svelte",
					"DashboardHome.svelte"
				]
			},
			{
				"path": "navigation_helpers.ts",
				"declarations": [
					{
						"name": "goto_unless_current",
						"kind": "function",
						"doc_comment": "Navigate to a path only if we're not already on that path.\nThis avoids unnecessary navigation history changes when already at the destination.",
						"source_line": 8,
						"type_signature": "(path: string | URL, options?: { replaceState?: boolean | undefined; noScroll?: boolean | undefined; keepFocus?: boolean | undefined; invalidateAll?: boolean | undefined; invalidate?: (string | ... 1 more ... | ((url: URL) => boolean))[] | undefined; state?: PageState | undefined; } | undefined): Promise<...>",
						"return_type": "Promise<void>",
						"parameters": [
							{
								"name": "path",
								"type": "string | URL"
							},
							{
								"name": "options",
								"type": "{ replaceState?: boolean | undefined; noScroll?: boolean | undefined; keepFocus?: boolean | undefined; invalidateAll?: boolean | undefined; invalidate?: (string | URL | ((url: URL) => boolean))[] | undefined; state?: PageState | undefined; } | undefined",
								"optional": true
							}
						]
					}
				],
				"dependents": [
					"chats.svelte.ts",
					"model.svelte.ts",
					"prompts.svelte.ts"
				]
			},
			{
				"path": "NavLink.svelte",
				"declarations": [
					{
						"name": "NavLink",
						"kind": "component",
						"props": [
							{
								"name": "href",
								"type": "string"
							},
							{
								"name": "selected",
								"type": "boolean | undefined",
								"optional": true
							},
							{
								"name": "show_selected_descendent",
								"type": "boolean | undefined",
								"optional": true
							},
							{
								"name": "children",
								"type": "Snippet<[selected: boolean, selected_descendent: boolean]>"
							}
						],
						"source_line": 1
					}
				],
				"dependents": [
					"ChatListitem.svelte",
					"Dashboard.svelte",
					"PromptListitem.svelte"
				]
			},
			{
				"path": "ollama_helpers.ts",
				"declarations": [
					{
						"name": "OLLAMA_URL",
						"kind": "variable",
						"source_line": 4,
						"type_signature": "\"http://127.0.0.1:11434\""
					},
					{
						"name": "OllamaStatusResponse",
						"kind": "type",
						"source_line": 12,
						"type_signature": "ZodObject<{ status: ZodString; }, $loose>"
					},
					{
						"name": "OllamaProgressResponse",
						"kind": "type",
						"source_line": 18,
						"type_signature": "ZodObject<{ status: ZodString; digest: ZodOptional<ZodString>; total: ZodOptional<ZodNumber>; completed: ZodOptional<ZodNumber>; }, $loose>"
					},
					{
						"name": "OllamaModelDetails",
						"kind": "type",
						"source_line": 27,
						"type_signature": "ZodObject<{ families: ZodArray<ZodString>; family: ZodString; format: ZodString; parameter_size: ZodString; parent_model: ZodString; quantization_level: ZodString; }, $loose>"
					},
					{
						"name": "OllamaListResponseItem",
						"kind": "type",
						"source_line": 38,
						"type_signature": "ZodObject<{ details: ZodOptional<ZodObject<{ families: ZodArray<ZodString>; family: ZodString; format: ZodString; parameter_size: ZodString; parent_model: ZodString; quantization_level: ZodString; }, $loose>>; ... 4 more ...; size: ZodNumber; }, $loose>"
					},
					{
						"name": "OllamaListResponse",
						"kind": "type",
						"source_line": 53,
						"type_signature": "ZodObject<{ models: ZodArray<ZodObject<{ details: ZodOptional<ZodObject<{ families: ZodArray<ZodString>; family: ZodString; format: ZodString; parameter_size: ZodString; parent_model: ZodString; quantization_level: ZodString; }, $loose>>; ... 4 more ...; size: ZodNumber; }, $loose>>; }, $loose>"
					},
					{
						"name": "OllamaShowResponse",
						"kind": "type",
						"source_line": 59,
						"type_signature": "ZodObject<{ capabilities: ZodOptional<ZodArray<ZodString>>; details: ZodOptional<ZodObject<{ families: ZodArray<ZodString>; family: ZodString; format: ZodString; parameter_size: ZodString; parent_model: ZodString; quantization_level: ZodString; }, $loose>>; ... 5 more ...; tensors: ZodOptional<...>; }, $loose>"
					},
					{
						"name": "OllamaPsResponseItem",
						"kind": "type",
						"source_line": 72,
						"type_signature": "ZodObject<{ details: ZodOptional<ZodObject<{ families: ZodArray<ZodString>; family: ZodString; format: ZodString; parameter_size: ZodString; parent_model: ZodString; quantization_level: ZodString; }, $loose>>; ... 5 more ...; size_vram: ZodNumber; }, $loose>"
					},
					{
						"name": "OllamaPsResponse",
						"kind": "type",
						"source_line": 84,
						"type_signature": "ZodObject<{ models: ZodArray<ZodObject<{ details: ZodOptional<ZodObject<{ families: ZodArray<ZodString>; family: ZodString; format: ZodString; parameter_size: ZodString; parent_model: ZodString; quantization_level: ZodString; }, $loose>>; ... 5 more ...; size_vram: ZodNumber; }, $loose>>; }, $loose>"
					},
					{
						"name": "OllamaListRequest",
						"kind": "type",
						"source_line": 90,
						"type_signature": "ZodOptional<ZodVoid>"
					},
					{
						"name": "OllamaPsRequest",
						"kind": "type",
						"source_line": 93,
						"type_signature": "ZodOptional<ZodVoid>"
					},
					{
						"name": "OllamaShowRequest",
						"kind": "type",
						"source_line": 96,
						"type_signature": "ZodObject<{ model: ZodString; system: ZodOptional<ZodString>; template: ZodOptional<ZodString>; options: ZodOptional<ZodAny>; }, $loose>"
					},
					{
						"name": "OllamaPullRequest",
						"kind": "type",
						"source_line": 104,
						"type_signature": "ZodObject<{ model: ZodString; insecure: ZodOptional<ZodBoolean>; stream: ZodOptional<ZodBoolean>; }, $loose>"
					},
					{
						"name": "OllamaPushRequest",
						"kind": "type",
						"source_line": 111,
						"type_signature": "ZodObject<{ model: ZodString; insecure: ZodOptional<ZodBoolean>; stream: ZodOptional<ZodBoolean>; }, $loose>"
					},
					{
						"name": "OllamaCreateRequest",
						"kind": "type",
						"source_line": 118,
						"type_signature": "ZodObject<{ model: ZodString; from: ZodOptional<ZodString>; stream: ZodOptional<ZodBoolean>; quantize: ZodOptional<ZodString>; ... 5 more ...; adapters: ZodOptional<...>; }, $loose>"
					},
					{
						"name": "OllamaDeleteRequest",
						"kind": "type",
						"source_line": 132,
						"type_signature": "ZodObject<{ model: ZodString; }, $loose>"
					},
					{
						"name": "OllamaCopyRequest",
						"kind": "type",
						"source_line": 137,
						"type_signature": "ZodObject<{ source: ZodString; destination: ZodString; }, $loose>"
					},
					{
						"name": "extract_parameter_count",
						"kind": "function",
						"doc_comment": "Extract parameter count from parameter size string like \"7B\", \"13B\", etc.",
						"source_line": 146,
						"type_signature": "(parameter_size: string | undefined): number | undefined",
						"return_type": "number | undefined",
						"parameters": [
							{
								"name": "parameter_size",
								"type": "string | undefined"
							}
						]
					},
					{
						"name": "ollama_logo",
						"kind": "variable",
						"source_line": 158,
						"type_signature": "{ label: string; paths: { d: string; }[]; }"
					}
				],
				"dependents": [
					"OllamaConfigure.svelte",
					"ProviderLogo.svelte",
					"action_specs.ts",
					"model.svelte.ts",
					"ollama.svelte.ts"
				]
			},
			{
				"path": "ollama.svelte.ts",
				"declarations": [
					{
						"name": "OllamaJson",
						"kind": "type",
						"source_line": 38,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; host: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "OllamaJsonInput",
						"kind": "type",
						"source_line": 42,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; host?: string | undefined; }"
					},
					{
						"name": "OllamaOptions",
						"kind": "type",
						"source_line": 44,
						"type_signature": "OllamaOptions"
					},
					{
						"name": "Ollama",
						"kind": "class",
						"doc_comment": "Ollama client state management with simplified API.\nModel data is stored in `app.models`, not here.\n\n## Status Display Pattern\n\nFor unified status display (available/unavailable/checking), components should use:\n- `app.capabilities.ollama.status` - unified status (prioritizes provider status)\n- `app.capabilities.ollama.error_message` - unified error message\n\nThis ensures consistency with other providers (Claude, ChatGPT, Gemini) and maintains\na single source of truth. The `Capabilities` layer prioritizes backend provider status\n(authoritative - checks if Ollama is installed) over action-level status (checks if API responds).\n\nThe lower-level properties here (`list_status`, `list_error`, `provider_error`, etc.) are\noperational state that `capabilities.ollama` derives from. Use these for:\n- Operational state (models, pulling, creating, etc.)\n- Action-specific error handling\n- Internal state management",
						"source_line": 66,
						"extends": [
							"Cell<typeof OllamaJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "list_response",
								"kind": "variable",
								"type_signature": "OllamaListResponse | null"
							},
							{
								"name": "list_status",
								"kind": "variable",
								"type_signature": "AsyncStatus"
							},
							{
								"name": "list_error",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "list_last_updated",
								"kind": "variable",
								"type_signature": "number | null"
							},
							{
								"name": "list_round_trip_time",
								"kind": "variable",
								"type_signature": "number | null"
							},
							{
								"name": "last_refreshed",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "ever_responded",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "ps_response",
								"kind": "variable",
								"type_signature": "OllamaPsResponse | null"
							},
							{
								"name": "ps_status",
								"kind": "variable",
								"type_signature": "AsyncStatus"
							},
							{
								"name": "ps_error",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "ps_polling_enabled",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "pull_model_name",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "pull_insecure",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "pulling_models",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "SvelteSet<string>"
							},
							{
								"name": "copy_source_model",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "copy_destination_model",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "copy_is_copying",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "create_model_name",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "create_from_model",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "create_system_prompt",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "create_template",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "create_is_creating",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "manager_selected_view",
								"kind": "variable",
								"type_signature": "'configure' | 'model' | 'pull' | 'copy' | 'create'"
							},
							{
								"name": "manager_selected_model",
								"kind": "variable",
								"type_signature": "Model | null"
							},
							{
								"name": "manager_last_active_view",
								"kind": "variable",
								"type_signature": "{view: string; model: Model | null} | null"
							},
							{
								"name": "show_read_actions",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "available",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "boolean"
							},
							{
								"name": "actions",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "pending_actions",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "completed_actions",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "filtered_actions",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "models",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<Model>"
							},
							{
								"name": "models_downloaded",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "models_not_downloaded",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "model_by_name",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Map<ModelName, Model>"
							},
							{
								"name": "model_names",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<ModelName>"
							},
							{
								"name": "running_models",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<OllamaPsResponseItem>"
							},
							{
								"name": "running_model_names",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Set<ModelName>"
							},
							{
								"name": "pull_parsed_model_name",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ModelName"
							},
							{
								"name": "pull_already_downloaded",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "boolean"
							},
							{
								"name": "pull_can_pull",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "boolean"
							},
							{
								"name": "pull_is_pulling",
								"kind": "function",
								"type_signature": "(model_name: string): boolean",
								"return_type": "boolean",
								"parameters": [
									{
										"name": "model_name",
										"type": "string"
									}
								]
							},
							{
								"name": "copy_parsed_source_model",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ModelName"
							},
							{
								"name": "copy_parsed_destination_model",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ModelName"
							},
							{
								"name": "copy_is_duplicate_name",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "boolean"
							},
							{
								"name": "copy_destination_model_changed",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "boolean"
							},
							{
								"name": "create_parsed_model_name",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ModelName"
							},
							{
								"name": "create_is_duplicate_name",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "boolean"
							},
							{
								"name": "create_can_create",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "boolean"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: OllamaOptions): Ollama",
								"parameters": [
									{
										"name": "options",
										"type": "OllamaOptions"
									}
								]
							},
							{
								"name": "dispose",
								"kind": "function",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "refresh",
								"kind": "function",
								"doc_comment": "Refresh the list of models and ps info and update the refresh timestamp.\nError handlers update state automatically.\n\nIf Ollama provider status indicates unavailability, skip API calls to avoid\noverwriting the provider status with action error messages.",
								"type_signature": "(): Promise<{ list_response: { [x: string]: unknown; models: { [x: string]: unknown; digest: string; model: string; modified_at: string; name: string; size: number; details?: { [x: string]: unknown; families: string[]; family: string; format: string; parameter_size: string; parent_model: string; quantization_level: string; } | undefined; }[]; } | null; ps_response: { ...; } | null; }>",
								"return_type": "Promise<{ list_response: { [x: string]: unknown; models: { [x: string]: unknown; digest: string; model: string; modified_at: string; name: string; size: number; details?: { [x: string]: unknown; families: string[]; family: string; format: string; parameter_size: string; parent_model: string; quantization_level: stri...",
								"parameters": []
							},
							{
								"name": "start_ps_polling",
								"kind": "function",
								"doc_comment": "Start polling for running models status.\nDefault interval is 10 seconds.",
								"type_signature": "(options?: { immediate?: boolean | undefined; interval?: number | undefined; } | undefined): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "options",
										"type": "{ immediate?: boolean | undefined; interval?: number | undefined; } | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "stop_ps_polling",
								"kind": "function",
								"doc_comment": "Stop polling for running models status.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "handle_ollama_list_start",
								"kind": "function",
								"doc_comment": "Handle the start of a list operation.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "handle_ollama_list_complete",
								"kind": "function",
								"doc_comment": "List all models available on the Ollama server and sync with app.models.",
								"type_signature": "(response: { [x: string]: unknown; models: { [x: string]: unknown; digest: string; model: string; modified_at: string; name: string; size: number; details?: { [x: string]: unknown; families: string[]; family: string; format: string; parameter_size: string; parent_model: string; quantization_level: string; } | undefined; }[]; } | null): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "response",
										"type": "{ [x: string]: unknown; models: { [x: string]: unknown; digest: string; model: string; modified_at: string; name: string; size: number; details?: { [x: string]: unknown; families: string[]; family: string; format: string; parameter_size: string; parent_model: string; quantization_level: string; } | undefined; }[]; }..."
									}
								]
							},
							{
								"name": "handle_ollama_ps_start",
								"kind": "function",
								"doc_comment": "Handle the start of a ps operation.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "handle_ollama_ps_complete",
								"kind": "function",
								"doc_comment": "Get the list of currently running models.",
								"type_signature": "(response: { [x: string]: unknown; models: { [x: string]: unknown; digest: string; expires_at: string; model: string; name: string; size: number; size_vram: number; details?: { [x: string]: unknown; families: string[]; family: string; format: string; parameter_size: string; parent_model: string; quantization_level: string; } | undefined; }[]; } | null): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "response",
										"type": "{ [x: string]: unknown; models: { [x: string]: unknown; digest: string; expires_at: string; model: string; name: string; size: number; size_vram: number; details?: { [x: string]: unknown; families: string[]; family: string; format: string; parameter_size: string; parent_model: string; quantization_level: string; } |..."
									}
								]
							},
							{
								"name": "handle_ollama_show",
								"kind": "function",
								"doc_comment": "Get detailed information about a specific model.",
								"type_signature": "(request: { [x: string]: unknown; model: string; system?: string | undefined; template?: string | undefined; options?: any; }, response: { [x: string]: unknown; capabilities?: string[] | undefined; details?: { [x: string]: unknown; ... 5 more ...; quantization_level: string; } | undefined; ... 5 more ...; tensors?: any[] | undefined; } | null): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "request",
										"type": "{ [x: string]: unknown; model: string; system?: string | undefined; template?: string | undefined; options?: any; }"
									},
									{
										"name": "response",
										"type": "{ [x: string]: unknown; capabilities?: string[] | undefined; details?: { [x: string]: unknown; families: string[]; family: string; format: string; parameter_size: string; parent_model: string; quantization_level: string; } | undefined; ... 5 more ...; tensors?: any[] | undefined; } | null"
									}
								]
							},
							{
								"name": "handle_ollama_delete",
								"kind": "function",
								"doc_comment": "Delete a model from the Ollama server.",
								"type_signature": "(request: { [x: string]: unknown; model: string; }): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": [
									{
										"name": "request",
										"type": "{ [x: string]: unknown; model: string; }"
									}
								]
							},
							{
								"name": "clear_model_details",
								"kind": "function",
								"doc_comment": "Clear details for a specific model.",
								"type_signature": "(model: Model): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "model",
										"type": "Model"
									}
								]
							},
							{
								"name": "clear_all_model_details",
								"kind": "function",
								"doc_comment": "Clear all model details.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "pull",
								"kind": "function",
								"doc_comment": "Submit pull model form.",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							},
							{
								"name": "copy",
								"kind": "function",
								"doc_comment": "Submit copy model form.",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							},
							{
								"name": "create",
								"kind": "function",
								"doc_comment": "Submit create model form.",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							},
							{
								"name": "delete",
								"kind": "function",
								"doc_comment": "Submit delete model form.",
								"type_signature": "(model_name: string): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": [
									{
										"name": "model_name",
										"type": "string"
									}
								]
							},
							{
								"name": "unload",
								"kind": "function",
								"doc_comment": "Unload a model from memory.",
								"type_signature": "(model_name: string): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": [
									{
										"name": "model_name",
										"type": "string"
									}
								]
							},
							{
								"name": "select",
								"kind": "function",
								"doc_comment": "Select model in manager.",
								"type_signature": "(model: Model): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": [
									{
										"name": "model",
										"type": "Model"
									}
								]
							},
							{
								"name": "close_form",
								"kind": "function",
								"doc_comment": "Handle close form in manager.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "set_manager_view",
								"kind": "function",
								"doc_comment": "Set the manager view and optionally the selected model.",
								"type_signature": "(view: \"model\" | \"configure\" | \"pull\" | \"copy\" | \"create\", model?: Model | null | undefined): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "view",
										"type": "\"model\" | \"configure\" | \"pull\" | \"copy\" | \"create\""
									},
									{
										"name": "model",
										"type": "Model | null | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "manager_back_to_last_view",
								"kind": "function",
								"doc_comment": "Navigate back to the last active view.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							}
						]
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_types.ts",
					"iterable_helpers.ts",
					"model.svelte.ts",
					"ollama_helpers.ts",
					"poller.svelte.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"frontend.svelte.ts"
				]
			},
			{
				"path": "OllamaActionItem.svelte",
				"declarations": [
					{
						"name": "OllamaActionItem",
						"kind": "component",
						"props": [
							{
								"name": "action",
								"type": "Action"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"ProgressBar.svelte",
					"glyphs.ts",
					"time_helpers.ts"
				],
				"dependents": [
					"OllamaActions.svelte",
					"OllamaPullModel.svelte"
				]
			},
			{
				"path": "OllamaActions.svelte",
				"declarations": [
					{
						"name": "OllamaActions",
						"kind": "component",
						"props": [
							{
								"name": "ollama",
								"type": "Ollama"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"OllamaActionItem.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"OllamaConfigure.svelte"
				]
			},
			{
				"path": "OllamaConfigure.svelte",
				"declarations": [
					{
						"name": "OllamaConfigure",
						"kind": "component",
						"props": [
							{
								"name": "ollama",
								"type": "Ollama"
							},
							{
								"name": "last_active_view",
								"type": "string | null"
							},
							{
								"name": "onshowpull",
								"type": "() => void"
							},
							{
								"name": "onback",
								"type": "() => void",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ErrorMessage.svelte",
					"Glyph.svelte",
					"OllamaActions.svelte",
					"OllamaPsStatus.svelte",
					"frontend.svelte.ts",
					"glyphs.ts",
					"ollama_helpers.ts"
				],
				"dependents": [
					"OllamaManager.svelte"
				]
			},
			{
				"path": "OllamaCopyModel.svelte",
				"declarations": [
					{
						"name": "OllamaCopyModel",
						"kind": "component",
						"props": [
							{
								"name": "ollama",
								"type": "Ollama"
							},
							{
								"name": "onclose",
								"type": "() => void"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ErrorMessage.svelte",
					"Glyph.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"OllamaManager.svelte"
				]
			},
			{
				"path": "OllamaCreateModel.svelte",
				"declarations": [
					{
						"name": "OllamaCreateModel",
						"kind": "component",
						"props": [
							{
								"name": "ollama",
								"type": "Ollama"
							},
							{
								"name": "onclose",
								"type": "() => void"
							},
							{
								"name": "onshowpull",
								"type": "() => void"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ErrorMessage.svelte",
					"Glyph.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"OllamaManager.svelte"
				]
			},
			{
				"path": "OllamaManager.svelte",
				"declarations": [
					{
						"name": "OllamaManager",
						"kind": "component",
						"props": [
							{
								"name": "ollama",
								"type": "Ollama"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ExternalLink.svelte",
					"Glyph.svelte",
					"OllamaConfigure.svelte",
					"OllamaCopyModel.svelte",
					"OllamaCreateModel.svelte",
					"OllamaModelDetail.svelte",
					"OllamaModelListitem.svelte",
					"OllamaPullModel.svelte",
					"frontend.svelte.ts",
					"glyphs.ts"
				],
				"dependents": [
					"ProviderDetail.svelte"
				]
			},
			{
				"path": "OllamaModelDetail.svelte",
				"declarations": [
					{
						"name": "OllamaModelDetail",
						"kind": "component",
						"props": [
							{
								"name": "model",
								"type": "Model"
							},
							{
								"name": "onshow",
								"type": "(model: Model) => void"
							},
							{
								"name": "onclose",
								"type": "(model: Model) => void",
								"optional": true
							},
							{
								"name": "ondelete",
								"type": "(model: Model) => void",
								"optional": true
							},
							{
								"name": "header",
								"type": "Snippet",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ConfirmButton.svelte",
					"Glyph.svelte",
					"ModelContextmenu.svelte",
					"ModelLink.svelte",
					"format_helpers.ts",
					"glyphs.ts",
					"time_helpers.ts"
				],
				"dependents": [
					"ModelDetail.svelte",
					"OllamaManager.svelte"
				]
			},
			{
				"path": "OllamaModelListitem.svelte",
				"declarations": [
					{
						"name": "OllamaModelListitem",
						"kind": "component",
						"props": [
							{
								"name": "model",
								"type": "Model"
							},
							{
								"name": "onclick",
								"type": "() => void",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ModelContextmenu.svelte",
					"OllamaModelStatus.svelte",
					"format_helpers.ts"
				],
				"dependents": [
					"OllamaManager.svelte"
				]
			},
			{
				"path": "OllamaModelStatus.svelte",
				"declarations": [
					{
						"name": "OllamaModelStatus",
						"kind": "component",
						"props": [
							{
								"name": "model",
								"type": "Model"
							},
							{
								"name": "ollama",
								"type": "Ollama"
							}
						],
						"source_line": 1
					}
				],
				"dependents": [
					"OllamaModelListitem.svelte"
				]
			},
			{
				"path": "OllamaPsStatus.svelte",
				"declarations": [
					{
						"name": "OllamaPsStatus",
						"kind": "component",
						"props": [
							{
								"name": "ollama",
								"type": "Ollama"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"ModelLink.svelte",
					"format_helpers.ts",
					"glyphs.ts"
				],
				"dependents": [
					"CapabilityProviderOllama.svelte",
					"OllamaConfigure.svelte"
				]
			},
			{
				"path": "OllamaPullModel.svelte",
				"declarations": [
					{
						"name": "OllamaPullModel",
						"kind": "component",
						"props": [
							{
								"name": "ollama",
								"type": "Ollama"
							},
							{
								"name": "onclose",
								"type": "() => void",
								"optional": true
							},
							{
								"name": "oncancel",
								"type": "() => void",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ErrorMessage.svelte",
					"Glyph.svelte",
					"OllamaActionItem.svelte",
					"frontend.svelte.ts",
					"glyphs.ts"
				],
				"dependents": [
					"OllamaManager.svelte"
				]
			},
			{
				"path": "part_helpers.ts",
				"declarations": [
					{
						"name": "PART_GLYPHS",
						"kind": "variable",
						"source_line": 4,
						"type_signature": "{ text: string; diskfile: string; }"
					},
					{
						"name": "get_part_type_glyph",
						"kind": "function",
						"source_line": 9,
						"type_signature": "(part: PartUnion): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "part",
								"type": "PartUnion"
							}
						]
					}
				],
				"dependencies": [
					"glyphs.ts"
				],
				"dependents": [
					"PartContextmenu.svelte",
					"PartSummary.svelte",
					"PartView.svelte",
					"TurnView.svelte"
				]
			},
			{
				"path": "part.svelte.ts",
				"declarations": [
					{
						"name": "PartJsonBase",
						"kind": "type",
						"doc_comment": "Common properties for all part types.",
						"source_line": 18,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; ... 10 more ...; summary: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "TextPartJson",
						"kind": "type",
						"doc_comment": "Text part schema - direct content storage.",
						"source_line": 34,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; ... 11 more ...; content: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "TextPartJsonInput",
						"kind": "type",
						"source_line": 39,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; start?: number | null | undefined; end?: number | null | undefined; has_xml_tag?: boolean | undefined; ... 6 more ...; content?: string | undefined; }"
					},
					{
						"name": "DiskfilePartJson",
						"kind": "type",
						"doc_comment": "Diskfile part schema - references a diskfile.",
						"source_line": 42,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; ... 11 more ...; has_xml_tag: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "DiskfilePartJsonInput",
						"kind": "type",
						"source_line": 49,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; start?: number | null | undefined; end?: number | null | undefined; xml_tag_name?: string | undefined; ... 6 more ...; has_xml_tag?: boolean | undefined; }"
					},
					{
						"name": "PartJson",
						"kind": "type",
						"doc_comment": "Union of all part types for deserialization.",
						"source_line": 52,
						"type_signature": "ZodDiscriminatedUnion<[ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; ... 11 more ...; content: ZodDefault<...>; }, $strict>, ZodObject<...>], \"type\">"
					},
					{
						"name": "PartJsonInput",
						"kind": "type",
						"source_line": 56,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; start?: number | null | undefined; end?: number | null | undefined; ... 7 more ...; content?: string | undefined; } | { ...; }"
					},
					{
						"name": "PartUnion",
						"kind": "type",
						"source_line": 58,
						"type_signature": "PartUnion"
					},
					{
						"name": "PartJsonType",
						"kind": "type",
						"source_line": 59,
						"type_signature": "PartJsonType"
					},
					{
						"name": "PartOptions",
						"kind": "type",
						"source_line": 61,
						"type_signature": "PartOptions<T>",
						"generic_params": [
							{
								"name": "T",
								"constraint": "z.ZodType",
								"default_type": "typeof PartJsonBase"
							}
						],
						"extends": [
							"CellOptions<T>"
						],
						"properties": [
							{
								"name": "json",
								"kind": "variable",
								"type_signature": "z.input<T>"
							}
						]
					},
					{
						"name": "TextPartOptions",
						"kind": "type",
						"source_line": 65,
						"type_signature": "TextPartOptions"
					},
					{
						"name": "DiskfilePartOptions",
						"kind": "type",
						"source_line": 66,
						"type_signature": "DiskfilePartOptions"
					},
					{
						"name": "PartOptionsUnion",
						"kind": "type",
						"source_line": 67,
						"type_signature": "PartOptionsUnion"
					},
					{
						"name": "Part",
						"kind": "class",
						"doc_comment": "Abstract base class for all part types.",
						"source_line": 72,
						"extends": [
							"Cell<T>"
						],
						"implements": [],
						"generic_params": [
							{
								"name": "T",
								"constraint": "z.ZodType",
								"default_type": "typeof PartJsonBase"
							}
						],
						"members": [
							{
								"name": "type",
								"kind": "variable",
								"modifiers": [
									"abstract",
									"readonly"
								],
								"type_signature": "string"
							},
							{
								"name": "start",
								"kind": "variable",
								"type_signature": "number | null"
							},
							{
								"name": "end",
								"kind": "variable",
								"type_signature": "number | null"
							},
							{
								"name": "length",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number | null | undefined"
							},
							{
								"name": "token_count",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number | null | undefined"
							},
							{
								"name": "content_preview",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "`content` with a max length."
							},
							{
								"name": "name",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "has_xml_tag",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "xml_tag_name",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "attributes",
								"kind": "variable",
								"type_signature": "Array<XmlAttributeWithDefaults>"
							},
							{
								"name": "enabled",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "title",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "summary",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "xml_tag_name_default",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string"
							},
							{
								"name": "add_attribute",
								"kind": "function",
								"type_signature": "(partial?: { id?: string | undefined; key?: string | undefined; value?: string | undefined; }): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "partial",
										"type": "{ id?: string | undefined; key?: string | undefined; value?: string | undefined; }",
										"default_value": "EMPTY_OBJECT"
									}
								]
							},
							{
								"name": "update_attribute",
								"kind": "function",
								"doc_comment": "",
								"type_signature": "(id: string & $brand<\"Uuid\">, updates: Partial<OmitStrict<{ id: string & $brand<\"Uuid\">; key: string; value: string; }, \"id\">>): boolean",
								"return_type": "boolean",
								"return_description": "`true` if the attribute was updated, `false` if the attribute was not found",
								"parameters": [
									{
										"name": "id",
										"type": "string & $brand<\"Uuid\">"
									},
									{
										"name": "updates",
										"type": "Partial<OmitStrict<{ id: string & $brand<\"Uuid\">; key: string; value: string; }, \"id\">>"
									}
								]
							},
							{
								"name": "remove_attribute",
								"kind": "function",
								"type_signature": "(id: string & $brand<\"Uuid\">): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "create",
								"kind": "function",
								"modifiers": [
									"static"
								],
								"type_signature": "(app: Frontend, json: { id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; start?: number | null | undefined; end?: number | ... 1 more ... | undefined; ... 7 more ...; content?: string | undefined; }, options?: TextPartOptions | undefined): TextPart",
								"return_type": "TextPart",
								"parameters": [
									{
										"name": "app",
										"type": "Frontend"
									},
									{
										"name": "json",
										"type": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; start?: number | null | undefined; end?: number | null | undefined; has_xml_tag?: boolean | undefined; ... 6 more ...; content?: string | undefined; }"
									},
									{
										"name": "options",
										"type": "TextPartOptions | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "create",
								"kind": "function",
								"modifiers": [
									"static"
								],
								"type_signature": "(app: Frontend, json: { id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; start?: number | null | undefined; end?: number | ... 1 more ... | undefined; ... 7 more ...; content?: string | undefined; }, options?: TextPartOptions | undefined): TextPart",
								"return_type": "TextPart",
								"parameters": [
									{
										"name": "app",
										"type": "Frontend"
									},
									{
										"name": "json",
										"type": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; start?: number | null | undefined; end?: number | null | undefined; has_xml_tag?: boolean | undefined; ... 6 more ...; content?: string | undefined; }"
									},
									{
										"name": "options",
										"type": "TextPartOptions | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "create",
								"kind": "function",
								"modifiers": [
									"static"
								],
								"type_signature": "(app: Frontend, json: { id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; start?: number | null | undefined; end?: number | ... 1 more ... | undefined; ... 7 more ...; content?: string | undefined; }, options?: TextPartOptions | undefined): TextPart",
								"return_type": "TextPart",
								"parameters": [
									{
										"name": "app",
										"type": "Frontend"
									},
									{
										"name": "json",
										"type": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; start?: number | null | undefined; end?: number | null | undefined; has_xml_tag?: boolean | undefined; ... 6 more ...; content?: string | undefined; }"
									},
									{
										"name": "options",
										"type": "TextPartOptions | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "create",
								"kind": "function",
								"modifiers": [
									"static"
								],
								"type_signature": "(app: Frontend, json: { id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; start?: number | null | undefined; end?: number | ... 1 more ... | undefined; ... 7 more ...; content?: string | undefined; }, options?: TextPartOptions | undefined): TextPart",
								"return_type": "TextPart",
								"parameters": [
									{
										"name": "app",
										"type": "Frontend"
									},
									{
										"name": "json",
										"type": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; start?: number | null | undefined; end?: number | null | undefined; has_xml_tag?: boolean | undefined; ... 6 more ...; content?: string | undefined; }"
									},
									{
										"name": "options",
										"type": "TextPartOptions | undefined",
										"optional": true
									}
								]
							}
						]
					},
					{
						"name": "PartSchema",
						"kind": "variable",
						"source_line": 169,
						"type_signature": "ZodCustom<Part<ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>>, Part<ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>>>"
					},
					{
						"name": "TextPart",
						"kind": "class",
						"doc_comment": "Text part - stores content directly.",
						"source_line": 174,
						"extends": [
							"Part<typeof TextPartJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "type",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "content",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: TextPartOptions): TextPart",
								"parameters": [
									{
										"name": "options",
										"type": "TextPartOptions"
									}
								]
							}
						]
					},
					{
						"name": "TextPartSchema",
						"kind": "variable",
						"source_line": 185,
						"type_signature": "ZodCustom<TextPart, TextPart>"
					},
					{
						"name": "DiskfilePart",
						"kind": "class",
						"doc_comment": "Diskfile part - references content from a Diskfile.",
						"source_line": 190,
						"extends": [
							"Part<typeof DiskfilePartJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "type",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "diskfile",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Diskfile | null | undefined"
							},
							{
								"name": "relative_path",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: DiskfilePartOptions): DiskfilePart",
								"parameters": [
									{
										"name": "options",
										"type": "DiskfilePartOptions"
									}
								]
							},
							{
								"name": "link_editor_state",
								"kind": "function",
								"doc_comment": "Links this part to an editor state.",
								"type_signature": "(editor_state: { current_content: string; } | null): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "editor_state",
										"type": "{ current_content: string; } | null"
									}
								]
							}
						]
					},
					{
						"name": "DiskfilePartSchema",
						"kind": "variable",
						"source_line": 272,
						"type_signature": "ZodCustom<DiskfilePart, DiskfilePart>"
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_types.ts",
					"constants.ts",
					"diskfile_types.ts",
					"helpers.ts",
					"xml.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"DashboardPrompts.svelte",
					"PartEditorForDiskfile.svelte",
					"PartEditorForText.svelte",
					"PromptContextmenu.svelte",
					"cell_classes.ts",
					"parts.svelte.ts",
					"prompt.svelte.ts"
				]
			},
			{
				"path": "PartContextmenu.svelte",
				"declarations": [
					{
						"name": "PartContextmenu",
						"kind": "component",
						"props": [
							{
								"name": "part",
								"type": "PartUnion"
							},
							{
								"name": "children",
								"type": "Snippet"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ContextmenuEntryCopyToClipboard.svelte",
					"ContextmenuEntryToggle.svelte",
					"Glyph.svelte",
					"PartView.svelte",
					"frontend.svelte.ts",
					"glyphs.ts",
					"part_helpers.ts"
				],
				"dependents": [
					"PartListitem.svelte",
					"PartSummary.svelte",
					"PartView.svelte"
				]
			},
			{
				"path": "PartEditorForDiskfile.svelte",
				"declarations": [
					{
						"name": "PartEditorForDiskfile",
						"kind": "component",
						"props": [
							{
								"name": "diskfile_part",
								"type": "DiskfilePart"
							},
							{
								"name": "show_actions",
								"type": "boolean | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ContentEditor.svelte",
					"DiskfileActions.svelte",
					"DiskfileHistoryView.svelte",
					"DiskfileMetrics.svelte",
					"DiskfilePickerDialog.svelte",
					"Glyph.svelte",
					"diskfile_editor_state.svelte.ts",
					"frontend.svelte.ts",
					"glyphs.ts",
					"part.svelte.ts"
				],
				"dependents": [
					"PartView.svelte",
					"TurnView.svelte"
				]
			},
			{
				"path": "PartEditorForText.svelte",
				"declarations": [
					{
						"name": "PartEditorForText",
						"kind": "component",
						"props": [
							{
								"name": "text_part",
								"type": "TextPart"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ContentEditor.svelte",
					"part.svelte.ts"
				],
				"dependents": [
					"PartView.svelte",
					"TurnView.svelte"
				]
			},
			{
				"path": "PartList.svelte",
				"declarations": [
					{
						"name": "PartList",
						"kind": "component",
						"props": [
							{
								"name": "parts",
								"type": "Array<PartUnion>"
							},
							{
								"name": "prompt",
								"type": "Prompt | undefined",
								"optional": true
							},
							{
								"name": "onreorder",
								"type": "((from_index: number, to_index: number) => void) | undefined",
								"optional": true
							},
							{
								"name": "reorderable_options",
								"type": "ReorderableOptions | undefined",
								"optional": true
							},
							{
								"name": "item_attrs",
								"type": "SvelteHTMLElements['li'] | undefined",
								"optional": true
							},
							{
								"name": "attrs",
								"type": "SvelteHTMLElements['ul'] | undefined",
								"optional": true
							},
							{
								"name": "empty",
								"type": "Snippet | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"PartSummary.svelte",
					"reorderable.svelte.ts"
				],
				"dependents": [
					"DashboardPrompts.svelte"
				]
			},
			{
				"path": "PartListitem.svelte",
				"declarations": [
					{
						"name": "PartListitem",
						"kind": "component",
						"props": [
							{
								"name": "part",
								"type": "PartUnion"
							},
							{
								"name": "selected",
								"type": "boolean | undefined",
								"optional": true
							},
							{
								"name": "onclick",
								"type": "((part: PartUnion) => void) | undefined",
								"optional": true
							},
							{
								"name": "sm",
								"type": "boolean | undefined",
								"optional": true
							},
							{
								"name": "attrs",
								"type": "SvelteHTMLElements['button'] | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"PartContextmenu.svelte"
				],
				"dependents": [
					"PartPicker.svelte",
					"PartPickerDialog.svelte"
				]
			},
			{
				"path": "PartPicker.svelte",
				"declarations": [
					{
						"name": "PartPicker",
						"kind": "component",
						"props": [
							{
								"name": "onpick",
								"type": "(part: PartUnion | undefined) => boolean | void"
							},
							{
								"name": "filter",
								"type": "((part: PartUnion) => boolean) | undefined",
								"optional": true
							},
							{
								"name": "exclude_ids",
								"type": "Array<Uuid> | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"PartListitem.svelte",
					"Picker.svelte",
					"frontend.svelte.ts",
					"sortable.svelte.ts"
				]
			},
			{
				"path": "PartPickerDialog.svelte",
				"declarations": [
					{
						"name": "PartPickerDialog",
						"kind": "component",
						"props": [
							{
								"name": "onpick",
								"type": "(part: PartUnion | undefined) => boolean | void"
							},
							{
								"name": "show",
								"type": "boolean | undefined",
								"optional": true,
								"bindable": true
							},
							{
								"name": "filter",
								"type": "((part: PartUnion) => boolean) | undefined",
								"optional": true
							},
							{
								"name": "exclude_ids",
								"type": "Array<Uuid> | undefined",
								"optional": true
							},
							{
								"name": "dialog_props",
								"type": "OmitStrict<ComponentProps<typeof Dialog>, 'children'> | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"PartListitem.svelte",
					"PickerDialog.svelte",
					"frontend.svelte.ts",
					"sortable.svelte.ts"
				]
			},
			{
				"path": "PartRemoveButton.svelte",
				"declarations": [
					{
						"name": "PartRemoveButton",
						"kind": "component",
						"props": [
							{
								"name": "part",
								"type": "PartUnion"
							},
							{
								"name": "prompt",
								"type": "Prompt | undefined",
								"optional": true
							},
							{
								"name": "prompts",
								"type": "Prompts | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ConfirmButton.svelte",
					"Glyph.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"PartSummary.svelte",
					"PartView.svelte",
					"TurnView.svelte"
				]
			},
			{
				"path": "parts.svelte.ts",
				"declarations": [
					{
						"name": "PartsJson",
						"kind": "type",
						"source_line": 12,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; items: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "PartsJsonInput",
						"kind": "type",
						"source_line": 16,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; items?: ({ id?: string | undefined; created?: string | undefined; updated?: string | undefined; ... 10 more ...; content?: string | undefined; } | { ...; })[] | undefined; }"
					},
					{
						"name": "PartsOptions",
						"kind": "type",
						"source_line": 18,
						"type_signature": "PartsOptions",
						"extends": [
							"CellOptions<typeof PartsJson>"
						],
						"properties": []
					},
					{
						"name": "Parts",
						"kind": "class",
						"source_line": 20,
						"extends": [
							"Cell<typeof PartsJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "items",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "IndexedCollection<PartUnion>"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: PartsOptions): Parts",
								"parameters": [
									{
										"name": "options",
										"type": "PartsOptions"
									}
								]
							},
							{
								"name": "add",
								"kind": "function",
								"doc_comment": "Add a part to the collection.",
								"type_signature": "(json: { id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; start?: number | null | undefined; end?: number | null | undefined; ... 7 more ...; content?: string | undefined; } | { ...; }): PartUnion",
								"return_type": "PartUnion",
								"parameters": [
									{
										"name": "json",
										"type": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; start?: number | null | undefined; end?: number | null | undefined; ... 7 more ...; content?: string | undefined; } | { ...; }"
									}
								]
							},
							{
								"name": "generate_unique_name",
								"kind": "function",
								"doc_comment": "Generate a unique name for a part.",
								"type_signature": "(base_name?: string): string",
								"return_type": "string",
								"parameters": [
									{
										"name": "base_name",
										"type": "string",
										"default_value": "'new part'"
									}
								]
							},
							{
								"name": "remove",
								"kind": "function",
								"doc_comment": "Remove a part by id.",
								"type_signature": "(id: string & $brand<\"Uuid\">): boolean",
								"return_type": "boolean",
								"parameters": [
									{
										"name": "id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "find_part_by_diskfile_path",
								"kind": "function",
								"doc_comment": "Find a part that references a specific file path.",
								"type_signature": "(path: string): PartUnion | undefined",
								"return_type": "PartUnion | undefined",
								"parameters": [
									{
										"name": "path",
										"type": "string"
									}
								]
							}
						]
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_helpers.ts",
					"cell_types.ts",
					"helpers.ts",
					"indexed_collection.svelte.ts",
					"indexed_collection_helpers.svelte.ts",
					"part.svelte.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"frontend.svelte.ts"
				]
			},
			{
				"path": "PartStats.svelte",
				"declarations": [
					{
						"name": "PartStats",
						"kind": "component",
						"props": [
							{
								"name": "part",
								"type": "PartUnion"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ContentStats.svelte"
				],
				"dependents": [
					"PartView.svelte",
					"TurnView.svelte"
				]
			},
			{
				"path": "PartSummary.svelte",
				"declarations": [
					{
						"name": "PartSummary",
						"kind": "component",
						"props": [
							{
								"name": "part",
								"type": "PartUnion"
							},
							{
								"name": "prompt",
								"type": "Prompt | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"PartContextmenu.svelte",
					"PartRemoveButton.svelte",
					"PartToggleButton.svelte",
					"part_helpers.ts"
				],
				"dependents": [
					"DiskfilePartView.svelte",
					"PartList.svelte"
				]
			},
			{
				"path": "PartToggleButton.svelte",
				"declarations": [
					{
						"name": "PartToggleButton",
						"kind": "component",
						"props": [
							{
								"name": "part",
								"type": "PartUnion"
							},
							{
								"name": "attrs",
								"type": "SvelteHTMLElements['input'] | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependents": [
					"PartSummary.svelte",
					"PartView.svelte",
					"TurnView.svelte"
				]
			},
			{
				"path": "PartView.svelte",
				"declarations": [
					{
						"name": "PartView",
						"kind": "component",
						"props": [
							{
								"name": "part",
								"type": "PartUnion"
							},
							{
								"name": "show_actions",
								"type": "boolean | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"PartContextmenu.svelte",
					"PartEditorForDiskfile.svelte",
					"PartEditorForText.svelte",
					"PartRemoveButton.svelte",
					"PartStats.svelte",
					"PartToggleButton.svelte",
					"XmlTagControls.svelte",
					"frontend.svelte.ts",
					"part_helpers.ts"
				],
				"dependents": [
					"DashboardPrompts.svelte",
					"PartContextmenu.svelte"
				]
			},
			{
				"path": "Picker.svelte",
				"declarations": [
					{
						"name": "Picker",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"SortableList.svelte"
				],
				"dependents": [
					"DiskfilePicker.svelte",
					"ModelPicker.svelte",
					"PartPicker.svelte",
					"PickerDialog.svelte",
					"PromptPicker.svelte"
				]
			},
			{
				"path": "PickerDialog.svelte",
				"declarations": [
					{
						"name": "PickerDialog",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"Picker.svelte"
				],
				"dependents": [
					"DiskfilePickerDialog.svelte",
					"ModelPickerDialog.svelte",
					"PartPickerDialog.svelte",
					"PromptPickerDialog.svelte"
				]
			},
			{
				"path": "PingForm.svelte",
				"declarations": [
					{
						"name": "PingForm",
						"kind": "component",
						"props": [
							{
								"name": "children",
								"type": "Snippet | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"capabilities.svelte.ts",
					"frontend.svelte.ts",
					"glyphs.ts"
				],
				"dependents": [
					"CapabilityBackend.svelte"
				]
			},
			{
				"path": "poller.svelte.ts",
				"declarations": [
					{
						"name": "PollerOptions",
						"kind": "type",
						"source_line": 3,
						"type_signature": "PollerOptions",
						"properties": [
							{
								"name": "poll_fn",
								"kind": "variable",
								"type_signature": "() => void | Promise<void>",
								"doc_comment": "Function to call on each poll interval."
							},
							{
								"name": "interval",
								"kind": "variable",
								"type_signature": "number",
								"doc_comment": "Polling interval in milliseconds."
							},
							{
								"name": "immediate",
								"kind": "variable",
								"type_signature": "boolean",
								"doc_comment": "Whether to run the poll function immediately on start, defaults to true."
							}
						]
					},
					{
						"name": "Poller",
						"kind": "class",
						"doc_comment": "Helper class to manage polling intervals.\nAutomatically cleans up on disposal.",
						"source_line": 16,
						"members": [
							{
								"name": "DEFAULT_INTERVAL",
								"kind": "variable",
								"modifiers": [
									"static"
								]
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: PollerOptions): Poller",
								"parameters": [
									{
										"name": "options",
										"type": "PollerOptions"
									}
								]
							},
							{
								"name": "start",
								"kind": "function",
								"doc_comment": "Start polling with optional overrides.",
								"type_signature": "(options?: { immediate?: boolean | undefined; interval?: number | undefined; } | undefined): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "options",
										"type": "{ immediate?: boolean | undefined; interval?: number | undefined; } | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "stop",
								"kind": "function",
								"doc_comment": "Stop polling.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "set_interval",
								"kind": "function",
								"doc_comment": "Update the polling interval. If polling is active, it will restart with the new interval.\nNo-op if the interval is already set to the same value.",
								"type_signature": "(interval: number | undefined): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "interval",
										"type": "number | undefined"
									}
								]
							},
							{
								"name": "dispose",
								"kind": "function",
								"doc_comment": "Dispose of the poller, stopping any active polling.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							}
						]
					}
				],
				"dependents": [
					"ollama.svelte.ts"
				]
			},
			{
				"path": "popover.svelte.ts",
				"declarations": [
					{
						"name": "PopoverParameters",
						"kind": "type",
						"doc_comment": "Parameters for configuring the popover.",
						"source_line": 20,
						"type_signature": "PopoverParameters",
						"properties": [
							{
								"name": "position",
								"kind": "variable",
								"type_signature": "Position",
								"doc_comment": "Position of the popover relative to its trigger."
							},
							{
								"name": "align",
								"kind": "variable",
								"type_signature": "Alignment",
								"doc_comment": "Alignment along the position edge."
							},
							{
								"name": "offset",
								"kind": "variable",
								"type_signature": "string",
								"doc_comment": "Distance from the position."
							},
							{
								"name": "disable_outside_click",
								"kind": "variable",
								"type_signature": "boolean",
								"doc_comment": "Whether to disable closing when clicking outside."
							},
							{
								"name": "popover_class",
								"kind": "variable",
								"type_signature": "string",
								"doc_comment": "Custom class for the popover content."
							},
							{
								"name": "onshow",
								"kind": "variable",
								"type_signature": "() => void",
								"doc_comment": "Optional callback when popover is shown."
							},
							{
								"name": "onhide",
								"kind": "variable",
								"type_signature": "() => void",
								"doc_comment": "Optional callback when popover is hidden."
							}
						]
					},
					{
						"name": "PopoverTriggerParameters",
						"kind": "type",
						"doc_comment": "Parameters for the popover trigger action.",
						"source_line": 40,
						"type_signature": "PopoverTriggerParameters",
						"extends": [
							"PopoverParameters"
						],
						"properties": [
							{
								"name": "content",
								"kind": "variable",
								"type_signature": "Snippet",
								"doc_comment": "Content to render in the popover (as a snippet)."
							}
						]
					},
					{
						"name": "TransitionFunction",
						"kind": "type",
						"doc_comment": "Support both Svelte transitions and custom transitions.",
						"source_line": 48,
						"type_signature": "TransitionFunction"
					},
					{
						"name": "PopoverContentParameters",
						"kind": "type",
						"doc_comment": "Parameters for the popover content action.",
						"source_line": 54,
						"type_signature": "PopoverContentParameters",
						"extends": [
							"PopoverParameters"
						],
						"properties": []
					},
					{
						"name": "Popover",
						"kind": "class",
						"doc_comment": "Class that manages state and provides actions for popovers.",
						"source_line": 61,
						"members": [
							{
								"name": "visible",
								"kind": "variable",
								"doc_comment": "Whether the popover is currently visible."
							},
							{
								"name": "position",
								"kind": "variable",
								"doc_comment": "Position of the popover relative to its trigger.",
								"type_signature": "Position"
							},
							{
								"name": "align",
								"kind": "variable",
								"doc_comment": "Alignment along the position edge.",
								"type_signature": "Alignment"
							},
							{
								"name": "offset",
								"kind": "variable",
								"doc_comment": "Distance from the position."
							},
							{
								"name": "disable_outside_click",
								"kind": "variable",
								"doc_comment": "Whether to disable closing when clicking outside."
							},
							{
								"name": "popover_class",
								"kind": "variable",
								"doc_comment": "Custom class for the popover."
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(params?: PopoverParameters | undefined): Popover",
								"parameters": [
									{
										"name": "params",
										"type": "PopoverParameters | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "update",
								"kind": "function",
								"doc_comment": "Updates the popover configuration.",
								"type_signature": "(params: PopoverParameters): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "params",
										"type": "PopoverParameters"
									}
								]
							},
							{
								"name": "show",
								"kind": "function",
								"doc_comment": "Shows the popover.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "hide",
								"kind": "function",
								"doc_comment": "Hides the popover.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "toggle",
								"kind": "function",
								"doc_comment": "Toggles the popover visibility.",
								"type_signature": "(visible?: boolean): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "visible",
										"type": "boolean",
										"default_value": "!this.visible"
									}
								]
							},
							{
								"name": "container",
								"kind": "variable",
								"doc_comment": "Attachment for the container element.",
								"type_signature": "Attachment<HTMLElement>"
							},
							{
								"name": "trigger",
								"kind": "variable",
								"doc_comment": "Attachment factory for the trigger element that shows/hides the popover."
							},
							{
								"name": "content",
								"kind": "variable",
								"doc_comment": "Attachment factory for the popover content element."
							}
						]
					}
				],
				"dependencies": [
					"helpers.ts",
					"position_helpers.ts"
				],
				"dependents": [
					"PopoverButton.svelte"
				]
			},
			{
				"path": "PopoverButton.svelte",
				"declarations": [
					{
						"name": "PopoverButton",
						"kind": "component",
						"props": [
							{
								"name": "position",
								"type": "Position | undefined",
								"optional": true
							},
							{
								"name": "align",
								"type": "Alignment | undefined",
								"optional": true
							},
							{
								"name": "disable_outside_click",
								"type": "boolean | undefined",
								"optional": true
							},
							{
								"name": "popover_class",
								"type": "string | undefined",
								"optional": true
							},
							{
								"name": "popover_attrs",
								"type": "SvelteHTMLElements['div'] | undefined",
								"optional": true
							},
							{
								"name": "popover_content",
								"type": "Snippet<[popover: Popover]>"
							},
							{
								"name": "popover_container_attrs",
								"type": "SvelteHTMLElements['div'] | undefined",
								"optional": true
							},
							{
								"name": "button",
								"type": "Snippet<[popover: Popover]> | undefined",
								"optional": true
							},
							{
								"name": "children",
								"type": "Snippet<[popover: Popover]> | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"popover.svelte.ts"
				],
				"dependents": [
					"ConfirmButton.svelte",
					"SocketMessageQueue.svelte"
				]
			},
			{
				"path": "position_helpers.ts",
				"declarations": [
					{
						"name": "CardinalPosition",
						"kind": "type",
						"doc_comment": "Basic position options for UI elements (cardinal directions).",
						"source_line": 10,
						"type_signature": "CardinalPosition"
					},
					{
						"name": "Position",
						"kind": "type",
						"doc_comment": "Extended position options including overlay and center.",
						"source_line": 15,
						"type_signature": "Position"
					},
					{
						"name": "Alignment",
						"kind": "type",
						"doc_comment": "Alignment options for positioned elements.",
						"source_line": 20,
						"type_signature": "Alignment"
					},
					{
						"name": "generate_position_styles",
						"kind": "function",
						"doc_comment": "Generates CSS positioning styles for UI elements.",
						"source_line": 30,
						"type_signature": "(position?: Position, align?: Alignment, offset?: string): Record<string, string>",
						"return_type": "Record<string, string>",
						"return_description": "CSS styles as a Record",
						"parameters": [
							{
								"name": "position",
								"type": "Position",
								"description": "Where to position the element ('left', 'right', etc.)",
								"default_value": "'center'"
							},
							{
								"name": "align",
								"type": "Alignment",
								"description": "Alignment along the position edge ('start', 'center', 'end')",
								"default_value": "'center'"
							},
							{
								"name": "offset",
								"type": "string",
								"description": "Distance from the position (CSS value)",
								"default_value": "'0'"
							}
						]
					}
				],
				"dependents": [
					"popover.svelte.ts"
				]
			},
			{
				"path": "ProgressBar.svelte",
				"declarations": [
					{
						"name": "ProgressBar",
						"kind": "component",
						"props": [
							{
								"name": "value",
								"type": "number",
								"description": "The percentage value of the progress bar, 0-100."
							},
							{
								"name": "text",
								"type": "Snippet",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependents": [
					"OllamaActionItem.svelte"
				]
			},
			{
				"path": "prompt_helpers.ts",
				"declarations": [
					{
						"name": "format_prompt_content",
						"kind": "function",
						"doc_comment": "Formats a collection of parts into a prompt string,\napplying XML tags and attributes where specified.",
						"source_line": 7,
						"type_signature": "(parts: PartUnion[]): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "parts",
								"type": "PartUnion[]"
							}
						]
					}
				],
				"dependents": [
					"prompt.svelte.ts"
				]
			},
			{
				"path": "prompt.svelte.ts",
				"declarations": [
					{
						"name": "PromptMessage",
						"kind": "type",
						"source_line": 11,
						"type_signature": "PromptMessage",
						"properties": [
							{
								"name": "role",
								"kind": "variable",
								"type_signature": "'user' | 'system'"
							},
							{
								"name": "content",
								"kind": "variable",
								"type_signature": "Array<PromptActionContent>"
							}
						]
					},
					{
						"name": "PromptActionContent",
						"kind": "type",
						"source_line": 16,
						"type_signature": "string"
					},
					{
						"name": "PromptJson",
						"kind": "type",
						"source_line": 18,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; name: ZodDefault<...>; parts: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "PromptJsonInput",
						"kind": "type",
						"source_line": 23,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; parts?: ({ id?: string | undefined; created?: string | undefined; updated?: string | undefined; ... 10 more ...; content?: string | undefined; } | { ...; })[] | undefined; }"
					},
					{
						"name": "PromptOptions",
						"kind": "type",
						"source_line": 25,
						"type_signature": "PromptOptions",
						"extends": [
							"CellOptions<typeof PromptJson>"
						],
						"properties": [
							{
								"name": "name",
								"kind": "variable",
								"type_signature": "string"
							}
						]
					},
					{
						"name": "Prompt",
						"kind": "class",
						"source_line": 29,
						"extends": [
							"Cell<typeof PromptJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "name",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "parts",
								"kind": "variable",
								"type_signature": "Array<PartUnion>"
							},
							{
								"name": "content",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string"
							},
							{
								"name": "length",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number"
							},
							{
								"name": "token_count",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number"
							},
							{
								"name": "content_preview",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: PromptOptions): Prompt",
								"parameters": [
									{
										"name": "options",
										"type": "PromptOptions"
									}
								]
							},
							{
								"name": "add_part",
								"kind": "function",
								"doc_comment": "Add a part to this prompt.",
								"type_signature": "(part: PartUnion): PartUnion",
								"return_type": "PartUnion",
								"parameters": [
									{
										"name": "part",
										"type": "PartUnion"
									}
								]
							},
							{
								"name": "remove_part",
								"kind": "function",
								"type_signature": "(id: string & $brand<\"Uuid\">): boolean",
								"return_type": "boolean",
								"parameters": [
									{
										"name": "id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "remove_all_parts",
								"kind": "function",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "reorder_parts",
								"kind": "function",
								"type_signature": "(from_index: number, to_index: number): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "from_index",
										"type": "number"
									},
									{
										"name": "to_index",
										"type": "number"
									}
								]
							}
						]
					},
					{
						"name": "PromptSchema",
						"kind": "variable",
						"source_line": 70,
						"type_signature": "ZodCustom<Prompt, Prompt>"
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_types.ts",
					"helpers.ts",
					"list_helpers.ts",
					"part.svelte.ts",
					"prompt_helpers.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"prompts.svelte.ts"
				]
			},
			{
				"path": "PromptContextmenu.svelte",
				"declarations": [
					{
						"name": "PromptContextmenu",
						"kind": "component",
						"props": [
							{
								"name": "prompt",
								"type": "Prompt"
							},
							{
								"name": "children",
								"type": "Snippet"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ContextmenuEntryCopyToClipboard.svelte",
					"DiskfilePickerDialog.svelte",
					"Glyph.svelte",
					"frontend.svelte.ts",
					"glyphs.ts",
					"part.svelte.ts"
				],
				"dependents": [
					"DashboardPrompts.svelte",
					"PromptListitem.svelte"
				]
			},
			{
				"path": "PromptList.svelte",
				"declarations": [
					{
						"name": "PromptList",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"PromptListitem.svelte",
					"SortableList.svelte",
					"frontend.svelte.ts",
					"sortable.svelte.ts"
				],
				"dependents": [
					"DashboardHome.svelte",
					"DashboardPrompts.svelte"
				]
			},
			{
				"path": "PromptListitem.svelte",
				"declarations": [
					{
						"name": "PromptListitem",
						"kind": "component",
						"props": [
							{
								"name": "prompt",
								"type": "Prompt"
							},
							{
								"name": "selected",
								"type": "boolean | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"NavLink.svelte",
					"PromptContextmenu.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"PromptList.svelte"
				]
			},
			{
				"path": "PromptPicker.svelte",
				"declarations": [
					{
						"name": "PromptPicker",
						"kind": "component",
						"props": [
							{
								"name": "onpick",
								"type": "(prompt: Prompt | undefined) => boolean | void"
							},
							{
								"name": "filter",
								"type": "((prompt: Prompt) => boolean) | undefined",
								"optional": true
							},
							{
								"name": "exclude_ids",
								"type": "Array<Uuid> | undefined",
								"optional": true
							},
							{
								"name": "selected_ids",
								"type": "Array<Uuid> | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Picker.svelte",
					"PromptSummary.svelte",
					"frontend.svelte.ts",
					"sortable.svelte.ts"
				]
			},
			{
				"path": "PromptPickerDialog.svelte",
				"declarations": [
					{
						"name": "PromptPickerDialog",
						"kind": "component",
						"props": [
							{
								"name": "onpick",
								"type": "(prompt: Prompt | undefined) => boolean | void"
							},
							{
								"name": "show",
								"type": "boolean | undefined",
								"optional": true,
								"bindable": true
							},
							{
								"name": "filter",
								"type": "((prompt: Prompt) => boolean) | undefined",
								"optional": true
							},
							{
								"name": "exclude_ids",
								"type": "Array<Uuid> | undefined",
								"optional": true
							},
							{
								"name": "selected_ids",
								"type": "Array<Uuid> | undefined",
								"optional": true
							},
							{
								"name": "dialog_props",
								"type": "OmitStrict<ComponentProps<typeof Dialog>, 'children'> | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"PickerDialog.svelte",
					"PromptSummary.svelte",
					"frontend.svelte.ts",
					"sortable.svelte.ts"
				]
			},
			{
				"path": "prompts.svelte.ts",
				"declarations": [
					{
						"name": "PromptsJson",
						"kind": "type",
						"source_line": 17,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; items: ZodDefault<...>; selected_id: ZodDefault<...>; show_sort_controls: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "PromptsJsonInput",
						"kind": "type",
						"source_line": 23,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; items?: { id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; parts?: ({ ...; } | { ...; })[] | undefined; }[] | undefined; selected_id?: string | ... 1 more ... | undefi..."
					},
					{
						"name": "PromptsOptions",
						"kind": "type",
						"source_line": 25,
						"type_signature": "PromptsOptions",
						"extends": [
							"CellOptions<typeof PromptsJson>"
						],
						"properties": []
					},
					{
						"name": "Prompts",
						"kind": "class",
						"source_line": 27,
						"extends": [
							"Cell<typeof PromptsJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "items",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "IndexedCollection<Prompt>"
							},
							{
								"name": "selected_id_last_non_null",
								"kind": "variable",
								"type_signature": "Uuid | null"
							},
							{
								"name": "selected",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Prompt | undefined"
							},
							{
								"name": "show_sort_controls",
								"kind": "variable",
								"doc_comment": "Controls visibility of sort controls in the prompts list.",
								"type_signature": "boolean"
							},
							{
								"name": "ordered_items",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Ordered array of prompts derived from the `manual_order` index.",
								"type_signature": "Array<Prompt>"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: PromptsOptions): Prompts",
								"parameters": [
									{
										"name": "options",
										"type": "PromptsOptions"
									}
								]
							},
							{
								"name": "filter_by_part",
								"kind": "function",
								"type_signature": "(part: PartUnion): Prompt[]",
								"return_type": "Prompt[]",
								"parameters": [
									{
										"name": "part",
										"type": "PartUnion"
									}
								]
							},
							{
								"name": "add",
								"kind": "function",
								"type_signature": "(json?: { id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; parts?: ({ id?: string | undefined; created?: string | undefined; ... 11 more ...; content?: string | undefined; } | { ...; })[] | undefined; } | undefined): Prompt",
								"return_type": "Prompt",
								"parameters": [
									{
										"name": "json",
										"type": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; parts?: ({ id?: string | undefined; created?: string | undefined; ... 11 more ...; content?: string | undefined; } | { ...; })[] | undefined; } | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "generate_unique_name",
								"kind": "function",
								"type_signature": "(base_name?: string): string",
								"return_type": "string",
								"parameters": [
									{
										"name": "base_name",
										"type": "string",
										"default_value": "'new prompt'"
									}
								]
							},
							{
								"name": "add_many",
								"kind": "function",
								"type_signature": "(prompts_json: { id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; parts?: ({ id?: string | undefined; created?: string | undefined; ... 11 more ...; content?: string | undefined; } | { ...; })[] | undefined; }[]): Prompt[]",
								"return_type": "Prompt[]",
								"parameters": [
									{
										"name": "prompts_json",
										"type": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; name?: string | undefined; parts?: ({ id?: string | undefined; created?: string | undefined; updated?: string | undefined; ... 10 more ...; content?: string | undefined; } | { ...; })[] | undefined; }[]"
									}
								]
							},
							{
								"name": "remove",
								"kind": "function",
								"type_signature": "(prompt: Prompt): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "prompt",
										"type": "Prompt"
									}
								]
							},
							{
								"name": "remove_many",
								"kind": "function",
								"type_signature": "(prompt_ids: (string & $brand<\"Uuid\">)[]): number",
								"return_type": "number",
								"parameters": [
									{
										"name": "prompt_ids",
										"type": "(string & $brand<\"Uuid\">)[]"
									}
								]
							},
							{
								"name": "select",
								"kind": "function",
								"type_signature": "(prompt_id: (string & $brand<\"Uuid\">) | null): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": [
									{
										"name": "prompt_id",
										"type": "(string & $brand<\"Uuid\">) | null"
									}
								]
							},
							{
								"name": "select_next",
								"kind": "function",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							},
							{
								"name": "navigate_to",
								"kind": "function",
								"type_signature": "(prompt_id: (string & $brand<\"Uuid\">) | null, force?: boolean): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": [
									{
										"name": "prompt_id",
										"type": "(string & $brand<\"Uuid\">) | null"
									},
									{
										"name": "force",
										"type": "boolean",
										"default_value": "false"
									}
								]
							},
							{
								"name": "reorder_prompts",
								"kind": "function",
								"type_signature": "(from_index: number, to_index: number): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "from_index",
										"type": "number"
									},
									{
										"name": "to_index",
										"type": "number"
									}
								]
							},
							{
								"name": "remove_part",
								"kind": "function",
								"type_signature": "(part_id: string & $brand<\"Uuid\">): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "part_id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "toggle_sort_controls",
								"kind": "function",
								"doc_comment": "Toggles the visibility of sort controls in the prompts list.",
								"type_signature": "(value?: boolean): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "value",
										"type": "boolean",
										"default_value": "!this.show_sort_controls"
									}
								]
							}
						]
					},
					{
						"name": "PromptsSchema",
						"kind": "variable",
						"source_line": 195,
						"type_signature": "ZodCustom<Prompts, Prompts>"
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_helpers.ts",
					"cell_types.ts",
					"helpers.ts",
					"indexed_collection.svelte.ts",
					"indexed_collection_helpers.svelte.ts",
					"list_helpers.ts",
					"nav_helpers.ts",
					"navigation_helpers.ts",
					"prompt.svelte.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"frontend.svelte.ts"
				]
			},
			{
				"path": "PromptStats.svelte",
				"declarations": [
					{
						"name": "PromptStats",
						"kind": "component",
						"props": [
							{
								"name": "prompt",
								"type": "Prompt"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ContentStats.svelte"
				],
				"dependents": [
					"DashboardPrompts.svelte"
				]
			},
			{
				"path": "PromptSummary.svelte",
				"declarations": [
					{
						"name": "PromptSummary",
						"kind": "component",
						"props": [
							{
								"name": "prompt",
								"type": "Prompt"
							}
						],
						"source_line": 1
					}
				],
				"dependents": [
					"PromptPicker.svelte",
					"PromptPickerDialog.svelte"
				]
			},
			{
				"path": "provider_types.ts",
				"declarations": [
					{
						"name": "ProviderName",
						"kind": "type",
						"doc_comment": "See `app.providers.names` for the available names at runtime.",
						"source_line": 4,
						"type_signature": "ZodEnum<{ ollama: \"ollama\"; claude: \"claude\"; chatgpt: \"chatgpt\"; gemini: \"gemini\"; }>"
					},
					{
						"name": "ProviderDataOllama",
						"kind": "type",
						"source_line": 8,
						"type_signature": "ZodObject<{ type: ZodLiteral<\"ollama\">; value: ZodDefault<ZodOptional<ZodAny>>; }, $strict>"
					},
					{
						"name": "ProviderDataClaude",
						"kind": "type",
						"source_line": 14,
						"type_signature": "ZodObject<{ type: ZodLiteral<\"claude\">; value: ZodDefault<ZodOptional<ZodAny>>; }, $strict>"
					},
					{
						"name": "ProviderDataChatgpt",
						"kind": "type",
						"source_line": 20,
						"type_signature": "ZodObject<{ type: ZodLiteral<\"chatgpt\">; value: ZodDefault<ZodOptional<ZodAny>>; }, $strict>"
					},
					{
						"name": "ProviderDataGemini",
						"kind": "type",
						"source_line": 26,
						"type_signature": "ZodObject<{ type: ZodLiteral<\"gemini\">; value: ZodObject<{ text: ZodString; candidates: ZodOptional<ZodNullable<ZodArray<ZodAny>>>; function_calls: ZodOptional<...>; prompt_feedback: ZodOptional<...>; usage_metadata: ZodOptional<...>; }, $strict>; }, $strict>"
					},
					{
						"name": "ProviderDataSchema",
						"kind": "variable",
						"source_line": 38,
						"type_signature": "ZodDiscriminatedUnion<[ZodObject<{ type: ZodLiteral<\"ollama\">; value: ZodDefault<ZodOptional<ZodAny>>; }, $strict>, ZodObject<{ type: ZodLiteral<...>; value: ZodDefault<...>; }, $strict>, ZodObject<...>, ZodObject<...>], \"type\">"
					},
					{
						"name": "ProviderData",
						"kind": "type",
						"source_line": 44,
						"type_signature": "{ type: \"ollama\"; value: any; } | { type: \"claude\"; value: any; } | { type: \"chatgpt\"; value: any; } | { type: \"gemini\"; value: { text: string; candidates?: any[] | null | undefined; function_calls?: any[] | null | undefined; prompt_feedback?: any; usage_metadata?: any; }; }"
					},
					{
						"name": "PROVIDER_ERROR_NEEDS_API_KEY",
						"kind": "variable",
						"source_line": 46,
						"type_signature": "\"needs API key\""
					},
					{
						"name": "PROVIDER_ERROR_NOT_INSTALLED",
						"kind": "variable",
						"source_line": 47,
						"type_signature": "\"not installed\""
					},
					{
						"name": "ProviderStatus",
						"kind": "type",
						"source_line": 49,
						"type_signature": "ZodDiscriminatedUnion<[ZodObject<{ name: ZodString; available: ZodLiteral<true>; checked_at: ZodNumber; }, $strict>, ZodObject<{ name: ZodString; available: ZodLiteral<...>; error: ZodString; checked_at: ZodNumber; }, $strict>], \"available\">"
					}
				],
				"dependents": [
					"action_specs.ts",
					"completion_types.ts",
					"model.svelte.ts",
					"provider.svelte.ts",
					"server/backend_provider.ts",
					"server/backend_provider_ollama.ts"
				]
			},
			{
				"path": "provider.svelte.ts",
				"declarations": [
					{
						"name": "ProviderJson",
						"kind": "type",
						"source_line": 9,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; ... 6 more ...; api_key_url: ZodNullable<...>; }, $strict>"
					},
					{
						"name": "ProviderJsonInput",
						"kind": "type",
						"source_line": 19,
						"type_signature": "{ name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; title: string; url: string; homepage: string; company: string; api_key_url: string | null; id?: string | undefined; created?: string | undefined; updated?: string | undefined; }"
					},
					{
						"name": "ProviderOptions",
						"kind": "type",
						"source_line": 21,
						"type_signature": "ProviderOptions",
						"extends": [
							"CellOptions<typeof ProviderJson>"
						],
						"properties": []
					},
					{
						"name": "Provider",
						"kind": "class",
						"source_line": 23,
						"extends": [
							"Cell<typeof ProviderJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "name",
								"kind": "variable",
								"type_signature": "ProviderName"
							},
							{
								"name": "title",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "url",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "homepage",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "company",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "api_key_url",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "models",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<Model>"
							},
							{
								"name": "status",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Status for this provider (availability, error messages, etc.).",
								"type_signature": "ProviderStatus | null"
							},
							{
								"name": "available",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Whether this provider is available (configured with API keys, etc.).",
								"type_signature": "boolean"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: ProviderOptions): Provider",
								"parameters": [
									{
										"name": "options",
										"type": "ProviderOptions"
									}
								]
							}
						]
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_types.ts",
					"provider_types.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"frontend.svelte.ts",
					"providers.svelte.ts"
				]
			},
			{
				"path": "ProviderDetail.svelte",
				"declarations": [
					{
						"name": "ProviderDetail",
						"kind": "component",
						"props": [
							{
								"name": "provider",
								"type": "Provider"
							},
							{
								"name": "attrs",
								"type": "SvelteHTMLElements['div'] | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"CapabilityProviderApi.svelte",
					"ExternalLink.svelte",
					"Glyph.svelte",
					"ModelSummary.svelte",
					"OllamaManager.svelte",
					"ProviderLogo.svelte",
					"frontend.svelte.ts",
					"glyphs.ts"
				]
			},
			{
				"path": "ProviderLink.svelte",
				"declarations": [
					{
						"name": "ProviderLink",
						"kind": "component",
						"props": [
							{
								"name": "provider",
								"type": "Provider | null | undefined"
							},
							{
								"name": "icon",
								"type": "'glyph' | 'svg' | Snippet<[provider: Provider, glyph: string]> | undefined",
								"optional": true
							},
							{
								"name": "icon_props",
								"type": "Record<string, any> | undefined",
								"optional": true
							},
							{
								"name": "show_name",
								"type": "boolean | undefined",
								"optional": true
							},
							{
								"name": "fallback_attrs",
								"type": "SvelteHTMLElements['span'] | undefined",
								"optional": true
							},
							{
								"name": "fallback",
								"type": "Snippet | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"ProviderLogo.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"CapabilityProviderApi.svelte",
					"CapabilityProviderOllama.svelte",
					"ChatThread.svelte",
					"DashboardHome.svelte",
					"DashboardProviders.svelte",
					"ModelDetail.svelte",
					"ModelSummary.svelte"
				]
			},
			{
				"path": "ProviderLogo.svelte",
				"declarations": [
					{
						"name": "ProviderLogo",
						"kind": "component",
						"props": [
							{
								"name": "name",
								"type": "ProviderName"
							},
							{
								"name": "fill",
								"type": "string | null | undefined",
								"optional": true
							},
							{
								"name": "size",
								"type": "string | undefined",
								"optional": true
							},
							{
								"name": "inline",
								"type": "boolean | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"logos.ts",
					"ollama_helpers.ts"
				],
				"dependents": [
					"CapabilitiesView.svelte",
					"ChatInitializer.svelte",
					"DashboardProviders.svelte",
					"ModelLink.svelte",
					"ModelListitem.svelte",
					"ModelSummary.svelte",
					"ProviderDetail.svelte",
					"ProviderLink.svelte",
					"ThreadListitem.svelte"
				]
			},
			{
				"path": "providers.svelte.ts",
				"declarations": [
					{
						"name": "ProvidersJson",
						"kind": "type",
						"source_line": 8,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; items: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "ProvidersJsonInput",
						"kind": "type",
						"source_line": 12,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; items?: { name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; title: string; url: string; homepage: string; ... 4 more ...; updated?: string | undefined; }[] | undefined; }"
					},
					{
						"name": "ProvidersOptions",
						"kind": "type",
						"source_line": 14,
						"type_signature": "ProvidersOptions",
						"extends": [
							"CellOptions<typeof ProvidersJson>"
						],
						"properties": []
					},
					{
						"name": "Providers",
						"kind": "class",
						"source_line": 15,
						"extends": [
							"Cell<typeof ProvidersJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "items",
								"kind": "variable",
								"type_signature": "Array<Provider>"
							},
							{
								"name": "names",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ReadonlyArray<ProviderName>"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: ProvidersOptions): Providers",
								"parameters": [
									{
										"name": "options",
										"type": "ProvidersOptions"
									}
								]
							},
							{
								"name": "add",
								"kind": "function",
								"type_signature": "(provider: Provider): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "provider",
										"type": "Provider"
									}
								]
							},
							{
								"name": "find_by_name",
								"kind": "function",
								"type_signature": "(name: string): Provider | undefined",
								"return_type": "Provider | undefined",
								"parameters": [
									{
										"name": "name",
										"type": "string"
									}
								]
							},
							{
								"name": "remove_by_name",
								"kind": "function",
								"type_signature": "(name: string): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "name",
										"type": "string"
									}
								]
							},
							{
								"name": "clear",
								"kind": "function",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							}
						]
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_types.ts",
					"provider.svelte.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"frontend.svelte.ts"
				]
			},
			{
				"path": "ProviderSummary.svelte",
				"declarations": [
					{
						"name": "ProviderSummary",
						"kind": "component",
						"props": [
							{
								"name": "provider",
								"type": "Provider"
							},
							{
								"name": "attrs",
								"type": "SvelteHTMLElements['div'] | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ExternalLink.svelte",
					"ModelSummary.svelte"
				]
			},
			{
				"path": "reorderable_helpers.ts",
				"declarations": [
					{
						"name": "detect_reorderable_direction",
						"kind": "function",
						"doc_comment": "Detect layout direction from an element - supports flex and grid.",
						"source_line": 13,
						"type_signature": "(element: HTMLElement): ReorderableDirection",
						"return_type": "ReorderableDirection",
						"parameters": [
							{
								"name": "element",
								"type": "HTMLElement"
							}
						]
					},
					{
						"name": "get_reorderable_drop_position",
						"kind": "function",
						"doc_comment": "Determine the drop position based on source and target indices and layout direction.",
						"source_line": 38,
						"type_signature": "(direction: ReorderableDirection, source_index: number, target_index: number): ReorderableValidDropPosition",
						"return_type": "ReorderableValidDropPosition",
						"parameters": [
							{
								"name": "direction",
								"type": "ReorderableDirection"
							},
							{
								"name": "source_index",
								"type": "number"
							},
							{
								"name": "target_index",
								"type": "number"
							}
						]
					},
					{
						"name": "calculate_reorderable_target_index",
						"kind": "function",
						"doc_comment": "Calculate the target index based on source, current index, and position.",
						"source_line": 55,
						"type_signature": "(source_index: number, current_index: number, position: ReorderableValidDropPosition): number",
						"return_type": "number",
						"parameters": [
							{
								"name": "source_index",
								"type": "number"
							},
							{
								"name": "current_index",
								"type": "number"
							},
							{
								"name": "position",
								"type": "ReorderableValidDropPosition"
							}
						]
					},
					{
						"name": "is_reorder_allowed",
						"kind": "function",
						"doc_comment": "Check if reordering is allowed between two indices.",
						"source_line": 78,
						"type_signature": "(can_reorder: ((from_index: number, to_index: number) => boolean) | undefined, source_index: number, target_index: number): boolean",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "can_reorder",
								"type": "((from_index: number, to_index: number) => boolean) | undefined"
							},
							{
								"name": "source_index",
								"type": "number"
							},
							{
								"name": "target_index",
								"type": "number"
							}
						]
					},
					{
						"name": "validate_reorderable_target_index",
						"kind": "function",
						"doc_comment": "Validate and adjust a target index to ensure it's within bounds",
						"source_line": 87,
						"type_signature": "(target_index: number, max_index: number): number",
						"return_type": "number",
						"parameters": [
							{
								"name": "target_index",
								"type": "number"
							},
							{
								"name": "max_index",
								"type": "number"
							}
						]
					},
					{
						"name": "set_reorderable_drag_data_transfer",
						"kind": "function",
						"doc_comment": "Set up drag data transfer with consistent properties and formats\nThis centralizes the dataTransfer setup logic used in multiple places.",
						"source_line": 100,
						"type_signature": "(dataTransfer: DataTransfer, item_id: ReorderableItemId): void",
						"return_type": "void",
						"parameters": [
							{
								"name": "dataTransfer",
								"type": "DataTransfer"
							},
							{
								"name": "item_id",
								"type": "ReorderableItemId"
							}
						]
					}
				],
				"dependents": [
					"reorderable.svelte.ts"
				]
			},
			{
				"path": "reorderable.svelte.ts",
				"declarations": [
					{
						"name": "ReorderableId",
						"kind": "type",
						"source_line": 18,
						"type_signature": "ReorderableId"
					},
					{
						"name": "ReorderableItemId",
						"kind": "type",
						"source_line": 19,
						"type_signature": "ReorderableItemId"
					},
					{
						"name": "ReorderableDirection",
						"kind": "type",
						"source_line": 21,
						"type_signature": "ReorderableDirection"
					},
					{
						"name": "ReorderableDropPosition",
						"kind": "type",
						"source_line": 23,
						"type_signature": "ReorderableDropPosition"
					},
					{
						"name": "ReorderableValidDropPosition",
						"kind": "type",
						"source_line": 25,
						"type_signature": "ReorderableValidDropPosition"
					},
					{
						"name": "ReorderableStyleConfig",
						"kind": "type",
						"doc_comment": "Styling configuration for reorderable components.",
						"source_line": 30,
						"type_signature": "ReorderableStyleConfig",
						"properties": [
							{
								"name": "list_class",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "item_class",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "dragging_class",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "drag_over_class",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "drag_over_top_class",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "drag_over_bottom_class",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "drag_over_left_class",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "drag_over_right_class",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "invalid_drop_class",
								"kind": "variable",
								"type_signature": "string | null"
							}
						]
					},
					{
						"name": "LIST_CLASS_DEFAULT",
						"kind": "variable",
						"source_line": 43,
						"type_signature": "\"reorderable_list\""
					},
					{
						"name": "ITEM_CLASS_DEFAULT",
						"kind": "variable",
						"source_line": 44,
						"type_signature": "\"reorderable_item\""
					},
					{
						"name": "DRAGGING_CLASS_DEFAULT",
						"kind": "variable",
						"source_line": 45,
						"type_signature": "\"dragging\""
					},
					{
						"name": "DRAG_OVER_CLASS_DEFAULT",
						"kind": "variable",
						"source_line": 46,
						"type_signature": "\"drag_over\""
					},
					{
						"name": "DRAG_OVER_TOP_CLASS_DEFAULT",
						"kind": "variable",
						"source_line": 47,
						"type_signature": "\"drag_over_top\""
					},
					{
						"name": "DRAG_OVER_BOTTOM_CLASS_DEFAULT",
						"kind": "variable",
						"source_line": 48,
						"type_signature": "\"drag_over_bottom\""
					},
					{
						"name": "DRAG_OVER_LEFT_CLASS_DEFAULT",
						"kind": "variable",
						"source_line": 49,
						"type_signature": "\"drag_over_left\""
					},
					{
						"name": "DRAG_OVER_RIGHT_CLASS_DEFAULT",
						"kind": "variable",
						"source_line": 50,
						"type_signature": "\"drag_over_right\""
					},
					{
						"name": "INVALID_DROP_CLASS_DEFAULT",
						"kind": "variable",
						"source_line": 51,
						"type_signature": "\"invalid_drop\""
					},
					{
						"name": "ReorderableListParams",
						"kind": "type",
						"doc_comment": "Parameters for list attachment.",
						"source_line": 56,
						"type_signature": "ReorderableListParams",
						"properties": [
							{
								"name": "onreorder",
								"kind": "variable",
								"type_signature": "(from_index: number, to_index: number) => void"
							},
							{
								"name": "can_reorder",
								"kind": "variable",
								"type_signature": "(from_index: number, to_index: number) => boolean"
							},
							{
								"name": "direction",
								"kind": "variable",
								"type_signature": "ReorderableDirection"
							}
						]
					},
					{
						"name": "ReorderableItemParams",
						"kind": "type",
						"doc_comment": "Parameters for item attachment.",
						"source_line": 65,
						"type_signature": "ReorderableItemParams",
						"properties": [
							{
								"name": "index",
								"kind": "variable",
								"type_signature": "number"
							}
						]
					},
					{
						"name": "ReorderableOptions",
						"kind": "type",
						"doc_comment": "Additional configuration options for Reorderable.",
						"source_line": 72,
						"type_signature": "ReorderableOptions",
						"properties": [
							{
								"name": "direction",
								"kind": "variable",
								"type_signature": "ReorderableDirection",
								"doc_comment": "Forces a specific direction for the reorderable list.\nDefaults to auto-detection, `'vertical'` as the fallback."
							},
							{
								"name": "list_class",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "item_class",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "dragging_class",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "drag_over_class",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "drag_over_top_class",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "drag_over_bottom_class",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "drag_over_left_class",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "drag_over_right_class",
								"kind": "variable",
								"type_signature": "string | null"
							},
							{
								"name": "invalid_drop_class",
								"kind": "variable",
								"type_signature": "string | null"
							}
						]
					},
					{
						"name": "Reorderable",
						"kind": "class",
						"source_line": 89,
						"extends": [],
						"implements": [
							"ReorderableStyleConfig"
						],
						"members": [
							{
								"name": "initialized",
								"kind": "variable"
							},
							{
								"name": "source_index",
								"kind": "variable"
							},
							{
								"name": "source_item_id",
								"kind": "variable",
								"type_signature": "ReorderableItemId | null"
							},
							{
								"name": "active_indicator_item_id",
								"kind": "variable",
								"type_signature": "ReorderableItemId | null"
							},
							{
								"name": "current_indicator",
								"kind": "variable",
								"type_signature": "ReorderableDropPosition"
							},
							{
								"name": "direction",
								"kind": "variable",
								"type_signature": "ReorderableDirection"
							},
							{
								"name": "id",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ReorderableId"
							},
							{
								"name": "list_class",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string | null"
							},
							{
								"name": "item_class",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string | null"
							},
							{
								"name": "dragging_class",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string | null"
							},
							{
								"name": "drag_over_class",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string | null"
							},
							{
								"name": "drag_over_top_class",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string | null"
							},
							{
								"name": "drag_over_bottom_class",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string | null"
							},
							{
								"name": "drag_over_left_class",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string | null"
							},
							{
								"name": "drag_over_right_class",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string | null"
							},
							{
								"name": "invalid_drop_class",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string | null"
							},
							{
								"name": "list_node",
								"kind": "variable",
								"type_signature": "HTMLElement | null"
							},
							{
								"name": "list_params",
								"kind": "variable",
								"type_signature": "ReorderableListParams | null"
							},
							{
								"name": "indices",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Map<ReorderableItemId, number>"
							},
							{
								"name": "elements",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Map<ReorderableItemId, HTMLElement>"
							},
							{
								"name": "pending_items",
								"kind": "variable",
								"type_signature": "Array<{\n\t\tid: ReorderableItemId;\n\t\tindex: number;\n\t\telement: HTMLElement;\n\t}>"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options?: ReorderableOptions): Reorderable",
								"parameters": [
									{
										"name": "options",
										"type": "ReorderableOptions",
										"default_value": "EMPTY_OBJECT"
									}
								]
							},
							{
								"name": "init",
								"kind": "function",
								"doc_comment": "Made public for testing purposes.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "clear_indicators",
								"kind": "function",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "update_indicator",
								"kind": "function",
								"type_signature": "(item_id: ReorderableItemId, new_indicator: ReorderableDropPosition, is_valid?: boolean): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "item_id",
										"type": "ReorderableItemId"
									},
									{
										"name": "new_indicator",
										"type": "ReorderableDropPosition"
									},
									{
										"name": "is_valid",
										"type": "boolean",
										"default_value": "true"
									}
								]
							},
							{
								"name": "list",
								"kind": "variable"
							},
							{
								"name": "item",
								"kind": "variable"
							}
						]
					}
				],
				"dependencies": [
					"helpers.ts",
					"reorderable_helpers.ts"
				],
				"dependents": [
					"DashboardDiskfiles.svelte",
					"PartList.svelte",
					"ThreadList.svelte"
				]
			},
			{
				"path": "request_tracker.svelte.ts",
				"declarations": [
					{
						"name": "RequestTrackerItem",
						"kind": "class",
						"doc_comment": "Represents a pending request with its associated state.",
						"source_line": 21,
						"members": [
							{
								"name": "id",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "JsonrpcRequestId"
							},
							{
								"name": "deferred",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Deferred<JsonrpcResponseOrError>"
							},
							{
								"name": "created",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Datetime"
							},
							{
								"name": "status",
								"kind": "variable",
								"type_signature": "AsyncStatus"
							},
							{
								"name": "timeout",
								"kind": "variable",
								"type_signature": "NodeJS.Timeout | undefined"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(id: string | number, deferred: Deferred<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { ...; }; }>, created: string & $brand<...>, status: AsyncStatus, timeout: Timeout | undefined): RequestTrackerItem",
								"parameters": [
									{
										"name": "id",
										"type": "string | number"
									},
									{
										"name": "deferred",
										"type": "Deferred<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); messag..."
									},
									{
										"name": "created",
										"type": "string & $brand<\"Datetime\">"
									},
									{
										"name": "status",
										"type": "AsyncStatus"
									},
									{
										"name": "timeout",
										"type": "Timeout | undefined"
									}
								]
							}
						]
					},
					{
						"name": "RequestTracker",
						"kind": "class",
						"doc_comment": "Tracks JSON-RPC requests and their responses to manage promises and timeouts.\nUsed by transports to handle the request-response lifecycle.",
						"source_line": 47,
						"members": [
							{
								"name": "pending_requests",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "SvelteMap<JsonrpcRequestId, RequestTrackerItem>"
							},
							{
								"name": "request_timeout_ms",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(request_timeout_ms?: number): RequestTracker",
								"parameters": [
									{
										"name": "request_timeout_ms",
										"type": "number",
										"default_value": "120_000"
									}
								]
							},
							{
								"name": "track_request",
								"kind": "function",
								"doc_comment": "Track a new request with the given id.",
								"type_signature": "(id: string | number): Deferred<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { ...; }; }>",
								"return_type": "Deferred<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); messag...",
								"return_description": "A deferred promise that will be resolved when the response is received",
								"parameters": [
									{
										"name": "id",
										"type": "string | number",
										"description": "The request id"
									}
								]
							},
							{
								"name": "resolve_request",
								"kind": "function",
								"doc_comment": "Resolve a pending request with the given response data.",
								"type_signature": "(id: string | number, response: { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { ...; }; }): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "id",
										"type": "string | number",
										"description": "The request id"
									},
									{
										"name": "response",
										"type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); message: string...",
										"description": "The response data"
									}
								]
							},
							{
								"name": "reject_request",
								"kind": "function",
								"doc_comment": "Rejects a pending request with the given error.",
								"type_signature": "(id: string | number, error_message: { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<\"JsonrpcServerErrorCode\">); message: string; data?: unknown; }; }): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "id",
										"type": "string | number",
										"description": "The request id"
									},
									{
										"name": "error_message",
										"type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | -32600 | -32601 | -32602 | -32603 | (number & $brand<\"JsonrpcServerErrorCode\">); message: string; data?: unknown; }; }",
										"description": "The complete `JsonrpcErrorMessage` object"
									}
								]
							},
							{
								"name": "handle_message",
								"kind": "function",
								"doc_comment": "Handles an incoming JSON-RPC message. Resolves or rejects the associated request.\nIgnores notifications and unknown/invalid messages.",
								"type_signature": "(message: any): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "message",
										"type": "any"
									}
								]
							},
							{
								"name": "cancel_request",
								"kind": "function",
								"doc_comment": "Cancel a pending request.",
								"type_signature": "(id: string | number): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "id",
										"type": "string | number",
										"description": "The request id"
									}
								]
							},
							{
								"name": "cancel_all_requests",
								"kind": "function",
								"doc_comment": "Cancel all pending requests.",
								"type_signature": "(reason?: string | undefined): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "reason",
										"type": "string | undefined",
										"optional": true,
										"description": "Optional reason to include in rejection"
									}
								]
							}
						]
					}
				],
				"dependencies": [
					"jsonrpc.ts",
					"jsonrpc_errors.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"frontend_websocket_transport.ts"
				]
			},
			{
				"path": "response_helpers.ts",
				"declarations": [
					{
						"name": "to_completion_response_text",
						"kind": "function",
						"doc_comment": "Extracts the text content from a completion response.",
						"source_line": 12,
						"type_signature": "(completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { type: \"ollama\"; value: any; } | { type: \"claude\"; value: any; } | { ...; } | { ...; }; } | null | undefined): string | null",
						"return_type": "string | null",
						"parameters": [
							{
								"name": "completion_response",
								"type": "{ created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { type: \"ollama\"; value: any; } | { type: \"claude\"; value: any; } | { ...; } | { ...; }; } | null | undefined"
							}
						]
					},
					{
						"name": "to_completion_result",
						"kind": "function",
						"doc_comment": "Creates a standardized `CompletionResponse` message from provider-specific responses.",
						"source_line": 38,
						"type_signature": "(provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\", model: string, api_response: unknown, progress_token?: (string & $brand<\"Uuid\">) | undefined): { completion_response: { ...; }; _meta?: { ...; } | undefined; }",
						"return_type": "{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { type: \"ollama\"; value: any; } | { ...; } | { ...; } | { ...; }; }; _meta?: { ...; } | undefined; }",
						"parameters": [
							{
								"name": "provider_name",
								"type": "\"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\""
							},
							{
								"name": "model",
								"type": "string"
							},
							{
								"name": "api_response",
								"type": "unknown"
							},
							{
								"name": "progress_token",
								"type": "(string & $brand<\"Uuid\">) | undefined",
								"optional": true
							}
						]
					}
				],
				"dependencies": [
					"zod_helpers.ts"
				],
				"dependents": [
					"chat.svelte.ts",
					"frontend_action_handlers.ts",
					"server/backend_provider_chatgpt.ts",
					"server/backend_provider_claude.ts",
					"server/backend_provider_gemini.ts",
					"server/backend_provider_ollama.ts",
					"thread_helpers.ts"
				]
			},
			{
				"path": "schema_registry.ts",
				"declarations": [
					{
						"name": "VocabName",
						"kind": "type",
						"source_line": 17,
						"type_signature": "VocabName"
					},
					{
						"name": "SchemaRegistry",
						"kind": "class",
						"doc_comment": "A central registry for schemas and actions.\nProvides a single source of truth for schema definitions.",
						"source_line": 23,
						"members": [
							{
								"name": "schemas",
								"kind": "variable",
								"doc_comment": "All schemas, including model schemas, action params, and responses.",
								"type_signature": "Array<z.ZodType>"
							},
							{
								"name": "model_schemas",
								"kind": "variable",
								"doc_comment": "Model schemas are distinct from the action schemas.\nModels are the nouns compared to the Action verbs,\nand compared to Views they are data not Svelte components.",
								"type_signature": "Array<z.ZodType>"
							},
							{
								"name": "action_params_schemas",
								"kind": "variable",
								"doc_comment": "Action parameter schemas.",
								"type_signature": "Array<z.ZodType>"
							},
							{
								"name": "action_response_schemas",
								"kind": "variable",
								"doc_comment": "Action response schemas.",
								"type_signature": "Array<z.ZodType>"
							},
							{
								"name": "schema_by_name",
								"kind": "variable",
								"doc_comment": "Map of schema names to schemas.",
								"type_signature": "Map<VocabName, z.ZodType>"
							},
							{
								"name": "name_by_schema",
								"kind": "variable",
								"doc_comment": "Map of schemas to their names, for reverse lookup.\nZod schemas don't have a `name` property and we don't want to abuse `description`.",
								"type_signature": "Map<z.ZodType, VocabName>"
							},
							{
								"name": "action_specs",
								"kind": "variable",
								"doc_comment": "Collection of all action specs.",
								"type_signature": "Array<ActionSpecUnion>"
							},
							{
								"name": "request_response_action_specs",
								"kind": "variable",
								"doc_comment": "Collection of 'request_response' action specs.",
								"type_signature": "Array<RequestResponseActionSpec>"
							},
							{
								"name": "remote_notification_action_specs",
								"kind": "variable",
								"doc_comment": "Collection of 'remote_notification' action specs.",
								"type_signature": "Array<RemoteNotificationActionSpec>"
							},
							{
								"name": "local_call_action_specs",
								"kind": "variable",
								"doc_comment": "Collection of 'local_call' action specs.",
								"type_signature": "Array<LocalCallActionSpec>"
							},
							{
								"name": "action_spec_by_name_map",
								"kind": "variable",
								"doc_comment": "Map of action spec names to action specs.",
								"type_signature": "Map<ActionMethod, ActionSpecUnion>"
							},
							{
								"name": "add_schema",
								"kind": "function",
								"doc_comment": "Add a schema to the appropriate registries.",
								"type_signature": "(name: VocabName, schema: { method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | ... 12 more ... | \"toggle_main_menu\"; ... 6 more ...; async: true; } | { ...; } | { ...; } | ZodType<...>): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "name",
										"type": "VocabName"
									},
									{
										"name": "schema",
										"type": "{ method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"; ... 6 more ...; async: true; } | { ...; } | { ...; } | ZodType<...>"
									}
								]
							},
							{
								"name": "register_many",
								"kind": "function",
								"doc_comment": "Register multiple schemas at once.",
								"type_signature": "(schemas: Record<string, any>): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "schemas",
										"type": "Record<string, any>"
									}
								]
							},
							{
								"name": "lookup_schema_name",
								"kind": "function",
								"doc_comment": "Lookup a schema name, guaranteed to return a string, or throws.",
								"type_signature": "(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): VocabName",
								"return_type": "VocabName",
								"parameters": [
									{
										"name": "schema",
										"type": "ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>"
									}
								]
							},
							{
								"name": "get_action_spec",
								"kind": "function",
								"doc_comment": "Get an action specification by method name.",
								"type_signature": "(method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"): { ...; } | ... 2 more ... | undefined",
								"return_type": "{ method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"; ... 6 more ...; async: true; } | { ...; } | { ...; } | undefined",
								"parameters": [
									{
										"name": "method",
										"type": "\"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\""
									}
								]
							},
							{
								"name": "get_schema",
								"kind": "function",
								"doc_comment": "Get a schema by name.",
								"type_signature": "(name: VocabName): ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> | undefined",
								"return_type": "ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> | undefined",
								"parameters": [
									{
										"name": "name",
										"type": "VocabName"
									}
								]
							}
						]
					},
					{
						"name": "global_schema_registry",
						"kind": "variable",
						"doc_comment": "Global instance of the schema registry for convenience.",
						"source_line": 165,
						"type_signature": "SchemaRegistry"
					}
				]
			},
			{
				"path": "scrollable.svelte.ts",
				"declarations": [
					{
						"name": "ScrollableParameters",
						"kind": "type",
						"source_line": 10,
						"type_signature": "ScrollableParameters",
						"properties": [
							{
								"name": "target_class",
								"kind": "variable",
								"type_signature": "string",
								"doc_comment": "CSS class to apply to the target element when scrolled. Defaults to 'scrolled'."
							},
							{
								"name": "threshold",
								"kind": "variable",
								"type_signature": "number",
								"doc_comment": "Threshold in pixels before considering the element scrolled. Defaults to 0."
							}
						]
					},
					{
						"name": "Scrollable",
						"kind": "class",
						"doc_comment": "Manages scroll state and provides attachments for scroll detection and styling.",
						"source_line": 20,
						"members": [
							{
								"name": "target_class",
								"kind": "variable",
								"doc_comment": "CSS class name to apply when scrolled.",
								"type_signature": "string"
							},
							{
								"name": "threshold",
								"kind": "variable",
								"doc_comment": "Threshold in pixels before considering the element scrolled.",
								"type_signature": "number"
							},
							{
								"name": "scroll_y",
								"kind": "variable",
								"doc_comment": "The current scroll Y position.",
								"type_signature": "number"
							},
							{
								"name": "scrolled",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Whether element is scrolled past threshold.",
								"type_signature": "boolean"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(params?: ScrollableParameters | undefined): Scrollable",
								"parameters": [
									{
										"name": "params",
										"type": "ScrollableParameters | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "container",
								"kind": "variable",
								"doc_comment": "Attachment for the scrollable container - detects scrolling and updates state.",
								"type_signature": "Attachment"
							},
							{
								"name": "target",
								"kind": "variable",
								"doc_comment": "Attachment for the element that should receive the scrolled class.\nSince attachments run in effects, the class updates will be reactive automatically.",
								"type_signature": "Attachment"
							}
						]
					}
				],
				"dependents": [
					"TurnList.svelte"
				]
			},
			{
				"path": "server/backend_action_handlers.ts",
				"declarations": [
					{
						"name": "backend_action_handlers",
						"kind": "variable",
						"doc_comment": "Handle client messages and produce appropriate server responses.\nEach returns a value or throws a `ThrownJsonrpcError`.\nOrganized by method and phase for symmetric handling.",
						"source_line": 24,
						"type_signature": "BackendActionHandlers"
					}
				],
				"dependencies": [
					"constants.ts",
					"diskfile_helpers.ts",
					"diskfile_types.ts",
					"jsonrpc_errors.ts",
					"server/env_file_helpers.ts",
					"server/helpers.ts"
				],
				"dependents": [
					"server/server.ts"
				]
			},
			{
				"path": "server/backend_action_types.gen.ts",
				"declarations": [],
				"dependencies": [
					"action_registry.ts",
					"action_spec.ts",
					"action_specs.ts",
					"codegen.ts"
				]
			},
			{
				"path": "server/backend_action_types.ts",
				"declarations": [
					{
						"name": "BackendActionHandlers",
						"kind": "type",
						"doc_comment": "Backend action handlers organized by method and phase.\nGenerated using spec.initiator to determine valid phases:\n- initiator: 'backend' → send/execute phases\n- initiator: 'frontend' → receive phases\n- initiator: 'both' → all valid phases",
						"source_line": 14,
						"type_signature": "BackendActionHandlers",
						"properties": [
							{
								"name": "completion_create",
								"kind": "variable",
								"type_signature": "{\n\t\treceive_request?: (\n\t\t\taction_event: ActionEvent<'completion_create', Backend, 'receive_request', 'handling'>,\n\t\t) => ActionOutputs['completion_create'] | Promise<ActionOutputs['completion_create']>;\n\t\tsend_response?: (\n\t\t\taction_event: ActionEvent<'completion_create', Backend, 'send_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'completion_create', Backend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "completion_progress",
								"kind": "variable",
								"type_signature": "{\n\t\tsend?: (\n\t\t\taction_event: ActionEvent<'completion_progress', Backend, 'send', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "directory_create",
								"kind": "variable",
								"type_signature": "{\n\t\treceive_request?: (\n\t\t\taction_event: ActionEvent<'directory_create', Backend, 'receive_request', 'handling'>,\n\t\t) => ActionOutputs['directory_create'] | Promise<ActionOutputs['directory_create']>;\n\t\tsend_response?: (\n\t\t\taction_event: ActionEvent<'directory_create', Backend, 'send_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'directory_create', Backend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "diskfile_delete",
								"kind": "variable",
								"type_signature": "{\n\t\treceive_request?: (\n\t\t\taction_event: ActionEvent<'diskfile_delete', Backend, 'receive_request', 'handling'>,\n\t\t) => ActionOutputs['diskfile_delete'] | Promise<ActionOutputs['diskfile_delete']>;\n\t\tsend_response?: (\n\t\t\taction_event: ActionEvent<'diskfile_delete', Backend, 'send_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'diskfile_delete', Backend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "diskfile_update",
								"kind": "variable",
								"type_signature": "{\n\t\treceive_request?: (\n\t\t\taction_event: ActionEvent<'diskfile_update', Backend, 'receive_request', 'handling'>,\n\t\t) => ActionOutputs['diskfile_update'] | Promise<ActionOutputs['diskfile_update']>;\n\t\tsend_response?: (\n\t\t\taction_event: ActionEvent<'diskfile_update', Backend, 'send_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'diskfile_update', Backend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "filer_change",
								"kind": "variable",
								"type_signature": "{\n\t\tsend?: (\n\t\t\taction_event: ActionEvent<'filer_change', Backend, 'send', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ollama_copy",
								"kind": "variable",
								"type_signature": "{\n\t\treceive_request?: (\n\t\t\taction_event: ActionEvent<'ollama_copy', Backend, 'receive_request', 'handling'>,\n\t\t) => ActionOutputs['ollama_copy'] | Promise<ActionOutputs['ollama_copy']>;\n\t\tsend_response?: (\n\t\t\taction_event: ActionEvent<'ollama_copy', Backend, 'send_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'ollama_copy', Backend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ollama_create",
								"kind": "variable",
								"type_signature": "{\n\t\treceive_request?: (\n\t\t\taction_event: ActionEvent<'ollama_create', Backend, 'receive_request', 'handling'>,\n\t\t) => ActionOutputs['ollama_create'] | Promise<ActionOutputs['ollama_create']>;\n\t\tsend_response?: (\n\t\t\taction_event: ActionEvent<'ollama_create', Backend, 'send_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'ollama_create', Backend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ollama_delete",
								"kind": "variable",
								"type_signature": "{\n\t\treceive_request?: (\n\t\t\taction_event: ActionEvent<'ollama_delete', Backend, 'receive_request', 'handling'>,\n\t\t) => ActionOutputs['ollama_delete'] | Promise<ActionOutputs['ollama_delete']>;\n\t\tsend_response?: (\n\t\t\taction_event: ActionEvent<'ollama_delete', Backend, 'send_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'ollama_delete', Backend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ollama_list",
								"kind": "variable",
								"type_signature": "{\n\t\treceive_request?: (\n\t\t\taction_event: ActionEvent<'ollama_list', Backend, 'receive_request', 'handling'>,\n\t\t) => ActionOutputs['ollama_list'] | Promise<ActionOutputs['ollama_list']>;\n\t\tsend_response?: (\n\t\t\taction_event: ActionEvent<'ollama_list', Backend, 'send_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'ollama_list', Backend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ollama_progress",
								"kind": "variable",
								"type_signature": "{\n\t\tsend?: (\n\t\t\taction_event: ActionEvent<'ollama_progress', Backend, 'send', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ollama_ps",
								"kind": "variable",
								"type_signature": "{\n\t\treceive_request?: (\n\t\t\taction_event: ActionEvent<'ollama_ps', Backend, 'receive_request', 'handling'>,\n\t\t) => ActionOutputs['ollama_ps'] | Promise<ActionOutputs['ollama_ps']>;\n\t\tsend_response?: (\n\t\t\taction_event: ActionEvent<'ollama_ps', Backend, 'send_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'ollama_ps', Backend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ollama_pull",
								"kind": "variable",
								"type_signature": "{\n\t\treceive_request?: (\n\t\t\taction_event: ActionEvent<'ollama_pull', Backend, 'receive_request', 'handling'>,\n\t\t) => ActionOutputs['ollama_pull'] | Promise<ActionOutputs['ollama_pull']>;\n\t\tsend_response?: (\n\t\t\taction_event: ActionEvent<'ollama_pull', Backend, 'send_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'ollama_pull', Backend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ollama_show",
								"kind": "variable",
								"type_signature": "{\n\t\treceive_request?: (\n\t\t\taction_event: ActionEvent<'ollama_show', Backend, 'receive_request', 'handling'>,\n\t\t) => ActionOutputs['ollama_show'] | Promise<ActionOutputs['ollama_show']>;\n\t\tsend_response?: (\n\t\t\taction_event: ActionEvent<'ollama_show', Backend, 'send_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'ollama_show', Backend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ollama_unload",
								"kind": "variable",
								"type_signature": "{\n\t\treceive_request?: (\n\t\t\taction_event: ActionEvent<'ollama_unload', Backend, 'receive_request', 'handling'>,\n\t\t) => ActionOutputs['ollama_unload'] | Promise<ActionOutputs['ollama_unload']>;\n\t\tsend_response?: (\n\t\t\taction_event: ActionEvent<'ollama_unload', Backend, 'send_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'ollama_unload', Backend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "ping",
								"kind": "variable",
								"type_signature": "{\n\t\tsend_request?: (\n\t\t\taction_event: ActionEvent<'ping', Backend, 'send_request', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_response?: (\n\t\t\taction_event: ActionEvent<'ping', Backend, 'receive_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'ping', Backend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_error?: (\n\t\t\taction_event: ActionEvent<'ping', Backend, 'receive_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\treceive_request?: (\n\t\t\taction_event: ActionEvent<'ping', Backend, 'receive_request', 'handling'>,\n\t\t) => ActionOutputs['ping'] | Promise<ActionOutputs['ping']>;\n\t\tsend_response?: (\n\t\t\taction_event: ActionEvent<'ping', Backend, 'send_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "provider_load_status",
								"kind": "variable",
								"type_signature": "{\n\t\treceive_request?: (\n\t\t\taction_event: ActionEvent<'provider_load_status', Backend, 'receive_request', 'handling'>,\n\t\t) => ActionOutputs['provider_load_status'] | Promise<ActionOutputs['provider_load_status']>;\n\t\tsend_response?: (\n\t\t\taction_event: ActionEvent<'provider_load_status', Backend, 'send_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'provider_load_status', Backend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "provider_update_api_key",
								"kind": "variable",
								"type_signature": "{\n\t\treceive_request?: (\n\t\t\taction_event: ActionEvent<'provider_update_api_key', Backend, 'receive_request', 'handling'>,\n\t\t) =>\n\t\t\t| ActionOutputs['provider_update_api_key']\n\t\t\t| Promise<ActionOutputs['provider_update_api_key']>;\n\t\tsend_response?: (\n\t\t\taction_event: ActionEvent<'provider_update_api_key', Backend, 'send_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'provider_update_api_key', Backend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "session_load",
								"kind": "variable",
								"type_signature": "{\n\t\treceive_request?: (\n\t\t\taction_event: ActionEvent<'session_load', Backend, 'receive_request', 'handling'>,\n\t\t) => ActionOutputs['session_load'] | Promise<ActionOutputs['session_load']>;\n\t\tsend_response?: (\n\t\t\taction_event: ActionEvent<'session_load', Backend, 'send_response', 'handling'>,\n\t\t) => void | Promise<void>;\n\t\tsend_error?: (\n\t\t\taction_event: ActionEvent<'session_load', Backend, 'send_error', 'handling'>,\n\t\t) => void | Promise<void>;\n\t}"
							},
							{
								"name": "toggle_main_menu",
								"kind": "variable",
								"type_signature": "never"
							}
						]
					}
				]
			},
			{
				"path": "server/backend_actions_api.ts",
				"declarations": [
					{
						"name": "BackendActionsApi",
						"kind": "type",
						"source_line": 26,
						"type_signature": "BackendActionsApi",
						"properties": [
							{
								"name": "filer_change",
								"kind": "variable",
								"type_signature": "(input: ActionInputs['filer_change']) => Promise<void>"
							},
							{
								"name": "completion_progress",
								"kind": "variable",
								"type_signature": "(input: ActionInputs['completion_progress']) => Promise<void>"
							},
							{
								"name": "ollama_progress",
								"kind": "variable",
								"type_signature": "(input: ActionInputs['ollama_progress']) => Promise<void>"
							}
						]
					},
					{
						"name": "create_backend_actions_api",
						"kind": "function",
						"source_line": 32,
						"type_signature": "(backend: Backend): BackendActionsApi",
						"return_type": "BackendActionsApi",
						"parameters": [
							{
								"name": "backend",
								"type": "Backend"
							}
						]
					},
					{
						"name": "handle_filer_change",
						"kind": "function",
						"doc_comment": "Handle file system changes and notify clients.",
						"source_line": 139,
						"type_signature": "(change: WatcherChange, disknode: Disknode, backend: Backend, dir: string, filer: Filer): void",
						"return_type": "void",
						"parameters": [
							{
								"name": "change",
								"type": "WatcherChange"
							},
							{
								"name": "disknode",
								"type": "Disknode"
							},
							{
								"name": "backend",
								"type": "Backend"
							},
							{
								"name": "dir",
								"type": "string"
							},
							{
								"name": "filer",
								"type": "Filer"
							}
						]
					}
				],
				"dependencies": [
					"action_event.ts",
					"action_specs.ts",
					"diskfile_helpers.ts",
					"diskfile_types.ts"
				],
				"dependents": [
					"server/backend.ts",
					"server/server.ts"
				]
			},
			{
				"path": "server/backend_provider_chatgpt.ts",
				"declarations": [
					{
						"name": "BackendProviderChatgpt",
						"kind": "class",
						"source_line": 13,
						"extends": [
							"BackendProviderRemote<OpenAI>"
						],
						"implements": [],
						"members": [
							{
								"name": "name",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: BackendProviderOptions): BackendProviderChatgpt",
								"parameters": [
									{
										"name": "options",
										"type": "BackendProviderOptions"
									}
								]
							},
							{
								"name": "create_client",
								"kind": "function",
								"modifiers": [
									"protected"
								],
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "handle_streaming_completion",
								"kind": "function",
								"type_signature": "(options: CompletionHandlerOptions): Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { ...; } | ... 2 more ... | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"return_type": "Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { type: \"ollama\"; value: any; } | { ...; } | { ...; } | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"parameters": [
									{
										"name": "options",
										"type": "CompletionHandlerOptions"
									}
								]
							},
							{
								"name": "handle_non_streaming_completion",
								"kind": "function",
								"type_signature": "(options: CompletionHandlerOptions): Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { ...; } | ... 2 more ... | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"return_type": "Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { type: \"ollama\"; value: any; } | { ...; } | { ...; } | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"parameters": [
									{
										"name": "options",
										"type": "CompletionHandlerOptions"
									}
								]
							}
						]
					}
				],
				"dependencies": [
					"response_helpers.ts",
					"server/backend_provider.ts"
				],
				"dependents": [
					"server/server.ts"
				]
			},
			{
				"path": "server/backend_provider_claude.ts",
				"declarations": [
					{
						"name": "BackendProviderClaude",
						"kind": "class",
						"source_line": 13,
						"extends": [
							"BackendProviderRemote<Anthropic>"
						],
						"implements": [],
						"members": [
							{
								"name": "name",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: BackendProviderOptions): BackendProviderClaude",
								"parameters": [
									{
										"name": "options",
										"type": "BackendProviderOptions"
									}
								]
							},
							{
								"name": "create_client",
								"kind": "function",
								"modifiers": [
									"protected"
								],
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "handle_streaming_completion",
								"kind": "function",
								"type_signature": "(options: CompletionHandlerOptions): Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { ...; } | ... 2 more ... | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"return_type": "Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { type: \"ollama\"; value: any; } | { ...; } | { ...; } | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"parameters": [
									{
										"name": "options",
										"type": "CompletionHandlerOptions"
									}
								]
							},
							{
								"name": "handle_non_streaming_completion",
								"kind": "function",
								"type_signature": "(options: CompletionHandlerOptions): Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { ...; } | ... 2 more ... | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"return_type": "Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { type: \"ollama\"; value: any; } | { ...; } | { ...; } | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"parameters": [
									{
										"name": "options",
										"type": "CompletionHandlerOptions"
									}
								]
							}
						]
					}
				],
				"dependencies": [
					"response_helpers.ts",
					"server/backend_provider.ts"
				],
				"dependents": [
					"server/server.ts"
				]
			},
			{
				"path": "server/backend_provider_gemini.ts",
				"declarations": [
					{
						"name": "BackendProviderGemini",
						"kind": "class",
						"source_line": 14,
						"extends": [
							"BackendProviderRemote<GoogleGenerativeAI>"
						],
						"implements": [],
						"members": [
							{
								"name": "name",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: BackendProviderOptions): BackendProviderGemini",
								"parameters": [
									{
										"name": "options",
										"type": "BackendProviderOptions"
									}
								]
							},
							{
								"name": "create_client",
								"kind": "function",
								"modifiers": [
									"protected"
								],
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "handle_streaming_completion",
								"kind": "function",
								"type_signature": "(options: CompletionHandlerOptions): Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { ...; } | ... 2 more ... | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"return_type": "Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { type: \"ollama\"; value: any; } | { ...; } | { ...; } | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"parameters": [
									{
										"name": "options",
										"type": "CompletionHandlerOptions"
									}
								]
							},
							{
								"name": "handle_non_streaming_completion",
								"kind": "function",
								"type_signature": "(options: CompletionHandlerOptions): Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { ...; } | ... 2 more ... | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"return_type": "Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { type: \"ollama\"; value: any; } | { ...; } | { ...; } | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"parameters": [
									{
										"name": "options",
										"type": "CompletionHandlerOptions"
									}
								]
							}
						]
					}
				],
				"dependencies": [
					"response_helpers.ts",
					"server/backend_provider.ts"
				],
				"dependents": [
					"server/server.ts"
				]
			},
			{
				"path": "server/backend_provider_ollama.ts",
				"declarations": [
					{
						"name": "BackendProviderOllama",
						"kind": "class",
						"source_line": 10,
						"extends": [
							"BackendProviderLocal<Ollama>"
						],
						"implements": [],
						"members": [
							{
								"name": "name",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "create_client",
								"kind": "function",
								"modifiers": [
									"protected"
								],
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "load_status",
								"kind": "function",
								"type_signature": "(reload?: boolean): Promise<{ name: string; available: true; checked_at: number; } | { name: string; available: false; error: string; checked_at: number; }>",
								"return_type": "Promise<{ name: string; available: true; checked_at: number; } | { name: string; available: false; error: string; checked_at: number; }>",
								"parameters": [
									{
										"name": "reload",
										"type": "boolean",
										"default_value": "false"
									}
								]
							},
							{
								"name": "handle_streaming_completion",
								"kind": "function",
								"type_signature": "(options: CompletionHandlerOptions): Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { ...; } | ... 2 more ... | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"return_type": "Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { type: \"ollama\"; value: any; } | { ...; } | { ...; } | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"parameters": [
									{
										"name": "options",
										"type": "CompletionHandlerOptions"
									}
								]
							},
							{
								"name": "handle_non_streaming_completion",
								"kind": "function",
								"type_signature": "(options: CompletionHandlerOptions): Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { ...; } | ... 2 more ... | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"return_type": "Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { type: \"ollama\"; value: any; } | { ...; } | { ...; } | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"parameters": [
									{
										"name": "options",
										"type": "CompletionHandlerOptions"
									}
								]
							}
						]
					}
				],
				"dependencies": [
					"action_collections.ts",
					"provider_types.ts",
					"response_helpers.ts",
					"server/backend_provider.ts"
				],
				"dependents": [
					"server/server.ts"
				]
			},
			{
				"path": "server/backend_provider.ts",
				"declarations": [
					{
						"name": "CompletionHandler",
						"kind": "type",
						"source_line": 15,
						"type_signature": "CompletionHandler"
					},
					{
						"name": "CompletionOptions",
						"kind": "type",
						"source_line": 20,
						"type_signature": "CompletionOptions",
						"properties": [
							{
								"name": "frequency_penalty",
								"kind": "variable",
								"type_signature": "number"
							},
							{
								"name": "output_token_max",
								"kind": "variable",
								"type_signature": "number"
							},
							{
								"name": "presence_penalty",
								"kind": "variable",
								"type_signature": "number"
							},
							{
								"name": "seed",
								"kind": "variable",
								"type_signature": "number"
							},
							{
								"name": "stop_sequences",
								"kind": "variable",
								"type_signature": "Array<string>"
							},
							{
								"name": "system_message",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "temperature",
								"kind": "variable",
								"type_signature": "number"
							},
							{
								"name": "top_k",
								"kind": "variable",
								"type_signature": "number"
							},
							{
								"name": "top_p",
								"kind": "variable",
								"type_signature": "number"
							}
						]
					},
					{
						"name": "CompletionHandlerOptions",
						"kind": "type",
						"source_line": 33,
						"type_signature": "CompletionHandlerOptions",
						"properties": [
							{
								"name": "model",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "completion_options",
								"kind": "variable",
								"type_signature": "CompletionOptions"
							},
							{
								"name": "completion_messages",
								"kind": "variable",
								"type_signature": "Array<CompletionMessage> | undefined"
							},
							{
								"name": "prompt",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "progress_token",
								"kind": "variable",
								"type_signature": "Uuid",
								"doc_comment": "Opts into streaming notifications when provided."
							}
						]
					},
					{
						"name": "OnCompletionProgress",
						"kind": "type",
						"source_line": 42,
						"type_signature": "OnCompletionProgress"
					},
					{
						"name": "BackendProviderOptions",
						"kind": "type",
						"source_line": 44,
						"type_signature": "BackendProviderOptions",
						"properties": [
							{
								"name": "on_completion_progress",
								"kind": "variable",
								"type_signature": "OnCompletionProgress"
							},
							{
								"name": "api_key",
								"kind": "variable",
								"type_signature": "string | null"
							}
						]
					},
					{
						"name": "BackendProvider",
						"kind": "class",
						"doc_comment": "Base class for all backend AI providers.\nProvides shared functionality for completion handlers and logging.",
						"source_line": 53,
						"generic_params": [
							{
								"name": "TClient",
								"default_type": "unknown"
							}
						],
						"members": [
							{
								"name": "name",
								"kind": "variable",
								"modifiers": [
									"abstract",
									"readonly"
								],
								"type_signature": "string"
							},
							{
								"name": "client",
								"kind": "variable",
								"modifiers": [
									"protected"
								],
								"type_signature": "TClient | null"
							},
							{
								"name": "provider_status",
								"kind": "variable",
								"modifiers": [
									"protected"
								],
								"type_signature": "ProviderStatus | null"
							},
							{
								"name": "on_completion_progress",
								"kind": "variable",
								"modifiers": [
									"protected",
									"readonly"
								],
								"type_signature": "OnCompletionProgress"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "<TClient = unknown>(options: BackendProviderOptions): BackendProvider<TClient>",
								"parameters": [
									{
										"name": "options",
										"type": "BackendProviderOptions"
									}
								]
							},
							{
								"name": "handle_streaming_completion",
								"kind": "function",
								"modifiers": [
									"abstract"
								],
								"type_signature": "(options: CompletionHandlerOptions): Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { ...; } | ... 2 more ... | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"return_type": "Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { type: \"ollama\"; value: any; } | { ...; } | { ...; } | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"parameters": [
									{
										"name": "options",
										"type": "CompletionHandlerOptions"
									}
								]
							},
							{
								"name": "handle_non_streaming_completion",
								"kind": "function",
								"modifiers": [
									"abstract"
								],
								"type_signature": "(options: CompletionHandlerOptions): Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { ...; } | ... 2 more ... | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"return_type": "Promise<{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { type: \"ollama\"; value: any; } | { ...; } | { ...; } | { ...; }; }; _meta?: { ...; } | undefined; }>",
								"parameters": [
									{
										"name": "options",
										"type": "CompletionHandlerOptions"
									}
								]
							},
							{
								"name": "get_handler",
								"kind": "function",
								"type_signature": "(streaming: boolean): CompletionHandler",
								"return_type": "CompletionHandler",
								"parameters": [
									{
										"name": "streaming",
										"type": "boolean"
									}
								]
							},
							{
								"name": "create_client",
								"kind": "function",
								"modifiers": [
									"protected",
									"abstract"
								],
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "get_client",
								"kind": "function",
								"modifiers": [
									"abstract"
								],
								"doc_comment": "Get the client, throwing an error if not configured.",
								"type_signature": "(): TClient",
								"return_type": "TClient",
								"parameters": []
							},
							{
								"name": "load_status",
								"kind": "function",
								"modifiers": [
									"abstract"
								],
								"doc_comment": "Get status for this provider. Override for custom availability checks.",
								"type_signature": "(reload?: boolean | undefined): Promise<{ name: string; available: true; checked_at: number; } | { name: string; available: false; error: string; checked_at: number; }>",
								"return_type": "Promise<{ name: string; available: true; checked_at: number; } | { name: string; available: false; error: string; checked_at: number; }>",
								"parameters": [
									{
										"name": "reload",
										"type": "boolean | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "invalidate_status",
								"kind": "function",
								"doc_comment": "Invalidate cached status, forcing next load to fetch fresh data.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "validate_streaming_requirements",
								"kind": "function",
								"modifiers": [
									"protected"
								],
								"doc_comment": "Validates that progress_token is provided for streaming requests.",
								"type_signature": "(progress_token?: (string & $brand<\"Uuid\">) | undefined): asserts progress_token",
								"return_type": "void",
								"parameters": [
									{
										"name": "progress_token",
										"type": "(string & $brand<\"Uuid\">) | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "send_streaming_progress",
								"kind": "function",
								"modifiers": [
									"protected"
								],
								"doc_comment": "Sends streaming progress notification to frontend.",
								"type_signature": "(progress_token: string & $brand<\"Uuid\">, chunk: { [x: string]: unknown; model?: string | undefined; created_at?: string | undefined; done?: boolean | undefined; message?: { [x: string]: unknown; role: string; content: string; } | undefined; } | undefined): Promise<...>",
								"return_type": "Promise<void>",
								"parameters": [
									{
										"name": "progress_token",
										"type": "string & $brand<\"Uuid\">"
									},
									{
										"name": "chunk",
										"type": "{ [x: string]: unknown; model?: string | undefined; created_at?: string | undefined; done?: boolean | undefined; message?: { [x: string]: unknown; role: string; content: string; } | undefined; } | undefined"
									}
								]
							},
							{
								"name": "log_streaming_chunk",
								"kind": "function",
								"modifiers": [
									"protected"
								],
								"doc_comment": "Logs streaming chunk information.",
								"type_signature": "(chunk: unknown): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "chunk",
										"type": "unknown"
									}
								]
							},
							{
								"name": "log_streaming_completion",
								"kind": "function",
								"modifiers": [
									"protected"
								],
								"doc_comment": "Logs streaming completion information.",
								"type_signature": "(accumulated_length: number): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "accumulated_length",
										"type": "number"
									}
								]
							},
							{
								"name": "log_non_streaming_response",
								"kind": "function",
								"modifiers": [
									"protected"
								],
								"doc_comment": "Logs non-streaming response information.",
								"type_signature": "(response: unknown): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "response",
										"type": "unknown"
									}
								]
							},
							{
								"name": "log_api_response",
								"kind": "function",
								"modifiers": [
									"protected"
								],
								"doc_comment": "Logs final API response information.",
								"type_signature": "(api_response: unknown): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "api_response",
										"type": "unknown"
									}
								]
							}
						]
					},
					{
						"name": "BackendProviderRemote",
						"kind": "class",
						"doc_comment": "Base class for remote API-based providers (Claude, ChatGPT, Gemini).\nHandles API key management and provides default error handling for missing keys.",
						"source_line": 137,
						"extends": [
							"BackendProvider<TClient>"
						],
						"implements": [],
						"generic_params": [
							{
								"name": "TClient",
								"default_type": "unknown"
							}
						],
						"members": [
							{
								"name": "api_key",
								"kind": "variable",
								"modifiers": [
									"protected"
								],
								"type_signature": "string | null"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "<TClient = unknown>(options: BackendProviderOptions): BackendProviderRemote<TClient>",
								"parameters": [
									{
										"name": "options",
										"type": "BackendProviderOptions"
									}
								]
							},
							{
								"name": "set_api_key",
								"kind": "function",
								"doc_comment": "Update the API key and recreate the client.",
								"type_signature": "(api_key: string | null): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "api_key",
										"type": "string | null"
									}
								]
							},
							{
								"name": "get_client",
								"kind": "function",
								"type_signature": "(): TClient",
								"return_type": "TClient",
								"parameters": []
							},
							{
								"name": "load_status",
								"kind": "function",
								"type_signature": "(reload?: boolean): Promise<{ name: string; available: true; checked_at: number; } | { name: string; available: false; error: string; checked_at: number; }>",
								"return_type": "Promise<{ name: string; available: true; checked_at: number; } | { name: string; available: false; error: string; checked_at: number; }>",
								"parameters": [
									{
										"name": "reload",
										"type": "boolean",
										"default_value": "false"
									}
								]
							}
						]
					},
					{
						"name": "BackendProviderLocal",
						"kind": "class",
						"doc_comment": "Base class for locally-installed providers (Ollama).\nHandles installation checking and provides default error handling for missing installations.",
						"source_line": 183,
						"extends": [
							"BackendProvider<TClient>"
						],
						"implements": [],
						"generic_params": [
							{
								"name": "TClient",
								"default_type": "unknown"
							}
						],
						"members": [
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "<TClient = unknown>(options: BackendProviderOptions): BackendProviderLocal<TClient>",
								"parameters": [
									{
										"name": "options",
										"type": "BackendProviderOptions"
									}
								]
							},
							{
								"name": "get_client",
								"kind": "function",
								"type_signature": "(): TClient",
								"return_type": "TClient",
								"parameters": []
							}
						]
					}
				],
				"dependencies": [
					"jsonrpc_errors.ts",
					"provider_types.ts"
				],
				"dependents": [
					"server/backend_provider_chatgpt.ts",
					"server/backend_provider_claude.ts",
					"server/backend_provider_gemini.ts",
					"server/backend_provider_ollama.ts"
				]
			},
			{
				"path": "server/backend_websocket_transport.ts",
				"declarations": [
					{
						"name": "BackendWebsocketTransport",
						"kind": "class",
						"source_line": 24,
						"extends": [],
						"implements": [
							"Transport"
						],
						"members": [
							{
								"name": "transport_name",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "add_connection",
								"kind": "function",
								"doc_comment": "Add a new WebSocket connection.",
								"type_signature": "(ws: WSContext<unknown>): string & $brand<\"Uuid\">",
								"return_type": "string & $brand<\"Uuid\">",
								"parameters": [
									{
										"name": "ws",
										"type": "WSContext<unknown>"
									}
								]
							},
							{
								"name": "remove_connection",
								"kind": "function",
								"doc_comment": "Remove a WebSocket connection.",
								"type_signature": "(ws: WSContext<unknown>): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "ws",
										"type": "WSContext<unknown>"
									}
								]
							},
							{
								"name": "send",
								"kind": "function",
								"type_signature": "(message: { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }): Promise<...>",
								"return_type": "Promise<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); message...",
								"parameters": [
									{
										"name": "message",
										"type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }"
									}
								]
							},
							{
								"name": "send",
								"kind": "function",
								"type_signature": "(message: { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }): Promise<...>",
								"return_type": "Promise<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); message...",
								"parameters": [
									{
										"name": "message",
										"type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }"
									}
								]
							},
							{
								"name": "send",
								"kind": "function",
								"type_signature": "(message: { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }): Promise<...>",
								"return_type": "Promise<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); message...",
								"parameters": [
									{
										"name": "message",
										"type": "{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; method: string; params?: { [x: string]: unknown; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; } | undefined; }"
									}
								]
							},
							{
								"name": "is_ready",
								"kind": "function",
								"type_signature": "(): boolean",
								"return_type": "boolean",
								"parameters": []
							}
						]
					}
				],
				"dependencies": [
					"jsonrpc_errors.ts",
					"jsonrpc_helpers.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"server/register_websocket_actions.ts"
				]
			},
			{
				"path": "server/backend.ts",
				"declarations": [
					{
						"name": "FilerChangeHandler",
						"kind": "type",
						"doc_comment": "Function type for handling file system changes.",
						"source_line": 38,
						"type_signature": "FilerChangeHandler"
					},
					{
						"name": "FilerInstance",
						"kind": "type",
						"doc_comment": "Structure to hold a Filer and its cleanup function.",
						"source_line": 49,
						"type_signature": "FilerInstance",
						"properties": [
							{
								"name": "filer",
								"kind": "variable",
								"type_signature": "Filer"
							},
							{
								"name": "cleanup_promise",
								"kind": "variable",
								"type_signature": "Promise<() => void>"
							}
						]
					},
					{
						"name": "BackendOptions",
						"kind": "type",
						"source_line": 54,
						"type_signature": "BackendOptions",
						"properties": [
							{
								"name": "zzz_dir",
								"kind": "variable",
								"type_signature": "string",
								"doc_comment": "Zzz directory path, defaults to `.zzz`."
							},
							{
								"name": "scoped_dirs",
								"kind": "variable",
								"type_signature": "Array<string>",
								"doc_comment": "Filesystem paths that Zzz can access for user files.\nDefaults to `ZZZ_SCOPED_DIRS` from env."
							},
							{
								"name": "config",
								"kind": "variable",
								"type_signature": "ZzzConfig",
								"doc_comment": "Configuration for the backend and AI providers."
							},
							{
								"name": "action_specs",
								"kind": "variable",
								"type_signature": "Array<ActionSpecUnion>",
								"doc_comment": "Action specifications that determine what the backend can do."
							},
							{
								"name": "action_handlers",
								"kind": "variable",
								"type_signature": "BackendActionHandlers",
								"doc_comment": "Handler function for processing client messages."
							},
							{
								"name": "handle_filer_change",
								"kind": "variable",
								"type_signature": "FilerChangeHandler",
								"doc_comment": "Handler function for file system changes."
							},
							{
								"name": "log",
								"kind": "variable",
								"type_signature": "Logger | null | undefined",
								"doc_comment": "Optional logger instance.\nDisabled when `null`, and `undefined` falls back to a new `Logger` instance."
							}
						]
					},
					{
						"name": "Backend",
						"kind": "class",
						"doc_comment": "Server for managing the Zzz application state and handling client messages.",
						"source_line": 90,
						"extends": [],
						"implements": [
							"ActionEventEnvironment"
						],
						"members": [
							{
								"name": "executor",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ActionExecutor"
							},
							{
								"name": "zzz_dir",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "The full path to the Zzz directory.",
								"type_signature": "DiskfileDirectoryPath"
							},
							{
								"name": "scoped_dirs",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Filesystem paths that Zzz can access for user files.",
								"type_signature": "ReadonlyArray<DiskfileDirectoryPath>"
							},
							{
								"name": "config",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ZzzConfig"
							},
							{
								"name": "peer",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ActionPeer"
							},
							{
								"name": "api",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "API for backend-initiated actions.",
								"type_signature": "BackendActionsApi"
							},
							{
								"name": "scoped_fs",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "`ScopedFs` filesystem interface that restricts operations to allowed directories.",
								"type_signature": "ScopedFs"
							},
							{
								"name": "log",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Logger | null"
							},
							{
								"name": "filers",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Map<string, FilerInstance>"
							},
							{
								"name": "action_registry",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "providers",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Available AI providers.",
								"type_signature": "Array<BackendProvider>"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: BackendOptions): Backend",
								"parameters": [
									{
										"name": "options",
										"type": "BackendOptions"
									}
								]
							},
							{
								"name": "lookup_action_handler",
								"kind": "function",
								"type_signature": "(method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\", phase: \"send_request\" | ... 7 more ... | \"execute\"): ((event: any) => any) | undefined",
								"return_type": "((event: any) => any) | undefined",
								"parameters": [
									{
										"name": "method",
										"type": "\"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\""
									},
									{
										"name": "phase",
										"type": "\"send_request\" | \"receive_request\" | \"send_response\" | \"receive_response\" | \"send_error\" | \"receive_error\" | \"send\" | \"receive\" | \"execute\""
									}
								]
							},
							{
								"name": "lookup_action_spec",
								"kind": "function",
								"type_signature": "(method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"): { ...; } | ... 2 more ... | undefined",
								"return_type": "{ method: \"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\"; ... 6 more ...; async: true; } | { ...; } | { ...; } | undefined",
								"parameters": [
									{
										"name": "method",
										"type": "\"completion_create\" | \"completion_progress\" | \"directory_create\" | \"diskfile_delete\" | \"diskfile_update\" | \"filer_change\" | \"ollama_copy\" | \"ollama_create\" | \"ollama_delete\" | ... 10 more ... | \"toggle_main_menu\""
									}
								]
							},
							{
								"name": "lookup_provider",
								"kind": "function",
								"type_signature": "<T extends keyof BackendProviders>(provider_name: T): BackendProviders[T]",
								"return_type": "BackendProviders[T]",
								"parameters": [
									{
										"name": "provider_name",
										"type": "T"
									}
								]
							},
							{
								"name": "receive",
								"kind": "function",
								"doc_comment": "Process a singular JSON-RPC message and return a response.\nLike MCP, Zzz breaks from JSON-RPC by not supporting batching.",
								"type_signature": "(message: unknown): Promise<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { ...; }; } | { ...; } | null>",
								"return_type": "Promise<{ [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number; result: { [x: string]: unknown; _meta?: { [x: string]: unknown; } | undefined; }; } | { [x: string]: unknown; jsonrpc: \"2.0\"; id: string | number | null; error: { [x: string]: unknown; code: -32700 | ... 4 more ... | (number & $brand<...>); message...",
								"parameters": [
									{
										"name": "message",
										"type": "unknown"
									}
								]
							},
							{
								"name": "destroy",
								"kind": "function",
								"doc_comment": "Server teardown and cleanup.",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							},
							{
								"name": "add_provider",
								"kind": "function",
								"type_signature": "(provider: BackendProvider<unknown>): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "provider",
										"type": "BackendProvider<unknown>"
									}
								]
							}
						]
					}
				],
				"dependencies": [
					"action_peer.ts",
					"action_registry.ts",
					"constants.ts",
					"diskfile_types.ts",
					"jsonrpc_errors.ts",
					"server/backend_actions_api.ts",
					"server/scoped_fs.ts"
				],
				"dependents": [
					"server/server.ts"
				]
			},
			{
				"path": "server/env_file_helpers.ts",
				"declarations": [
					{
						"name": "update_env_variable",
						"kind": "function",
						"doc_comment": "Updates or adds an environment variable in the .env file.\nPreserves existing formatting, comments, and other variables.\n\nBehavior:\n- **Duplicate keys**: Updates the LAST occurrence (matches dotenv behavior)\n- **Inline comments**: Preserved after the value (e.g., `KEY=value # comment`)\n- **Quote style**: Preserved from original (quoted/unquoted)",
						"source_line": 38,
						"type_signature": "(key: string, value: string, options?: UpdateEnvVariableOptions): Promise<void>",
						"return_type": "Promise<void>",
						"parameters": [
							{
								"name": "key",
								"type": "string",
								"description": "The environment variable name (e.g., 'SOME_CONFIGURATION_KEY')"
							},
							{
								"name": "value",
								"type": "string",
								"description": "The new value for the environment variable"
							},
							{
								"name": "options",
								"type": "UpdateEnvVariableOptions",
								"description": "Optional configuration for file path and operations",
								"default_value": "{}"
							}
						]
					},
					{
						"name": "UpdateEnvVariableOptions",
						"kind": "type",
						"doc_comment": "Options for updating environment variables in a .env file.",
						"source_line": 10,
						"type_signature": "UpdateEnvVariableOptions",
						"properties": [
							{
								"name": "env_file_path",
								"kind": "variable",
								"type_signature": "string",
								"doc_comment": "Path to the .env file (defaults to `./.env`)"
							},
							{
								"name": "read_file",
								"kind": "variable",
								"type_signature": "(path: string, encoding: string) => Promise<string>",
								"doc_comment": "Function to read file contents (defaults to node:fs/promises readFile)"
							},
							{
								"name": "write_file",
								"kind": "variable",
								"type_signature": "(path: string, content: string, encoding: string) => Promise<void>",
								"doc_comment": "Function to write file contents (defaults to node:fs/promises writeFile)"
							}
						]
					}
				],
				"dependents": [
					"server/backend_action_handlers.ts"
				]
			},
			{
				"path": "server/helpers.ts",
				"declarations": [
					{
						"name": "save_completion_response_to_disk",
						"kind": "function",
						"source_line": 9,
						"type_signature": "(input: { completion_request: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; prompt: string; completion_messages?: { ...; }[] | undefined; }; _meta?: { ...; } | undefined; }, output: { ...; }, zzz_dir: string, scoped_fs: ScopedFs): Promise<...>",
						"return_type": "Promise<void>",
						"parameters": [
							{
								"name": "input",
								"type": "{ completion_request: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; prompt: string; completion_messages?: { ...; }[] | undefined; }; _meta?: { ...; } | undefined; }"
							},
							{
								"name": "output",
								"type": "{ completion_response: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; data: { type: \"ollama\"; value: any; } | { ...; } | { ...; } | { ...; }; }; _meta?: { ...; } | undefined; }"
							},
							{
								"name": "zzz_dir",
								"type": "string"
							},
							{
								"name": "scoped_fs",
								"type": "ScopedFs"
							}
						]
					}
				],
				"dependencies": [
					"action_collections.ts",
					"constants.ts",
					"server/scoped_fs.ts"
				],
				"dependents": [
					"server/backend_action_handlers.ts"
				]
			},
			{
				"path": "server/register_http_actions.ts",
				"declarations": [
					{
						"name": "RegisterActionsOptions",
						"kind": "type",
						"source_line": 15,
						"type_signature": "RegisterActionsOptions",
						"properties": [
							{
								"name": "path",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "app",
								"kind": "variable",
								"type_signature": "Hono"
							},
							{
								"name": "backend",
								"kind": "variable",
								"type_signature": "Backend"
							}
						]
					},
					{
						"name": "register_http_actions",
						"kind": "function",
						"doc_comment": "Registers HTTP endpoints for all service actions in the schema registry.",
						"source_line": 24,
						"type_signature": "({ path, app, backend }: RegisterActionsOptions): void",
						"return_type": "void",
						"parameters": [
							{
								"name": "__0",
								"type": "RegisterActionsOptions"
							}
						]
					}
				],
				"dependencies": [
					"constants.ts",
					"jsonrpc_errors.ts",
					"jsonrpc_helpers.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"server/server.ts"
				]
			},
			{
				"path": "server/register_websocket_actions.ts",
				"declarations": [
					{
						"name": "RegisterWebsocketActionsOptions",
						"kind": "type",
						"source_line": 14,
						"type_signature": "RegisterWebsocketActionsOptions",
						"properties": [
							{
								"name": "path",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "app",
								"kind": "variable",
								"type_signature": "Hono"
							},
							{
								"name": "backend",
								"kind": "variable",
								"type_signature": "Backend"
							},
							{
								"name": "upgradeWebSocket",
								"kind": "variable",
								"type_signature": "ReturnType<typeof createNodeWebSocket>['upgradeWebSocket']",
								"doc_comment": ""
							},
							{
								"name": "transport",
								"kind": "variable",
								"type_signature": "BackendWebsocketTransport"
							}
						]
					},
					{
						"name": "register_websocket_actions",
						"kind": "function",
						"doc_comment": "Registers WebSocket endpoints for all service actions in the schema registry.",
						"source_line": 28,
						"type_signature": "({ path, app, backend, upgradeWebSocket, transport, }: RegisterWebsocketActionsOptions): void",
						"return_type": "void",
						"parameters": [
							{
								"name": "__0",
								"type": "RegisterWebsocketActionsOptions"
							}
						]
					}
				],
				"dependencies": [
					"constants.ts",
					"jsonrpc_errors.ts",
					"jsonrpc_helpers.ts",
					"server/backend_websocket_transport.ts"
				],
				"dependents": [
					"server/server.ts"
				]
			},
			{
				"path": "server/scoped_fs.ts",
				"declarations": [
					{
						"name": "ScopedFsPath",
						"kind": "type",
						"doc_comment": "A branded type for representing safely normalized filesystem paths",
						"source_line": 14,
						"type_signature": "$ZodBranded<ZodPipe<ZodString, ZodTransform<string, string>>, \"ScopedFsPath\", \"out\">"
					},
					{
						"name": "ScopedFs",
						"kind": "class",
						"doc_comment": "Provides a secure wrapper around filesystem operations to prevent path traversal attacks and\nunauthorized file access.\n\nSecurity features:\n- Restricts operations to specified allowed paths\n- Prevents path traversal attacks by normalizing all paths\n- Blocks access to symlinks to avoid arbitrary file access\n- Requires absolute paths to avoid relative path confusion\n- Validates the entire path hierarchy for each operation\n\n`ScopedFs` should be used whenever performing filesystem operations on\nuser-provided or untrusted input paths to ensure proper access boundaries.",
						"source_line": 35,
						"members": [
							{
								"name": "allowed_paths",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "ReadonlyArray<ScopedFsPath>"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"doc_comment": "Create a new ScopedFs instance with the specified allowed paths.",
								"type_signature": "(allowed_paths: readonly string[] | string[]): ScopedFs",
								"parameters": [
									{
										"name": "allowed_paths",
										"type": "readonly string[] | string[]",
										"description": "Array of absolute paths that operations will be restricted to"
									}
								]
							},
							{
								"name": "is_path_allowed",
								"kind": "function",
								"doc_comment": "Checks if the given path is allowed based on the paths provided during instantiation.",
								"type_signature": "(path_to_check: string): boolean",
								"return_type": "boolean",
								"parameters": [
									{
										"name": "path_to_check",
										"type": "string"
									}
								]
							},
							{
								"name": "is_path_safe",
								"kind": "function",
								"doc_comment": "Performs a complete security check on a path, including symlink validation",
								"type_signature": "(path_to_check: string): Promise<boolean>",
								"return_type": "Promise<boolean>",
								"parameters": [
									{
										"name": "path_to_check",
										"type": "string"
									}
								]
							},
							{
								"name": "read_file",
								"kind": "function",
								"type_signature": "(file_path: string, options?: (ObjectEncodingOptions & Abortable & { flag?: OpenMode | undefined; }) | BufferEncoding | null | undefined): Promise<...>",
								"return_type": "Promise<string | Buffer<ArrayBufferLike>>",
								"parameters": [
									{
										"name": "file_path",
										"type": "string"
									},
									{
										"name": "options",
										"type": "(ObjectEncodingOptions & Abortable & { flag?: OpenMode | undefined; }) | BufferEncoding | null | undefined",
										"default_value": "'utf8'"
									}
								]
							},
							{
								"name": "write_file",
								"kind": "function",
								"type_signature": "(file_path: string, data: string | ArrayBufferView<ArrayBufferLike> | Iterable<string | ArrayBufferView<ArrayBufferLike>> | AsyncIterable<...> | Stream, options?: BufferEncoding | ... 2 more ... | undefined): Promise<...>",
								"return_type": "Promise<void>",
								"parameters": [
									{
										"name": "file_path",
										"type": "string"
									},
									{
										"name": "data",
										"type": "string | ArrayBufferView<ArrayBufferLike> | Iterable<string | ArrayBufferView<ArrayBufferLike>> | AsyncIterable<...> | Stream"
									},
									{
										"name": "options",
										"type": "BufferEncoding | (ObjectEncodingOptions & { mode?: Mode | undefined; flag?: OpenMode | undefined; flush?: boolean | undefined; } & Abortable) | null | undefined",
										"default_value": "'utf8'"
									}
								]
							},
							{
								"name": "rm",
								"kind": "function",
								"type_signature": "(path_to_remove: string, options?: RmOptions | undefined): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": [
									{
										"name": "path_to_remove",
										"type": "string"
									},
									{
										"name": "options",
										"type": "RmOptions | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "mkdir",
								"kind": "function",
								"type_signature": "(dir_path: string, options?: MakeDirectoryOptions | undefined): Promise<string | undefined>",
								"return_type": "Promise<string | undefined>",
								"parameters": [
									{
										"name": "dir_path",
										"type": "string"
									},
									{
										"name": "options",
										"type": "MakeDirectoryOptions | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "readdir",
								"kind": "function",
								"type_signature": "(path: PathLike, options?: BufferEncoding | (ObjectEncodingOptions & { withFileTypes?: false | undefined; recursive?: boolean | undefined; }) | null | undefined): Promise<...>",
								"return_type": "Promise<string[]>",
								"parameters": [
									{
										"name": "path",
										"type": "PathLike"
									},
									{
										"name": "options",
										"type": "BufferEncoding | (ObjectEncodingOptions & { withFileTypes?: false | undefined; recursive?: boolean | undefined; }) | null | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "readdir",
								"kind": "function",
								"type_signature": "(path: PathLike, options?: BufferEncoding | (ObjectEncodingOptions & { withFileTypes?: false | undefined; recursive?: boolean | undefined; }) | null | undefined): Promise<...>",
								"return_type": "Promise<string[]>",
								"parameters": [
									{
										"name": "path",
										"type": "PathLike"
									},
									{
										"name": "options",
										"type": "BufferEncoding | (ObjectEncodingOptions & { withFileTypes?: false | undefined; recursive?: boolean | undefined; }) | null | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "readdir",
								"kind": "function",
								"type_signature": "(path: PathLike, options?: BufferEncoding | (ObjectEncodingOptions & { withFileTypes?: false | undefined; recursive?: boolean | undefined; }) | null | undefined): Promise<...>",
								"return_type": "Promise<string[]>",
								"parameters": [
									{
										"name": "path",
										"type": "PathLike"
									},
									{
										"name": "options",
										"type": "BufferEncoding | (ObjectEncodingOptions & { withFileTypes?: false | undefined; recursive?: boolean | undefined; }) | null | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "stat",
								"kind": "function",
								"type_signature": "(path_to_stat: string, options?: StatOptions | undefined): Promise<Stats>",
								"return_type": "Promise<Stats>",
								"parameters": [
									{
										"name": "path_to_stat",
										"type": "string"
									},
									{
										"name": "options",
										"type": "StatOptions | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "stat",
								"kind": "function",
								"type_signature": "(path_to_stat: string, options?: StatOptions | undefined): Promise<Stats>",
								"return_type": "Promise<Stats>",
								"parameters": [
									{
										"name": "path_to_stat",
										"type": "string"
									},
									{
										"name": "options",
										"type": "StatOptions | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "stat",
								"kind": "function",
								"type_signature": "(path_to_stat: string, options?: StatOptions | undefined): Promise<Stats>",
								"return_type": "Promise<Stats>",
								"parameters": [
									{
										"name": "path_to_stat",
										"type": "string"
									},
									{
										"name": "options",
										"type": "StatOptions | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "copy_file",
								"kind": "function",
								"type_signature": "(source: string, destination: string, mode?: number | undefined): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": [
									{
										"name": "source",
										"type": "string"
									},
									{
										"name": "destination",
										"type": "string"
									},
									{
										"name": "mode",
										"type": "number | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "exists",
								"kind": "function",
								"type_signature": "(path_to_check: string): Promise<boolean>",
								"return_type": "Promise<boolean>",
								"parameters": [
									{
										"name": "path_to_check",
										"type": "string"
									}
								]
							}
						]
					},
					{
						"name": "PathNotAllowedError",
						"kind": "class",
						"doc_comment": "Error thrown when a path is not allowed",
						"source_line": 241,
						"extends": [
							"Error"
						],
						"implements": [],
						"members": [
							{
								"name": "name",
								"kind": "variable"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(path: string, options?: ErrorOptions | undefined): PathNotAllowedError",
								"parameters": [
									{
										"name": "path",
										"type": "string"
									},
									{
										"name": "options",
										"type": "ErrorOptions | undefined",
										"optional": true
									}
								]
							}
						]
					},
					{
						"name": "SymlinkNotAllowedError",
						"kind": "class",
						"doc_comment": "Error thrown when a path is a symlink",
						"source_line": 252,
						"extends": [
							"Error"
						],
						"implements": [],
						"members": [
							{
								"name": "name",
								"kind": "variable"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(path: string, options?: ErrorOptions | undefined): SymlinkNotAllowedError",
								"parameters": [
									{
										"name": "path",
										"type": "string"
									},
									{
										"name": "options",
										"type": "ErrorOptions | undefined",
										"optional": true
									}
								]
							}
						]
					}
				],
				"dependents": [
					"server/backend.ts",
					"server/helpers.ts"
				]
			},
			{
				"path": "server/security.ts",
				"declarations": [
					{
						"name": "parse_allowed_origins",
						"kind": "function",
						"doc_comment": "Parses ALLOWED_ORIGINS env var into regex matchers for request source verification.\nThis is NOT a CSRF protection mechanism - it's a simple origin/referer allowlist\nthat verifies requests are coming from expected sources.\n\nAccepts comma-separated patterns with limited wildcards:\n- Exact origins: `https://api.example.com`\n- Wildcard subdomains: `https://*.example.com` (matches exactly one subdomain level)\n- Multiple wildcards: `https://*.staging.*.example.com` (for deep subdomains)\n- Wildcard ports: `http://localhost:*` (matches any port or no port)\n- IPv6 addresses: `http://[::1]:3000`, `https://[2001:db8::1]`\n- Combined: `https://*.example.com:*`\n\nExamples:\n- `http://localhost:3000,https://prod.example.com`\n- `https://*.api.example.com,http://127.0.0.1:*`\n- `http://[::1]:*,https://*.*.corp.example.com:*`",
						"source_line": 22,
						"type_signature": "(env_value: string | undefined): RegExp[]",
						"return_type": "RegExp[]",
						"parameters": [
							{
								"name": "env_value",
								"type": "string | undefined"
							}
						]
					},
					{
						"name": "should_allow_origin",
						"kind": "function",
						"doc_comment": "Tests if a request source (origin or referer) matches any of the allowed patterns.\nPattern matching is case-insensitive for domains (as per web standards).",
						"source_line": 35,
						"type_signature": "(origin: string, allowed_patterns: RegExp[]): boolean",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "origin",
								"type": "string"
							},
							{
								"name": "allowed_patterns",
								"type": "RegExp[]"
							}
						]
					},
					{
						"name": "verify_request_source",
						"kind": "function",
						"doc_comment": "Middleware that verifies the request source against an allowlist.\n\nNOT a CSRF protection - this is a simple origin/referer check that:\n- Checks the Origin header first (if present)\n- Falls back to Referer header (if no Origin)\n- Allows requests without Origin/Referer headers (direct access, curl, etc.)\n\nThis is useful for:\n- Protecting locally-running services from being called by\n  untrusted websites as the user browses the web\n- Restricting which domains can make requests to your API\n- Preventing embedding of your service in unexpected sites\n- Basic source verification (but NOT security-critical CSRF protection)",
						"source_line": 55,
						"type_signature": "(allowed_patterns: RegExp[]): Handler",
						"return_type": "Handler",
						"parameters": [
							{
								"name": "allowed_patterns",
								"type": "RegExp[]",
								"description": "Array of compiled regex patterns from `parse_allowed_origins`"
							}
						]
					}
				],
				"dependents": [
					"server/server.ts"
				]
			},
			{
				"path": "server/server_helpers.ts",
				"declarations": [
					{
						"name": "noop_middleware",
						"kind": "function",
						"source_line": 3,
						"type_signature": "(c: Context<any, any, BlankInput>, next: Next): any",
						"return_type": "any",
						"parameters": [
							{
								"name": "c",
								"type": "Context<any, any, BlankInput>"
							},
							{
								"name": "next",
								"type": "Next"
							}
						]
					}
				]
			},
			{
				"path": "server/server_info.ts",
				"declarations": [
					{
						"name": "ServerInfo",
						"kind": "type",
						"doc_comment": "Information about the running server, stored in server.json",
						"source_line": 24,
						"type_signature": "ZodObject<{ version: ZodNumber; pid: ZodNumber; port: ZodNumber; started: ZodString; zzz_version: ZodString; }, $strict>"
					},
					{
						"name": "server_info_get_path",
						"kind": "function",
						"doc_comment": "Returns the full path to server.json",
						"source_line": 41,
						"type_signature": "(zzz_dir: string): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "zzz_dir",
								"type": "string"
							}
						]
					},
					{
						"name": "server_info_read",
						"kind": "function",
						"doc_comment": "Reads and validates server.json, deleting and returning null if corrupt or wrong version",
						"source_line": 48,
						"type_signature": "(zzz_dir: string): Promise<{ version: number; pid: number; port: number; started: string; zzz_version: string; } | null>",
						"return_type": "Promise<{ version: number; pid: number; port: number; started: string; zzz_version: string; } | null>",
						"parameters": [
							{
								"name": "zzz_dir",
								"type": "string"
							}
						]
					},
					{
						"name": "server_info_check_stale",
						"kind": "function",
						"doc_comment": "Returns server info if running, otherwise deletes stale file and returns null",
						"source_line": 82,
						"type_signature": "(zzz_dir: string): Promise<{ version: number; pid: number; port: number; started: string; zzz_version: string; } | null>",
						"return_type": "Promise<{ version: number; pid: number; port: number; started: string; zzz_version: string; } | null>",
						"parameters": [
							{
								"name": "zzz_dir",
								"type": "string"
							}
						]
					},
					{
						"name": "ServerInfoWriteOptions",
						"kind": "type",
						"source_line": 95,
						"type_signature": "ServerInfoWriteOptions",
						"properties": [
							{
								"name": "zzz_dir",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "port",
								"kind": "variable",
								"type_signature": "number"
							},
							{
								"name": "zzz_version",
								"kind": "variable",
								"type_signature": "string"
							}
						]
					},
					{
						"name": "server_info_write",
						"kind": "function",
						"doc_comment": "Writes server info to server.json atomically, returns the path",
						"source_line": 104,
						"type_signature": "(options: ServerInfoWriteOptions): Promise<string>",
						"return_type": "Promise<string>",
						"parameters": [
							{
								"name": "options",
								"type": "ServerInfoWriteOptions"
							}
						]
					},
					{
						"name": "server_info_remove",
						"kind": "function",
						"doc_comment": "Remove server info file (idempotent - ignores if already removed)",
						"source_line": 142,
						"type_signature": "(zzz_dir: string): Promise<void>",
						"return_type": "Promise<void>",
						"parameters": [
							{
								"name": "zzz_dir",
								"type": "string"
							}
						]
					}
				],
				"dependencies": [
					"constants.ts"
				],
				"dependents": [
					"server/server.ts"
				]
			},
			{
				"path": "server/server.ts",
				"declarations": [],
				"dependencies": [
					"action_collections.ts",
					"config.ts",
					"constants.ts",
					"server/backend.ts",
					"server/backend_action_handlers.ts",
					"server/backend_actions_api.ts",
					"server/backend_provider_chatgpt.ts",
					"server/backend_provider_claude.ts",
					"server/backend_provider_gemini.ts",
					"server/backend_provider_ollama.ts",
					"server/register_http_actions.ts",
					"server/register_websocket_actions.ts",
					"server/security.ts",
					"server/server_info.ts"
				]
			},
			{
				"path": "Settings.svelte",
				"declarations": [
					{
						"name": "Settings",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"ExternalLink.svelte"
				],
				"dependents": [
					"DashboardSettings.svelte"
				]
			},
			{
				"path": "socket_helpers.ts",
				"declarations": [
					{
						"name": "DEFAULT_HEARTBEAT_INTERVAL",
						"kind": "variable",
						"source_line": 2,
						"type_signature": "300000"
					},
					{
						"name": "DEFAULT_RECONNECT_DELAY",
						"kind": "variable",
						"source_line": 3,
						"type_signature": "1000"
					},
					{
						"name": "DEFAULT_RECONNECT_DELAY_MAX",
						"kind": "variable",
						"source_line": 4,
						"type_signature": "10000"
					},
					{
						"name": "DEFAULT_AUTO_RECONNECT",
						"kind": "variable",
						"source_line": 5,
						"type_signature": "true"
					},
					{
						"name": "DEFAULT_RETRY_COUNT",
						"kind": "variable",
						"source_line": 8,
						"type_signature": "3"
					},
					{
						"name": "DEFAULT_CLOSE_CODE",
						"kind": "variable",
						"source_line": 11,
						"type_signature": "1000"
					}
				],
				"dependents": [
					"CapabilityWebsocket.svelte",
					"socket.svelte.ts"
				]
			},
			{
				"path": "socket.svelte.ts",
				"declarations": [
					{
						"name": "SocketJson",
						"kind": "type",
						"source_line": 22,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; ... 6 more ...; auto_reconnect: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "SocketJsonInput",
						"kind": "type",
						"source_line": 31,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; url?: string | null | undefined; url_input?: string | undefined; heartbeat_interval?: number | undefined; reconnect_delay?: number | undefined; reconnect_delay_max?: number | undefined; auto_reconnect?: boolean | undefined; }"
					},
					{
						"name": "SocketOptions",
						"kind": "type",
						"source_line": 33,
						"type_signature": "SocketOptions",
						"extends": [
							"CellOptions<typeof SocketJson>"
						],
						"properties": []
					},
					{
						"name": "SocketActionHandler",
						"kind": "type",
						"source_line": 35,
						"type_signature": "SocketActionHandler"
					},
					{
						"name": "SocketErrorHandler",
						"kind": "type",
						"source_line": 36,
						"type_signature": "SocketErrorHandler"
					},
					{
						"name": "QueuedMessage",
						"kind": "type",
						"doc_comment": "Queued message that couldn't be sent immediately.",
						"source_line": 43,
						"type_signature": "QueuedMessage",
						"properties": [
							{
								"name": "id",
								"kind": "variable",
								"type_signature": "Uuid"
							},
							{
								"name": "data",
								"kind": "variable",
								"type_signature": "any"
							},
							{
								"name": "created",
								"kind": "variable",
								"type_signature": "number"
							}
						]
					},
					{
						"name": "FailedMessage",
						"kind": "type",
						"doc_comment": "Failed message that exceeded retry count.",
						"source_line": 52,
						"type_signature": "FailedMessage",
						"extends": [
							"QueuedMessage"
						],
						"properties": [
							{
								"name": "failed",
								"kind": "variable",
								"type_signature": "number"
							},
							{
								"name": "reason",
								"kind": "variable",
								"type_signature": "string"
							}
						]
					},
					{
						"name": "Socket",
						"kind": "class",
						"doc_comment": "Socket class for WebSocket connection management with auto-reconnect and message queueing.",
						"source_line": 60,
						"extends": [
							"Cell<typeof SocketJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "ws",
								"kind": "variable",
								"type_signature": "WebSocket | null"
							},
							{
								"name": "open",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "status",
								"kind": "variable",
								"type_signature": "AsyncStatus"
							},
							{
								"name": "last_send_time",
								"kind": "variable",
								"type_signature": "number | null"
							},
							{
								"name": "last_receive_time",
								"kind": "variable",
								"type_signature": "number | null"
							},
							{
								"name": "last_connect_time",
								"kind": "variable",
								"type_signature": "number | null"
							},
							{
								"name": "heartbeat_timeout",
								"kind": "variable",
								"type_signature": "NodeJS.Timeout | null"
							},
							{
								"name": "reconnect_count",
								"kind": "variable",
								"type_signature": "number"
							},
							{
								"name": "reconnect_attempt",
								"kind": "variable",
								"type_signature": "number"
							},
							{
								"name": "reconnect_timeout",
								"kind": "variable",
								"type_signature": "NodeJS.Timeout | null"
							},
							{
								"name": "current_reconnect_delay",
								"kind": "variable",
								"type_signature": "number"
							},
							{
								"name": "message_queue",
								"kind": "variable",
								"type_signature": "Array<QueuedMessage>"
							},
							{
								"name": "failed_messages",
								"kind": "variable",
								"type_signature": "SvelteMap<string, FailedMessage>"
							},
							{
								"name": "connected",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "boolean"
							},
							{
								"name": "can_send",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "boolean"
							},
							{
								"name": "has_queued_messages",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "boolean"
							},
							{
								"name": "queued_message_count",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number"
							},
							{
								"name": "failed_message_count",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number"
							},
							{
								"name": "connection_duration",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number | null"
							},
							{
								"name": "connection_duration_rounded",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number | null"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: SocketOptions): Socket",
								"parameters": [
									{
										"name": "options",
										"type": "SocketOptions"
									}
								]
							},
							{
								"name": "connect",
								"kind": "function",
								"doc_comment": "Connects to the WebSocket server.",
								"type_signature": "(url?: string | null): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "url",
										"type": "string | null",
										"description": "The WebSocket URL to connect to",
										"default_value": "null"
									}
								]
							},
							{
								"name": "disconnect",
								"kind": "function",
								"doc_comment": "Disconnects from the WebSocket server.",
								"type_signature": "(code?: number): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "code",
										"type": "number",
										"description": "The close code to use (default: 1000 - normal closure)",
										"default_value": "DEFAULT_CLOSE_CODE"
									}
								]
							},
							{
								"name": "send",
								"kind": "function",
								"doc_comment": "Sends a message through the WebSocket.",
								"type_signature": "(data: object): boolean",
								"return_type": "boolean",
								"return_description": "True if the message was sent immediately, false if queued or failed",
								"parameters": [
									{
										"name": "data",
										"type": "object",
										"description": "The data to send"
									}
								]
							},
							{
								"name": "update_url",
								"kind": "function",
								"doc_comment": "Updates the connection URL and reconnects if currently connected.",
								"type_signature": "(url: string): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "url",
										"type": "string",
										"description": "The new WebSocket URL"
									}
								]
							},
							{
								"name": "send_heartbeat",
								"kind": "function",
								"doc_comment": "Sends a ping message for heartbeat purposes",
								"type_signature": "(): Promise<void>",
								"return_type": "Promise<void>",
								"parameters": []
							},
							{
								"name": "retry_queued_messages",
								"kind": "function",
								"doc_comment": "Retry sending all queued messages.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "clear_failed_messages",
								"kind": "function",
								"doc_comment": "Clear the failed messages list",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "maybe_reconnect",
								"kind": "function",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "cancel_reconnect",
								"kind": "function",
								"doc_comment": "Cancel any pending reconnection attempt.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "add_message_handler",
								"kind": "function",
								"doc_comment": "Add a message handler and return a function to remove it.",
								"type_signature": "(handler: SocketActionHandler): () => void",
								"return_type": "() => void",
								"return_description": "A function that removes the handler when called",
								"parameters": [
									{
										"name": "handler",
										"type": "SocketActionHandler",
										"description": "The message handler to add"
									}
								]
							},
							{
								"name": "add_error_handler",
								"kind": "function",
								"doc_comment": "Add an error handler and return a function to remove it.",
								"type_signature": "(handler: SocketErrorHandler): () => void",
								"return_type": "() => void",
								"return_description": "A function that removes the handler when called",
								"parameters": [
									{
										"name": "handler",
										"type": "SocketErrorHandler",
										"description": "The error handler to add"
									}
								]
							}
						]
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_types.ts",
					"constants.ts",
					"socket_helpers.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"frontend.svelte.ts"
				]
			},
			{
				"path": "SocketMessageQueue.svelte",
				"declarations": [
					{
						"name": "SocketMessageQueue",
						"kind": "component",
						"props": [
							{
								"name": "socket",
								"type": "Socket"
							},
							{
								"name": "type",
								"type": "'queued' | 'failed'"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ConfirmButton.svelte",
					"Glyph.svelte",
					"PopoverButton.svelte",
					"glyphs.ts",
					"helpers.ts",
					"time_helpers.ts"
				],
				"dependents": [
					"CapabilityWebsocket.svelte"
				]
			},
			{
				"path": "sortable.svelte.ts",
				"declarations": [
					{
						"name": "Sorter",
						"kind": "type",
						"source_line": 6,
						"type_signature": "Sorter<T>",
						"generic_params": [
							{
								"name": "T"
							}
						],
						"properties": [
							{
								"name": "key",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "label",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "fn",
								"kind": "variable",
								"type_signature": "(a: T, b: T) => number"
							}
						]
					},
					{
						"name": "Sortable",
						"kind": "class",
						"doc_comment": "Manages the sortable state for a collection of items with reactive data sources.",
						"source_line": 15,
						"generic_params": [
							{
								"name": "T"
							}
						],
						"members": [
							{
								"name": "items",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<T>"
							},
							{
								"name": "sorters",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<Sorter<T>>"
							},
							{
								"name": "default_key",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string | undefined"
							},
							{
								"name": "active_key",
								"kind": "variable",
								"doc_comment": "Current active sort key.",
								"type_signature": "string"
							},
							{
								"name": "active_sorter",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "The currently active sorter.",
								"type_signature": "Sorter<T> | undefined"
							},
							{
								"name": "active_sort_fn",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "The sort function from the active sorter.",
								"type_signature": "((a: T, b: T) => number) | undefined"
							},
							{
								"name": "sorted_items",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Sorted items based on the current active sorter.",
								"type_signature": "Array<T>"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"doc_comment": "Creates a new `Sortable` instance with reactive sources.",
								"type_signature": "<T>(items_getter: Thunk<T[]>, sorters_getter: Thunk<Sorter<T>[]>, key_getter_default?: Thunk<string | undefined> | undefined): Sortable<T>",
								"parameters": [
									{
										"name": "items_getter",
										"type": "Thunk<T[]>",
										"description": "Function that returns the current items array"
									},
									{
										"name": "sorters_getter",
										"type": "Thunk<Sorter<T>[]>",
										"description": "Function that returns the current sorters"
									},
									{
										"name": "key_getter_default",
										"type": "Thunk<string | undefined> | undefined",
										"optional": true,
										"description": "Optional function that returns the current default sort key"
									}
								]
							},
							{
								"name": "update_active_key",
								"kind": "function",
								"doc_comment": "Updates the active key based on sorters and default key.\nCalled automatically on initialization and when sorters change.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							}
						]
					},
					{
						"name": "sort_by_text",
						"kind": "function",
						"doc_comment": "Creates a text sorter with optional direction.\nFalls back to cell's `cid` for equal values.",
						"source_line": 121,
						"type_signature": "<T extends Cell<any>>(key: string, label: string, field: keyof T, direction?: \"asc\" | \"desc\"): Sorter<T>",
						"return_type": "Sorter<T>",
						"parameters": [
							{
								"name": "key",
								"type": "string"
							},
							{
								"name": "label",
								"type": "string"
							},
							{
								"name": "field",
								"type": "keyof T"
							},
							{
								"name": "direction",
								"type": "\"asc\" | \"desc\"",
								"default_value": "'asc'"
							}
						]
					},
					{
						"name": "sort_by_numeric",
						"kind": "function",
						"doc_comment": "Creates a numeric sorter with optional direction.\nFalls back to cell's `cid` for equal values.",
						"source_line": 144,
						"type_signature": "<T extends Cell<any>>(key: string, label: string, field: keyof T, direction?: \"asc\" | \"desc\"): Sorter<T>",
						"return_type": "Sorter<T>",
						"parameters": [
							{
								"name": "key",
								"type": "string"
							},
							{
								"name": "label",
								"type": "string"
							},
							{
								"name": "field",
								"type": "keyof T"
							},
							{
								"name": "direction",
								"type": "\"asc\" | \"desc\"",
								"default_value": "'asc'"
							}
						]
					}
				],
				"dependents": [
					"ActionList.svelte",
					"ChatList.svelte",
					"DiskfileExplorer.svelte",
					"DiskfilePicker.svelte",
					"DiskfilePickerDialog.svelte",
					"ModelPicker.svelte",
					"ModelPickerDialog.svelte",
					"PartPicker.svelte",
					"PartPickerDialog.svelte",
					"PromptList.svelte",
					"PromptPicker.svelte",
					"PromptPickerDialog.svelte",
					"SortableList.svelte"
				]
			},
			{
				"path": "SortableList.svelte",
				"declarations": [
					{
						"name": "SortableList",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"sortable.svelte.ts"
				],
				"dependents": [
					"ActionList.svelte",
					"ChatList.svelte",
					"DiskfileExplorer.svelte",
					"Picker.svelte",
					"PromptList.svelte"
				]
			},
			{
				"path": "thread_helpers.ts",
				"declarations": [
					{
						"name": "render_message_with_role",
						"kind": "function",
						"doc_comment": "Renders a single message with an XML tag that includes the role attribute.",
						"source_line": 9,
						"type_signature": "(role: string, content: string, tag?: string): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "role",
								"type": "string"
							},
							{
								"name": "content",
								"type": "string"
							},
							{
								"name": "tag",
								"type": "string",
								"default_value": "'message'"
							}
						]
					},
					{
						"name": "render_messages_to_string",
						"kind": "function",
						"source_line": 15,
						"type_signature": "(turns: Iterable<{ role: string; content: string; enabled?: boolean | undefined; }>, tag?: string): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "turns",
								"type": "Iterable<{ role: string; content: string; enabled?: boolean | undefined; }>"
							},
							{
								"name": "tag",
								"type": "string",
								"default_value": "'message'"
							}
						]
					},
					{
						"name": "render_completion_messages",
						"kind": "function",
						"doc_comment": "Creates a thread history array for model consumption from a collection of turns.\nNormalizes content for assistant turns with responses.",
						"source_line": 35,
						"type_signature": "(turns: Iterable<Turn>, completion_messages?: { [x: string]: unknown; role: string; content: string; }[]): { [x: string]: unknown; role: string; content: string; }[]",
						"return_type": "{ [x: string]: unknown; role: string; content: string; }[]",
						"parameters": [
							{
								"name": "turns",
								"type": "Iterable<Turn>"
							},
							{
								"name": "completion_messages",
								"type": "{ [x: string]: unknown; role: string; content: string; }[]",
								"default_value": "[]"
							}
						]
					}
				],
				"dependencies": [
					"response_helpers.ts"
				],
				"dependents": [
					"chat.svelte.ts",
					"thread.svelte.ts"
				]
			},
			{
				"path": "thread_types.ts",
				"declarations": [
					{
						"name": "ThreadJson",
						"kind": "type",
						"source_line": 8,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; model_name: ZodDefault<...>; turns: ZodDefault<...>; enabled: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "ThreadJsonInput",
						"kind": "type",
						"source_line": 14,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; model_name?: string | undefined; turns?: { role: string; id?: string | undefined; created?: string | undefined; ... 5 more ...; error_message?: string | undefined; }[] | undefined; enabled?: boolean | undefined; }"
					}
				],
				"dependencies": [
					"cell_types.ts",
					"model.svelte.ts",
					"turn_types.ts"
				],
				"dependents": [
					"thread.svelte.ts",
					"threads.svelte.ts"
				]
			},
			{
				"path": "thread.svelte.ts",
				"declarations": [
					{
						"name": "ThreadOptions",
						"kind": "type",
						"source_line": 16,
						"type_signature": "ThreadOptions",
						"extends": [
							"CellOptions<typeof ThreadJson>"
						],
						"properties": []
					},
					{
						"name": "Thread",
						"kind": "class",
						"doc_comment": "A thread is a linear sequence of turns that maintains a chronological\nrecord of interactions between the user and the AI.",
						"source_line": 21,
						"extends": [
							"Cell<typeof ThreadJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "model_name",
								"kind": "variable",
								"type_signature": "string"
							},
							{
								"name": "model",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Model"
							},
							{
								"name": "turns",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "IndexedCollection<Turn>"
							},
							{
								"name": "enabled",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "content",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string"
							},
							{
								"name": "length",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number"
							},
							{
								"name": "token_count",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number"
							},
							{
								"name": "content_preview",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: ThreadOptions): Thread",
								"parameters": [
									{
										"name": "options",
										"type": "ThreadOptions"
									}
								]
							},
							{
								"name": "add_turn",
								"kind": "function",
								"doc_comment": "Add a turn to this thread.",
								"type_signature": "(turn: Turn): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "turn",
										"type": "Turn"
									}
								]
							},
							{
								"name": "add_user_turn",
								"kind": "function",
								"doc_comment": "Create and add a user turn with the given content.",
								"type_signature": "(content: string, request?: { created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; prompt: string; completion_messages?: { ...; }[] | undefined; } | undefined): Turn",
								"return_type": "Turn",
								"parameters": [
									{
										"name": "content",
										"type": "string"
									},
									{
										"name": "request",
										"type": "{ created: string & $brand<\"Datetime\">; provider_name: \"ollama\" | \"claude\" | \"chatgpt\" | \"gemini\"; model: string; prompt: string; completion_messages?: { [x: string]: unknown; role: string; content: string; }[] | undefined; } | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "add_assistant_turn",
								"kind": "function",
								"doc_comment": "Create and add an assistant turn with the given content.",
								"type_signature": "(content: string, json?: Partial<{ id: string & $brand<\"Uuid\">; created: string & $brand<\"Datetime\">; updated: string & $brand<\"Datetime\">; part_ids: (string & $brand<...>)[]; ... 4 more ...; error_message?: string | undefined; }> | undefined): Turn",
								"return_type": "Turn",
								"parameters": [
									{
										"name": "content",
										"type": "string"
									},
									{
										"name": "json",
										"type": "Partial<{ id: string & $brand<\"Uuid\">; created: string & $brand<\"Datetime\">; updated: string & $brand<\"Datetime\">; part_ids: (string & $brand<\"Uuid\">)[]; ... 4 more ...; error_message?: string | undefined; }> | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "add_system_turn",
								"kind": "function",
								"doc_comment": "Create and add a system turn with the given content.",
								"type_signature": "(content: string): Turn",
								"return_type": "Turn",
								"parameters": [
									{
										"name": "content",
										"type": "string"
									}
								]
							},
							{
								"name": "add_turn_from_part",
								"kind": "function",
								"doc_comment": "Create and add a turn from a part.",
								"type_signature": "(part: PartUnion, role: string): Turn",
								"return_type": "Turn",
								"parameters": [
									{
										"name": "part",
										"type": "PartUnion"
									},
									{
										"name": "role",
										"type": "string"
									}
								]
							},
							{
								"name": "remove_all_turns",
								"kind": "function",
								"doc_comment": "Remove all turns from this thread.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "send_message",
								"kind": "function",
								"doc_comment": "Send a message to the AI and create corresponding turns.\nReturns null if provider is unavailable (defensive check - UI should prevent this).",
								"type_signature": "(content: string): Promise<Turn | null>",
								"return_type": "Promise<Turn | null>",
								"parameters": [
									{
										"name": "content",
										"type": "string"
									}
								]
							},
							{
								"name": "switch_model",
								"kind": "function",
								"type_signature": "(model_id: string & $brand<\"Uuid\">): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "model_id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							}
						]
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_helpers.ts",
					"completion_types.ts",
					"helpers.ts",
					"indexed_collection.svelte.ts",
					"thread_helpers.ts",
					"thread_types.ts",
					"turn.svelte.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"chat.svelte.ts",
					"threads.svelte.ts"
				]
			},
			{
				"path": "ThreadContextmenu.svelte",
				"declarations": [
					{
						"name": "ThreadContextmenu",
						"kind": "component",
						"props": [
							{
								"name": "thread",
								"type": "Thread"
							},
							{
								"name": "children",
								"type": "Snippet"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ContextmenuEntryCopyToClipboard.svelte",
					"ContextmenuEntryToggle.svelte",
					"Glyph.svelte",
					"ModelPickerDialog.svelte",
					"frontend.svelte.ts",
					"glyphs.ts"
				],
				"dependents": [
					"ChatThread.svelte",
					"ThreadListitem.svelte"
				]
			},
			{
				"path": "ThreadList.svelte",
				"declarations": [
					{
						"name": "ThreadList",
						"kind": "component",
						"props": [
							{
								"name": "chat",
								"type": "Chat | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ThreadListitem.svelte",
					"frontend.svelte.ts",
					"reorderable.svelte.ts"
				],
				"dependents": [
					"ChatView.svelte"
				]
			},
			{
				"path": "ThreadListitem.svelte",
				"declarations": [
					{
						"name": "ThreadListitem",
						"kind": "component",
						"props": [
							{
								"name": "thread",
								"type": "Thread"
							},
							{
								"name": "chat",
								"type": "Chat"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ConfirmButton.svelte",
					"Glyph.svelte",
					"ProviderLogo.svelte",
					"ThreadContextmenu.svelte",
					"ThreadToggleButton.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"ThreadList.svelte"
				]
			},
			{
				"path": "threads.svelte.ts",
				"declarations": [
					{
						"name": "ThreadsJson",
						"kind": "type",
						"source_line": 14,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; items: ZodDefault<...>; selected_id: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "ThreadsJsonInput",
						"kind": "type",
						"source_line": 19,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; items?: { id?: string | undefined; created?: string | undefined; updated?: string | undefined; model_name?: string | undefined; turns?: { ...; }[] | undefined; enabled?: boolean | undefined; }[] | undefined; selected_id?: string |..."
					},
					{
						"name": "ThreadsOptions",
						"kind": "type",
						"source_line": 21,
						"type_signature": "ThreadsOptions",
						"extends": [
							"CellOptions<typeof ThreadsJson>"
						],
						"properties": []
					},
					{
						"name": "Threads",
						"kind": "class",
						"source_line": 23,
						"extends": [
							"Cell<typeof ThreadsJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "items",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "IndexedCollection<Thread>"
							},
							{
								"name": "selected_id",
								"kind": "variable",
								"type_signature": "Uuid | null"
							},
							{
								"name": "selected",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Thread | undefined"
							},
							{
								"name": "selected_id_error",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "boolean"
							},
							{
								"name": "ordered_items",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Ordered array of threads derived from the `manual_order` index.",
								"type_signature": "Array<Thread>"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: ThreadsOptions): Threads",
								"parameters": [
									{
										"name": "options",
										"type": "ThreadsOptions"
									}
								]
							},
							{
								"name": "add",
								"kind": "function",
								"type_signature": "(json?: { id?: string | undefined; created?: string | undefined; updated?: string | undefined; model_name?: string | undefined; turns?: { role: string; id?: string | undefined; created?: string | undefined; ... 5 more ...; error_message?: string | undefined; }[] | undefined; enabled?: boolean | undefined; } | undefined, select?: boolean | undefined): Thread",
								"return_type": "Thread",
								"parameters": [
									{
										"name": "json",
										"type": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; model_name?: string | undefined; turns?: { role: string; id?: string | undefined; created?: string | undefined; ... 5 more ...; error_message?: string | undefined; }[] | undefined; enabled?: boolean | undefined; } | undefined",
										"optional": true
									},
									{
										"name": "select",
										"type": "boolean | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "add_thread",
								"kind": "function",
								"type_signature": "(thread: Thread, select?: boolean | undefined): Thread",
								"return_type": "Thread",
								"parameters": [
									{
										"name": "thread",
										"type": "Thread"
									},
									{
										"name": "select",
										"type": "boolean | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "add_many",
								"kind": "function",
								"type_signature": "(threads_json: { id?: string | undefined; created?: string | undefined; updated?: string | undefined; model_name?: string | undefined; turns?: { role: string; id?: string | undefined; created?: string | undefined; ... 5 more ...; error_message?: string | undefined; }[] | undefined; enabled?: boolean | undefined; }[], select?: number | ... 1 more ... | undefined): Thread[]",
								"return_type": "Thread[]",
								"parameters": [
									{
										"name": "threads_json",
										"type": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; model_name?: string | undefined; turns?: { role: string; id?: string | undefined; created?: string | undefined; ... 5 more ...; error_message?: string | undefined; }[] | undefined; enabled?: boolean | undefined; }[]"
									},
									{
										"name": "select",
										"type": "number | boolean | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "remove",
								"kind": "function",
								"type_signature": "(id: string & $brand<\"Uuid\">): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							},
							{
								"name": "remove_many",
								"kind": "function",
								"type_signature": "(ids: (string & $brand<\"Uuid\">)[]): number",
								"return_type": "number",
								"parameters": [
									{
										"name": "ids",
										"type": "(string & $brand<\"Uuid\">)[]"
									}
								]
							},
							{
								"name": "select",
								"kind": "function",
								"type_signature": "(thread_id: (string & $brand<\"Uuid\">) | null): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "thread_id",
										"type": "(string & $brand<\"Uuid\">) | null"
									}
								]
							},
							{
								"name": "select_next",
								"kind": "function",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							},
							{
								"name": "reorder_threads",
								"kind": "function",
								"type_signature": "(from_index: number, to_index: number): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "from_index",
										"type": "number"
									},
									{
										"name": "to_index",
										"type": "number"
									}
								]
							}
						]
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_helpers.ts",
					"cell_types.ts",
					"indexed_collection.svelte.ts",
					"indexed_collection_helpers.svelte.ts",
					"list_helpers.ts",
					"model.svelte.ts",
					"thread.svelte.ts",
					"thread_types.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"frontend.svelte.ts"
				]
			},
			{
				"path": "ThreadToggleButton.svelte",
				"declarations": [
					{
						"name": "ThreadToggleButton",
						"kind": "component",
						"props": [
							{
								"name": "thread",
								"type": "Thread"
							},
							{
								"name": "attrs",
								"type": "SvelteHTMLElements['input'] | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependents": [
					"ThreadListitem.svelte"
				]
			},
			{
				"path": "time_helpers.ts",
				"declarations": [
					{
						"name": "TimeValue",
						"kind": "type",
						"source_line": 5,
						"type_signature": "TimeValue"
					},
					{
						"name": "format_timestamp",
						"kind": "function",
						"source_line": 9,
						"type_signature": "(value: TimeValue | null | undefined, fallback?: string): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "value",
								"type": "TimeValue | null | undefined"
							},
							{
								"name": "fallback",
								"type": "string",
								"default_value": "''"
							}
						]
					},
					{
						"name": "format_short_date",
						"kind": "function",
						"source_line": 12,
						"type_signature": "(value: TimeValue | null | undefined, fallback?: string): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "value",
								"type": "TimeValue | null | undefined"
							},
							{
								"name": "fallback",
								"type": "string",
								"default_value": "''"
							}
						]
					},
					{
						"name": "format_datetime",
						"kind": "function",
						"source_line": 15,
						"type_signature": "(value: TimeValue | null | undefined, fallback?: string): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "value",
								"type": "TimeValue | null | undefined"
							},
							{
								"name": "fallback",
								"type": "string",
								"default_value": "''"
							}
						]
					},
					{
						"name": "format_time",
						"kind": "function",
						"source_line": 18,
						"type_signature": "(value: TimeValue | null | undefined, fallback?: string): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "value",
								"type": "TimeValue | null | undefined"
							},
							{
								"name": "fallback",
								"type": "string",
								"default_value": "''"
							}
						]
					},
					{
						"name": "format_ms_to_readable",
						"kind": "function",
						"source_line": 22,
						"type_signature": "(ms: number, decimals?: number): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "ms",
								"type": "number"
							},
							{
								"name": "decimals",
								"type": "number",
								"default_value": "0"
							}
						]
					}
				],
				"dependencies": [
					"cell_helpers.ts"
				],
				"dependents": [
					"CapabilityWebsocket.svelte",
					"DiskfileHistoryView.svelte",
					"OllamaActionItem.svelte",
					"OllamaModelDetail.svelte",
					"SocketMessageQueue.svelte",
					"TimeWidget.svelte",
					"cell.svelte.ts",
					"time.svelte.ts"
				]
			},
			{
				"path": "time.svelte.ts",
				"declarations": [
					{
						"name": "TimeJson",
						"kind": "type",
						"source_line": 9,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; updated: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "TimeJsonInput",
						"kind": "type",
						"source_line": 11,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; }"
					},
					{
						"name": "TimeOptions",
						"kind": "type",
						"doc_comment": "Options for configuring a Time instance.",
						"source_line": 16,
						"type_signature": "TimeOptions",
						"extends": [
							"CellOptions<typeof TimeJson>"
						],
						"properties": [
							{
								"name": "interval",
								"kind": "variable",
								"type_signature": "number",
								"doc_comment": "Interval in milliseconds for updating now."
							},
							{
								"name": "autostart",
								"kind": "variable",
								"type_signature": "boolean",
								"doc_comment": "Whether to automatically start the timer on initialization."
							}
						]
					},
					{
						"name": "Time",
						"kind": "class",
						"doc_comment": "Reactive time management class that provides time-related utilities.\nHas a configurable update interval that defaults to\na full minute to minimize wasteful reactivity,\nso it's suitable for any cases that need at best 1-minute precision, unless reconfigured.",
						"source_line": 36,
						"extends": [
							"Cell<typeof TimeJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "DEFAULT_INTERVAL",
								"kind": "variable",
								"modifiers": [
									"static"
								],
								"doc_comment": "Default update interval in milliseconds (1 minute).\nThe idea is to minimize reactivity and CPU usage for a common use case."
							},
							{
								"name": "now",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"doc_comment": "Current time that updates on the configured interval.\nThis is reactive and can be used in derived computations.",
								"type_signature": "SvelteDate"
							},
							{
								"name": "now_ms",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number"
							},
							{
								"name": "now_timestamp",
								"kind": "variable",
								"modifiers": [
									"readonly"
								]
							},
							{
								"name": "now_formatted_short_date",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string"
							},
							{
								"name": "now_formatted_datetime",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string"
							},
							{
								"name": "now_formatted_time",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string"
							},
							{
								"name": "interval",
								"kind": "variable",
								"doc_comment": "The interval in milliseconds between time updates.",
								"type_signature": "number"
							},
							{
								"name": "running",
								"kind": "variable",
								"doc_comment": "Whether the interval timer is currently running.",
								"type_signature": "boolean"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: TimeOptions): Time",
								"parameters": [
									{
										"name": "options",
										"type": "TimeOptions"
									}
								]
							},
							{
								"name": "start",
								"kind": "function",
								"doc_comment": "Starts the interval timer if it's not already running.",
								"type_signature": "(): boolean",
								"return_type": "boolean",
								"parameters": []
							},
							{
								"name": "stop",
								"kind": "function",
								"doc_comment": "Stops the interval timer if it's running.",
								"type_signature": "(): boolean",
								"return_type": "boolean",
								"parameters": []
							},
							{
								"name": "restart",
								"kind": "function",
								"doc_comment": "Restarts the interval timer with a new interval.",
								"type_signature": "(interval?: number | undefined): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "interval",
										"type": "number | undefined",
										"optional": true
									}
								]
							},
							{
								"name": "update_now",
								"kind": "function",
								"doc_comment": "Updates the now to the current time immediately.",
								"type_signature": "(value?: number): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "value",
										"type": "number",
										"default_value": "Date.now()"
									}
								]
							},
							{
								"name": "destroy",
								"kind": "function",
								"doc_comment": "Override `Cell`'s destroy method to ensure timer cleanup.",
								"type_signature": "(): void",
								"return_type": "void",
								"parameters": []
							}
						]
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_types.ts",
					"time_helpers.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"frontend.svelte.ts"
				]
			},
			{
				"path": "TimeWidget.svelte",
				"declarations": [
					{
						"name": "TimeWidget",
						"kind": "component",
						"props": [
							{
								"name": "value",
								"type": "Date"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"time_helpers.ts"
				],
				"dependents": [
					"DashboardActions.svelte",
					"DashboardCapabilities.svelte",
					"DashboardSettings.svelte"
				]
			},
			{
				"path": "ToggleButton.svelte",
				"declarations": [
					{
						"name": "ToggleButton",
						"kind": "component",
						"props": [
							{
								"name": "active",
								"type": "boolean",
								"description": "Current state of the toggle",
								"bindable": true
							},
							{
								"name": "active_content",
								"type": "Snippet | string",
								"description": "Content to display when toggle is active"
							},
							{
								"name": "inactive_content",
								"type": "Snippet | string",
								"description": "Content to display when toggle is inactive"
							}
						],
						"source_line": 1
					}
				],
				"dependents": [
					"ChatView.svelte",
					"ClearRestoreButton.svelte"
				]
			},
			{
				"path": "transports.ts",
				"declarations": [
					{
						"name": "TransportName",
						"kind": "type",
						"source_line": 17,
						"type_signature": "ZodString"
					},
					{
						"name": "Transport",
						"kind": "type",
						"source_line": 20,
						"type_signature": "Transport",
						"properties": [
							{
								"name": "transport_name",
								"kind": "variable",
								"type_signature": "TransportName"
							},
							{
								"name": "is_ready",
								"kind": "variable",
								"type_signature": "() => boolean"
							}
						]
					},
					{
						"name": "Transports",
						"kind": "class",
						"source_line": 29,
						"members": [
							{
								"name": "allow_fallback",
								"kind": "variable",
								"doc_comment": "Whether to allow fallback to other transports if the current one is not available.",
								"type_signature": "boolean"
							},
							{
								"name": "register_transport",
								"kind": "function",
								"doc_comment": "Registers a transport.",
								"type_signature": "(transport: Transport): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "transport",
										"type": "Transport"
									}
								]
							},
							{
								"name": "set_current_transport",
								"kind": "function",
								"type_signature": "(transport_name: string): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "transport_name",
										"type": "string"
									}
								]
							},
							{
								"name": "get_transport",
								"kind": "function",
								"doc_comment": "Gets either the current transport or the first ready transport\ndepending on `allow_fallback`, or throws an error.",
								"type_signature": "(transport_name?: string | undefined): Transport | null",
								"return_type": "Transport | null",
								"parameters": [
									{
										"name": "transport_name",
										"type": "string | undefined",
										"optional": true,
										"description": "Optional transport to use instead of the current"
									}
								],
								"throws": [
									{
										"type": "when",
										"description": "no transport available or ready"
									}
								]
							},
							{
								"name": "is_ready",
								"kind": "function",
								"type_signature": "(): boolean | null",
								"return_type": "boolean | null",
								"parameters": []
							},
							{
								"name": "get_current_transport",
								"kind": "function",
								"type_signature": "(): Transport | null",
								"return_type": "Transport | null",
								"parameters": []
							},
							{
								"name": "get_current_transport_name",
								"kind": "function",
								"type_signature": "(): string | null",
								"return_type": "string | null",
								"parameters": []
							},
							{
								"name": "get_transport_by_name",
								"kind": "function",
								"type_signature": "(transport_name: string): Transport | null",
								"return_type": "Transport | null",
								"parameters": [
									{
										"name": "transport_name",
										"type": "string"
									}
								]
							}
						]
					}
				],
				"dependents": [
					"action_peer.ts"
				]
			},
			{
				"path": "turn_types.ts",
				"declarations": [
					{
						"name": "TurnJson",
						"kind": "type",
						"doc_comment": "Turn is a conversation turn (like A2A Message) that references one or more parts (content entities).\nTurns contextualize reusable content within conversations, providing role, metadata, and ordering.",
						"source_line": 12,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; ... 6 more ...; error_message: ZodOptional<...>; }, $strict>"
					},
					{
						"name": "TurnJsonInput",
						"kind": "type",
						"source_line": 21,
						"type_signature": "{ role: string; id?: string | undefined; created?: string | undefined; updated?: string | undefined; part_ids?: string[] | undefined; thread_id?: string | null | undefined; request?: { provider_name: \"ollama\" | ... 2 more ... | \"gemini\"; model: string; prompt: string; created?: string | undefined; completion_message..."
					},
					{
						"name": "TurnSchema",
						"kind": "variable",
						"source_line": 23,
						"type_signature": "ZodCustom<Cell<ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>>, Cell<ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>>>"
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_types.ts",
					"completion_types.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"thread_types.ts",
					"turn.svelte.ts"
				]
			},
			{
				"path": "turn.svelte.ts",
				"declarations": [
					{
						"name": "TurnOptions",
						"kind": "type",
						"source_line": 11,
						"type_signature": "TurnOptions",
						"extends": [
							"CellOptions<typeof TurnJson>"
						],
						"properties": []
					},
					{
						"name": "Turn",
						"kind": "class",
						"doc_comment": "Turn represents a conversation turn (like A2A Message).\nContextualizes parts within a conversation, providing role, metadata, and ordering.",
						"source_line": 17,
						"extends": [
							"Cell<typeof TurnJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "part_ids",
								"kind": "variable",
								"type_signature": "Array<Uuid>"
							},
							{
								"name": "thread_id",
								"kind": "variable",
								"type_signature": "Uuid | null | undefined"
							},
							{
								"name": "role",
								"kind": "variable",
								"type_signature": "CompletionRole"
							},
							{
								"name": "request",
								"kind": "variable",
								"type_signature": "CompletionRequest | undefined"
							},
							{
								"name": "response",
								"kind": "variable",
								"type_signature": "CompletionResponse | undefined"
							},
							{
								"name": "error_message",
								"kind": "variable",
								"type_signature": "string | undefined"
							},
							{
								"name": "parts",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "Array<PartUnion>"
							},
							{
								"name": "length",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number"
							},
							{
								"name": "token_count",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "number"
							},
							{
								"name": "raw_content",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "string | null | undefined"
							},
							{
								"name": "is_content_loaded",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "boolean"
							},
							{
								"name": "is_content_empty",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "boolean"
							},
							{
								"name": "pending",
								"kind": "variable",
								"modifiers": [
									"readonly"
								],
								"type_signature": "boolean"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: TurnOptions): Turn",
								"parameters": [
									{
										"name": "options",
										"type": "TurnOptions"
									}
								]
							},
							{
								"name": "set_part",
								"kind": "function",
								"type_signature": "(part: PartUnion): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "part",
										"type": "PartUnion"
									}
								]
							},
							{
								"name": "add_part",
								"kind": "function",
								"type_signature": "(part: PartUnion): void",
								"return_type": "void",
								"parameters": [
									{
										"name": "part",
										"type": "PartUnion"
									}
								]
							},
							{
								"name": "remove_part",
								"kind": "function",
								"type_signature": "(part_id: string & $brand<\"Uuid\">): boolean",
								"return_type": "boolean",
								"parameters": [
									{
										"name": "part_id",
										"type": "string & $brand<\"Uuid\">"
									}
								]
							}
						]
					},
					{
						"name": "create_turn_from_part",
						"kind": "function",
						"source_line": 104,
						"type_signature": "(part: PartUnion, role: string, json: Partial<OmitStrict<{ id: string & $brand<\"Uuid\">; created: string & $brand<\"Datetime\">; updated: string & $brand<\"Datetime\">; ... 5 more ...; error_message?: string | undefined; }, \"role\" | \"part_ids\">>): Turn",
						"return_type": "Turn",
						"parameters": [
							{
								"name": "part",
								"type": "PartUnion"
							},
							{
								"name": "role",
								"type": "string"
							},
							{
								"name": "json",
								"type": "Partial<OmitStrict<{ id: string & $brand<\"Uuid\">; created: string & $brand<\"Datetime\">; updated: string & $brand<\"Datetime\">; part_ids: (string & $brand<\"Uuid\">)[]; ... 4 more ...; error_message?: string | undefined; }, \"role\" | \"part_ids\">>"
							}
						]
					},
					{
						"name": "create_turn_from_text",
						"kind": "function",
						"source_line": 119,
						"type_signature": "(content: string, role: string, json: Partial<OmitStrict<{ id: string & $brand<\"Uuid\">; created: string & $brand<\"Datetime\">; updated: string & $brand<\"Datetime\">; part_ids: (string & $brand<...>)[]; ... 4 more ...; error_message?: string | undefined; }, \"role\" | \"part_ids\">>, app: Frontend): Turn",
						"return_type": "Turn",
						"parameters": [
							{
								"name": "content",
								"type": "string"
							},
							{
								"name": "role",
								"type": "string"
							},
							{
								"name": "json",
								"type": "Partial<OmitStrict<{ id: string & $brand<\"Uuid\">; created: string & $brand<\"Datetime\">; updated: string & $brand<\"Datetime\">; part_ids: (string & $brand<\"Uuid\">)[]; ... 4 more ...; error_message?: string | undefined; }, \"role\" | \"part_ids\">>"
							},
							{
								"name": "app",
								"type": "Frontend"
							}
						]
					},
					{
						"name": "create_turn_from_parts",
						"kind": "function",
						"source_line": 136,
						"type_signature": "(parts: PartUnion[], role: string, json: Partial<OmitStrict<{ id: string & $brand<\"Uuid\">; created: string & $brand<\"Datetime\">; updated: string & $brand<\"Datetime\">; ... 5 more ...; error_message?: string | undefined; }, \"role\" | \"part_ids\">>): Turn",
						"return_type": "Turn",
						"parameters": [
							{
								"name": "parts",
								"type": "PartUnion[]"
							},
							{
								"name": "role",
								"type": "string"
							},
							{
								"name": "json",
								"type": "Partial<OmitStrict<{ id: string & $brand<\"Uuid\">; created: string & $brand<\"Datetime\">; updated: string & $brand<\"Datetime\">; part_ids: (string & $brand<\"Uuid\">)[]; ... 4 more ...; error_message?: string | undefined; }, \"role\" | \"part_ids\">>"
							}
						]
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"helpers.ts",
					"turn_types.ts",
					"zod_helpers.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"frontend_action_handlers.ts",
					"thread.svelte.ts"
				]
			},
			{
				"path": "TurnContextmenu.svelte",
				"declarations": [
					{
						"name": "TurnContextmenu",
						"kind": "component",
						"props": [
							{
								"name": "turn",
								"type": "Turn"
							},
							{
								"name": "children",
								"type": "Snippet"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ContextmenuEntryCopyToClipboard.svelte",
					"Glyph.svelte",
					"TurnView.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"TurnListitem.svelte",
					"TurnView.svelte"
				]
			},
			{
				"path": "TurnList.svelte",
				"declarations": [
					{
						"name": "TurnList",
						"kind": "component",
						"props": [
							{
								"name": "thread",
								"type": "Thread"
							},
							{
								"name": "attrs",
								"type": "SvelteHTMLElements['div'] | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"TurnListitem.svelte",
					"scrollable.svelte.ts"
				],
				"dependents": [
					"ChatThread.svelte"
				]
			},
			{
				"path": "TurnListitem.svelte",
				"declarations": [
					{
						"name": "TurnListitem",
						"kind": "component",
						"props": [
							{
								"name": "turn",
								"type": "Turn"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ErrorMessageInline.svelte",
					"TurnContextmenu.svelte",
					"constants.ts"
				],
				"dependents": [
					"TurnList.svelte"
				]
			},
			{
				"path": "TurnView.svelte",
				"declarations": [
					{
						"name": "TurnView",
						"kind": "component",
						"props": [
							{
								"name": "turn",
								"type": "Turn"
							},
							{
								"name": "show_actions",
								"type": "boolean | undefined",
								"optional": true
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"PartEditorForDiskfile.svelte",
					"PartEditorForText.svelte",
					"PartRemoveButton.svelte",
					"PartStats.svelte",
					"PartToggleButton.svelte",
					"TurnContextmenu.svelte",
					"frontend.svelte.ts",
					"part_helpers.ts"
				],
				"dependents": [
					"TurnContextmenu.svelte"
				]
			},
			{
				"path": "TutorialForChats.svelte",
				"declarations": [
					{
						"name": "TutorialForChats",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"ExternalLink.svelte",
					"frontend.svelte.ts",
					"helpers.ts"
				],
				"dependents": [
					"DashboardChats.svelte"
				]
			},
			{
				"path": "TutorialForDatabase.svelte",
				"declarations": [
					{
						"name": "TutorialForDatabase",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"ExternalLink.svelte",
					"frontend.svelte.ts",
					"helpers.ts"
				],
				"dependents": [
					"DashboardChats.svelte",
					"DashboardPrompts.svelte"
				]
			},
			{
				"path": "TutorialForDiskfiles.svelte",
				"declarations": [
					{
						"name": "TutorialForDiskfiles",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"frontend.svelte.ts",
					"helpers.ts"
				],
				"dependents": [
					"DiskfileEditorView.svelte"
				]
			},
			{
				"path": "TutorialForPrompts.svelte",
				"declarations": [
					{
						"name": "TutorialForPrompts",
						"kind": "component",
						"source_line": 1
					}
				],
				"dependencies": [
					"ExternalLink.svelte",
					"frontend.svelte.ts",
					"helpers.ts"
				],
				"dependents": [
					"DashboardPrompts.svelte"
				]
			},
			{
				"path": "ui.svelte.ts",
				"declarations": [
					{
						"name": "UiJson",
						"kind": "type",
						"source_line": 6,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; created: ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>; ... 6 more ...; tutorial_for_diskfiles: ZodDefault<...>; }, $strict>"
					},
					{
						"name": "UiJsonInput",
						"kind": "type",
						"source_line": 15,
						"type_signature": "{ id?: string | undefined; created?: string | undefined; updated?: string | undefined; show_main_dialog?: boolean | undefined; show_sidebar?: boolean | undefined; tutorial_for_database?: boolean | undefined; tutorial_for_chats?: boolean | undefined; tutorial_for_prompts?: boolean | undefined; tutorial_for_diskfiles?..."
					},
					{
						"name": "UiOptions",
						"kind": "type",
						"source_line": 17,
						"type_signature": "UiOptions",
						"extends": [
							"CellOptions<typeof UiJson>"
						],
						"properties": []
					},
					{
						"name": "Ui",
						"kind": "class",
						"source_line": 18,
						"extends": [
							"Cell<typeof UiJson>"
						],
						"implements": [],
						"members": [
							{
								"name": "show_main_dialog",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "show_sidebar",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "tutorial_for_database",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "tutorial_for_chats",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "tutorial_for_prompts",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "tutorial_for_diskfiles",
								"kind": "variable",
								"type_signature": "boolean"
							},
							{
								"name": "pending_element_to_focus_key",
								"kind": "variable",
								"doc_comment": "Consumed by components like `ContentEditor` for focusing elements.",
								"type_signature": "string | number | null"
							},
							{
								"name": "constructor",
								"kind": "constructor",
								"type_signature": "(options: UiOptions): Ui",
								"parameters": [
									{
										"name": "options",
										"type": "UiOptions"
									}
								]
							},
							{
								"name": "toggle_main_menu",
								"kind": "function",
								"doc_comment": "Toggle the main menu visibility.",
								"type_signature": "(value?: boolean): boolean",
								"return_type": "boolean",
								"parameters": [
									{
										"name": "value",
										"type": "boolean",
										"default_value": "!this.show_main_dialog"
									}
								]
							},
							{
								"name": "toggle_sidebar",
								"kind": "function",
								"doc_comment": "Toggle the sidebar visibility.",
								"type_signature": "(value?: boolean): boolean",
								"return_type": "boolean",
								"parameters": [
									{
										"name": "value",
										"type": "boolean",
										"default_value": "!this.show_sidebar"
									}
								]
							}
						]
					}
				],
				"dependencies": [
					"cell.svelte.ts",
					"cell_types.ts"
				],
				"dependents": [
					"cell_classes.ts",
					"frontend.svelte.ts"
				]
			},
			{
				"path": "url_params_helpers.ts",
				"declarations": [
					{
						"name": "parse_url_param_uuid",
						"kind": "function",
						"doc_comment": "Parse and validate a UUID parameter value from the URL.",
						"source_line": 6,
						"type_signature": "(value: unknown): (string & $brand<\"Uuid\">) | null",
						"return_type": "(string & $brand<\"Uuid\">) | null",
						"parameters": [
							{
								"name": "value",
								"type": "unknown"
							}
						]
					}
				],
				"dependencies": [
					"zod_helpers.ts"
				]
			},
			{
				"path": "xml.ts",
				"declarations": [
					{
						"name": "XmlAttributeKey",
						"kind": "type",
						"source_line": 5,
						"type_signature": "ZodPipe<ZodPipe<ZodString, ZodTransform<string, string>>, ZodString>"
					},
					{
						"name": "XmlAttributeKeyWithDefault",
						"kind": "type",
						"source_line": 11,
						"type_signature": "ZodDefault<ZodPipe<ZodPipe<ZodString, ZodTransform<string, string>>, ZodString>>"
					},
					{
						"name": "XmlAttributeValue",
						"kind": "type",
						"source_line": 14,
						"type_signature": "ZodString"
					},
					{
						"name": "XmlAttributeValueWithDefault",
						"kind": "type",
						"source_line": 17,
						"type_signature": "ZodDefault<ZodString>"
					},
					{
						"name": "XmlAttribute",
						"kind": "type",
						"source_line": 22,
						"type_signature": "ZodObject<{ id: $ZodBranded<ZodUUID, \"Uuid\", \"out\">; key: ZodPipe<ZodPipe<ZodString, ZodTransform<string, string>>, ZodString>; value: ZodString; }, $strict>"
					},
					{
						"name": "XmlAttributeWithDefaults",
						"kind": "type",
						"source_line": 31,
						"type_signature": "ZodObject<{ id: ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>; key: ZodDefault<ZodPipe<ZodPipe<ZodString, ZodTransform<string, string>>, ZodString>>; value: ZodDefault<...>; }, $strict>"
					}
				],
				"dependencies": [
					"zod_helpers.ts"
				],
				"dependents": [
					"part.svelte.ts"
				]
			},
			{
				"path": "XmlAttributeEditor.svelte",
				"declarations": [
					{
						"name": "XmlAttributeEditor",
						"kind": "component",
						"props": [
							{
								"name": "attribute",
								"type": "XmlAttributeWithDefaults"
							},
							{
								"name": "dormant",
								"type": "boolean | undefined",
								"optional": true
							},
							{
								"name": "onupdate",
								"type": "(updates: Partial<OmitStrict<XmlAttributeWithDefaults, 'id'>>) => void"
							},
							{
								"name": "onremove",
								"type": "() => void"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"ConfirmButton.svelte",
					"Glyph.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"XmlTagControls.svelte"
				]
			},
			{
				"path": "XmlTagControls.svelte",
				"declarations": [
					{
						"name": "XmlTagControls",
						"kind": "component",
						"props": [
							{
								"name": "part",
								"type": "PartUnion"
							}
						],
						"source_line": 1
					}
				],
				"dependencies": [
					"Glyph.svelte",
					"XmlAttributeEditor.svelte",
					"glyphs.ts"
				],
				"dependents": [
					"PartView.svelte"
				]
			},
			{
				"path": "zod_helpers.ts",
				"declarations": [
					{
						"name": "Any",
						"kind": "type",
						"source_line": 7,
						"type_signature": "ZodAny"
					},
					{
						"name": "HttpStatus",
						"kind": "type",
						"source_line": 10,
						"type_signature": "ZodNumber"
					},
					{
						"name": "TypeLiteral",
						"kind": "type",
						"source_line": 13,
						"type_signature": "$ZodBranded<ZodString, \"TypeLiteral\", \"out\">"
					},
					{
						"name": "PathWithTrailingSlash",
						"kind": "type",
						"source_line": 18,
						"type_signature": "ZodPipe<ZodString, ZodTransform<string, string>>"
					},
					{
						"name": "PathWithoutTrailingSlash",
						"kind": "type",
						"source_line": 21,
						"type_signature": "ZodPipe<ZodString, ZodTransform<string, string>>"
					},
					{
						"name": "PathWithLeadingSlash",
						"kind": "type",
						"source_line": 24,
						"type_signature": "ZodPipe<ZodString, ZodTransform<string, string>>"
					},
					{
						"name": "PathWithoutLeadingSlash",
						"kind": "type",
						"source_line": 27,
						"type_signature": "ZodPipe<ZodString, ZodTransform<string, string>>"
					},
					{
						"name": "SvelteMapSchema",
						"kind": "type",
						"source_line": 30,
						"type_signature": "ZodCustom<SvelteMap<unknown, unknown>, SvelteMap<unknown, unknown>>"
					},
					{
						"name": "get_datetime_now",
						"kind": "function",
						"doc_comment": "Returns an ISO datetime string that is guaranteed to be monotonically increasing.\nIf called multiple times within the same millisecond, it increments the value\nby one millisecond to ensure uniqueness and order preservation.",
						"source_line": 38,
						"type_signature": "(): string & $brand<\"Datetime\">",
						"return_type": "string & $brand<\"Datetime\">",
						"parameters": []
					},
					{
						"name": "Datetime",
						"kind": "type",
						"source_line": 41,
						"type_signature": "$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">"
					},
					{
						"name": "DatetimeNow",
						"kind": "type",
						"source_line": 43,
						"type_signature": "ZodDefault<$ZodBranded<ZodISODateTime, \"Datetime\", \"out\">>"
					},
					{
						"name": "create_uuid",
						"kind": "function",
						"source_line": 46,
						"type_signature": "(): string & $brand<\"Uuid\">",
						"return_type": "string & $brand<\"Uuid\">",
						"parameters": []
					},
					{
						"name": "Uuid",
						"kind": "type",
						"source_line": 48,
						"type_signature": "$ZodBranded<ZodUUID, \"Uuid\", \"out\">"
					},
					{
						"name": "UuidWithDefault",
						"kind": "type",
						"source_line": 50,
						"type_signature": "ZodDefault<$ZodBranded<ZodUUID, \"Uuid\", \"out\">>"
					},
					{
						"name": "to_subschema",
						"kind": "function",
						"doc_comment": "Extracts subschema from a Zod def, following Zod 4 patterns.",
						"source_line": 56,
						"type_signature": "(def: $ZodTypeDef): ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> | undefined",
						"return_type": "ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> | undefined",
						"parameters": [
							{
								"name": "def",
								"type": "$ZodTypeDef"
							}
						]
					},
					{
						"name": "get_innermost_type",
						"kind": "function",
						"doc_comment": "Gets the innermost type of a Zod schema by unwrapping wrappers like transforms, `ZodOptional`, `ZodDefault`, etc.",
						"source_line": 72,
						"type_signature": "(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>",
						"return_type": "ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>",
						"return_description": "The innermost schema without wrappers",
						"parameters": [
							{
								"name": "schema",
								"type": "ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>",
								"description": "The schema to unwrap"
							}
						]
					},
					{
						"name": "get_innermost_type_name",
						"kind": "function",
						"source_line": 98,
						"type_signature": "(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "schema",
								"type": "ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>"
							}
						]
					},
					{
						"name": "zod_get_schema_keys",
						"kind": "function",
						"doc_comment": "Gets all property keys from a Zod object schema.",
						"source_line": 107,
						"type_signature": "<T extends z.ZodType>(schema: T): SchemaKeys<T>[]",
						"return_type": "SchemaKeys<T>[]",
						"parameters": [
							{
								"name": "schema",
								"type": "T"
							}
						]
					},
					{
						"name": "get_field_schema",
						"kind": "function",
						"doc_comment": "Gets the Zod schema for a specific field in an object schema.",
						"source_line": 122,
						"type_signature": "(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>, key: string): ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>",
						"return_type": "ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>",
						"return_description": "The field's schema, or throws if not found",
						"parameters": [
							{
								"name": "schema",
								"type": "ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>",
								"description": "The object schema"
							},
							{
								"name": "key",
								"type": "string",
								"description": "The property name"
							}
						]
					},
					{
						"name": "maybe_get_field_schema",
						"kind": "function",
						"doc_comment": "Gets the Zod schema for a specific field in an object schema, returning undefined if not found.",
						"source_line": 137,
						"type_signature": "(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>, key: string): ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> | undefined",
						"return_type": "ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> | undefined",
						"return_description": "The field's schema, or undefined if not found",
						"parameters": [
							{
								"name": "schema",
								"type": "ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>",
								"description": "The object schema"
							},
							{
								"name": "key",
								"type": "string",
								"description": "The property name"
							}
						]
					},
					{
						"name": "is_array_schema",
						"kind": "function",
						"doc_comment": "Checks if a Zod schema is an array or contains an array through wrappers.",
						"source_line": 149,
						"type_signature": "(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): boolean",
						"return_type": "boolean",
						"parameters": [
							{
								"name": "schema",
								"type": "ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>"
							}
						]
					},
					{
						"name": "get_inner_array_schema",
						"kind": "function",
						"doc_comment": "Gets the innermost array schema from a potentially nested schema structure.\nReturns null if no array schema is found.",
						"source_line": 158,
						"type_signature": "(schema: ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>): ZodArray<any> | null",
						"return_type": "ZodArray<any> | null",
						"parameters": [
							{
								"name": "schema",
								"type": "ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>"
							}
						]
					},
					{
						"name": "format_zod_validation_error",
						"kind": "function",
						"doc_comment": "Formats a Zod validation error with field paths for clearer error messages.",
						"source_line": 166,
						"type_signature": "(error: ZodError<unknown>): string",
						"return_type": "string",
						"parameters": [
							{
								"name": "error",
								"type": "ZodError<unknown>"
							}
						]
					}
				],
				"dependents": [
					"action_event.ts",
					"action_metatypes.gen.ts",
					"action_specs.ts",
					"cell.svelte.ts",
					"cell_helpers.ts",
					"cell_types.ts",
					"chat.svelte.ts",
					"completion_types.ts",
					"config_defaults.ts",
					"constants.ts",
					"diskfile_helpers.ts",
					"diskfile_history.svelte.ts",
					"diskfile_tab.svelte.ts",
					"diskfile_tabs.svelte.ts",
					"diskfile_types.ts",
					"diskfiles.svelte.ts",
					"diskfiles_editor.svelte.ts",
					"indexed_collection.svelte.ts",
					"indexed_collection_helpers.svelte.ts",
					"ollama.svelte.ts",
					"part.svelte.ts",
					"parts.svelte.ts",
					"prompt.svelte.ts",
					"request_tracker.svelte.ts",
					"response_helpers.ts",
					"server/backend_websocket_transport.ts",
					"server/register_http_actions.ts",
					"socket.svelte.ts",
					"turn.svelte.ts",
					"turn_types.ts",
					"url_params_helpers.ts",
					"xml.ts"
				]
			}
		]
	}
}
