@ai-matrx/desktop-protocol 0.21.93 → 0.21.95
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -1
- package/dist/{chunk-server-MCBYY6QK.js → chunk-server-46JNNDT7.js} +9 -5
- package/dist/chunk-server-46JNNDT7.js.map +1 -0
- package/dist/{chunk-server-7CEUIBDY.js → chunk-server-BQQPFQSL.js} +199 -6
- package/dist/chunk-server-BQQPFQSL.js.map +1 -0
- package/dist/{chunk-server-FJWACRBP.js → chunk-server-ESQX6XVP.js} +3 -3
- package/dist/{chunk-server-HBZSBBGI.js → chunk-server-IHK7SYRO.js} +3 -3
- package/dist/chunk-server-IHK7SYRO.js.map +1 -0
- package/dist/client.cjs +181 -9
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +2 -2
- package/dist/client.d.ts +2 -2
- package/dist/client.js +3 -3
- package/dist/index.cjs +212 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +380 -208
- package/dist/index.d.ts +380 -208
- package/dist/index.js +55 -8
- package/dist/index.js.map +1 -1
- package/dist/{models-BpWoHvNe.d.cts → models-BfCwxx-G.d.cts} +1270 -408
- package/dist/{models-BpWoHvNe.d.ts → models-BfCwxx-G.d.ts} +1270 -408
- package/dist/react.d.cts +235 -2
- package/dist/react.d.ts +235 -2
- package/generated/desktop-protocol.schema.json +933 -96
- package/package.json +2 -2
- package/dist/chunk-server-7CEUIBDY.js.map +0 -1
- package/dist/chunk-server-HBZSBBGI.js.map +0 -1
- package/dist/chunk-server-MCBYY6QK.js.map +0 -1
- /package/dist/{chunk-server-FJWACRBP.js.map → chunk-server-ESQX6XVP.js.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,10 +1,37 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.21.
|
|
3
|
+
## 0.21.95
|
|
4
4
|
|
|
5
5
|
UNVERIFIED: this release has no Unreleased entry and the source comparison could not be made (the caller supplied no source comparison). Whether source changed is unknown; consumer action is unknown.
|
|
6
6
|
Check the package's gitHead on npm against this version's gitHead: `git diff <previous gitHead> <this gitHead> -- apps/shared/desktop-protocol/src`.
|
|
7
7
|
|
|
8
|
+
## 0.21.94
|
|
9
|
+
|
|
10
|
+
SOURCE CHANGED WITH NO RELEASE NOTE. This release shipped source changes that nobody described in an Unreleased entry,
|
|
11
|
+
so they may include breaking API changes. Consumer action is UNKNOWN: read the diff before upgrading.
|
|
12
|
+
Diff: `git diff 3aed0e63df d614c3a93c -- apps/shared/desktop-protocol/src`
|
|
13
|
+
|
|
14
|
+
Changed shipped source files (6):
|
|
15
|
+
- `apps/shared/desktop-protocol/src/contract.ts`
|
|
16
|
+
- `apps/shared/desktop-protocol/src/schema/errors.ts`
|
|
17
|
+
- `apps/shared/desktop-protocol/src/schema/models.ts`
|
|
18
|
+
- `apps/shared/desktop-protocol/src/schema/primitives.ts`
|
|
19
|
+
- `apps/shared/desktop-protocol/src/schema/registry.ts`
|
|
20
|
+
- `apps/shared/desktop-protocol/src/versioning.ts`
|
|
21
|
+
|
|
22
|
+
## 0.21.93
|
|
23
|
+
|
|
24
|
+
SOURCE CHANGED WITH NO RELEASE NOTE. This release shipped source changes that nobody described in an Unreleased entry,
|
|
25
|
+
so they may include breaking API changes. Consumer action is UNKNOWN: read the diff before upgrading.
|
|
26
|
+
Diff: `git diff 39a89b390f 3aed0e63df -- apps/shared/desktop-protocol/src`
|
|
27
|
+
|
|
28
|
+
Changed shipped source files (5):
|
|
29
|
+
- `apps/shared/desktop-protocol/src/contract.ts`
|
|
30
|
+
- `apps/shared/desktop-protocol/src/index.ts`
|
|
31
|
+
- `apps/shared/desktop-protocol/src/schema/fs-semantic.ts`
|
|
32
|
+
- `apps/shared/desktop-protocol/src/schema/primitives.ts`
|
|
33
|
+
- `apps/shared/desktop-protocol/src/schema/registry.ts`
|
|
34
|
+
|
|
8
35
|
## 0.21.92
|
|
9
36
|
|
|
10
37
|
SOURCE CHANGED WITH NO RELEASE NOTE. This release shipped source changes that nobody described in an Unreleased entry,
|
|
@@ -2,16 +2,18 @@ import {
|
|
|
2
2
|
CloseCode,
|
|
3
3
|
PROTOCOL_MAJOR,
|
|
4
4
|
PROTOCOL_MINOR
|
|
5
|
-
} from "./chunk-server-
|
|
5
|
+
} from "./chunk-server-IHK7SYRO.js";
|
|
6
6
|
|
|
7
7
|
// src/versioning.ts
|
|
8
8
|
import { compareVersions } from "@ai-matrx/kit/versions";
|
|
9
9
|
var FIELDS_SINCE = {
|
|
10
10
|
LlmRunning: { context_length: "1.48", gpu_layers: "1.48", threads: "1.48" },
|
|
11
11
|
TextModelInfo: { title: "1.69", problem: "1.69" },
|
|
12
|
-
MlCatalogSetParams: { unusable: "1.69", speech: "1.81" },
|
|
12
|
+
MlCatalogSetParams: { unusable: "1.69", speech: "1.81", embedding: "1.88", wake: "1.89" },
|
|
13
|
+
ModelsLlmStatusResult: { embedding: "1.88" },
|
|
14
|
+
ModelsLlmStopParams: { slot: "1.88" },
|
|
13
15
|
MlProgress: { audio: "1.81" },
|
|
14
|
-
ModelsLlmStartParams: { gpu_layers: "1.48", threads: "1.48", load_timeout_s: "1.48" },
|
|
16
|
+
ModelsLlmStartParams: { gpu_layers: "1.48", threads: "1.48", load_timeout_s: "1.48", slot: "1.88" },
|
|
15
17
|
FsPatchResult: { edits_applied: "1.1", edits_failed: "1.1" },
|
|
16
18
|
"ProtocolErrorBody.data": { edits_failed: "1.1" },
|
|
17
19
|
"RelayCallResponse|0": { protocol_version: "1.1" },
|
|
@@ -195,7 +197,9 @@ var RESULT_PATH = /* @__PURE__ */ new Map([
|
|
|
195
197
|
// 1.67: Matrx Local's local_mac_apps result fields.
|
|
196
198
|
["photos.get", "PhotosGetResult"],
|
|
197
199
|
["location.get", "LocationGetResult"],
|
|
198
|
-
["account.agents.restore_version", "AccountAgentsRestoreVersionResult"]
|
|
200
|
+
["account.agents.restore_version", "AccountAgentsRestoreVersionResult"],
|
|
201
|
+
// 1.88: the embeddings slot beside the chat model.
|
|
202
|
+
["models.llm.status", "ModelsLlmStatusResult"]
|
|
199
203
|
]);
|
|
200
204
|
var NESTED_RESULTS = /* @__PURE__ */ new Map([
|
|
201
205
|
["apps.chats.list", [["chats", "ChatRow"]]],
|
|
@@ -401,4 +405,4 @@ export {
|
|
|
401
405
|
closeRule,
|
|
402
406
|
isTerminalClose
|
|
403
407
|
};
|
|
404
|
-
//# sourceMappingURL=chunk-server-
|
|
408
|
+
//# sourceMappingURL=chunk-server-46JNNDT7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/versioning.ts","../src/close-policy.ts"],"sourcesContent":["/**\n * Version skew is the normal state: a phone, the server and a desktop app in the field run\n * different package versions, and a minor protocol bump must never make any of them fail.\n *\n * THE RULE (enforced by src/versioning.test.ts against generated/baseline-1.0.json):\n * 1. Within a major, a minor may only ADD. A field added after x.0 is OPTIONAL in the schema\n * (an older peer omits it) and is listed in FIELDS_SINCE with the minor that added it.\n * 2. A writer never sends a field newer than the version its peer negotiated (hello/welcome, or\n * the /call version header): older peers' strict schemas refuse unknown keys. `forPeer`\n * does the stripping; the core's Router applies it to every result and error it sends.\n * 3. A reader that needs a newer field checks the peer's version and says so loudly when the\n * peer is older (e.g. aidream's local_proxy marks a patch answer from a 1.0 app).\n */\nimport { compareVersions } from \"@ai-matrx/kit/versions\";\n\nimport type { OpName } from \"./schema/registry\";\nimport type { ErrorReasonName } from \"./types\";\nimport { PROTOCOL_MAJOR, PROTOCOL_MINOR } from \"./schema/primitives\";\n\n/**\n * Fields added after x.0, by schema location: a named schema (`FsPatchResult`), a property path\n * inside one (`ProtocolErrorBody.data`), or a union branch (`RelayCallResponse|0`).\n */\nexport const FIELDS_SINCE = {\n LlmRunning: { context_length: \"1.48\", gpu_layers: \"1.48\", threads: \"1.48\" },\n TextModelInfo: { title: \"1.69\", problem: \"1.69\" },\n MlCatalogSetParams: { unusable: \"1.69\", speech: \"1.81\", embedding: \"1.88\", wake: \"1.89\" },\n ModelsLlmStatusResult: { embedding: \"1.88\" },\n ModelsLlmStopParams: { slot: \"1.88\" },\n MlProgress: { audio: \"1.81\" },\n ModelsLlmStartParams: { gpu_layers: \"1.48\", threads: \"1.48\", load_timeout_s: \"1.48\", slot: \"1.88\" },\n FsPatchResult: { edits_applied: \"1.1\", edits_failed: \"1.1\" },\n \"ProtocolErrorBody.data\": { edits_failed: \"1.1\" },\n \"RelayCallResponse|0\": { protocol_version: \"1.1\" },\n \"RelayCallResponse|1\": { protocol_version: \"1.1\" },\n WindowInfo: { app: \"1.7\", pid: \"1.7\" },\n AppWindowInfo: { remote_control: \"1.50\" },\n WindowRemoteControl: { problem: \"1.52\" },\n CodingProviderStatus: { accounts: \"1.53\", accountsProblem: \"1.53\", usage: \"1.57\", continueOn: \"1.57\" },\n CodingProviderAccount: { ready: \"1.57\", lastProblem: \"1.57\", problem: \"1.57\", fix: \"1.57\", usage: \"1.57\", continueOn: \"1.57\" },\n CodingSessionRecord: { accountId: \"1.57\" },\n CodingDiscoveredChat: { accountId: \"1.57\" },\n CodingRecentRow: { accountId: \"1.57\" },\n CodingSearchHit: { accountId: \"1.57\" },\n AppInstance: { missing: \"1.63\" },\n AppsInstancesListParams: { fresh: \"1.51\" },\n AppsInstancesListResult: { as_of_ms: \"1.51\", refreshing: \"1.51\", computer: \"1.71\", elsewhere: \"1.71\", shared_problem: \"1.71\" },\n AppsAccountsListParams: { fresh: \"1.51\" },\n AppsAccountsListResult: { as_of_ms: \"1.51\", refreshing: \"1.51\", shared_problem: \"1.71\" },\n AppsChatsListResult: { updating: \"1.9\", live: \"1.9\", families: \"1.10\" },\n AppsAccountsUsageResult: { problem: \"1.12\" },\n AppsAccountsResetsResult: { problem: \"1.12\" },\n ColdChat: { hidden: \"1.78\" },\n SpendChat: { hidden: \"1.78\" },\n SpendLive: { hidden: \"1.78\" },\n SpendIdle: { hidden: \"1.78\" },\n ChatRow: { app_project: \"1.13\", tokens: \"1.13\", original_title: \"1.14\", title_source: \"1.14\", title_override: \"1.14\", archived: \"1.15\", session_id: \"1.59\", app_groups: \"1.59\", parent: \"1.59\", prior_sessions: \"1.59\", title_sync: \"1.61\", moved: \"1.62\", home: \"1.63\", hidden: \"1.70\", pin_sync: \"1.72\" },\n AccountUsage: { plan: \"1.13\", credits: \"1.13\", five_hour_resets_by_ms: \"1.25\", read_source: \"1.73\" },\n AppAccount: { profile: \"1.73\", read_source: \"1.73\", session_cost_usd: \"1.73\", readings: \"1.79\" },\n ResourcesDisk: { name: \"1.17\" },\n StackServer: { cpu_percent: \"1.18\", memory_bytes: \"1.18\" },\n AudioDevice: { kind: \"1.24\" },\n AudioRecordParams: { channels: \"1.66\", sample_rate: \"1.66\" },\n AudioRecordResult: { channels: \"1.66\", sample_rate: \"1.66\" },\n AudioPlayParams: { device_id: \"1.66\" },\n WindowListParams: { app: \"1.66\" },\n WindowMinimizeParams: { mode: \"1.66\" },\n WindowMinimizeResult: { mode: \"1.66\" },\n ScreenDisplay: { rotation: \"1.24\", refresh_hz: \"1.24\", builtin: \"1.24\" },\n PowerStatusResult: { energy: \"1.24\" },\n AppsSpendResult: { days: \"1.24\" },\n AppsWindowsUpdateStateResult: { closed_by_update: \"1.27\" },\n AppsProjectsToWindowParams: { pin: \"1.32\", chat_ids: \"1.36\", take_off_from: \"1.36\", group_id: \"1.43\", group_name: \"1.43\" },\n AppsProjectsToWindowResult: { pin: \"1.32\", chats: \"1.43\" },\n ProjectMoveGroup: { when: \"1.43\", group_id: \"1.43\" },\n AppsChatsTitlesCheckResult: { stale_windows: \"1.33\" },\n AccountAgent: { tags: \"1.39\", model_id: \"1.39\", access_level: \"1.39\", organization_id: \"1.39\", origin: \"1.39\", is_archived: \"1.39\", orchestra: \"1.39\" },\n WebScrapeParams: { engine: \"1.40\", land: \"1.40\" },\n WebScrapePage: { source: \"1.40\" },\n WebBrowserFetchParams: { land: \"1.40\" },\n WebBrowserFetchResult: { source: \"1.40\" },\n SysinfoGetResult: { requirements: \"1.41\" },\n \"SysinfoGetResult.permissions[]\": { detail: \"1.41\" },\n MessagesSendParams: { service: \"1.42\" },\n // 1.67: Matrx Local's local_mac_apps and local_windows_ps contracts, carried whole.\n MailAccount: { mailboxes: \"1.67\" },\n MailSendParams: { bcc: \"1.67\" },\n MessagesChat: { last_message: \"1.67\" },\n MessagesListParams: { contact: \"1.67\", unread_only: \"1.67\" },\n MessagesMessage: { read: \"1.67\", service: \"1.67\", chat_name: \"1.67\" },\n CalendarListParams: { calendars: \"1.67\" },\n CalendarEvent: { url: \"1.67\" },\n RemindersListParams: { lists: \"1.67\" },\n Reminder: { priority: \"1.67\", completed_at_ms: \"1.67\" },\n PhotosSearchParams: { media_type: \"1.67\" },\n Photo: { media_type: \"1.67\", duration_s: \"1.67\" },\n PhotosGetParams: { thumbnail_size: \"1.67\" },\n PhotosGetResult: { thumbnail_png_base64: \"1.67\" },\n LocationGetResult: { altitude_m: \"1.67\", vertical_accuracy_m: \"1.67\", speed_mps: \"1.67\", course_deg: \"1.67\" },\n WindowsServicesParams: { status: \"1.67\" },\n WindowsEventLogParams: { source: \"1.67\" },\n WindowsFeaturesParams: { installed_only: \"1.67\" },\n SysinfoHardwareResult: { graphics: \"1.45\" },\n DownloadRow: { error: \"1.46\" },\n CopyRestart: { reopened: \"1.60\" },\n AccountAgentsRestoreVersionResult: { new_version: \"1.68\", unchanged: \"1.68\" },\n} as const satisfies Record<string, Record<string, `${number}.${number}`>>;\n\nexport type FieldsSincePath = keyof typeof FIELDS_SINCE;\n\n/**\n * 1.0 fields that a later minor lets be null, and what a peer older than that minor is sent\n * instead (the value that meant the same thing before). Widening a field any other way is a major.\n */\nexport const NULL_SINCE = {\n \"RelayDeviceStatusEvent.since_ms\": { since: \"1.1\", olderPeersGet: 0 },\n} as const satisfies Record<string, { since: `${number}.${number}`; olderPeersGet: unknown }>;\n\n/**\n * Error reasons added after x.0, with the minor that added each. An older peer's strict enum would\n * refuse the whole error body, so `forPeer` drops a reason the peer does not know (the code, the\n * message and `retryable` still tell it what happened).\n */\nexport const REASONS_SINCE = {\n runtime_not_installed: \"1.2\",\n model_not_installed: \"1.2\",\n unsupported_media: \"1.2\",\n download_failed: \"1.2\",\n service_starting: \"1.2\",\n service_restarted: \"1.2\",\n service_failed: \"1.2\",\n browser_not_connected: \"1.28\",\n browser_ambiguous: \"1.28\",\n browser_account_mismatch: \"1.28\",\n browser_connection_off: \"1.28\",\n awaiting_confirmation: \"1.28\",\n tool_disabled_on_device: \"1.34\",\n model_not_running: \"1.76\",\n model_server_unreachable: \"1.76\",\n} as const satisfies Partial<Record<ErrorReasonName, `${number}.${number}`>>;\n\n/**\n * (1.41) Values a later minor added to an enum a peer reads inside a list, by the minor that added\n * each: sysinfo.get's permission names. An older peer's strict enum would refuse the whole answer,\n * so `forPeer` leaves out the rows it does not know (it is never sent a name it cannot read).\n */\nexport const PERMISSIONS_SINCE = {\n reminders: \"1.41\",\n speech_recognition: \"1.41\",\n messages: \"1.41\",\n mail: \"1.41\",\n wifi: \"1.41\",\n} as const satisfies Record<string, `${number}.${number}`>;\n\n/**\n * (1.80) Values a later minor added to SetupItemKind (apps.setup.list `setups[].items[].kind`), by\n * the minor that added each. An older peer's strict enum would refuse the whole answer, so `forPeer`\n * leaves out the items it does not know.\n */\nexport const SETUP_KINDS_SINCE = {\n skill: \"1.80\",\n} as const satisfies Record<string, `${number}.${number}`>;\n\nfunction setupItemsForPeer(value: unknown, version: string): unknown {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) return value;\n const body = value as { setups?: unknown };\n if (!Array.isArray(body.setups)) return value;\n const since = SETUP_KINDS_SINCE as Record<string, string>;\n const setups: unknown[] = body.setups;\n const next = setups.map((s: unknown) => {\n const items = (s as { items?: unknown } | null)?.items;\n if (!Array.isArray(items)) return s;\n const kept = items.filter((i: unknown) => {\n const kind = (i as { kind?: unknown } | null)?.kind;\n const added = typeof kind === \"string\" ? since[kind] : undefined;\n return !added || knows(version, added);\n });\n return kept.length === items.length ? s : { ...(s as Record<string, unknown>), items: kept };\n });\n return next.some((s, i) => s !== setups[i]) ? { ...body, setups: next } : value;\n}\n\nfunction permissionsForPeer(value: unknown, version: string): unknown {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) return value;\n const body = value as { permissions?: unknown };\n if (!Array.isArray(body.permissions)) return value;\n const since = PERMISSIONS_SINCE as Record<string, string>;\n const kept = body.permissions.filter((p: unknown) => {\n const name = (p as { name?: unknown } | null)?.name;\n const added = typeof name === \"string\" ? since[name] : undefined;\n return !added || knows(version, added);\n });\n return kept.length === body.permissions.length ? value : { ...body, permissions: kept };\n}\n\n/** A device status for a reader at `version`: `since_ms` null (\"never\") becomes 0 before 1.1. */\nexport function statusForPeer<T extends { since_ms: number | null }>(status: T, version: string): T {\n const rule = NULL_SINCE[\"RelayDeviceStatusEvent.since_ms\"];\n return status.since_ms === null && !knows(version, rule.since) ? { ...status, since_ms: rule.olderPeersGet } : status;\n}\n\n/**\n * A WebSocket client announces the newest minor it reads at connect time by also offering\n * `matrx.v<major>.<minor>` beside SUBPROTOCOL (servers still answer SUBPROTOCOL). Before hello is\n * possible, this is how the relay picks the right shape for its greeting.\n */\nexport function versionSubprotocol(version: string): string {\n return `matrx.v${version}`;\n}\n\n/** The version a client announced in its offered subprotocols; \"1.0\" when it did not. */\nexport function announcedVersion(offered: readonly string[]): string {\n let best = `${PROTOCOL_MAJOR}.0`;\n for (const p of offered) {\n const m = /^matrx\\.v(\\d+\\.\\d+)$/.exec(p.trim());\n if (m?.[1] && compareVersions(m[1], best) > 0 && m[1].startsWith(`${PROTOCOL_MAJOR}.`)) best = m[1];\n }\n return best;\n}\n\n/** True when a peer at `version` knows a field added in `since`. */\nexport function knows(version: string, since: string): boolean {\n return compareVersions(version, since) >= 0;\n}\n\n/** The version two peers speak: the lower minor within this major. */\nexport function negotiate(peerVersion: string): string {\n const [major = 0, minor = 0] = peerVersion.split(\".\").map(Number);\n if (major !== PROTOCOL_MAJOR) return `${PROTOCOL_MAJOR}.0`;\n return `${PROTOCOL_MAJOR}.${Math.min(minor, PROTOCOL_MINOR)}`;\n}\n\nfunction strip(value: unknown, fields: Record<string, string> | undefined, version: string): unknown {\n if (!fields || value === null || typeof value !== \"object\" || Array.isArray(value)) return value;\n let out: Record<string, unknown> | null = null;\n for (const [field, since] of Object.entries(fields)) {\n if (field in (value as object) && !knows(version, since)) {\n out ??= { ...(value as Record<string, unknown>) };\n delete out[field];\n }\n }\n return out ?? value;\n}\n\nconst RESULT_PATH = new Map<OpName, FieldsSincePath>([\n [\"fs.patch\", \"FsPatchResult\"],\n [\"apps.chats.list\", \"AppsChatsListResult\"],\n [\"apps.accounts.usage\", \"AppsAccountsUsageResult\"],\n [\"apps.accounts.resets\", \"AppsAccountsResetsResult\"],\n [\"apps.windows.update_state\", \"AppsWindowsUpdateStateResult\"],\n [\"web.fetch_with_browser\", \"WebBrowserFetchResult\"],\n [\"sysinfo.get\", \"SysinfoGetResult\"],\n [\"sysinfo.hardware\", \"SysinfoHardwareResult\"],\n [\"apps.projects.to_window\", \"AppsProjectsToWindowResult\"],\n // 1.67: Matrx Local's local_mac_apps result fields.\n [\"photos.get\", \"PhotosGetResult\"],\n [\"location.get\", \"LocationGetResult\"],\n [\"account.agents.restore_version\", \"AccountAgentsRestoreVersionResult\"],\n // 1.88: the embeddings slot beside the chat model.\n [\"models.llm.status\", \"ModelsLlmStatusResult\"],\n]);\n\n/** 1.13: results that carry a named schema with versioned fields under a key (one object or an array of them). */\nconst NESTED_RESULTS: ReadonlyMap<OpName, ReadonlyArray<readonly [string, FieldsSincePath]>> = new Map<OpName, ReadonlyArray<readonly [string, FieldsSincePath]>>([\n [\"apps.chats.list\", [[\"chats\", \"ChatRow\"]]],\n [\"apps.projects.file\", [[\"chat\", \"ChatRow\"]]],\n [\"apps.projects.file_many\", [[\"chats\", \"ChatRow\"]]],\n [\"apps.projects.unfile\", [[\"chat\", \"ChatRow\"]]],\n [\"apps.projects.move\", [[\"chat\", \"ChatRow\"]]],\n [\"apps.chats.star\", [[\"chat\", \"ChatRow\"]]],\n // 1.78: our Hide on the cold and spend rows.\n [\"apps.chats.cold\", [[\"waiting\", \"ColdChat\"], [\"recently_cold\", \"ColdChat\"]]],\n [\"apps.spend\", [[\"chats\", \"SpendChat\"], [\"live\", \"SpendLive\"], [\"idle\", \"SpendIdle\"]]],\n [\"apps.chats.place\", [[\"chat\", \"ChatRow\"]]],\n [\"apps.accounts.usage\", [[\"accounts\", \"AccountUsage\"]]],\n // 1.73/1.79: the account rows' newer fields (profile, read_source, session_cost_usd, readings).\n [\"apps.accounts.list\", [[\"accounts\", \"AppAccount\"]]],\n [\"resources.snapshot\", [[\"disks\", \"ResourcesDisk\"]]],\n [\"stack.state\", [[\"servers\", \"StackServer\"]]],\n [\"account.agents.list\", [[\"agents\", \"AccountAgent\"]]],\n [\"web.scrape\", [[\"pages\", \"WebScrapePage\"]]],\n [\"sysinfo.get\", [[\"permissions\", \"SysinfoGetResult.permissions[]\"]]],\n [\"models.downloads.list\", [[\"downloads\", \"DownloadRow\"]]],\n [\"apps.projects.to_window\", [[\"group\", \"ProjectMoveGroup\"]]],\n // 1.60: each closed window's reopen outcome in a restart_verify copy.\n [\"apps.chats.copy_to_account\", [[\"restart\", \"CopyRestart\"]]],\n [\"apps.windows.list\", [[\"windows\", \"AppWindowInfo\"]]],\n // 1.63: what an instance record still lacks.\n [\"apps.instances.list\", [[\"instances\", \"AppInstance\"]]],\n [\"apps.windows.set_remote_control\", [[\"remote_control\", \"WindowRemoteControl\"]]],\n // 1.67: Matrx Local's local_mac_apps result fields.\n [\"mail.accounts\", [[\"accounts\", \"MailAccount\"]]],\n [\"messages.chats\", [[\"chats\", \"MessagesChat\"]]],\n [\"messages.list\", [[\"messages\", \"MessagesMessage\"]]],\n [\"calendar.list\", [[\"events\", \"CalendarEvent\"]]],\n [\"reminders.list\", [[\"reminders\", \"Reminder\"]]],\n [\"photos.search\", [[\"photos\", \"Photo\"]]],\n [\"photos.get\", [[\"photo\", \"Photo\"]]],\n [\"coding.providers\", [[\"providers\", \"CodingProviderStatus\"]]],\n // 1.57: the account a coding record belongs to.\n [\"coding.sessions.list\", [[\"sessions\", \"CodingSessionRecord\"], [\"recent\", \"CodingRecentRow\"]]],\n [\"coding.recent.seen\", [[\"recent\", \"CodingRecentRow\"]]],\n [\"coding.discover\", [[\"chats\", \"CodingDiscoveredChat\"]]],\n [\"coding.search\", [[\"hits\", \"CodingSearchHit\"]]],\n [\"coding.start\", [[\"session\", \"CodingSessionRecord\"]]],\n [\"coding.send\", [[\"session\", \"CodingSessionRecord\"]]],\n [\"coding.takeover\", [[\"session\", \"CodingSessionRecord\"]]],\n [\"coding.options.set\", [[\"session\", \"CodingSessionRecord\"]]],\n [\"coding.agent.set\", [[\"session\", \"CodingSessionRecord\"]]],\n [\"coding.account.continue\", [[\"session\", \"CodingSessionRecord\"]]],\n]);\n\nfunction stripNested(value: unknown, nested: ReadonlyArray<readonly [string, FieldsSincePath]>, version: string): unknown {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) return value;\n let body = value as Record<string, unknown>;\n for (const [key, path] of nested) {\n const inner = body[key];\n if (inner === undefined || inner === null) continue;\n const fields = FIELDS_SINCE[path];\n if (Array.isArray(inner)) {\n const next = inner.map((x: unknown) => strip(x, fields, version));\n if (next.some((x, i) => x !== inner[i])) body = { ...body, [key]: next };\n } else {\n const next = strip(inner, fields, version);\n if (next !== inner) body = { ...body, [key]: next };\n }\n }\n return body;\n}\n\n/**\n * (1.52) apps.windows.list for a peer older than 1.52: each window's `remote_control` loses `problem`,\n * and a window whose settings file is damaged (\"unreadable\", a value its strict enum does not know)\n * has no `remote_control` at all (not known) instead of failing the whole list.\n */\nfunction windowListRemoteControlForPeer(value: unknown, version: string): unknown {\n if (knows(version, \"1.52\") || value === null || typeof value !== \"object\") return value;\n const body = value as { windows?: unknown };\n if (!Array.isArray(body.windows)) return value;\n const windows: unknown[] = body.windows;\n const next = windows.map((w: unknown) => {\n const rc = (w as { remote_control?: unknown } | null)?.remote_control;\n if (rc === null || typeof rc !== \"object\") return w;\n if ((rc as { setting?: unknown }).setting === \"unreadable\") {\n const { remote_control: _dropped, ...rest } = w as Record<string, unknown>;\n return rest;\n }\n const kept = strip(rc, FIELDS_SINCE.WindowRemoteControl, version);\n return kept === rc ? w : { ...(w as Record<string, unknown>), remote_control: kept };\n });\n return next.some((w, i) => w !== windows[i]) ? { ...body, windows: next } : value;\n}\n\n/**\n * coding.providers, one level below the providers:\n * (1.54) for a peer older than 1.54, a default model whose source is \"account\" (a value its strict\n * enum does not know) is sent as \"driver\" (the app picked it, not the person's settings\n * file), instead of failing the whole answer;\n * (1.57) each of a provider's `accounts` loses the fields newer than the peer (its health, usage\n * and \"Continue on\").\n */\nfunction providersForPeer(value: unknown, version: string): unknown {\n if (knows(version, \"1.57\") || value === null || typeof value !== \"object\") return value;\n const body = value as { providers?: unknown };\n if (!Array.isArray(body.providers)) return value;\n const providers: unknown[] = body.providers;\n const next = providers.map((p: unknown) => {\n if (p === null || typeof p !== \"object\") return p;\n let out = p as Record<string, unknown>;\n const dm = out.defaultModel;\n if (!knows(version, \"1.54\") && dm !== null && typeof dm === \"object\" && (dm as { source?: unknown }).source === \"account\") {\n out = { ...out, defaultModel: { ...(dm as Record<string, unknown>), source: \"driver\" } };\n }\n const accounts = out.accounts;\n if (Array.isArray(accounts)) {\n const kept = accounts.map((a: unknown) => strip(a, FIELDS_SINCE.CodingProviderAccount, version));\n if (kept.some((a, i) => a !== accounts[i])) out = { ...out, accounts: kept };\n }\n return out;\n });\n return next.some((p, i) => p !== providers[i]) ? { ...body, providers: next } : value;\n}\n\n/**\n * (1.65) coding.history / coding.transcript.read for a peer older than 1.65: a `continued` item (a\n * kind its strict union does not know, which would refuse the whole transcript) is sent as the\n * info `notice` it was before (\"Continued from Alpha\").\n */\nfunction transcriptItemsForPeer(value: unknown, version: string): unknown {\n if (knows(version, \"1.65\") || value === null || typeof value !== \"object\") return value;\n const body = value as { items?: unknown };\n if (!Array.isArray(body.items)) return value;\n const items: unknown[] = body.items;\n const next = items.map((item: unknown) => {\n const it = item as { kind?: unknown; id?: unknown; text?: unknown } | null;\n if (it?.kind !== \"continued\") return item;\n return { kind: \"notice\", id: it.id, level: \"info\", text: it.text };\n });\n return next.some((it, i) => it !== items[i]) ? { ...body, items: next } : value;\n}\n\n/** Results that carry WindowInfo (window.list's `windows`, focus/move's `window`). */\nconst WINDOW_RESULTS: ReadonlyMap<OpName, \"windows\" | \"window\"> = new Map([\n [\"window.list\", \"windows\"],\n [\"window.focus\", \"window\"],\n [\"window.move\", \"window\"],\n]);\n\nfunction stripWindows(value: unknown, key: \"windows\" | \"window\", version: string): unknown {\n if (value === null || typeof value !== \"object\") return value;\n const body = value as Record<string, unknown>;\n const inner = body[key];\n if (inner === undefined) return value;\n const fields = FIELDS_SINCE.WindowInfo;\n if (Array.isArray(inner)) {\n const next = inner.map((w: unknown) => strip(w, fields, version));\n return next.some((w, i) => w !== inner[i]) ? { ...body, [key]: next } : value;\n }\n const next = strip(inner, fields, version);\n return next === inner ? value : { ...body, [key]: next };\n}\n\n/**\n * What to send a peer that negotiated `version`: `result` of `op`, or an error body, with every\n * field newer than that version removed (rule 2). Unchanged for a current peer.\n */\nexport function forPeer(op: OpName, part: \"result\", value: unknown, version: string): unknown;\nexport function forPeer(op: OpName | null, part: \"error\", value: unknown, version: string): unknown;\nexport function forPeer(op: OpName | null, part: \"result\" | \"error\", value: unknown, version: string): unknown {\n if (part === \"result\") {\n const windowKey = op ? WINDOW_RESULTS.get(op) : undefined;\n if (windowKey) return stripWindows(value, windowKey, version);\n const path = op ? RESULT_PATH.get(op) : undefined;\n const known = op === \"sysinfo.get\" ? permissionsForPeer(value, version) : value;\n const top = path ? strip(known, FIELDS_SINCE[path], version) : known;\n const nested = op ? NESTED_RESULTS.get(op) : undefined;\n const stripped = nested ? stripNested(top, nested, version) : top;\n if (op === \"coding.providers\") return providersForPeer(stripped, version);\n if (op === \"coding.history\" || op === \"coding.transcript.read\") return transcriptItemsForPeer(stripped, version);\n if (op === \"apps.setup.list\") return setupItemsForPeer(stripped, version);\n return op === \"apps.windows.list\" ? windowListRemoteControlForPeer(stripped, version) : stripped;\n }\n if (value === null || typeof value !== \"object\") return value;\n const body = value as { data?: unknown };\n if (body.data === undefined) return value;\n let data = strip(body.data, FIELDS_SINCE[\"ProtocolErrorBody.data\"], version);\n const reason = (data as { reason?: unknown }).reason;\n const reasonSince = typeof reason === \"string\" ? (REASONS_SINCE as Record<string, string>)[reason] : undefined;\n if (reasonSince && !knows(version, reasonSince)) {\n const { reason: _dropped, ...rest } = data as Record<string, unknown>;\n data = rest;\n }\n return data === body.data ? value : { ...body, data };\n}\n\n/** Every op whose result has a versioned field is wired into forPeer (checked by the test). */\nexport const VERSIONED_RESULT_OPS: readonly OpName[] = [...new Set([...RESULT_PATH.keys(), ...WINDOW_RESULTS.keys(), ...NESTED_RESULTS.keys()])];\n","/**\n * What a connecting side does after each WebSocket close — the ONE table every client reads (the\n * package client, the desktop's relay transport, any other dialer). Never keep a local list of\n * \"terminal\" codes: a code added to CloseCode without a rule here fails to compile.\n *\n * reconnect_now the far side went away on purpose or the socket died; dial again at once if the\n * connection had opened, with backoff otherwise (a dead network never spins).\n * reconnect transient refusal; dial again with backoff.\n * reauth the token was refused; get a FRESH token and dial once more. A second refusal in\n * a row (no successful open between) is terminal with outcome \"signed_out\".\n * stop retrying cannot help: stop dialing until something changes (a new sign-in, a\n * new device, an update) and show the outcome.\n */\nimport type { ErrorCodeName } from \"./types\";\nimport { CloseCode, type CloseCodeValue } from \"./schema/envelope\";\n\nexport type CloseAction = \"reconnect_now\" | \"reconnect\" | \"reauth\" | \"stop\";\n\n/** The one state a person is shown when dialing stops. */\nexport type CloseOutcome = \"signed_out\" | \"not_owned\" | \"removed\" | \"revoked\" | \"replaced\" | \"upgrade_required\";\n\nexport interface CloseRule {\n readonly action: CloseAction;\n /** Set for `stop` and `reauth` (the outcome when the fresh token is refused too). */\n readonly outcome?: CloseOutcome;\n /** The error a caller's pending work is failed with. */\n readonly error: readonly [ErrorCodeName, string];\n}\n\nexport const CLOSE_RULES = {\n [CloseCode.NORMAL]: { action: \"reconnect\", error: [\"DEVICE_OFFLINE\", \"Connection closed\"] },\n [CloseCode.GOING_AWAY]: { action: \"reconnect_now\", error: [\"DEVICE_OFFLINE\", \"Connection lost\"] },\n [CloseCode.ABNORMAL]: { action: \"reconnect_now\", error: [\"DEVICE_OFFLINE\", \"Connection lost\"] },\n [CloseCode.DEVICE_RECONNECTED]: { action: \"reconnect_now\", error: [\"DEVICE_OFFLINE\", \"Device reconnected\"] },\n [CloseCode.TRY_AGAIN_LATER]: { action: \"reconnect\", error: [\"DEVICE_OFFLINE\", \"Relay busy; retrying\"] },\n [CloseCode.AUTH_INVALID]: { action: \"reauth\", outcome: \"signed_out\", error: [\"AUTH_INVALID\", \"Sign-in was not accepted\"] },\n [CloseCode.AUTH_FORBIDDEN]: { action: \"stop\", outcome: \"not_owned\", error: [\"AUTH_FORBIDDEN\", \"Not this device's owner\"] },\n [CloseCode.DEVICE_NOT_FOUND]: { action: \"stop\", outcome: \"removed\", error: [\"NOT_FOUND\", \"Device not found\"] },\n [CloseCode.AUTH_EXPIRED]: { action: \"reauth\", outcome: \"signed_out\", error: [\"AUTH_EXPIRED\", \"Sign-in expired\"] },\n [CloseCode.REPLACED]: { action: \"stop\", outcome: \"replaced\", error: [\"CONFLICT\", \"Replaced by a newer connection\"] },\n [CloseCode.DEVICE_REVOKED]: { action: \"stop\", outcome: \"revoked\", error: [\"AUTH_DEVICE_REVOKED\", \"This device was revoked\"] },\n // A malformed message, or a connection the relay lost track of: a fresh socket starts clean.\n [CloseCode.PROTOCOL_ERROR]: { action: \"reconnect\", error: [\"PROTOCOL_ERROR\", \"Connection reset by the relay\"] },\n [CloseCode.UPGRADE_REQUIRED]: { action: \"stop\", outcome: \"upgrade_required\", error: [\"PROTOCOL_VERSION_UNSUPPORTED\", \"Protocol upgrade required\"] },\n} as const satisfies Record<CloseCodeValue, CloseRule>;\n\nconst UNKNOWN: CloseRule = { action: \"reconnect\", error: [\"DEVICE_OFFLINE\", \"Connection lost\"] };\n\n/** The rule for any close code; one this table does not know (or null: no close frame) reconnects with backoff. */\nexport function closeRule(code: number | null | undefined): CloseRule {\n if (code === null || code === undefined) return CLOSE_RULES[CloseCode.ABNORMAL];\n return (CLOSE_RULES as Record<number, CloseRule>)[code] ?? UNKNOWN;\n}\n\n/** True when dialing must stop after this close (no retry will help). */\nexport function isTerminalClose(code: number | null | undefined): boolean {\n return closeRule(code).action === \"stop\";\n}\n"],"mappings":"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","names":["next"]}
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
epochMs,
|
|
34
34
|
nonNegInt,
|
|
35
35
|
u32
|
|
36
|
-
} from "./chunk-server-
|
|
36
|
+
} from "./chunk-server-IHK7SYRO.js";
|
|
37
37
|
|
|
38
38
|
// src/schema/fs-semantic.ts
|
|
39
39
|
import { z } from "zod";
|
|
@@ -591,6 +591,51 @@ var ModelsTtsVoiceSaveParams = z6.strictObject({
|
|
|
591
591
|
var ModelsTtsVoiceSaveResult = z6.strictObject({ voice: TtsVoice });
|
|
592
592
|
var ModelsTtsVoiceRemoveParams = z6.strictObject({ voice: TtsVoiceId });
|
|
593
593
|
var ModelsTtsVoiceRemoveResult = z6.strictObject({ removed: z6.boolean() });
|
|
594
|
+
var WakeEngine = z6.enum(["oww", "whisper"]);
|
|
595
|
+
var WakeModelInfo = z6.strictObject({
|
|
596
|
+
id: ModelKey,
|
|
597
|
+
size_bytes: nonNegInt,
|
|
598
|
+
installed: z6.boolean(),
|
|
599
|
+
problem: z6.string().max(300).nullable()
|
|
600
|
+
});
|
|
601
|
+
var ModelsWakeStatusParams = z6.strictObject({});
|
|
602
|
+
var ModelsWakeStatusResult = z6.strictObject({
|
|
603
|
+
/** The first-use runtime (onnxruntime, faster-whisper) is installed. */
|
|
604
|
+
runtime_ready: z6.boolean(),
|
|
605
|
+
/** openWakeWord models this computer can fetch (the catalog's wake words). */
|
|
606
|
+
models: z6.array(WakeModelInfo),
|
|
607
|
+
/** The Whisper model the phrase engine uses (the catalog's smallest); null when the catalog has none. */
|
|
608
|
+
whisper: WakeModelInfo.nullable(),
|
|
609
|
+
error: z6.string().max(500).nullable()
|
|
610
|
+
});
|
|
611
|
+
var ModelsWakeInstallParams = z6.strictObject({ engine: WakeEngine, model: ModelKey.optional() });
|
|
612
|
+
var ModelsWakeInstallResult = z6.strictObject({ model: ModelKey, elapsed_ms: nonNegInt });
|
|
613
|
+
var WAKE_PCM_MAX_CHARS = 44e4;
|
|
614
|
+
var ModelsWakeDetectParams = z6.strictObject({
|
|
615
|
+
/** The caller's listening session: the engine keeps its rolling audio per stream. */
|
|
616
|
+
stream: z6.string().min(1).max(64),
|
|
617
|
+
engine: WakeEngine,
|
|
618
|
+
/** (oww) The wake-word model; (whisper) unused. */
|
|
619
|
+
model: ModelKey.optional(),
|
|
620
|
+
/** (whisper) The phrase to hear, e.g. "hey matrix". */
|
|
621
|
+
keyword: z6.string().min(1).max(64).optional(),
|
|
622
|
+
/** (oww) The score that counts as heard, 0–1. */
|
|
623
|
+
threshold: z6.number().min(0).max(1).optional(),
|
|
624
|
+
/** Base64 of 16 kHz mono signed 16-bit little-endian PCM that follows the stream's last call. */
|
|
625
|
+
pcm: z6.string().max(WAKE_PCM_MAX_CHARS)
|
|
626
|
+
});
|
|
627
|
+
var ModelsWakeDetectResult = z6.strictObject({
|
|
628
|
+
detected: z6.boolean(),
|
|
629
|
+
/** (oww) The highest score in this audio; null for whisper. */
|
|
630
|
+
score: z6.number().min(0).max(1).nullable(),
|
|
631
|
+
/** (whisper) What the window said, when it ran; null otherwise. */
|
|
632
|
+
heard: z6.string().max(500).nullable(),
|
|
633
|
+
/** The audio's level, 0–1. */
|
|
634
|
+
rms: z6.number().min(0).max(1),
|
|
635
|
+
elapsed_ms: nonNegInt
|
|
636
|
+
});
|
|
637
|
+
var ModelsWakeCloseParams = z6.strictObject({ stream: z6.string().min(1).max(64) });
|
|
638
|
+
var ModelsWakeCloseResult = z6.strictObject({ closed: z6.boolean() });
|
|
594
639
|
var MlProgress = z6.strictObject({
|
|
595
640
|
kind: z6.enum(["install", "transcribe", "speak"]),
|
|
596
641
|
/** 0–1 when known (transcribe: audio covered so far; install: bytes so far). */
|
|
@@ -631,6 +676,14 @@ var LlmRunning = z6.strictObject({
|
|
|
631
676
|
gpu_layers: z6.int().min(-1).max(999).optional(),
|
|
632
677
|
threads: z6.int().min(1).max(512).optional()
|
|
633
678
|
});
|
|
679
|
+
var LlmSlot = z6.enum(["chat", "embed"]);
|
|
680
|
+
var LlmEmbeddingSlot = z6.strictObject({
|
|
681
|
+
state: LlmServerState,
|
|
682
|
+
models: z6.array(TextModelInfo),
|
|
683
|
+
running: LlmRunning.nullable(),
|
|
684
|
+
starting: TextModelId.nullable(),
|
|
685
|
+
error: z6.string().max(300).nullable()
|
|
686
|
+
});
|
|
634
687
|
var ModelsLlmStatusParams = z6.strictObject({});
|
|
635
688
|
var ModelsLlmStatusResult = z6.strictObject({
|
|
636
689
|
state: LlmServerState,
|
|
@@ -646,7 +699,9 @@ var ModelsLlmStatusResult = z6.strictObject({
|
|
|
646
699
|
/** Non-null while the server program or a model's weights are being downloaded. */
|
|
647
700
|
install: MlInstallProgress.nullable(),
|
|
648
701
|
/** Why the last start or download failed, one human line; null otherwise. */
|
|
649
|
-
error: z6.string().max(300).nullable()
|
|
702
|
+
error: z6.string().max(300).nullable(),
|
|
703
|
+
/** (1.88) The embeddings slot: the same model service's second llama-server, in embeddings mode, beside the chat model. */
|
|
704
|
+
embedding: LlmEmbeddingSlot.optional()
|
|
650
705
|
});
|
|
651
706
|
var ModelsLlmInstallParams = z6.strictObject({
|
|
652
707
|
model: TextModelId,
|
|
@@ -668,10 +723,15 @@ var ModelsLlmStartParams = z6.strictObject({
|
|
|
668
723
|
/** (1.48) CPU threads, computed by the app from the knobs. */
|
|
669
724
|
threads: z6.int().min(1).max(512).optional(),
|
|
670
725
|
/** (1.48) Seconds to wait for the model to load, computed by the app from the knobs. */
|
|
671
|
-
load_timeout_s: z6.int().min(10).max(3600).optional()
|
|
726
|
+
load_timeout_s: z6.int().min(10).max(3600).optional(),
|
|
727
|
+
/** (1.88) Which slot: `chat` (default) or `embed` (the embedding model, beside the chat model; neither stops the other). */
|
|
728
|
+
slot: LlmSlot.optional()
|
|
672
729
|
});
|
|
673
730
|
var ModelsLlmStartResult = z6.strictObject({ running: LlmRunning, elapsed_ms: nonNegInt });
|
|
674
|
-
var ModelsLlmStopParams = z6.strictObject({
|
|
731
|
+
var ModelsLlmStopParams = z6.strictObject({
|
|
732
|
+
/** (1.88) Which slot to stop: `chat` (default) or `embed`. */
|
|
733
|
+
slot: LlmSlot.optional()
|
|
734
|
+
});
|
|
675
735
|
var ModelsLlmStopResult = z6.strictObject({ stopped: z6.boolean() });
|
|
676
736
|
var ModelsLlmChatParams = z6.strictObject({
|
|
677
737
|
model: TextModelId,
|
|
@@ -681,6 +741,23 @@ var ModelsLlmChatParams = z6.strictObject({
|
|
|
681
741
|
window_bytes: z6.int().min(4096).max(16777216).optional()
|
|
682
742
|
});
|
|
683
743
|
var ModelsLlmChatResult = z6.strictObject({ model: TextModelId, content_type: z6.string().max(128) });
|
|
744
|
+
var ModelsEmbedParams = z6.strictObject({
|
|
745
|
+
model: TextModelId,
|
|
746
|
+
input: z6.union([z6.string().min(1).max(262144), z6.array(z6.string().min(1).max(262144)).min(1).max(256)]),
|
|
747
|
+
/** Start the model in the embeddings slot first when nothing runs there (a different embedding model running is never stopped). */
|
|
748
|
+
start_if_stopped: z6.boolean().optional()
|
|
749
|
+
});
|
|
750
|
+
var EmbeddingVector = z6.strictObject({
|
|
751
|
+
index: nonNegInt,
|
|
752
|
+
embedding: z6.array(z6.number()).min(1).max(16384)
|
|
753
|
+
});
|
|
754
|
+
var ModelsEmbedResult = z6.strictObject({
|
|
755
|
+
model: TextModelId,
|
|
756
|
+
/** The vector length (every row has it). */
|
|
757
|
+
dimensions: z6.int().min(1).max(16384),
|
|
758
|
+
data: z6.array(EmbeddingVector).min(1).max(256),
|
|
759
|
+
usage: z6.strictObject({ prompt_tokens: nonNegInt, total_tokens: nonNegInt })
|
|
760
|
+
});
|
|
684
761
|
var Sha256Hex = z6.string().regex(/^[0-9a-f]{64}$/);
|
|
685
762
|
var CatalogFile = z6.strictObject({
|
|
686
763
|
/** Path inside the model's folder (the artifact's path_in_repo). */
|
|
@@ -726,7 +803,11 @@ var MlCatalogSetParams = z6.strictObject({
|
|
|
726
803
|
/** (1.69) Language models on this computer that cannot run here, each with its one-line reason: models.llm.status lists them. */
|
|
727
804
|
unusable: z6.array(UnusableTextModel).optional(),
|
|
728
805
|
/** (1.81) Text-to-speech models (Kokoro): what models.tts.* runs. */
|
|
729
|
-
speech: z6.array(CatalogModelEntry).optional()
|
|
806
|
+
speech: z6.array(CatalogModelEntry).optional(),
|
|
807
|
+
/** (1.88) Embedding models (GGUF, run by llama-server with --embeddings in the embeddings slot): what models.embed runs. */
|
|
808
|
+
embedding: z6.array(CatalogModelEntry).optional(),
|
|
809
|
+
/** (1.89) Wake-word models (openWakeWord ONNX): what models.wake.* runs. */
|
|
810
|
+
wake: z6.array(CatalogModelEntry).optional()
|
|
730
811
|
});
|
|
731
812
|
var MlCatalogSetResult = z6.strictObject({ text: nonNegInt, transcription: nonNegInt });
|
|
732
813
|
var DownloadKind = z6.enum(["speech_model", "text_model", "runtime"]);
|
|
@@ -1393,6 +1474,62 @@ var WebResearchFetchResult = z12.strictObject({
|
|
|
1393
1474
|
cannot_edit: nonNegInt
|
|
1394
1475
|
});
|
|
1395
1476
|
var ToolsServiceProgress = z12.strictObject({ phase: z12.enum(["fetching", "installing"]), done: nonNegInt, total: nonNegInt });
|
|
1477
|
+
var WebHomeFetchParams = z12.strictObject({
|
|
1478
|
+
url: WebUrl,
|
|
1479
|
+
method: z12.enum(["GET", "HEAD"]).default("GET"),
|
|
1480
|
+
headers: z12.array(WebHeader).max(32).default([]),
|
|
1481
|
+
/** Why the server's own fetch failed (its block reason, e.g. `cloudflare_block`, `bad_status:403`). */
|
|
1482
|
+
reason: z12.string().min(1).max(64),
|
|
1483
|
+
/** The server's id for this request: asking again with it returns the same queued item. */
|
|
1484
|
+
request_id: z12.string().min(1).max(128),
|
|
1485
|
+
/** Keep it and retry when it cannot be fetched now (saved as a Source once read). */
|
|
1486
|
+
queue: z12.boolean().default(false),
|
|
1487
|
+
timeout_s: z12.int().min(1).max(300).default(30)
|
|
1488
|
+
});
|
|
1489
|
+
var WebHomeQueueState = z12.enum(["pending", "in_progress", "succeeded", "failed", "dead_letter"]);
|
|
1490
|
+
var WebHomeQueueItem = z12.strictObject({
|
|
1491
|
+
queue_id: z12.string().min(1).max(64),
|
|
1492
|
+
request_id: z12.string().min(1).max(128),
|
|
1493
|
+
url: z12.string().max(8192),
|
|
1494
|
+
reason: z12.string().max(64),
|
|
1495
|
+
state: WebHomeQueueState,
|
|
1496
|
+
attempts: nonNegInt,
|
|
1497
|
+
max_attempts: nonNegInt,
|
|
1498
|
+
created_at_ms: nonNegInt,
|
|
1499
|
+
next_attempt_at_ms: nonNegInt.nullable(),
|
|
1500
|
+
last_error: z12.string().max(2e3).nullable()
|
|
1501
|
+
});
|
|
1502
|
+
var WebHomeFetchResult = z12.strictObject({
|
|
1503
|
+
/** `fetched`: `fetch` holds the answer. `queued`: it waits on this computer (`item`). */
|
|
1504
|
+
state: z12.enum(["fetched", "queued"]),
|
|
1505
|
+
fetch: WebFetchResult.nullable(),
|
|
1506
|
+
item: WebHomeQueueItem.nullable(),
|
|
1507
|
+
/** One sentence for the person (and the server's result trail). */
|
|
1508
|
+
message: z12.string().max(2e3)
|
|
1509
|
+
});
|
|
1510
|
+
var WebHomeHistoryEntry = z12.strictObject({
|
|
1511
|
+
at_ms: nonNegInt,
|
|
1512
|
+
url: z12.string().max(8192),
|
|
1513
|
+
reason: z12.string().max(64),
|
|
1514
|
+
/** `fetched` (status says how the site answered), `refused` (off, a private address, the limit), `queued`, `failed`. */
|
|
1515
|
+
outcome: z12.enum(["fetched", "refused", "queued", "failed"]),
|
|
1516
|
+
status: z12.int().min(0).max(999).nullable(),
|
|
1517
|
+
bytes: nonNegInt,
|
|
1518
|
+
elapsed_ms: nonNegInt,
|
|
1519
|
+
detail: z12.string().max(2e3)
|
|
1520
|
+
});
|
|
1521
|
+
var WebHomeStatusParams = z12.strictObject({});
|
|
1522
|
+
var WebHomeStatusResult = z12.strictObject({
|
|
1523
|
+
enabled: z12.boolean(),
|
|
1524
|
+
max_per_hour: nonNegInt,
|
|
1525
|
+
max_body_bytes: nonNegInt,
|
|
1526
|
+
timeout_s: nonNegInt,
|
|
1527
|
+
used_last_hour: nonNegInt,
|
|
1528
|
+
queue: z12.array(WebHomeQueueItem).max(1e3),
|
|
1529
|
+
history: z12.array(WebHomeHistoryEntry).max(1e3),
|
|
1530
|
+
/** One sentence: on/off, how much of the hour is used, what waits. */
|
|
1531
|
+
summary: z12.string().max(2e3)
|
|
1532
|
+
});
|
|
1396
1533
|
|
|
1397
1534
|
// src/schema/account.ts
|
|
1398
1535
|
import { z as z13 } from "zod";
|
|
@@ -5114,6 +5251,7 @@ var OPS = {
|
|
|
5114
5251
|
"models.llm.start": { params: ModelsLlmStartParams, result: ModelsLlmStartResult, kind: "unary", since: "1.31", errors: ["NOT_FOUND", "RESOURCE_BUSY", "RESOURCE_GONE", "TIMEOUT", "CANCELLED", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
5115
5252
|
"models.llm.stop": { params: ModelsLlmStopParams, result: ModelsLlmStopResult, kind: "unary", since: "1.31", errors: ["INTERNAL"] },
|
|
5116
5253
|
"models.llm.chat": { params: ModelsLlmChatParams, result: ModelsLlmChatResult, kind: "stream", since: "1.76", errors: ["NOT_FOUND", "RESOURCE_BUSY", "RESOURCE_GONE", "INVALID_PARAMS", "TIMEOUT", "CANCELLED", "RATE_LIMITED", "INTERNAL"] },
|
|
5254
|
+
"models.embed": { params: ModelsEmbedParams, result: ModelsEmbedResult, kind: "unary", since: "1.88", errors: ["NOT_FOUND", "RESOURCE_BUSY", "RESOURCE_GONE", "INVALID_PARAMS", "TIMEOUT", "CANCELLED", "INTERNAL"] },
|
|
5117
5255
|
"models.downloads.list": { params: ModelsDownloadsListParams, result: ModelsDownloadsListResult, kind: "unary", since: "1.45", errors: ["INTERNAL"] },
|
|
5118
5256
|
"models.downloads.cancel": { params: ModelsDownloadsCancelParams, result: ModelsDownloadsCancelResult, kind: "unary", since: "1.45", errors: ["NOT_FOUND", "INTERNAL"] },
|
|
5119
5257
|
"models.local.list": { params: ModelsLocalListParams, result: ModelsLocalListResult, kind: "unary", since: "1.74", errors: ["INTERNAL"] },
|
|
@@ -5123,6 +5261,10 @@ var OPS = {
|
|
|
5123
5261
|
"models.tts.speak": { params: ModelsTtsSpeakParams, result: ModelsTtsSpeakResult, kind: "unary", since: "1.81", errors: ["NOT_FOUND", "INVALID_PARAMS", "RESOURCE_BUSY", "RESOURCE_GONE", "TIMEOUT", "CANCELLED", "INTERNAL"] },
|
|
5124
5262
|
"models.tts.voice_save": { params: ModelsTtsVoiceSaveParams, result: ModelsTtsVoiceSaveResult, kind: "unary", since: "1.81", errors: ["NOT_FOUND", "INVALID_PARAMS", "PAYLOAD_TOO_LARGE", "CONFLICT", "RESOURCE_BUSY", "INTERNAL"] },
|
|
5125
5263
|
"models.tts.voice_remove": { params: ModelsTtsVoiceRemoveParams, result: ModelsTtsVoiceRemoveResult, kind: "unary", since: "1.81", errors: ["NOT_FOUND", "INVALID_PARAMS", "INTERNAL"] },
|
|
5264
|
+
"models.wake.status": { params: ModelsWakeStatusParams, result: ModelsWakeStatusResult, kind: "unary", since: "1.89", errors: ["RESOURCE_BUSY", "INTERNAL"] },
|
|
5265
|
+
"models.wake.install": { params: ModelsWakeInstallParams, result: ModelsWakeInstallResult, kind: "unary", since: "1.89", errors: ["NOT_FOUND", "RESOURCE_BUSY", "RESOURCE_GONE", "TIMEOUT", "CANCELLED", "INTERNAL"] },
|
|
5266
|
+
"models.wake.detect": { params: ModelsWakeDetectParams, result: ModelsWakeDetectResult, kind: "unary", since: "1.89", errors: ["NOT_FOUND", "INVALID_PARAMS", "RESOURCE_BUSY", "RESOURCE_GONE", "INTERNAL"] },
|
|
5267
|
+
"models.wake.close": { params: ModelsWakeCloseParams, result: ModelsWakeCloseResult, kind: "unary", since: "1.89", errors: ["INTERNAL"] },
|
|
5126
5268
|
// Desktop apps and their profiles (SPEC §6 apps); profiles are rows in users.desktop_app_profile.
|
|
5127
5269
|
"apps.list": { params: AppsListParams, result: AppsListResult, kind: "unary", since: "1.2", errors: ["INTERNAL"] },
|
|
5128
5270
|
"apps.profiles.list": { params: AppsProfilesListParams, result: AppsProfilesListResult, kind: "unary", since: "1.2", errors: ["NOT_FOUND", "INVALID_PARAMS", "INTERNAL"] },
|
|
@@ -5305,6 +5447,8 @@ var OPS = {
|
|
|
5305
5447
|
"web.log.clear": { params: WebLogClearParams, result: WebLogClearResult, kind: "unary", since: "1.40", errors: ["INTERNAL"] },
|
|
5306
5448
|
"web.research.queue": { params: WebResearchQueueParams, result: WebResearchQueueResult, kind: "unary", since: "1.40", errors: ["INVALID_PARAMS", "INTERNAL"] },
|
|
5307
5449
|
"web.research.fetch": { params: WebResearchFetchParams, result: WebResearchFetchResult, kind: "unary", since: "1.40", errors: ["INVALID_PARAMS", "AUTH_REQUIRED", "RESOURCE_BUSY", "CANCELLED", "INTERNAL"] },
|
|
5450
|
+
"web.home_fetch": { params: WebHomeFetchParams, result: WebHomeFetchResult, kind: "unary", since: "1.90", errors: ["INVALID_PARAMS", "AUTH_FORBIDDEN", "RATE_LIMITED", "TIMEOUT", "INTERNAL"] },
|
|
5451
|
+
"web.home.status": { params: WebHomeStatusParams, result: WebHomeStatusResult, kind: "unary", since: "1.90", errors: ["INTERNAL"] },
|
|
5308
5452
|
// 1.23: the signed-in person's own agents and Vault, read as them (the desktop's Agents library and Vault).
|
|
5309
5453
|
"account.agents.list": { params: AccountAgentsListParams, result: AccountAgentsListResult, kind: "unary", since: "1.23", errors: ["INTERNAL"] },
|
|
5310
5454
|
"account.vault.list": { params: AccountVaultListParams, result: AccountVaultListResult, kind: "unary", since: "1.23", errors: ["INTERNAL"] },
|
|
@@ -5428,6 +5572,10 @@ var SERVICES = {
|
|
|
5428
5572
|
"ml.tts_speak": { params: ModelsTtsSpeakParams, result: ModelsTtsSpeakResult },
|
|
5429
5573
|
"ml.tts_voice_save": { params: ModelsTtsVoiceSaveParams, result: ModelsTtsVoiceSaveResult },
|
|
5430
5574
|
"ml.tts_voice_remove": { params: ModelsTtsVoiceRemoveParams, result: ModelsTtsVoiceRemoveResult },
|
|
5575
|
+
"ml.wake_status": { params: ModelsWakeStatusParams, result: ModelsWakeStatusResult },
|
|
5576
|
+
"ml.wake_install": { params: ModelsWakeInstallParams, result: ModelsWakeInstallResult },
|
|
5577
|
+
"ml.wake_detect": { params: ModelsWakeDetectParams, result: ModelsWakeDetectResult },
|
|
5578
|
+
"ml.wake_close": { params: ModelsWakeCloseParams, result: ModelsWakeCloseResult },
|
|
5431
5579
|
"ml.catalog_set": { params: MlCatalogSetParams, result: MlCatalogSetResult }
|
|
5432
5580
|
}
|
|
5433
5581
|
},
|
|
@@ -5681,6 +5829,11 @@ var NAMED_SCHEMAS = {
|
|
|
5681
5829
|
ModelsLlmStopResult,
|
|
5682
5830
|
ModelsLlmChatParams,
|
|
5683
5831
|
ModelsLlmChatResult,
|
|
5832
|
+
ModelsEmbedParams,
|
|
5833
|
+
ModelsEmbedResult,
|
|
5834
|
+
EmbeddingVector,
|
|
5835
|
+
LlmSlot,
|
|
5836
|
+
LlmEmbeddingSlot,
|
|
5684
5837
|
DownloadKind,
|
|
5685
5838
|
DownloadRow,
|
|
5686
5839
|
ModelsDownloadsListParams,
|
|
@@ -5708,6 +5861,16 @@ var NAMED_SCHEMAS = {
|
|
|
5708
5861
|
ModelsTtsVoiceSaveResult,
|
|
5709
5862
|
ModelsTtsVoiceRemoveParams,
|
|
5710
5863
|
ModelsTtsVoiceRemoveResult,
|
|
5864
|
+
WakeEngine,
|
|
5865
|
+
WakeModelInfo,
|
|
5866
|
+
ModelsWakeStatusParams,
|
|
5867
|
+
ModelsWakeStatusResult,
|
|
5868
|
+
ModelsWakeInstallParams,
|
|
5869
|
+
ModelsWakeInstallResult,
|
|
5870
|
+
ModelsWakeDetectParams,
|
|
5871
|
+
ModelsWakeDetectResult,
|
|
5872
|
+
ModelsWakeCloseParams,
|
|
5873
|
+
ModelsWakeCloseResult,
|
|
5711
5874
|
CodingServiceCredentials,
|
|
5712
5875
|
CodingHistoryBlocked,
|
|
5713
5876
|
CodingHistoryFailure,
|
|
@@ -6177,6 +6340,13 @@ var NAMED_SCHEMAS = {
|
|
|
6177
6340
|
WebLogListResult,
|
|
6178
6341
|
WebLogClearParams,
|
|
6179
6342
|
WebLogClearResult,
|
|
6343
|
+
WebHomeFetchParams,
|
|
6344
|
+
WebHomeFetchResult,
|
|
6345
|
+
WebHomeQueueState,
|
|
6346
|
+
WebHomeQueueItem,
|
|
6347
|
+
WebHomeHistoryEntry,
|
|
6348
|
+
WebHomeStatusParams,
|
|
6349
|
+
WebHomeStatusResult,
|
|
6180
6350
|
WebProgressEvent,
|
|
6181
6351
|
WebResearchItemState,
|
|
6182
6352
|
WebResearchItem,
|
|
@@ -6509,12 +6679,25 @@ export {
|
|
|
6509
6679
|
ModelsTtsVoiceSaveResult,
|
|
6510
6680
|
ModelsTtsVoiceRemoveParams,
|
|
6511
6681
|
ModelsTtsVoiceRemoveResult,
|
|
6682
|
+
WakeEngine,
|
|
6683
|
+
WakeModelInfo,
|
|
6684
|
+
ModelsWakeStatusParams,
|
|
6685
|
+
ModelsWakeStatusResult,
|
|
6686
|
+
ModelsWakeInstallParams,
|
|
6687
|
+
ModelsWakeInstallResult,
|
|
6688
|
+
WAKE_PCM_MAX_CHARS,
|
|
6689
|
+
ModelsWakeDetectParams,
|
|
6690
|
+
ModelsWakeDetectResult,
|
|
6691
|
+
ModelsWakeCloseParams,
|
|
6692
|
+
ModelsWakeCloseResult,
|
|
6512
6693
|
MlProgress,
|
|
6513
6694
|
TextModelId,
|
|
6514
6695
|
TextModelInfo,
|
|
6515
6696
|
UnusableTextModel,
|
|
6516
6697
|
LlmServerState,
|
|
6517
6698
|
LlmRunning,
|
|
6699
|
+
LlmSlot,
|
|
6700
|
+
LlmEmbeddingSlot,
|
|
6518
6701
|
ModelsLlmStatusParams,
|
|
6519
6702
|
ModelsLlmStatusResult,
|
|
6520
6703
|
ModelsLlmInstallParams,
|
|
@@ -6525,6 +6708,9 @@ export {
|
|
|
6525
6708
|
ModelsLlmStopResult,
|
|
6526
6709
|
ModelsLlmChatParams,
|
|
6527
6710
|
ModelsLlmChatResult,
|
|
6711
|
+
ModelsEmbedParams,
|
|
6712
|
+
EmbeddingVector,
|
|
6713
|
+
ModelsEmbedResult,
|
|
6528
6714
|
Sha256Hex,
|
|
6529
6715
|
CatalogFile,
|
|
6530
6716
|
CatalogModelEntry,
|
|
@@ -6886,6 +7072,13 @@ export {
|
|
|
6886
7072
|
WebResearchFetchParams,
|
|
6887
7073
|
WebResearchFetchResult,
|
|
6888
7074
|
ToolsServiceProgress,
|
|
7075
|
+
WebHomeFetchParams,
|
|
7076
|
+
WebHomeQueueState,
|
|
7077
|
+
WebHomeQueueItem,
|
|
7078
|
+
WebHomeFetchResult,
|
|
7079
|
+
WebHomeHistoryEntry,
|
|
7080
|
+
WebHomeStatusParams,
|
|
7081
|
+
WebHomeStatusResult,
|
|
6889
7082
|
SystemOpenUrlParams,
|
|
6890
7083
|
SystemOpenUrlResult,
|
|
6891
7084
|
SystemOpenPathParams,
|
|
@@ -7302,4 +7495,4 @@ export {
|
|
|
7302
7495
|
SERVICES,
|
|
7303
7496
|
NAMED_SCHEMAS
|
|
7304
7497
|
};
|
|
7305
|
-
//# sourceMappingURL=chunk-server-
|
|
7498
|
+
//# sourceMappingURL=chunk-server-BQQPFQSL.js.map
|