@ai-matrx/desktop-protocol 0.18.0 → 0.20.0
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 +13 -0
- package/dist/client.cjs +468 -342
- 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 +468 -342
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +347 -191
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +267 -6
- package/dist/index.d.ts +267 -6
- package/dist/index.js +347 -191
- package/dist/index.js.map +1 -1
- package/dist/{models-BOPMXUz-.d.cts → models-Cz3I_rBU.d.cts} +362 -1
- package/dist/{models-BOPMXUz-.d.ts → models-Cz3I_rBU.d.ts} +362 -1
- package/dist/react.d.cts +142 -0
- package/dist/react.d.ts +142 -0
- package/generated/desktop-protocol.schema.json +537 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { UUID_SHAPE_PATTERN } from "@ai-matrx/kit/uuid";
|
|
4
4
|
var PROTOCOL_MAJOR = 1;
|
|
5
|
-
var PROTOCOL_MINOR =
|
|
5
|
+
var PROTOCOL_MINOR = 20;
|
|
6
6
|
var PROTOCOL_VERSION = `${PROTOCOL_MAJOR}.${PROTOCOL_MINOR}`;
|
|
7
7
|
var ProtocolVersion = z.string().regex(/^[1-9][0-9]{0,2}\.[0-9]{1,3}$/);
|
|
8
8
|
var RequestId = z.string().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/);
|
|
@@ -1157,6 +1157,43 @@ var AppsProjectsCreateParams = z13.strictObject({ app_key: AppKey, name: z13.str
|
|
|
1157
1157
|
var AppsProjectsCreateResult = z13.strictObject({ project: ChatProject });
|
|
1158
1158
|
var AppsProjectsImportPinsParams = z13.strictObject({ app_key: AppKey });
|
|
1159
1159
|
var AppsProjectsImportPinsResult = z13.strictObject({ message: z13.string().max(400) });
|
|
1160
|
+
var ProjectMoveChat = z13.strictObject({ chat_id: ChatId, title: z13.string().max(300) });
|
|
1161
|
+
var ProjectMoveSkip = z13.strictObject({ chat_id: ChatId, title: z13.string().max(300), window: ChatPlace.nullable(), reason: z13.string().max(400) });
|
|
1162
|
+
var ProjectMoveGroup = z13.strictObject({
|
|
1163
|
+
ok: z13.boolean(),
|
|
1164
|
+
name: z13.string().max(200),
|
|
1165
|
+
/** Why it is not (or was not) grouped — e.g. the window is open. */
|
|
1166
|
+
reason: z13.string().max(400).optional(),
|
|
1167
|
+
/** Chats that get (or got) the group; already in it; taken from another group of the window. */
|
|
1168
|
+
assign: nonNegInt.optional(),
|
|
1169
|
+
already: nonNegInt.optional(),
|
|
1170
|
+
from_other_groups: nonNegInt.optional(),
|
|
1171
|
+
/** A group of that name was already there (reused, never doubled). */
|
|
1172
|
+
group_exists: z13.boolean().optional()
|
|
1173
|
+
});
|
|
1174
|
+
var AppsProjectsToWindowParams = z13.strictObject({
|
|
1175
|
+
app_key: AppKey,
|
|
1176
|
+
project_id: ChatProjectId,
|
|
1177
|
+
window: ChatPlace,
|
|
1178
|
+
/** Also take each chat off its other side windows where safe (never main, the holder, an open window). */
|
|
1179
|
+
take_off: z13.boolean().default(false),
|
|
1180
|
+
/** Also group them under the project's name in that window's sidebar (closed windows only). */
|
|
1181
|
+
group: z13.boolean().default(false),
|
|
1182
|
+
dry_run: z13.boolean().default(false)
|
|
1183
|
+
});
|
|
1184
|
+
var AppsProjectsToWindowResult = z13.strictObject({
|
|
1185
|
+
project_id: ChatProjectId,
|
|
1186
|
+
window: ChatPlace,
|
|
1187
|
+
dry_run: z13.boolean(),
|
|
1188
|
+
place: z13.array(ProjectMoveChat).max(5e3),
|
|
1189
|
+
already: z13.array(ProjectMoveChat).max(5e3),
|
|
1190
|
+
take_off: z13.array(ProjectMoveChat.extend({ window: ChatPlace })).max(2e4),
|
|
1191
|
+
skipped: z13.array(ProjectMoveSkip).max(2e4),
|
|
1192
|
+
/** Chats of the project from other apps (no windows to place into), left as they are. */
|
|
1193
|
+
other_apps: nonNegInt,
|
|
1194
|
+
group: ProjectMoveGroup.nullable(),
|
|
1195
|
+
message: z13.string().max(400)
|
|
1196
|
+
});
|
|
1160
1197
|
var ColdChat = z13.strictObject({
|
|
1161
1198
|
id: ChatId,
|
|
1162
1199
|
title: z13.string().max(1e3),
|
|
@@ -1637,95 +1674,175 @@ var PowerPreventSleepResult = z22.strictObject({
|
|
|
1637
1674
|
awake_until_ms: epochMs.nullable()
|
|
1638
1675
|
});
|
|
1639
1676
|
|
|
1640
|
-
// src/schema/
|
|
1677
|
+
// src/schema/diag.ts
|
|
1641
1678
|
import { z as z23 } from "zod";
|
|
1642
|
-
var
|
|
1679
|
+
var DiagProcess = z23.enum([
|
|
1680
|
+
"main",
|
|
1681
|
+
"renderer",
|
|
1682
|
+
"hosted_page",
|
|
1683
|
+
"core",
|
|
1684
|
+
"pty_host",
|
|
1685
|
+
"python_ml",
|
|
1686
|
+
"python_coding",
|
|
1687
|
+
"python_tools",
|
|
1688
|
+
"relay",
|
|
1689
|
+
"coding_sessions",
|
|
1690
|
+
"claude_accounts"
|
|
1691
|
+
]);
|
|
1692
|
+
var DiagErrorKind = z23.enum([
|
|
1693
|
+
"uncaught_exception",
|
|
1694
|
+
"unhandled_rejection",
|
|
1695
|
+
"renderer_crash",
|
|
1696
|
+
"native_crash",
|
|
1697
|
+
"console_error",
|
|
1698
|
+
"load_failed",
|
|
1699
|
+
"op_failed",
|
|
1700
|
+
"child_exit",
|
|
1701
|
+
"banner",
|
|
1702
|
+
"logged_error"
|
|
1703
|
+
]);
|
|
1704
|
+
var DiagErrorStatus = z23.enum(["waiting", "sent", "resolved"]);
|
|
1705
|
+
var DiagErrorEntry = z23.strictObject({
|
|
1706
|
+
/** sha256 prefix over process, kind, source, code and the normalized message. */
|
|
1707
|
+
signature: z23.string().regex(/^[0-9a-f]{32}$/),
|
|
1708
|
+
process: DiagProcess,
|
|
1709
|
+
kind: DiagErrorKind,
|
|
1710
|
+
/** Where: a cap.op, a log event, a screen or page name. */
|
|
1711
|
+
source: z23.string().min(1).max(128),
|
|
1712
|
+
/** An ErrorCode, an exit code or signal, an error class; null when there is none. */
|
|
1713
|
+
code: z23.string().max(64).nullable(),
|
|
1714
|
+
/** The first occurrence's message, personal data removed. */
|
|
1715
|
+
message: z23.string().max(500),
|
|
1716
|
+
count: nonNegInt,
|
|
1717
|
+
first_seen_ms: epochMs,
|
|
1718
|
+
last_seen_ms: epochMs,
|
|
1719
|
+
status: DiagErrorStatus,
|
|
1720
|
+
/** What the agent who resolved it wrote; null until resolved. */
|
|
1721
|
+
resolution_note: z23.string().max(500).nullable(),
|
|
1722
|
+
app_version: z23.string().max(64)
|
|
1723
|
+
});
|
|
1724
|
+
var DiagErrorsListParams = z23.strictObject({
|
|
1725
|
+
/** open = waiting or sent; all includes resolved. */
|
|
1726
|
+
status: z23.enum(["open", "all"]).default("open"),
|
|
1727
|
+
limit: z23.int().min(1).max(500).default(200)
|
|
1728
|
+
});
|
|
1729
|
+
var DiagErrorsListResult = z23.strictObject({
|
|
1730
|
+
/** Newest last_seen first. */
|
|
1731
|
+
entries: z23.array(DiagErrorEntry).max(500),
|
|
1732
|
+
total_signatures: nonNegInt,
|
|
1733
|
+
total_occurrences: nonNegInt,
|
|
1734
|
+
/** Signatures with occurrences not yet delivered. */
|
|
1735
|
+
waiting: nonNegInt,
|
|
1736
|
+
/** signed_out = kept until sign-in; ok = the last delivery worked; failing = the last delivery failed (kept, retried). */
|
|
1737
|
+
delivery: z23.enum(["signed_out", "ok", "failing"]),
|
|
1738
|
+
last_delivery_ms: epochMs.nullable()
|
|
1739
|
+
});
|
|
1740
|
+
var DiagErrorsReportParams = z23.strictObject({
|
|
1741
|
+
process: z23.enum(["renderer", "hosted_page"]),
|
|
1742
|
+
kind: z23.enum(["uncaught_exception", "unhandled_rejection", "console_error", "banner"]),
|
|
1743
|
+
/** The screen or page, e.g. "code.chats". */
|
|
1744
|
+
source: z23.string().min(1).max(128),
|
|
1745
|
+
message: z23.string().min(1).max(2e3),
|
|
1746
|
+
code: z23.string().max(64).optional(),
|
|
1747
|
+
stack: z23.string().max(8e3).optional()
|
|
1748
|
+
});
|
|
1749
|
+
var DiagErrorsReportResult = z23.strictObject({
|
|
1750
|
+
signature: z23.string().regex(/^[0-9a-f]{32}$/)
|
|
1751
|
+
});
|
|
1752
|
+
var DiagErrorsChangedEvent = z23.strictObject({
|
|
1753
|
+
total_signatures: nonNegInt,
|
|
1754
|
+
waiting: nonNegInt
|
|
1755
|
+
});
|
|
1756
|
+
|
|
1757
|
+
// src/schema/resources.ts
|
|
1758
|
+
import { z as z24 } from "zod";
|
|
1759
|
+
var ResourcesDisk = z24.strictObject({
|
|
1643
1760
|
/** Where it is mounted ("/", "C:"). */
|
|
1644
|
-
mount:
|
|
1761
|
+
mount: z24.string().max(512),
|
|
1645
1762
|
/** The volume's name as the file manager shows it ("Macintosh HD", "Local Disk (C:)"). Since 1.17. */
|
|
1646
|
-
name:
|
|
1763
|
+
name: z24.string().max(256).optional(),
|
|
1647
1764
|
/** The file system ("apfs", "NTFS", "ext4"). */
|
|
1648
|
-
fs:
|
|
1765
|
+
fs: z24.string().max(64),
|
|
1649
1766
|
size_bytes: nonNegInt,
|
|
1650
1767
|
used_bytes: nonNegInt,
|
|
1651
1768
|
available_bytes: nonNegInt
|
|
1652
1769
|
});
|
|
1653
|
-
var ResourcesSnapshotParams =
|
|
1654
|
-
var ResourcesSnapshotResult =
|
|
1655
|
-
cpu:
|
|
1770
|
+
var ResourcesSnapshotParams = z24.strictObject({});
|
|
1771
|
+
var ResourcesSnapshotResult = z24.strictObject({
|
|
1772
|
+
cpu: z24.strictObject({
|
|
1656
1773
|
/** Busy share of all cores, 0–100, measured now. */
|
|
1657
|
-
percent:
|
|
1658
|
-
cores:
|
|
1774
|
+
percent: z24.number().min(0).max(100),
|
|
1775
|
+
cores: z24.int().min(1),
|
|
1659
1776
|
/** 1, 5 and 15 minute load averages; null on Windows. */
|
|
1660
|
-
load:
|
|
1777
|
+
load: z24.array(z24.number().min(0)).length(3).nullable()
|
|
1661
1778
|
}),
|
|
1662
|
-
memory:
|
|
1663
|
-
swap:
|
|
1664
|
-
disks:
|
|
1779
|
+
memory: z24.strictObject({ total_bytes: nonNegInt, used_bytes: nonNegInt, available_bytes: nonNegInt }),
|
|
1780
|
+
swap: z24.strictObject({ total_bytes: nonNegInt, used_bytes: nonNegInt }),
|
|
1781
|
+
disks: z24.array(ResourcesDisk).max(64),
|
|
1665
1782
|
uptime_seconds: nonNegInt
|
|
1666
1783
|
});
|
|
1667
|
-
var ResourcesJobKind =
|
|
1668
|
-
var ResourcesStrain =
|
|
1669
|
-
var ResourcesPressure =
|
|
1670
|
-
var ResourcesJob =
|
|
1784
|
+
var ResourcesJobKind = z24.enum(["type-check", "tests", "build", "lint", "dev server", "language server", "search"]);
|
|
1785
|
+
var ResourcesStrain = z24.enum(["good", "strain", "overloaded"]);
|
|
1786
|
+
var ResourcesPressure = z24.enum(["normal", "warning", "critical"]);
|
|
1787
|
+
var ResourcesJob = z24.strictObject({
|
|
1671
1788
|
/** The job's root process (Stop takes its whole tree). */
|
|
1672
|
-
pid:
|
|
1789
|
+
pid: z24.int().min(0),
|
|
1673
1790
|
kind: ResourcesJobKind,
|
|
1674
1791
|
/** Its heaviest process's command line, shortened ("…/lib/tsc --noEmit -p tsconfig.json"). */
|
|
1675
|
-
command:
|
|
1792
|
+
command: z24.string().max(256),
|
|
1676
1793
|
/** Who started it: "Claude Code", "Codex", "Cursor", "VS Code", "Terminal", "local stack", "detached"; null when unknown. */
|
|
1677
|
-
started_by:
|
|
1794
|
+
started_by: z24.string().max(64).nullable(),
|
|
1678
1795
|
/** Whatever started it is gone and nothing waits for it. */
|
|
1679
|
-
orphan:
|
|
1796
|
+
orphan: z24.boolean(),
|
|
1680
1797
|
/** A type-check queued for its turn (no compiler running yet). */
|
|
1681
|
-
waiting:
|
|
1798
|
+
waiting: z24.boolean(),
|
|
1682
1799
|
/** The project folder it runs in ("matrx-frontend"); null when not in one. */
|
|
1683
|
-
folder:
|
|
1800
|
+
folder: z24.string().max(256).nullable(),
|
|
1684
1801
|
/** The same command in the same folder, running this many times (1 = no duplicate). */
|
|
1685
|
-
duplicates:
|
|
1686
|
-
processes:
|
|
1802
|
+
duplicates: z24.int().min(1),
|
|
1803
|
+
processes: z24.int().min(1),
|
|
1687
1804
|
/** Sum over the tree, as `ps` reports it: 100 = one full core. */
|
|
1688
|
-
cpu_percent:
|
|
1805
|
+
cpu_percent: z24.number().min(0),
|
|
1689
1806
|
/** Real memory (macOS: the physical footprint Activity Monitor shows, compressed included). */
|
|
1690
1807
|
memory_bytes: nonNegInt,
|
|
1691
1808
|
started_at_ms: epochMs.nullable(),
|
|
1692
1809
|
/** False for an app, an agent session, a terminal, a system process, the local stack or Matrx 2 itself. */
|
|
1693
|
-
stoppable:
|
|
1810
|
+
stoppable: z24.boolean()
|
|
1694
1811
|
});
|
|
1695
|
-
var ResourcesProcess =
|
|
1696
|
-
pid:
|
|
1812
|
+
var ResourcesProcess = z24.strictObject({
|
|
1813
|
+
pid: z24.int().min(0),
|
|
1697
1814
|
/** The command line, shortened. */
|
|
1698
|
-
name:
|
|
1699
|
-
cpu_percent:
|
|
1815
|
+
name: z24.string().max(256),
|
|
1816
|
+
cpu_percent: z24.number().min(0),
|
|
1700
1817
|
memory_bytes: nonNegInt,
|
|
1701
|
-
started_by:
|
|
1818
|
+
started_by: z24.string().max(64).nullable(),
|
|
1702
1819
|
/** The job it belongs to ("type-check in aidream"); null when none. */
|
|
1703
|
-
job:
|
|
1820
|
+
job: z24.string().max(256).nullable(),
|
|
1704
1821
|
started_at_ms: epochMs.nullable()
|
|
1705
1822
|
});
|
|
1706
|
-
var ResourcesVerdict =
|
|
1823
|
+
var ResourcesVerdict = z24.strictObject({
|
|
1707
1824
|
level: ResourcesStrain,
|
|
1708
1825
|
/** One sentence ("Your Mac is under strain. 3 type-checks are running at once."). */
|
|
1709
|
-
text:
|
|
1826
|
+
text: z24.string().max(256),
|
|
1710
1827
|
/** The biggest jobs behind it; null when all is well. */
|
|
1711
|
-
cause:
|
|
1828
|
+
cause: z24.string().max(1024).nullable()
|
|
1712
1829
|
});
|
|
1713
|
-
var ResourcesSample =
|
|
1830
|
+
var ResourcesSample = z24.strictObject({
|
|
1714
1831
|
at_ms: epochMs,
|
|
1715
1832
|
/** The 1-minute load average. */
|
|
1716
|
-
load:
|
|
1833
|
+
load: z24.number().min(0),
|
|
1717
1834
|
memory_used_bytes: nonNegInt,
|
|
1718
1835
|
typechecks: nonNegInt
|
|
1719
1836
|
});
|
|
1720
|
-
var ResourcesActivityParams =
|
|
1721
|
-
var ResourcesActivityResult =
|
|
1837
|
+
var ResourcesActivityParams = z24.strictObject({});
|
|
1838
|
+
var ResourcesActivityResult = z24.strictObject({
|
|
1722
1839
|
/** False until the first reading (a second or two after start). */
|
|
1723
|
-
ready:
|
|
1840
|
+
ready: z24.boolean(),
|
|
1724
1841
|
sampled_at_ms: epochMs.nullable(),
|
|
1725
|
-
cores:
|
|
1842
|
+
cores: z24.int().min(1),
|
|
1726
1843
|
/** 1, 5 and 15 minute load averages. */
|
|
1727
|
-
load:
|
|
1728
|
-
memory:
|
|
1844
|
+
load: z24.array(z24.number().min(0)).length(3),
|
|
1845
|
+
memory: z24.strictObject({
|
|
1729
1846
|
total_bytes: nonNegInt,
|
|
1730
1847
|
/** Activity Monitor's Memory Used: app memory + wired + compressed. */
|
|
1731
1848
|
used_bytes: nonNegInt,
|
|
@@ -1736,248 +1853,252 @@ var ResourcesActivityResult = z23.strictObject({
|
|
|
1736
1853
|
pressure: ResourcesPressure.nullable()
|
|
1737
1854
|
}),
|
|
1738
1855
|
verdict: ResourcesVerdict,
|
|
1739
|
-
typechecks:
|
|
1856
|
+
typechecks: z24.strictObject({ running: nonNegInt, waiting: nonNegInt, comfort: nonNegInt }),
|
|
1740
1857
|
/** Heaviest first (1 GB weighs as much as 16 % of a core). */
|
|
1741
|
-
jobs:
|
|
1858
|
+
jobs: z24.array(ResourcesJob).max(200),
|
|
1742
1859
|
/** The 15 heaviest by memory and the 15 busiest by CPU, together. */
|
|
1743
|
-
top:
|
|
1860
|
+
top: z24.array(ResourcesProcess).max(30),
|
|
1744
1861
|
/** The last hour, oldest first. */
|
|
1745
|
-
history:
|
|
1862
|
+
history: z24.array(ResourcesSample).max(1200)
|
|
1746
1863
|
});
|
|
1747
|
-
var ResourcesStopJobParams =
|
|
1748
|
-
var ResourcesStopJobResult =
|
|
1864
|
+
var ResourcesStopJobParams = z24.strictObject({ pid: z24.int().min(1) });
|
|
1865
|
+
var ResourcesStopJobResult = z24.strictObject({
|
|
1749
1866
|
/** Processes signalled; whatever is still running 5 seconds later is force-stopped. */
|
|
1750
1867
|
processes: nonNegInt,
|
|
1751
1868
|
/** It had finished before the request arrived. */
|
|
1752
|
-
already_finished:
|
|
1869
|
+
already_finished: z24.boolean()
|
|
1753
1870
|
});
|
|
1754
|
-
var ResourcesIncident =
|
|
1871
|
+
var ResourcesIncident = z24.strictObject({
|
|
1755
1872
|
at_ms: epochMs,
|
|
1756
1873
|
verdict: ResourcesVerdict,
|
|
1757
|
-
load:
|
|
1874
|
+
load: z24.number().min(0),
|
|
1758
1875
|
memory_used_bytes: nonNegInt,
|
|
1759
1876
|
compressed_bytes: nonNegInt,
|
|
1760
1877
|
pressure: ResourcesPressure.nullable(),
|
|
1761
|
-
jobs:
|
|
1762
|
-
|
|
1878
|
+
jobs: z24.array(
|
|
1879
|
+
z24.strictObject({
|
|
1763
1880
|
kind: ResourcesJobKind,
|
|
1764
|
-
started_by:
|
|
1765
|
-
folder:
|
|
1766
|
-
command:
|
|
1767
|
-
cpu_percent:
|
|
1881
|
+
started_by: z24.string().max(64).nullable(),
|
|
1882
|
+
folder: z24.string().max(256).nullable(),
|
|
1883
|
+
command: z24.string().max(256),
|
|
1884
|
+
cpu_percent: z24.number().min(0),
|
|
1768
1885
|
memory_bytes: nonNegInt,
|
|
1769
|
-
duplicates:
|
|
1886
|
+
duplicates: z24.int().min(1)
|
|
1770
1887
|
})
|
|
1771
1888
|
).max(8)
|
|
1772
1889
|
});
|
|
1773
|
-
var ResourcesIncidentsParams =
|
|
1774
|
-
var ResourcesIncidentsResult =
|
|
1890
|
+
var ResourcesIncidentsParams = z24.strictObject({ limit: z24.int().min(1).max(200).default(50) });
|
|
1891
|
+
var ResourcesIncidentsResult = z24.strictObject({
|
|
1775
1892
|
/** Newest first; at most one a minute is written. */
|
|
1776
|
-
incidents:
|
|
1893
|
+
incidents: z24.array(ResourcesIncident).max(200)
|
|
1777
1894
|
});
|
|
1778
1895
|
|
|
1779
1896
|
// src/schema/stack.ts
|
|
1780
|
-
import { z as
|
|
1781
|
-
var StackServerName =
|
|
1782
|
-
var StackTone =
|
|
1783
|
-
var StackServer =
|
|
1897
|
+
import { z as z25 } from "zod";
|
|
1898
|
+
var StackServerName = z25.string().regex(/^[a-z0-9_-]{1,64}$/);
|
|
1899
|
+
var StackTone = z25.enum(["good", "wait", "bad", "off"]);
|
|
1900
|
+
var StackServer = z25.strictObject({
|
|
1784
1901
|
name: StackServerName,
|
|
1785
1902
|
/** One word: Healthy, Starting, Unhealthy, Restarting, Stopping, Waiting, Stopped, Crashed, Off. */
|
|
1786
|
-
label:
|
|
1903
|
+
label: z25.string().max(32),
|
|
1787
1904
|
tone: StackTone,
|
|
1788
1905
|
/** What is going on, in one or two plain sentences. */
|
|
1789
|
-
sentence:
|
|
1906
|
+
sentence: z25.string().max(2e3),
|
|
1790
1907
|
/** The config's own description of the server. */
|
|
1791
|
-
description:
|
|
1908
|
+
description: z25.string().max(512),
|
|
1792
1909
|
/** Where the server answers, when its description names an address. */
|
|
1793
|
-
open_url:
|
|
1794
|
-
log_file:
|
|
1910
|
+
open_url: z25.string().max(2048).nullable(),
|
|
1911
|
+
log_file: z25.string().max(4096),
|
|
1795
1912
|
/** When its log file was last written. */
|
|
1796
1913
|
last_output_at_ms: epochMs.nullable(),
|
|
1797
1914
|
started_at_ms: epochMs.nullable(),
|
|
1798
1915
|
restarts: nonNegInt,
|
|
1799
|
-
exit_code:
|
|
1800
|
-
pid:
|
|
1801
|
-
|
|
1802
|
-
|
|
1916
|
+
exit_code: z25.int().nullable(),
|
|
1917
|
+
pid: z25.int().nullable(),
|
|
1918
|
+
/** (1.18) CPU of the server's process and everything under it, in percent of one core; absent when it is not running. */
|
|
1919
|
+
cpu_percent: z25.number().min(0).optional(),
|
|
1920
|
+
/** (1.18) Memory of the same processes: the physical footprint (Activity Monitor's Memory) summed; absent when it is not running. */
|
|
1921
|
+
memory_bytes: nonNegInt.optional()
|
|
1922
|
+
});
|
|
1923
|
+
var StackEvent = z25.strictObject({
|
|
1803
1924
|
at_ms: epochMs,
|
|
1804
1925
|
/** A server name, or "stack" for the stack as a whole. */
|
|
1805
|
-
server:
|
|
1926
|
+
server: z25.string().max(64),
|
|
1806
1927
|
/** started · stopped · healthy · unhealthy · crashed · exited · restarting · stopping · action · action-done · action-failed · setup · error */
|
|
1807
|
-
kind:
|
|
1808
|
-
text:
|
|
1928
|
+
kind: z25.string().max(32),
|
|
1929
|
+
text: z25.string().max(4e3)
|
|
1809
1930
|
});
|
|
1810
|
-
var StackStateParams =
|
|
1811
|
-
var StackStateResult =
|
|
1931
|
+
var StackStateParams = z25.strictObject({});
|
|
1932
|
+
var StackStateResult = z25.strictObject({
|
|
1812
1933
|
/** The stack's config file, when found. */
|
|
1813
|
-
config_path:
|
|
1934
|
+
config_path: z25.string().max(4096).nullable(),
|
|
1814
1935
|
/** Why the stack cannot be run from here (no config, no process-compose), else null. */
|
|
1815
|
-
problem:
|
|
1816
|
-
stack_up:
|
|
1936
|
+
problem: z25.string().max(1e3).nullable(),
|
|
1937
|
+
stack_up: z25.boolean(),
|
|
1817
1938
|
stack_started_at_ms: epochMs.nullable(),
|
|
1818
|
-
servers:
|
|
1939
|
+
servers: z25.array(StackServer).max(64),
|
|
1819
1940
|
/** One line about the one-shot setup steps ("Docker Desktop: running."), or null. */
|
|
1820
|
-
setup_note:
|
|
1941
|
+
setup_note: z25.string().max(500).nullable(),
|
|
1821
1942
|
/** Start everything / Stop everything in flight. */
|
|
1822
|
-
pending:
|
|
1943
|
+
pending: z25.strictObject({ verb: z25.enum(["start", "stop"]), label: z25.string().max(64), since_ms: epochMs }).nullable(),
|
|
1823
1944
|
/** The newest entries last. */
|
|
1824
|
-
events:
|
|
1945
|
+
events: z25.array(StackEvent).max(300)
|
|
1825
1946
|
});
|
|
1826
|
-
var StackStartParams =
|
|
1827
|
-
var StackStopParams =
|
|
1828
|
-
var StackRunResult =
|
|
1829
|
-
var StackServerActionParams =
|
|
1947
|
+
var StackStartParams = z25.strictObject({});
|
|
1948
|
+
var StackStopParams = z25.strictObject({});
|
|
1949
|
+
var StackRunResult = z25.strictObject({ accepted: z25.boolean() });
|
|
1950
|
+
var StackServerActionParams = z25.strictObject({
|
|
1830
1951
|
name: StackServerName,
|
|
1831
|
-
verb:
|
|
1952
|
+
verb: z25.enum(["start", "stop", "restart"])
|
|
1832
1953
|
});
|
|
1833
|
-
var StackServerActionResult =
|
|
1834
|
-
var StackLogsParams =
|
|
1954
|
+
var StackServerActionResult = z25.strictObject({ message: z25.string().max(1e3) });
|
|
1955
|
+
var StackLogsParams = z25.strictObject({
|
|
1835
1956
|
name: StackServerName,
|
|
1836
1957
|
/** Without `offset`: the last this-many complete lines. With it: new lines after it, at most this many. */
|
|
1837
|
-
lines:
|
|
1958
|
+
lines: z25.int().min(1).max(2e5).default(2e3),
|
|
1838
1959
|
/** Byte offset the last read ended at: answer only what was written after it (follow). */
|
|
1839
1960
|
offset: nonNegInt.optional(),
|
|
1840
1961
|
/** A "Clear" point: the lines written after this byte offset (no `offset`). */
|
|
1841
1962
|
since: nonNegInt.optional(),
|
|
1842
1963
|
/** With `offset`: wait up to this long for a new line when none is waiting (0 answers at once). */
|
|
1843
|
-
wait_ms:
|
|
1964
|
+
wait_ms: z25.int().min(0).max(25e3).default(0)
|
|
1844
1965
|
});
|
|
1845
|
-
var StackLogsResult =
|
|
1966
|
+
var StackLogsResult = z25.strictObject({
|
|
1846
1967
|
/** Complete lines, colour codes removed. */
|
|
1847
|
-
lines:
|
|
1968
|
+
lines: z25.array(z25.string().max(65536)).max(2e5),
|
|
1848
1969
|
/** Where these lines end: pass it back as `offset` to follow. */
|
|
1849
1970
|
offset: nonNegInt,
|
|
1850
1971
|
/** False when `since` no longer exists (the log rotated): the lines are the plain tail instead. */
|
|
1851
|
-
since_valid:
|
|
1972
|
+
since_valid: z25.boolean(),
|
|
1852
1973
|
/** The log was rotated or truncated since `offset`: these lines start the file again. */
|
|
1853
|
-
reset:
|
|
1854
|
-
log_file:
|
|
1974
|
+
reset: z25.boolean(),
|
|
1975
|
+
log_file: z25.string().max(4096)
|
|
1855
1976
|
});
|
|
1856
|
-
var StackErrorsParams =
|
|
1857
|
-
window_minutes:
|
|
1977
|
+
var StackErrorsParams = z25.strictObject({
|
|
1978
|
+
window_minutes: z25.int().min(1).max(1440).default(60)
|
|
1858
1979
|
});
|
|
1859
|
-
var StackErrorsResult =
|
|
1980
|
+
var StackErrorsResult = z25.strictObject({
|
|
1860
1981
|
/** Per server: a heading line ("=== aidream — errors in the last 60 minutes (<file>) ===") and each error with the 10 lines after it. */
|
|
1861
|
-
sections:
|
|
1862
|
-
window_minutes:
|
|
1982
|
+
sections: z25.array(z25.strictObject({ name: StackServerName, heading: z25.string().max(4096), lines: z25.array(z25.string().max(65536)).max(5e3) })).max(64),
|
|
1983
|
+
window_minutes: z25.int().min(1).max(1440)
|
|
1863
1984
|
});
|
|
1864
1985
|
|
|
1865
1986
|
// src/schema/audio.ts
|
|
1866
|
-
import { z as
|
|
1867
|
-
var AudioDevice =
|
|
1987
|
+
import { z as z26 } from "zod";
|
|
1988
|
+
var AudioDevice = z26.strictObject({
|
|
1868
1989
|
/** The OS's name for it, as audio.record takes it. */
|
|
1869
|
-
id:
|
|
1870
|
-
name:
|
|
1871
|
-
default:
|
|
1990
|
+
id: z26.string().min(1).max(256),
|
|
1991
|
+
name: z26.string().max(256),
|
|
1992
|
+
default: z26.boolean()
|
|
1872
1993
|
});
|
|
1873
|
-
var AudioDevicesParams =
|
|
1874
|
-
var AudioDevicesResult =
|
|
1875
|
-
inputs:
|
|
1876
|
-
outputs:
|
|
1994
|
+
var AudioDevicesParams = z26.strictObject({});
|
|
1995
|
+
var AudioDevicesResult = z26.strictObject({
|
|
1996
|
+
inputs: z26.array(AudioDevice).max(64),
|
|
1997
|
+
outputs: z26.array(AudioDevice).max(64)
|
|
1877
1998
|
});
|
|
1878
|
-
var AudioRecordParams =
|
|
1879
|
-
seconds:
|
|
1999
|
+
var AudioRecordParams = z26.strictObject({
|
|
2000
|
+
seconds: z26.number().min(0.5).max(600),
|
|
1880
2001
|
/** The microphone (from audio.devices); the default input when absent. */
|
|
1881
|
-
device_id:
|
|
2002
|
+
device_id: z26.string().min(1).max(256).optional(),
|
|
1882
2003
|
/** Where the WAV file goes; a new file in the temp folder when absent. */
|
|
1883
2004
|
path: AbsPath.optional()
|
|
1884
2005
|
});
|
|
1885
|
-
var AudioRecordResult =
|
|
2006
|
+
var AudioRecordResult = z26.strictObject({
|
|
1886
2007
|
path: AbsPath,
|
|
1887
|
-
seconds:
|
|
2008
|
+
seconds: z26.number().min(0),
|
|
1888
2009
|
bytes: nonNegInt,
|
|
1889
2010
|
/** Loudest sample, 0–1: 0 means the device gave silence. */
|
|
1890
|
-
peak:
|
|
2011
|
+
peak: z26.number().min(0).max(1)
|
|
1891
2012
|
});
|
|
1892
|
-
var AudioPlayParams =
|
|
1893
|
-
var AudioPlayResult =
|
|
2013
|
+
var AudioPlayParams = z26.strictObject({ path: AbsPath });
|
|
2014
|
+
var AudioPlayResult = z26.strictObject({ path: AbsPath, seconds: z26.number().min(0) });
|
|
1894
2015
|
|
|
1895
2016
|
// src/schema/fs-watch.ts
|
|
1896
|
-
import { z as
|
|
1897
|
-
var FsWatchId =
|
|
1898
|
-
var FsWatchStartParams =
|
|
2017
|
+
import { z as z27 } from "zod";
|
|
2018
|
+
var FsWatchId = z27.string().regex(/^fw_[A-Za-z0-9]{12,40}$/);
|
|
2019
|
+
var FsWatchStartParams = z27.strictObject({
|
|
1899
2020
|
path: AbsPath,
|
|
1900
|
-
recursive:
|
|
2021
|
+
recursive: z27.boolean().default(true),
|
|
1901
2022
|
/** Globs relative to `path` whose changes are not reported (".git/**", "node_modules/**"). */
|
|
1902
|
-
ignore:
|
|
2023
|
+
ignore: z27.array(z27.string().max(256)).max(64).default([])
|
|
1903
2024
|
});
|
|
1904
|
-
var FsWatchStartResult =
|
|
2025
|
+
var FsWatchStartResult = z27.strictObject({
|
|
1905
2026
|
watch_id: FsWatchId,
|
|
1906
2027
|
path: AbsPath,
|
|
1907
2028
|
/** The watch ends by itself if nobody reads it for 30 minutes. */
|
|
1908
2029
|
expires_at_ms: epochMs
|
|
1909
2030
|
});
|
|
1910
|
-
var FsWatchEventsParams =
|
|
2031
|
+
var FsWatchEventsParams = z27.strictObject({
|
|
1911
2032
|
watch_id: FsWatchId,
|
|
1912
2033
|
/** Wait up to this long for a first change when none is waiting (0 answers at once). */
|
|
1913
|
-
wait_ms:
|
|
2034
|
+
wait_ms: z27.int().min(0).max(25e3).default(0)
|
|
1914
2035
|
});
|
|
1915
|
-
var FsWatchEventsResult =
|
|
2036
|
+
var FsWatchEventsResult = z27.strictObject({
|
|
1916
2037
|
/** What changed since the last read, oldest first; re-checked against the disk when read. */
|
|
1917
|
-
changes:
|
|
2038
|
+
changes: z27.array(FsChange).max(1e3),
|
|
1918
2039
|
/** Changes were dropped (more than 1000 waited): list the folder again. */
|
|
1919
|
-
overflow:
|
|
2040
|
+
overflow: z27.boolean(),
|
|
1920
2041
|
expires_at_ms: epochMs
|
|
1921
2042
|
});
|
|
1922
|
-
var FsWatchStopParams =
|
|
1923
|
-
var FsWatchStopResult =
|
|
2043
|
+
var FsWatchStopParams = z27.strictObject({ watch_id: FsWatchId });
|
|
2044
|
+
var FsWatchStopResult = z27.strictObject({ watch_id: FsWatchId });
|
|
1924
2045
|
|
|
1925
2046
|
// src/schema/exec-job.ts
|
|
1926
|
-
import { z as
|
|
1927
|
-
var ExecJobId =
|
|
1928
|
-
var ExecJobStartParams =
|
|
1929
|
-
command:
|
|
2047
|
+
import { z as z28 } from "zod";
|
|
2048
|
+
var ExecJobId = z28.string().regex(/^job_[A-Za-z0-9]{12,40}$/);
|
|
2049
|
+
var ExecJobStartParams = z28.strictObject({
|
|
2050
|
+
command: z28.string().min(1).max(131072),
|
|
1930
2051
|
/** The folder it runs in; the home folder when absent. */
|
|
1931
2052
|
cwd: AbsPath.optional(),
|
|
1932
|
-
env:
|
|
2053
|
+
env: z28.record(z28.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).max(128), z28.string().max(32768)).optional()
|
|
1933
2054
|
});
|
|
1934
|
-
var ExecJobStartResult =
|
|
1935
|
-
var ExecJobOutputParams =
|
|
2055
|
+
var ExecJobStartResult = z28.strictObject({ job_id: ExecJobId, pid: z28.int().min(1), cwd: AbsPath });
|
|
2056
|
+
var ExecJobOutputParams = z28.strictObject({
|
|
1936
2057
|
job_id: ExecJobId,
|
|
1937
2058
|
/** Byte offset into the job's output to read from (next_offset of the last read; 0 = the start). */
|
|
1938
2059
|
offset: nonNegInt.default(0),
|
|
1939
2060
|
/** Wait up to this long for new output or the exit when none is waiting (0 answers at once). */
|
|
1940
|
-
wait_ms:
|
|
1941
|
-
max_bytes:
|
|
2061
|
+
wait_ms: z28.int().min(0).max(25e3).default(0),
|
|
2062
|
+
max_bytes: z28.int().min(1024).max(1048576).default(65536)
|
|
1942
2063
|
});
|
|
1943
|
-
var ExecJobOutputResult =
|
|
2064
|
+
var ExecJobOutputResult = z28.strictObject({
|
|
1944
2065
|
/** stdout and stderr interleaved as they arrived (UTF-8). */
|
|
1945
|
-
output:
|
|
2066
|
+
output: z28.string(),
|
|
1946
2067
|
next_offset: nonNegInt,
|
|
1947
2068
|
/** Bytes before `offset` that are gone (the job keeps its last 4 MiB). */
|
|
1948
2069
|
dropped_bytes: nonNegInt,
|
|
1949
|
-
running:
|
|
1950
|
-
exit_code:
|
|
2070
|
+
running: z28.boolean(),
|
|
2071
|
+
exit_code: z28.int().nullable()
|
|
1951
2072
|
});
|
|
1952
|
-
var ExecJobStopParams =
|
|
2073
|
+
var ExecJobStopParams = z28.strictObject({
|
|
1953
2074
|
job_id: ExecJobId,
|
|
1954
2075
|
/** End it at once (SIGKILL; on Windows the whole tree with /F) instead of asking it to quit. */
|
|
1955
|
-
force:
|
|
2076
|
+
force: z28.boolean().default(false)
|
|
1956
2077
|
});
|
|
1957
|
-
var ExecJobStopResult =
|
|
1958
|
-
var ExecJobInfo =
|
|
2078
|
+
var ExecJobStopResult = z28.strictObject({ job_id: ExecJobId, exited: z28.boolean(), exit_code: z28.int().nullable() });
|
|
2079
|
+
var ExecJobInfo = z28.strictObject({
|
|
1959
2080
|
job_id: ExecJobId,
|
|
1960
|
-
command:
|
|
1961
|
-
pid:
|
|
2081
|
+
command: z28.string().max(1024),
|
|
2082
|
+
pid: z28.int().min(1),
|
|
1962
2083
|
cwd: AbsPath,
|
|
1963
|
-
running:
|
|
1964
|
-
exit_code:
|
|
2084
|
+
running: z28.boolean(),
|
|
2085
|
+
exit_code: z28.int().nullable(),
|
|
1965
2086
|
started_at_ms: epochMs,
|
|
1966
2087
|
output_bytes: nonNegInt
|
|
1967
2088
|
});
|
|
1968
|
-
var ExecJobListParams =
|
|
1969
|
-
var ExecJobListResult =
|
|
2089
|
+
var ExecJobListParams = z28.strictObject({});
|
|
2090
|
+
var ExecJobListResult = z28.strictObject({ jobs: z28.array(ExecJobInfo).max(64) });
|
|
1970
2091
|
|
|
1971
2092
|
// src/schema/coding.ts
|
|
1972
|
-
import { z as
|
|
2093
|
+
import { z as z29 } from "zod";
|
|
1973
2094
|
import { UUID_SHAPE_PATTERN as UUID_SHAPE_PATTERN3 } from "@ai-matrx/kit/uuid";
|
|
1974
|
-
var CodingServiceCredentials =
|
|
1975
|
-
access_token:
|
|
1976
|
-
user_id:
|
|
2095
|
+
var CodingServiceCredentials = z29.strictObject({
|
|
2096
|
+
access_token: z29.string().min(16).max(16384),
|
|
2097
|
+
user_id: z29.string().regex(UUID_SHAPE_PATTERN3),
|
|
1977
2098
|
/** The AI Matrx server this app talks to (production, or a local server on the nightly copy). */
|
|
1978
|
-
server_url:
|
|
2099
|
+
server_url: z29.string().min(1).max(2048).regex(/^https?:\/\/[^\s/?#]+(\/[^\s?#]*)?$/)
|
|
1979
2100
|
});
|
|
1980
|
-
var CodingHistoryBlocked =
|
|
2101
|
+
var CodingHistoryBlocked = z29.enum([
|
|
1981
2102
|
"signed_out",
|
|
1982
2103
|
"offline",
|
|
1983
2104
|
"organization_required",
|
|
@@ -1985,11 +2106,11 @@ var CodingHistoryBlocked = z28.enum([
|
|
|
1985
2106
|
"cloud_list_unavailable",
|
|
1986
2107
|
"history_too_large"
|
|
1987
2108
|
]);
|
|
1988
|
-
var CodingHistoryFailure =
|
|
1989
|
-
session_id:
|
|
1990
|
-
reason:
|
|
2109
|
+
var CodingHistoryFailure = z29.strictObject({
|
|
2110
|
+
session_id: z29.string().max(64),
|
|
2111
|
+
reason: z29.string().max(300)
|
|
1991
2112
|
});
|
|
1992
|
-
var CodingHistoryRun =
|
|
2113
|
+
var CodingHistoryRun = z29.strictObject({
|
|
1993
2114
|
/** Claude Code sessions found on this computer. */
|
|
1994
2115
|
local_sessions: nonNegInt,
|
|
1995
2116
|
/** Of those, already complete in AI Matrx. */
|
|
@@ -2004,39 +2125,39 @@ var CodingHistoryRun = z28.strictObject({
|
|
|
2004
2125
|
/** Changed while being read; a later run takes them. */
|
|
2005
2126
|
changed: nonNegInt,
|
|
2006
2127
|
failed: nonNegInt,
|
|
2007
|
-
failures:
|
|
2128
|
+
failures: z29.array(CodingHistoryFailure).max(20),
|
|
2008
2129
|
/** Candidates not reached yet. */
|
|
2009
2130
|
remaining: nonNegInt,
|
|
2010
2131
|
/** The one line a person reads, e.g. "Imported 12 of 14 sessions. 140 already in AI Matrx." */
|
|
2011
|
-
summary:
|
|
2132
|
+
summary: z29.string().max(400)
|
|
2012
2133
|
});
|
|
2013
|
-
var CodingHistoryStep =
|
|
2134
|
+
var CodingHistoryStep = z29.strictObject({
|
|
2014
2135
|
/** Null when the run could not start (blocked before a plan existed). */
|
|
2015
|
-
plan_id:
|
|
2016
|
-
finished:
|
|
2136
|
+
plan_id: z29.string().regex(/^[0-9a-f]{32}$/).nullable(),
|
|
2137
|
+
finished: z29.boolean(),
|
|
2017
2138
|
blocked: CodingHistoryBlocked.nullable(),
|
|
2018
2139
|
run: CodingHistoryRun
|
|
2019
2140
|
});
|
|
2020
|
-
var CodingPlanMissingParams =
|
|
2021
|
-
var CodingImportNextParams =
|
|
2022
|
-
plan_id:
|
|
2141
|
+
var CodingPlanMissingParams = z29.strictObject({ credentials: CodingServiceCredentials.nullable() });
|
|
2142
|
+
var CodingImportNextParams = z29.strictObject({
|
|
2143
|
+
plan_id: z29.string().regex(/^[0-9a-f]{32}$/),
|
|
2023
2144
|
credentials: CodingServiceCredentials.nullable()
|
|
2024
2145
|
});
|
|
2025
|
-
var CodingServiceProgress =
|
|
2026
|
-
phase:
|
|
2146
|
+
var CodingServiceProgress = z29.strictObject({
|
|
2147
|
+
phase: z29.enum(["checking", "importing"]),
|
|
2027
2148
|
done: nonNegInt,
|
|
2028
2149
|
total: nonNegInt
|
|
2029
2150
|
});
|
|
2030
|
-
var CodingHistoryImportMissingParams =
|
|
2031
|
-
var CodingHistoryImportMissingResult =
|
|
2032
|
-
state:
|
|
2151
|
+
var CodingHistoryImportMissingParams = z29.strictObject({});
|
|
2152
|
+
var CodingHistoryImportMissingResult = z29.strictObject({
|
|
2153
|
+
state: z29.enum(["done", "blocked", "cancelled"]),
|
|
2033
2154
|
blocked: CodingHistoryBlocked.nullable(),
|
|
2034
2155
|
run: CodingHistoryRun,
|
|
2035
2156
|
elapsed_ms: nonNegInt
|
|
2036
2157
|
});
|
|
2037
|
-
var CodingHistoryProgressEvent =
|
|
2158
|
+
var CodingHistoryProgressEvent = z29.strictObject({
|
|
2038
2159
|
request_id: RequestId,
|
|
2039
|
-
phase:
|
|
2160
|
+
phase: z29.enum(["checking", "importing"]),
|
|
2040
2161
|
/** Sessions settled so far, of `total` candidates (0 of 0 while checking). */
|
|
2041
2162
|
done: nonNegInt,
|
|
2042
2163
|
total: nonNegInt,
|
|
@@ -2101,6 +2222,7 @@ var OPS = {
|
|
|
2101
2222
|
"apps.projects.move": { params: AppsProjectsMoveParams, result: AppsProjectsMoveResult, kind: "unary", since: "1.10", errors: ["NOT_FOUND", "INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
2102
2223
|
"apps.projects.create": { params: AppsProjectsCreateParams, result: AppsProjectsCreateResult, kind: "unary", since: "1.10", errors: ["INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
2103
2224
|
"apps.projects.import_pins": { params: AppsProjectsImportPinsParams, result: AppsProjectsImportPinsResult, kind: "unary", since: "1.10", errors: ["CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
2225
|
+
"apps.projects.to_window": { params: AppsProjectsToWindowParams, result: AppsProjectsToWindowResult, kind: "unary", since: "1.19", errors: ["NOT_FOUND", "INVALID_PARAMS", "CONFLICT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
2104
2226
|
// 1.11: Going cold, Spend, sync health, windows upkeep.
|
|
2105
2227
|
"apps.chats.cold": { params: AppsChatsColdParams, result: AppsChatsColdResult, kind: "unary", since: "1.11", errors: ["NOT_FOUND", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
2106
2228
|
"apps.chats.open": { params: AppsChatsOpenParams, result: AppsWindowActionResult, kind: "unary", since: "1.11", errors: ["NOT_FOUND", "CONFLICT", "TIMEOUT", "PLATFORM_UNSUPPORTED", "INTERNAL"] },
|
|
@@ -2151,6 +2273,9 @@ var OPS = {
|
|
|
2151
2273
|
"stack.server.action": { params: StackServerActionParams, result: StackServerActionResult, kind: "unary", since: "1.16", errors: ["NOT_FOUND", "CONFLICT", "INTERNAL"] },
|
|
2152
2274
|
"stack.logs": { params: StackLogsParams, result: StackLogsResult, kind: "unary", since: "1.16", errors: ["NOT_FOUND", "INTERNAL"] },
|
|
2153
2275
|
"stack.errors": { params: StackErrorsParams, result: StackErrorsResult, kind: "unary", since: "1.16", errors: ["INTERNAL"] },
|
|
2276
|
+
// The device's error ledger (SPEC §3.12): every process's errors, grouped, delivered to ops.system_error.
|
|
2277
|
+
"diag.errors.list": { params: DiagErrorsListParams, result: DiagErrorsListResult, kind: "unary", since: "1.20", errors: ["INTERNAL"] },
|
|
2278
|
+
"diag.errors.report": { params: DiagErrorsReportParams, result: DiagErrorsReportResult, kind: "unary", since: "1.20", errors: ["INTERNAL"] },
|
|
2154
2279
|
// Claude Code history (SPEC §6 coding): served by the `coding` Python service through SERVICES below.
|
|
2155
2280
|
"coding.history.import_missing": { params: CodingHistoryImportMissingParams, result: CodingHistoryImportMissingResult, kind: "unary", since: "1.5", errors: ["RESOURCE_BUSY", "RESOURCE_GONE", "CANCELLED", "INTERNAL"] }
|
|
2156
2281
|
};
|
|
@@ -2165,7 +2290,8 @@ var EVENTS = {
|
|
|
2165
2290
|
"models.progress": ModelsProgressEvent,
|
|
2166
2291
|
"coding.history.progress": CodingHistoryProgressEvent,
|
|
2167
2292
|
"relay.device_status": RelayDeviceStatusEvent,
|
|
2168
|
-
"relay.auth_expiring": RelayAuthExpiringEvent
|
|
2293
|
+
"relay.auth_expiring": RelayAuthExpiringEvent,
|
|
2294
|
+
"diag.errors.changed": DiagErrorsChangedEvent
|
|
2169
2295
|
};
|
|
2170
2296
|
var SERVICES = {
|
|
2171
2297
|
ml: {
|
|
@@ -2411,6 +2537,15 @@ var NAMED_SCHEMAS = {
|
|
|
2411
2537
|
StackLogsResult,
|
|
2412
2538
|
StackErrorsParams,
|
|
2413
2539
|
StackErrorsResult,
|
|
2540
|
+
DiagProcess,
|
|
2541
|
+
DiagErrorKind,
|
|
2542
|
+
DiagErrorStatus,
|
|
2543
|
+
DiagErrorEntry,
|
|
2544
|
+
DiagErrorsListParams,
|
|
2545
|
+
DiagErrorsListResult,
|
|
2546
|
+
DiagErrorsReportParams,
|
|
2547
|
+
DiagErrorsReportResult,
|
|
2548
|
+
DiagErrorsChangedEvent,
|
|
2414
2549
|
FsWatchId,
|
|
2415
2550
|
FsWatchStartParams,
|
|
2416
2551
|
FsWatchStartResult,
|
|
@@ -2504,6 +2639,11 @@ var NAMED_SCHEMAS = {
|
|
|
2504
2639
|
AppsProjectsCreateResult,
|
|
2505
2640
|
AppsProjectsImportPinsParams,
|
|
2506
2641
|
AppsProjectsImportPinsResult,
|
|
2642
|
+
ProjectMoveChat,
|
|
2643
|
+
ProjectMoveSkip,
|
|
2644
|
+
ProjectMoveGroup,
|
|
2645
|
+
AppsProjectsToWindowParams,
|
|
2646
|
+
AppsProjectsToWindowResult,
|
|
2507
2647
|
ColdChat,
|
|
2508
2648
|
AppsChatsColdParams,
|
|
2509
2649
|
AppsChatsColdResult,
|
|
@@ -2541,7 +2681,8 @@ var FIELDS_SINCE = {
|
|
|
2541
2681
|
AppsAccountsResetsResult: { problem: "1.12" },
|
|
2542
2682
|
ChatRow: { app_project: "1.13", tokens: "1.13", original_title: "1.14", title_source: "1.14", title_override: "1.14", archived: "1.15" },
|
|
2543
2683
|
AccountUsage: { plan: "1.13", credits: "1.13" },
|
|
2544
|
-
ResourcesDisk: { name: "1.17" }
|
|
2684
|
+
ResourcesDisk: { name: "1.17" },
|
|
2685
|
+
StackServer: { cpu_percent: "1.18", memory_bytes: "1.18" }
|
|
2545
2686
|
};
|
|
2546
2687
|
var NULL_SINCE = {
|
|
2547
2688
|
"RelayDeviceStatusEvent.since_ms": { since: "1.1", olderPeersGet: 0 }
|
|
@@ -2609,7 +2750,8 @@ var NESTED_RESULTS = /* @__PURE__ */ new Map([
|
|
|
2609
2750
|
["apps.chats.star", [["chat", "ChatRow"]]],
|
|
2610
2751
|
["apps.chats.place", [["chat", "ChatRow"]]],
|
|
2611
2752
|
["apps.accounts.usage", [["accounts", "AccountUsage"]]],
|
|
2612
|
-
["resources.snapshot", [["disks", "ResourcesDisk"]]]
|
|
2753
|
+
["resources.snapshot", [["disks", "ResourcesDisk"]]],
|
|
2754
|
+
["stack.state", [["servers", "StackServer"]]]
|
|
2613
2755
|
]);
|
|
2614
2756
|
function stripNested(value, nested, version) {
|
|
2615
2757
|
if (value === null || typeof value !== "object" || Array.isArray(value)) return value;
|
|
@@ -2670,7 +2812,7 @@ function forPeer(op, part, value, version) {
|
|
|
2670
2812
|
var VERSIONED_RESULT_OPS = [.../* @__PURE__ */ new Set([...RESULT_PATH.keys(), ...WINDOW_RESULTS.keys(), ...NESTED_RESULTS.keys()])];
|
|
2671
2813
|
|
|
2672
2814
|
// src/contract.ts
|
|
2673
|
-
var CONTRACT_SHA256 = "
|
|
2815
|
+
var CONTRACT_SHA256 = "ef1f01f6b4e81ce7a56192d56c5765d182a53aaf9224ef20ce764cd25c20e229";
|
|
2674
2816
|
|
|
2675
2817
|
// src/close-policy.ts
|
|
2676
2818
|
var CLOSE_RULES = {
|
|
@@ -3062,6 +3204,8 @@ export {
|
|
|
3062
3204
|
AppsProjectsImportPinsResult,
|
|
3063
3205
|
AppsProjectsMoveParams,
|
|
3064
3206
|
AppsProjectsMoveResult,
|
|
3207
|
+
AppsProjectsToWindowParams,
|
|
3208
|
+
AppsProjectsToWindowResult,
|
|
3065
3209
|
AppsProjectsUnfileParams,
|
|
3066
3210
|
AppsProjectsUnfileResult,
|
|
3067
3211
|
AppsProjectsUpdateParams,
|
|
@@ -3135,6 +3279,15 @@ export {
|
|
|
3135
3279
|
DEFAULT_WINDOW_BYTES,
|
|
3136
3280
|
DesktopProtocolError,
|
|
3137
3281
|
DeviceId,
|
|
3282
|
+
DiagErrorEntry,
|
|
3283
|
+
DiagErrorKind,
|
|
3284
|
+
DiagErrorStatus,
|
|
3285
|
+
DiagErrorsChangedEvent,
|
|
3286
|
+
DiagErrorsListParams,
|
|
3287
|
+
DiagErrorsListResult,
|
|
3288
|
+
DiagErrorsReportParams,
|
|
3289
|
+
DiagErrorsReportResult,
|
|
3290
|
+
DiagProcess,
|
|
3138
3291
|
EVENTS,
|
|
3139
3292
|
EXCLUDED_TOOLS,
|
|
3140
3293
|
EndMsg,
|
|
@@ -3267,6 +3420,9 @@ export {
|
|
|
3267
3420
|
ProcPortsParams,
|
|
3268
3421
|
ProcPortsResult,
|
|
3269
3422
|
ProcSort,
|
|
3423
|
+
ProjectMoveChat,
|
|
3424
|
+
ProjectMoveGroup,
|
|
3425
|
+
ProjectMoveSkip,
|
|
3270
3426
|
ProtocolErrorBody,
|
|
3271
3427
|
ProtocolVersion,
|
|
3272
3428
|
PtyInfo,
|