things-api 0.18.0 → 0.19.1
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/README.md +18 -9
- package/deputy/AppIcon.icns +0 -0
- package/deputy/VERSION +1 -1
- package/deputy/helpers-Info.plist +4 -0
- package/deputy/prebuilt/Things API Helper.app/Contents/CodeResources +0 -0
- package/deputy/prebuilt/Things API Helper.app/Contents/Helpers/things-reader.app/Contents/Info.plist +3 -1
- package/deputy/prebuilt/Things API Helper.app/Contents/Helpers/things-reader.app/Contents/MacOS/things-reader +0 -0
- package/deputy/prebuilt/Things API Helper.app/Contents/Helpers/things-reader.app/Contents/Resources/AppIcon.icns +0 -0
- package/deputy/prebuilt/Things API Helper.app/Contents/Helpers/things-reader.app/Contents/_CodeSignature/CodeResources +15 -2
- package/deputy/prebuilt/Things API Helper.app/Contents/Info.plist +5 -1
- package/deputy/prebuilt/Things API Helper.app/Contents/MacOS/things-deputy +0 -0
- package/deputy/prebuilt/Things API Helper.app/Contents/Resources/AppIcon.icns +0 -0
- package/deputy/prebuilt/Things API Helper.app/Contents/_CodeSignature/CodeResources +14 -2
- package/deputy/reader/Info.plist +2 -0
- package/deputy/reader/entitlements.plist +30 -0
- package/deputy/reader/main.swift +129 -40
- package/deputy/src/server.swift +25 -2
- package/deputy/src/tcc.swift +58 -0
- package/dist/audit/schema.d.ts +30 -1
- package/dist/audit/schema.js.map +1 -1
- package/dist/capability.d.ts +322 -0
- package/dist/capability.js +706 -0
- package/dist/capability.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +13 -1
- package/dist/cli/commands/doctor.js +141 -5
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/helpers.js +189 -51
- package/dist/cli/commands/helpers.js.map +1 -1
- package/dist/cli/commands/mcp.js +8 -0
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/op-result.js +6 -0
- package/dist/cli/commands/op-result.js.map +1 -1
- package/dist/cli/commands/reads.js +47 -1
- package/dist/cli/commands/reads.js.map +1 -1
- package/dist/cli/commands/repeat-flags.js +34 -2
- package/dist/cli/commands/repeat-flags.js.map +1 -1
- package/dist/cli/commands/setup.d.ts +9 -0
- package/dist/cli/commands/setup.js +76 -83
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/writes.d.ts +1 -1
- package/dist/cli/commands/writes.js +311 -142
- package/dist/cli/commands/writes.js.map +1 -1
- package/dist/cli/dry-run.d.ts +1 -1
- package/dist/cli/dry-run.js +1 -1
- package/dist/cli/glyphs.d.ts +23 -4
- package/dist/cli/glyphs.js +46 -19
- package/dist/cli/glyphs.js.map +1 -1
- package/dist/cli/help.d.ts +1 -1
- package/dist/cli/help.js +49 -27
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/interrupt.d.ts +54 -6
- package/dist/cli/interrupt.js +78 -12
- package/dist/cli/interrupt.js.map +1 -1
- package/dist/cli/main.js +8 -5
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/period.d.ts +3 -1
- package/dist/cli/period.js +1 -1
- package/dist/cli/period.js.map +1 -1
- package/dist/cli/read-driver.js +26 -1
- package/dist/cli/read-driver.js.map +1 -1
- package/dist/cli/render.d.ts +31 -4
- package/dist/cli/render.js +127 -15
- package/dist/cli/render.js.map +1 -1
- package/dist/client.d.ts +23 -3
- package/dist/client.js +36 -13
- package/dist/client.js.map +1 -1
- package/dist/contracts.d.ts +8 -4
- package/dist/contracts.js +1 -1
- package/dist/contracts.js.map +1 -1
- package/dist/deputy/install.d.ts +234 -6
- package/dist/deputy/install.js +843 -31
- package/dist/deputy/install.js.map +1 -1
- package/dist/deputy/notices.js +2 -2
- package/dist/deputy/notices.js.map +1 -1
- package/dist/deputy/protocol.d.ts +59 -5
- package/dist/deputy/protocol.js +48 -11
- package/dist/deputy/protocol.js.map +1 -1
- package/dist/deputy/routing.d.ts +37 -0
- package/dist/deputy/routing.js +181 -27
- package/dist/deputy/routing.js.map +1 -1
- package/dist/deputy/wake.d.ts +61 -0
- package/dist/deputy/wake.js +149 -0
- package/dist/deputy/wake.js.map +1 -0
- package/dist/diagnose.d.ts +19 -4
- package/dist/diagnose.js +64 -8
- package/dist/diagnose.js.map +1 -1
- package/dist/direct-setup.d.ts +104 -0
- package/dist/direct-setup.js +658 -0
- package/dist/direct-setup.js.map +1 -0
- package/dist/host-access.d.ts +75 -0
- package/dist/host-access.js +177 -0
- package/dist/host-access.js.map +1 -0
- package/dist/index.d.ts +20 -5
- package/dist/index.js +14 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts +27 -1
- package/dist/mcp/server.js +308 -109
- package/dist/mcp/server.js.map +1 -1
- package/dist/op-result.d.ts +9 -0
- package/dist/op-result.js +13 -1
- package/dist/op-result.js.map +1 -1
- package/dist/read/filter-contract.d.ts +1 -1
- package/dist/read/filter-contract.js +4 -0
- package/dist/read/filter-contract.js.map +1 -1
- package/dist/read/shape.js +4 -0
- package/dist/read/shape.js.map +1 -1
- package/dist/read/views.d.ts +29 -0
- package/dist/read/views.js +60 -0
- package/dist/read/views.js.map +1 -1
- package/dist/session-grant.d.ts +48 -0
- package/dist/session-grant.js +185 -0
- package/dist/session-grant.js.map +1 -0
- package/dist/surface-copy.d.ts +19 -3
- package/dist/surface-copy.js +19 -3
- package/dist/surface-copy.js.map +1 -1
- package/dist/wizard.d.ts +58 -0
- package/dist/wizard.js +174 -0
- package/dist/wizard.js.map +1 -0
- package/dist/write/availability.d.ts +1 -16
- package/dist/write/availability.js +10 -65
- package/dist/write/availability.js.map +1 -1
- package/dist/write/batch.d.ts +20 -0
- package/dist/write/batch.js +111 -21
- package/dist/write/batch.js.map +1 -1
- package/dist/write/capabilities.d.ts +9 -0
- package/dist/write/capabilities.js +2 -0
- package/dist/write/capabilities.js.map +1 -1
- package/dist/write/clear-reminder.js +1 -1
- package/dist/write/clear-reminder.js.map +1 -1
- package/dist/write/commands.d.ts +22 -7
- package/dist/write/commands.js +231 -254
- package/dist/write/commands.js.map +1 -1
- package/dist/write/failure-hints.d.ts +32 -7
- package/dist/write/failure-hints.js +9 -14
- package/dist/write/failure-hints.js.map +1 -1
- package/dist/write/guards.js +22 -4
- package/dist/write/guards.js.map +1 -1
- package/dist/write/lock.d.ts +16 -13
- package/dist/write/lock.js +55 -0
- package/dist/write/lock.js.map +1 -1
- package/dist/write/make-repeating-project.js +9 -13
- package/dist/write/make-repeating-project.js.map +1 -1
- package/dist/write/move.js +9 -12
- package/dist/write/move.js.map +1 -1
- package/dist/write/operations.d.ts +51 -29
- package/dist/write/operations.js +16 -0
- package/dist/write/operations.js.map +1 -1
- package/dist/write/opid.d.ts +72 -14
- package/dist/write/opid.js +152 -8
- package/dist/write/opid.js.map +1 -1
- package/dist/write/param-schema.d.ts +80 -0
- package/dist/write/param-schema.js +754 -0
- package/dist/write/param-schema.js.map +1 -0
- package/dist/write/pipeline.d.ts +110 -5
- package/dist/write/pipeline.js +288 -14
- package/dist/write/pipeline.js.map +1 -1
- package/dist/write/pre-state.d.ts +38 -16
- package/dist/write/pre-state.js +117 -22
- package/dist/write/pre-state.js.map +1 -1
- package/dist/write/promote-clone.js +658 -444
- package/dist/write/promote-clone.js.map +1 -1
- package/dist/write/reorder.js +25 -8
- package/dist/write/reorder.js.map +1 -1
- package/dist/write/repeat-collateral.d.ts +31 -0
- package/dist/write/repeat-collateral.js +153 -0
- package/dist/write/repeat-collateral.js.map +1 -0
- package/dist/write/repeat-rule.d.ts +28 -1
- package/dist/write/repeat-rule.js +54 -4
- package/dist/write/repeat-rule.js.map +1 -1
- package/dist/write/resolution-timestamps.d.ts +11 -0
- package/dist/write/resolution-timestamps.js +108 -40
- package/dist/write/resolution-timestamps.js.map +1 -1
- package/dist/write/reversibility.js +4 -0
- package/dist/write/reversibility.js.map +1 -1
- package/dist/write/template-mutation.d.ts +137 -0
- package/dist/write/template-mutation.js +598 -0
- package/dist/write/template-mutation.js.map +1 -0
- package/dist/write/undo.js +10 -20
- package/dist/write/undo.js.map +1 -1
- package/dist/write/update-fields.d.ts +151 -0
- package/dist/write/update-fields.js +427 -0
- package/dist/write/update-fields.js.map +1 -0
- package/dist/write/vectors/applescript.js +6 -10
- package/dist/write/vectors/applescript.js.map +1 -1
- package/dist/write/vectors/registry.d.ts +1 -1
- package/dist/write/vectors/registry.js +10 -2
- package/dist/write/vectors/registry.js.map +1 -1
- package/dist/write/vectors/shortcuts.js +2 -2
- package/dist/write/vectors/shortcuts.js.map +1 -1
- package/dist/write/vectors/simulator.js +15 -4
- package/dist/write/vectors/simulator.js.map +1 -1
- package/dist/write/vectors/types.d.ts +268 -1
- package/dist/write/vectors/ui-certification.js +63 -13
- package/dist/write/vectors/ui-certification.js.map +1 -1
- package/dist/write/vectors/ui-chord.d.ts +144 -0
- package/dist/write/vectors/ui-chord.js +428 -0
- package/dist/write/vectors/ui-chord.js.map +1 -0
- package/dist/write/vectors/ui-drag.d.ts +8 -4
- package/dist/write/vectors/ui-drag.js +2 -0
- package/dist/write/vectors/ui-drag.js.map +1 -1
- package/dist/write/vectors/ui-recipes.d.ts +70 -3
- package/dist/write/vectors/ui-recipes.js +482 -44
- package/dist/write/vectors/ui-recipes.js.map +1 -1
- package/dist/write/vectors/ui.d.ts +280 -10
- package/dist/write/vectors/ui.js +1068 -77
- package/dist/write/vectors/ui.js.map +1 -1
- package/dist/write/vectors/url-scheme.js +3 -0
- package/dist/write/vectors/url-scheme.js.map +1 -1
- package/dist/write/verify/delta.d.ts +62 -0
- package/dist/write/verify/delta.js +36 -2
- package/dist/write/verify/delta.js.map +1 -1
- package/dist/write/verify/poller.d.ts +4 -1
- package/dist/write/verify/poller.js +14 -0
- package/dist/write/verify/poller.js.map +1 -1
- package/package.json +2 -1
- package/schema/envelope.schema.json +6 -4
- package/scripts/build-helpers.sh +5 -0
- package/skills/things-cli/SKILL.md +5 -3
- package/skills/things-cli/references/contracts.md +1 -0
- package/skills/things-cli/references/data-model.md +3 -0
- package/skills/things-cli/references/errors.md +1 -1
- package/skills/things-cli/references/gui.md +1 -0
- package/skills/things-cli/references/repeating.md +6 -0
- package/skills/things-cli/references/tag-cleanup.md +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"direct-setup.js","sourceRoot":"","sources":["../src/direct-setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { type SessionGrantDeps } from "./session-grant.ts";
|
|
2
|
+
/** The host app that macOS attributes this process's grants to (Article III). */
|
|
3
|
+
export interface HostApp {
|
|
4
|
+
/**
|
|
5
|
+
* The responsible process's bundle identifier when the environment names one
|
|
6
|
+
* (`__CFBundleIdentifier`), else null. This is the TCC *client* identity —
|
|
7
|
+
* the string a grant is recorded against.
|
|
8
|
+
*/
|
|
9
|
+
bundleId: string | null;
|
|
10
|
+
/** A display name for copy ("Ghostty", "Terminal"), or "this terminal". */
|
|
11
|
+
name: string;
|
|
12
|
+
}
|
|
13
|
+
/** Seams for the host-identity and file-access probes; tests replace them all. */
|
|
14
|
+
export interface HostAccessDeps extends SessionGrantDeps {
|
|
15
|
+
env?: NodeJS.ProcessEnv;
|
|
16
|
+
/**
|
|
17
|
+
* Attempt the FDA-class read-open. Returns normally when the host holds Full
|
|
18
|
+
* Disk Access; throws a Node fs error (EPERM when it does not) otherwise.
|
|
19
|
+
*/
|
|
20
|
+
fdaProbe?: () => void;
|
|
21
|
+
/** Resolve a running app's display name from its bundle id (LaunchServices). */
|
|
22
|
+
lookupAppName?: (bundleId: string) => string | null;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The host app, resolved from the environment alone — no subprocess, so this is
|
|
26
|
+
* safe on the hot path. `__CFBundleIdentifier` is set by macOS when a process
|
|
27
|
+
* descends from an app bundle, which is how a terminal's shell (and everything
|
|
28
|
+
* it spawns) carries its emulator's identity.
|
|
29
|
+
*
|
|
30
|
+
* Why the environment and not the process tree. MEASURED 2026-08-25 on the live
|
|
31
|
+
* host: macOS fixes RESPONSIBILITY at spawn and it sticks — through
|
|
32
|
+
* daemonization, through re-parenting to launchd, even past the responsible
|
|
33
|
+
* app's own exit. A tmux server whose parent is launchd is still attributed to
|
|
34
|
+
* the terminal app that first started it, and every pane shell under it
|
|
35
|
+
* inherits that attribution. The inherited `__CFBundleIdentifier` says the same
|
|
36
|
+
* thing, because it too is copied down from the process that first spawned the
|
|
37
|
+
* server. A PPID WALK would not: inside tmux it tops out at launchd and names
|
|
38
|
+
* nothing. Nothing here walks the process tree, and nothing should — the
|
|
39
|
+
* kernel's own answer (`responsibility_get_pid_responsible_for_pid`) is private
|
|
40
|
+
* API and is deliberately not used.
|
|
41
|
+
*/
|
|
42
|
+
export declare function hostApp(deps?: HostAccessDeps): HostApp;
|
|
43
|
+
/**
|
|
44
|
+
* The host app's display name for COPY. Identical to {@link hostApp}'s name
|
|
45
|
+
* except for an unlisted bundle id, where LaunchServices is asked once per
|
|
46
|
+
* process. Only call this from a path that is about to print.
|
|
47
|
+
*/
|
|
48
|
+
export declare function hostDisplayName(deps?: HostAccessDeps): string;
|
|
49
|
+
/** Test seam: forget the one memo this module keeps (the host's display name). */
|
|
50
|
+
export declare function resetHostAccessForTests(): void;
|
|
51
|
+
/** Where the FDA probe reads. Exported so `doctor` and the ceremony can name it. */
|
|
52
|
+
export declare function tccDbPath(env?: NodeJS.ProcessEnv): string;
|
|
53
|
+
export interface FdaVerdict {
|
|
54
|
+
granted: boolean;
|
|
55
|
+
/** The errno when the open failed, for honest reporting of the unexpected. */
|
|
56
|
+
code: string | null;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Does the host app hold Full Disk Access? Prompt-free by construction. An
|
|
60
|
+
* EPERM (or the sandbox's EACCES) is the ordinary "no"; any other errno is
|
|
61
|
+
* reported as itself rather than folded into a false negative.
|
|
62
|
+
*/
|
|
63
|
+
export declare function fdaGranted(deps?: HostAccessDeps): FdaVerdict;
|
|
64
|
+
/**
|
|
65
|
+
* `existsSync` for a rendezvous path. It already swallows errno, but it is
|
|
66
|
+
* wrapped anyway so no future refactor can turn a denial into a throw, and so
|
|
67
|
+
* every rendezvous touch reads the same at the call site.
|
|
68
|
+
*/
|
|
69
|
+
export declare function rendezvousExists(path: string): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Read the reader's access token. Returns null instead of throwing when the
|
|
72
|
+
* read fails (ENOENT before the first install; EPERM if something outside our
|
|
73
|
+
* flows re-permissioned the file).
|
|
74
|
+
*/
|
|
75
|
+
export declare function readRendezvousToken(path: string): string | null;
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host identity and the Full Disk Access probe
|
|
3
|
+
* (docs/design/permissions-doctrine.md, Articles I and III).
|
|
4
|
+
*
|
|
5
|
+
* This module is deliberately dependency-light — it imports nothing that could
|
|
6
|
+
* import it back — so the routing layer, the capability verdict, and the
|
|
7
|
+
* helpers ceremonies can all consult the same prompt-free facts.
|
|
8
|
+
*
|
|
9
|
+
* Its facts serve DIRECT mode: whether this host app holds Full Disk Access,
|
|
10
|
+
* and what to call it in copy. The helpers path needs none of them — since
|
|
11
|
+
* helpers 1.3.0 the reader's rendezvous is a launchd-owned socket plus an
|
|
12
|
+
* installer-minted token in `<state>/reader`, ordinary files this process owns,
|
|
13
|
+
* so reaching the reader crosses no container boundary and raises no consent
|
|
14
|
+
* class from any host.
|
|
15
|
+
*/
|
|
16
|
+
import { execFileSync } from "node:child_process";
|
|
17
|
+
import { closeSync, openSync, readFileSync, existsSync as realExistsSync } from "node:fs";
|
|
18
|
+
import { homedir } from "node:os";
|
|
19
|
+
import { join } from "node:path";
|
|
20
|
+
import {} from "./session-grant.js";
|
|
21
|
+
/** The user TCC database. Readable iff the calling process holds Full Disk Access. */
|
|
22
|
+
const TCC_DB_RELATIVE = "Library/Application Support/com.apple.TCC/TCC.db";
|
|
23
|
+
// ── Host identity ────────────────────────────────────────────────────────────
|
|
24
|
+
/**
|
|
25
|
+
* Terminals and agent harnesses whose display name we can state without asking
|
|
26
|
+
* LaunchServices. Only an exec-free shortcut: an unlisted host still resolves,
|
|
27
|
+
* it just pays one `lsappinfo` call on a copy path.
|
|
28
|
+
*/
|
|
29
|
+
const KNOWN_HOSTS = {
|
|
30
|
+
"com.apple.Terminal": "Terminal",
|
|
31
|
+
"com.googlecode.iterm2": "iTerm2",
|
|
32
|
+
"com.mitchellh.ghostty": "Ghostty",
|
|
33
|
+
"dev.warp.Warp-Stable": "Warp",
|
|
34
|
+
"net.kovidgoyal.kitty": "kitty",
|
|
35
|
+
"io.alacritty": "Alacritty",
|
|
36
|
+
"com.microsoft.VSCode": "Visual Studio Code",
|
|
37
|
+
"com.anthropic.claude-code": "Claude Code",
|
|
38
|
+
"com.anthropic.claudefordesktop": "Claude",
|
|
39
|
+
};
|
|
40
|
+
/** TERM_PROGRAM values, for hosts that set it but expose no bundle id. */
|
|
41
|
+
const TERM_PROGRAM_NAMES = {
|
|
42
|
+
Apple_Terminal: "Terminal",
|
|
43
|
+
iTerm: "iTerm2",
|
|
44
|
+
"iTerm.app": "iTerm2",
|
|
45
|
+
ghostty: "Ghostty",
|
|
46
|
+
WarpTerminal: "Warp",
|
|
47
|
+
vscode: "Visual Studio Code",
|
|
48
|
+
Hyper: "Hyper",
|
|
49
|
+
WezTerm: "WezTerm",
|
|
50
|
+
};
|
|
51
|
+
/** The fallback used everywhere a host cannot be named — never a guess. */
|
|
52
|
+
const ANONYMOUS_HOST = "this terminal";
|
|
53
|
+
let hostNameMemo = null;
|
|
54
|
+
function lookupAppNameDefault(bundleId) {
|
|
55
|
+
try {
|
|
56
|
+
// LaunchServices knows the display name of every RUNNING app, which the
|
|
57
|
+
// host terminal always is. Quoted-value output: "LSDisplayName"="Ghostty".
|
|
58
|
+
const out = execFileSync("lsappinfo", ["info", "-only", "name", bundleId], {
|
|
59
|
+
encoding: "utf8",
|
|
60
|
+
timeout: 3000,
|
|
61
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
62
|
+
});
|
|
63
|
+
const match = /"LSDisplayName"\s*=\s*"([^"]+)"/.exec(out);
|
|
64
|
+
return match?.[1] ?? null;
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* The host app, resolved from the environment alone — no subprocess, so this is
|
|
72
|
+
* safe on the hot path. `__CFBundleIdentifier` is set by macOS when a process
|
|
73
|
+
* descends from an app bundle, which is how a terminal's shell (and everything
|
|
74
|
+
* it spawns) carries its emulator's identity.
|
|
75
|
+
*
|
|
76
|
+
* Why the environment and not the process tree. MEASURED 2026-08-25 on the live
|
|
77
|
+
* host: macOS fixes RESPONSIBILITY at spawn and it sticks — through
|
|
78
|
+
* daemonization, through re-parenting to launchd, even past the responsible
|
|
79
|
+
* app's own exit. A tmux server whose parent is launchd is still attributed to
|
|
80
|
+
* the terminal app that first started it, and every pane shell under it
|
|
81
|
+
* inherits that attribution. The inherited `__CFBundleIdentifier` says the same
|
|
82
|
+
* thing, because it too is copied down from the process that first spawned the
|
|
83
|
+
* server. A PPID WALK would not: inside tmux it tops out at launchd and names
|
|
84
|
+
* nothing. Nothing here walks the process tree, and nothing should — the
|
|
85
|
+
* kernel's own answer (`responsibility_get_pid_responsible_for_pid`) is private
|
|
86
|
+
* API and is deliberately not used.
|
|
87
|
+
*/
|
|
88
|
+
export function hostApp(deps = {}) {
|
|
89
|
+
const env = deps.env ?? process.env;
|
|
90
|
+
const bundleId = env["__CFBundleIdentifier"] ?? null;
|
|
91
|
+
const termProgram = env["TERM_PROGRAM"] ?? "";
|
|
92
|
+
const name = (bundleId !== null ? KNOWN_HOSTS[bundleId] : undefined) ??
|
|
93
|
+
TERM_PROGRAM_NAMES[termProgram] ??
|
|
94
|
+
ANONYMOUS_HOST;
|
|
95
|
+
return { bundleId, name };
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* The host app's display name for COPY. Identical to {@link hostApp}'s name
|
|
99
|
+
* except for an unlisted bundle id, where LaunchServices is asked once per
|
|
100
|
+
* process. Only call this from a path that is about to print.
|
|
101
|
+
*/
|
|
102
|
+
export function hostDisplayName(deps = {}) {
|
|
103
|
+
if (hostNameMemo !== null)
|
|
104
|
+
return hostNameMemo;
|
|
105
|
+
const host = hostApp(deps);
|
|
106
|
+
if (host.name !== ANONYMOUS_HOST || host.bundleId === null) {
|
|
107
|
+
hostNameMemo = host.name;
|
|
108
|
+
return hostNameMemo;
|
|
109
|
+
}
|
|
110
|
+
hostNameMemo = (deps.lookupAppName ?? lookupAppNameDefault)(host.bundleId) ?? ANONYMOUS_HOST;
|
|
111
|
+
return hostNameMemo;
|
|
112
|
+
}
|
|
113
|
+
/** Test seam: forget the one memo this module keeps (the host's display name). */
|
|
114
|
+
export function resetHostAccessForTests() {
|
|
115
|
+
hostNameMemo = null;
|
|
116
|
+
}
|
|
117
|
+
// ── The Full Disk Access probe ───────────────────────────────────────────────
|
|
118
|
+
/** Where the FDA probe reads. Exported so `doctor` and the ceremony can name it. */
|
|
119
|
+
export function tccDbPath(env = process.env) {
|
|
120
|
+
return join(env["HOME"] ?? homedir(), TCC_DB_RELATIVE);
|
|
121
|
+
}
|
|
122
|
+
function fdaProbeDefault(env) {
|
|
123
|
+
// ONE open(2), read-only, immediately closed. This file is FDA-class: macOS
|
|
124
|
+
// answers it with a plain EPERM rather than a dialog, which is precisely why
|
|
125
|
+
// the doctrine picks it as the probe (Article III). Deliberately NOT cached:
|
|
126
|
+
// read capability is ground truth per invocation.
|
|
127
|
+
const fd = openSync(tccDbPath(env), "r");
|
|
128
|
+
closeSync(fd);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Does the host app hold Full Disk Access? Prompt-free by construction. An
|
|
132
|
+
* EPERM (or the sandbox's EACCES) is the ordinary "no"; any other errno is
|
|
133
|
+
* reported as itself rather than folded into a false negative.
|
|
134
|
+
*/
|
|
135
|
+
export function fdaGranted(deps = {}) {
|
|
136
|
+
const env = deps.env ?? process.env;
|
|
137
|
+
try {
|
|
138
|
+
(deps.fdaProbe ?? (() => fdaProbeDefault(env)))();
|
|
139
|
+
return { granted: true, code: null };
|
|
140
|
+
}
|
|
141
|
+
catch (err) {
|
|
142
|
+
return { granted: false, code: err.code ?? null };
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// ── EPERM-safe rendezvous reads ──────────────────────────────────────────────
|
|
146
|
+
//
|
|
147
|
+
// The rendezvous is ours now, so these are ordinary reads of ordinary files.
|
|
148
|
+
// The belt stays on anyway: a `stat`/`open` that ends in EPERM (a stray chmod,
|
|
149
|
+
// a filesystem that answers oddly) is a STATE to report, never a crash out of
|
|
150
|
+
// a routing probe, and never a second attempt.
|
|
151
|
+
/**
|
|
152
|
+
* `existsSync` for a rendezvous path. It already swallows errno, but it is
|
|
153
|
+
* wrapped anyway so no future refactor can turn a denial into a throw, and so
|
|
154
|
+
* every rendezvous touch reads the same at the call site.
|
|
155
|
+
*/
|
|
156
|
+
export function rendezvousExists(path) {
|
|
157
|
+
try {
|
|
158
|
+
return realExistsSync(path);
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Read the reader's access token. Returns null instead of throwing when the
|
|
166
|
+
* read fails (ENOENT before the first install; EPERM if something outside our
|
|
167
|
+
* flows re-permissioned the file).
|
|
168
|
+
*/
|
|
169
|
+
export function readRendezvousToken(path) {
|
|
170
|
+
try {
|
|
171
|
+
return readFileSync(path, "utf8").trim();
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=host-access.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-access.js","sourceRoot":"","sources":["../src/host-access.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -20,17 +20,21 @@ export type { EnvironmentChange, EnvironmentTracker, EnvironmentTuple, } from ".
|
|
|
20
20
|
export type { FailureHint, LikelyCause } from "./write/failure-hints.ts";
|
|
21
21
|
export { capabilitiesTable } from "./write/capabilities.ts";
|
|
22
22
|
export type { CapabilityEntry } from "./write/capabilities.ts";
|
|
23
|
+
export { assertOperationParams, ParamSchemaError, PARAM_SCHEMAS, paramSummary, validateOperationParams, } from "./write/param-schema.ts";
|
|
24
|
+
export type { FieldKind, FieldSpec, ParamSummary } from "./write/param-schema.ts";
|
|
23
25
|
export { describeConfig, getConfigKey, loadConfig, saveConfigKey } from "./config.ts";
|
|
24
26
|
export type { ConfigKeyView } from "./config.ts";
|
|
25
27
|
export type { UndoItemResult, UndoOptions, UndoPlan, UndoStep } from "./write/undo.ts";
|
|
26
28
|
export type { BatchItemResult, BatchOp, BatchOptions, BatchResult } from "./write/batch.ts";
|
|
27
29
|
export type { ReorderResult } from "./write/reorder.ts";
|
|
28
30
|
export type { MoveResult, MoveOk, MoveRefused, MoveLegFailed, MoveDryRun, MovePosition, PlacementClass, ProjectMoveDestination, ProjectMoveRequest, ReorderRequest, TodoMoveDestination, TodoMoveRequest, } from "./write/move.ts";
|
|
29
|
-
export type { SearchOptions, SomedayFilter, UpcomingFilter, ViewFilter, ChangedItem, DeadlinesFilter, } from "./read/views.ts";
|
|
31
|
+
export type { SearchOptions, SomedayFilter, UpcomingFilter, ViewFilter, ChangedItem, DeadlinesFilter, RepeatersFilter, } from "./read/views.ts";
|
|
30
32
|
export { FILTER_CONTRACT, hasTagPresence, tagFlagConflict, tagFilterFields, validateViewArgs, } from "./read/filter-contract.ts";
|
|
31
33
|
export type { BoundModel, FilterArgs, FilterVocab, TagPresence, TagSemantics, ViewFilterSpec, ViewName, ViewValidation, } from "./read/filter-contract.ts";
|
|
32
|
-
export type { Acknowledgements, AreaAddParams, ContainerRef, HeadingPlacement, MoveHeadingParams, OperationKind, OperationParamsMap, ProjectAddParams, ProjectCompleteParams, ProjectMoveParams, ProjectUpdateParams, ReorderParams, ReorderScope, ReorderStrategy, TagAddParams, TagUpdateParams, AreaUpdateParams, TodoAddParams, TodoMoveParams, TodoUpdateParams, WhenValue, } from "./write/operations.ts";
|
|
34
|
+
export type { Acknowledgements, AreaAddParams, ContainerRef, HeadingPlacement, MoveHeadingParams, OperationKind, OperationParamsMap, ProjectAddParams, ProjectCompleteParams, ProjectMoveParams, ProjectUpdateParams, ReorderParams, ReorderScope, ReorderStrategy, TagAddParams, TagUpdateParams, AreaUpdateParams, TodoAddParams, TodoMoveParams, TodoUpdateParams, UpdateFields, WhenValue, } from "./write/operations.ts";
|
|
33
35
|
export { OPERATION_KINDS } from "./write/operations.ts";
|
|
36
|
+
export { buildUpdatePatch, CLI_UPDATE_LABELS, MCP_UPDATE_LABELS } from "./write/update-fields.ts";
|
|
37
|
+
export type { UpdateInput, UpdateLabels, UpdatePatch, UpdatePatchResult, } from "./write/update-fields.ts";
|
|
34
38
|
export type { MutationPlan, MutationResult, WriteOptions } from "./write/pipeline.ts";
|
|
35
39
|
export type { HazardId } from "./write/guards.ts";
|
|
36
40
|
export { HAZARD_IDS } from "./write/guards.ts";
|
|
@@ -38,7 +42,7 @@ export type { CompiledInvocation, VectorId, VectorMatrix, VectorSupport, WriteVe
|
|
|
38
42
|
export { APPLESCRIPT_MATRIX } from "./write/vectors/applescript.ts";
|
|
39
43
|
export { URL_SCHEME_MATRIX } from "./write/vectors/url-scheme.ts";
|
|
40
44
|
export { dbCarriesBenchMarker, simFenceActive } from "./write/vectors/simulator.ts";
|
|
41
|
-
export type { DeltaSpec, FieldAssertion, RepeatingDiscovery } from "./write/verify/delta.ts";
|
|
45
|
+
export type { DeltaSpec, FieldAssertion, OccurrenceResolution, RepeatingDiscovery, } from "./write/verify/delta.ts";
|
|
42
46
|
export type { AuditRecord } from "./audit/schema.ts";
|
|
43
47
|
export type { DisruptionTier, HelpersMode, Profile, ThingsApiConfig } from "./config.ts";
|
|
44
48
|
export { HELPERS_MODES, parseHelpersMode } from "./config.ts";
|
|
@@ -65,9 +69,10 @@ export { splitWhenSugar, CLI_WHEN_LABELS, MCP_WHEN_LABELS } from "./model/when-s
|
|
|
65
69
|
export type { WhenSugar, WhenSugarLabels } from "./model/when-sugar.ts";
|
|
66
70
|
export { ThingsDbNotFoundError } from "./db/locate.ts";
|
|
67
71
|
export { ThingsDbOpenError } from "./db/connection.ts";
|
|
68
|
-
export { deputyPlistPath, deputySigningInfo, grantReader, helpersBundleCandidates, helpersDefaultBuildPath, helpersStatus, installedHelpersVersion, installHelpers, readerPlistPath, restartHelpers, uninstallHelpers, } from "./deputy/install.ts";
|
|
69
|
-
export type { DeputyHalfStatus, DeputySigning, HelpersInstallResult, HelpersStatus, HelpersUninstallResult, ReaderHalfStatus, } from "./deputy/install.ts";
|
|
72
|
+
export { deputyPlistPath, deputySigningInfo, grantReader, helpersBundleCandidates, helpersDefaultBuildPath, helpersStatus, installedHelpersVersion, installHelpers, onboardHelpers, readerPlistPath, restartHelpers, uninstallHelpers, } from "./deputy/install.ts";
|
|
73
|
+
export type { DeputyHalfStatus, DeputySigning, HelpersInstallResult, HelpersOnboardResult, HelpersRevocation, HelpersStatus, HelpersUninstallDeps, HelpersUninstallOptions, HelpersUninstallResult, OnboardChannel, OnboardDeps, OnboardLeg, OnboardOptions, OnboardState, OnboardStep, OnboardTier, ReaderHalfStatus, } from "./deputy/install.ts";
|
|
70
74
|
export { deputyInstalledBinaryPath, EXPECTED_HELPERS_VERSION, helpersInstallDir, helpersInstalledBundlePath, readerInstalledAppPath, } from "./deputy/protocol.ts";
|
|
75
|
+
export type { AutomationPermission, DeputyAutomationStatus, DeputyHello, } from "./deputy/protocol.ts";
|
|
71
76
|
export { deputyRouting, helpersRouting, readerRouting } from "./deputy/routing.ts";
|
|
72
77
|
export type { DeputyRouting, HelpersRouting } from "./deputy/routing.ts";
|
|
73
78
|
export { emitHelpersNotice } from "./deputy/notice.ts";
|
|
@@ -83,6 +88,7 @@ export { makeRefPromoter, titleRoundTrips } from "./read/queries.ts";
|
|
|
83
88
|
export { fusedRef, REF_PREFIX_LEN } from "./read/queries.ts";
|
|
84
89
|
export { instantDateIso, localToday } from "./model/dates.ts";
|
|
85
90
|
export { templateStatus } from "./model/recurrence.ts";
|
|
91
|
+
export type { RepeatOffset, RepeatRule } from "./model/recurrence.ts";
|
|
86
92
|
export { isTodayMember } from "./read/views.ts";
|
|
87
93
|
export { entityProvisional, entityStage, entityWhen } from "./read/stage.ts";
|
|
88
94
|
export type { When } from "./read/stage.ts";
|
|
@@ -100,6 +106,15 @@ export { BOUNCE_MAX_ITEMS } from "./write/reorder.ts";
|
|
|
100
106
|
export type { AddRepeatingRuleFields, MonthlyAnchor, ProjectAddRepeatingParams, RepeatEnds, RepeatFrequency, RepeatRuleParams, TodoAddRepeatingParams, Weekday, WeekdayOrdinal, YearlyAnchor, } from "./write/operations.ts";
|
|
101
107
|
export { shortcutProxies } from "./diagnose.ts";
|
|
102
108
|
export type { ShortcutsState } from "./write/availability.ts";
|
|
109
|
+
export { fdaGranted, hostApp, hostDisplayName, readAllowed, readCapability, ReadCapabilityError, resetCapabilityForTests, tccDbPath, uiAllowed, uiCapability, UiCapabilityError, UI_DIRECT_ESCAPE_ENV, urlSchemeAllowed, urlSchemeCapability, UrlSchemeCapabilityError, writeAllowed, writeCapability, WriteCapabilityError, WRITE_DIRECT_ESCAPE_ENV, THINGS_BUNDLE_ID, } from "./capability.ts";
|
|
110
|
+
export type { Capability, CapabilityDeps, FdaVerdict, HostApp, ReadCapability, ReadCapabilityMode, UiCapability, UiCapabilityMode, UrlSchemeCapability, UrlSchemeCapabilityMode, WriteCapability, WriteCapabilityMode, } from "./capability.ts";
|
|
111
|
+
export type { HostAccessDeps } from "./host-access.ts";
|
|
112
|
+
export { clearSessionGrant, sessionGrantPath, sessionGrantValid, witnessSessionGrant, } from "./session-grant.ts";
|
|
113
|
+
export type { SessionGrantDeps, SessionGrantMarker, SessionGrantVerdict } from "./session-grant.ts";
|
|
114
|
+
export { ContainerOpenTimedOut, directSetup, surveySetup } from "./direct-setup.ts";
|
|
115
|
+
export { CeremonyStopped, createWizard, withDefaultInterrupts } from "./wizard.ts";
|
|
116
|
+
export type { Wizard, WizardDeps } from "./wizard.ts";
|
|
117
|
+
export type { DirectSetupDeps, DirectSetupResult, SetupLeg, SetupState, SetupStep, SetupSurvey, } from "./direct-setup.ts";
|
|
103
118
|
export { closeCliTrace, getInflight, installCliTrace, resolveTraceEnabled, sanitizeArgv, trace, traceActive, tracePath, } from "./trace/tracer.ts";
|
|
104
119
|
export type { InflightWrite, TraceEvent, TraceSink } from "./trace/tracer.ts";
|
|
105
120
|
export { traceDir } from "./paths.ts";
|
package/dist/index.js
CHANGED
|
@@ -11,12 +11,19 @@ export { opResult } from "./op-result.js";
|
|
|
11
11
|
export { probeAutomation } from "./write/automation-probe.js";
|
|
12
12
|
export { createEnvironmentTracker, describeEnvironmentChanges, diffEnvironment, } from "./write/environment.js";
|
|
13
13
|
export { capabilitiesTable } from "./write/capabilities.js";
|
|
14
|
+
// The per-operation PARAMETER schema (#580): the one structural contract every
|
|
15
|
+
// untyped entry point is held to. Exported so the consumer surfaces (CLI, MCP)
|
|
16
|
+
// reach it through this barrel rather than importing a write internal.
|
|
17
|
+
export { assertOperationParams, ParamSchemaError, PARAM_SCHEMAS, paramSummary, validateOperationParams, } from "./write/param-schema.js";
|
|
14
18
|
export { describeConfig, getConfigKey, loadConfig, saveConfigKey } from "./config.js";
|
|
15
19
|
// The per-view read-filter contract: the declarative applicability table plus
|
|
16
20
|
// the shared tag-conflict predicates both surfaces enforce. See
|
|
17
21
|
// docs/design/architecture.md (Consumer boundary).
|
|
18
22
|
export { FILTER_CONTRACT, hasTagPresence, tagFlagConflict, tagFilterFields, validateViewArgs, } from "./read/filter-contract.js";
|
|
19
23
|
export { OPERATION_KINDS } from "./write/operations.js";
|
|
24
|
+
// The update vocabulary's one registry: consumer surfaces build their patch with
|
|
25
|
+
// this instead of hand-listing the fields (the #491 exhaustive-map doctrine).
|
|
26
|
+
export { buildUpdatePatch, CLI_UPDATE_LABELS, MCP_UPDATE_LABELS } from "./write/update-fields.js";
|
|
20
27
|
export { HAZARD_IDS } from "./write/guards.js";
|
|
21
28
|
export { APPLESCRIPT_MATRIX } from "./write/vectors/applescript.js";
|
|
22
29
|
export { URL_SCHEME_MATRIX } from "./write/vectors/url-scheme.js";
|
|
@@ -47,7 +54,7 @@ export { ThingsDbNotFoundError } from "./db/locate.js";
|
|
|
47
54
|
export { ThingsDbOpenError } from "./db/connection.js";
|
|
48
55
|
// The helper pair (docs/design/agent-daemon.md §β1): lifecycle + routing
|
|
49
56
|
// state for the CLI `things helpers` command group and doctor.
|
|
50
|
-
export { deputyPlistPath, deputySigningInfo, grantReader, helpersBundleCandidates, helpersDefaultBuildPath, helpersStatus, installedHelpersVersion, installHelpers, readerPlistPath, restartHelpers, uninstallHelpers, } from "./deputy/install.js";
|
|
57
|
+
export { deputyPlistPath, deputySigningInfo, grantReader, helpersBundleCandidates, helpersDefaultBuildPath, helpersStatus, installedHelpersVersion, installHelpers, onboardHelpers, readerPlistPath, restartHelpers, uninstallHelpers, } from "./deputy/install.js";
|
|
51
58
|
export { deputyInstalledBinaryPath, EXPECTED_HELPERS_VERSION, helpersInstallDir, helpersInstalledBundlePath, readerInstalledAppPath, } from "./deputy/protocol.js";
|
|
52
59
|
export { deputyRouting, helpersRouting, readerRouting } from "./deputy/routing.js";
|
|
53
60
|
export { emitHelpersNotice } from "./deputy/notice.js";
|
|
@@ -85,6 +92,12 @@ export { BOUNCE_MAX_ITEMS } from "./write/reorder.js";
|
|
|
85
92
|
// Shortcut-proxy availability: a proper library accessor (setup consumes it
|
|
86
93
|
// without opening a database). See shortcutProxies in diagnose.ts.
|
|
87
94
|
export { shortcutProxies } from "./diagnose.js";
|
|
95
|
+
// Prompt-free capability detection and the direct-path ceremony
|
|
96
|
+
// (docs/design/permissions-doctrine.md).
|
|
97
|
+
export { fdaGranted, hostApp, hostDisplayName, readAllowed, readCapability, ReadCapabilityError, resetCapabilityForTests, tccDbPath, uiAllowed, uiCapability, UiCapabilityError, UI_DIRECT_ESCAPE_ENV, urlSchemeAllowed, urlSchemeCapability, UrlSchemeCapabilityError, writeAllowed, writeCapability, WriteCapabilityError, WRITE_DIRECT_ESCAPE_ENV, THINGS_BUNDLE_ID, } from "./capability.js";
|
|
98
|
+
export { clearSessionGrant, sessionGrantPath, sessionGrantValid, witnessSessionGrant, } from "./session-grant.js";
|
|
99
|
+
export { ContainerOpenTimedOut, directSetup, surveySetup } from "./direct-setup.js";
|
|
100
|
+
export { CeremonyStopped, createWizard, withDefaultInterrupts } from "./wizard.js";
|
|
88
101
|
// Dev-mode step-timeline trace (TRACE1, #487): the CLI write driver installs a
|
|
89
102
|
// file sink (isDevVersion / config-forced) and the signal handler reads the
|
|
90
103
|
// in-flight-write marker to emit an honest "interrupted, outcome uncertain"
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAmBzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAM9D,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/server.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
-
import { type DisruptionTier, type OpenOptions } from "../index.ts";
|
|
2
|
+
import { type ReadCapability, type UiCapability, type WriteCapability, type DisruptionTier, type OpenOptions } from "../index.ts";
|
|
3
3
|
export interface McpServerOptions {
|
|
4
4
|
dbPath?: string;
|
|
5
5
|
/**
|
|
@@ -21,5 +21,31 @@ export interface McpServerOptions {
|
|
|
21
21
|
scope?: string;
|
|
22
22
|
/** Test seam: forwarded to openThings (fake vectors, pinned clock, env). */
|
|
23
23
|
openOptions?: OpenOptions;
|
|
24
|
+
/**
|
|
25
|
+
* Test seam: the startup capability survey (docs/design/permissions-doctrine.md,
|
|
26
|
+
* Article II). Real servers run the prompt-free survey once at startup; tests
|
|
27
|
+
* substitute a fixed verdict so a cell's outcome never depends on the
|
|
28
|
+
* developer's own macOS grants.
|
|
29
|
+
*/
|
|
30
|
+
capability?: BakedCapability;
|
|
31
|
+
/** Where the one startup warning line goes. Default: stderr. */
|
|
32
|
+
onStartupWarning?: (line: string) => void;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* What this server may do, decided ONCE before the first tool call
|
|
36
|
+
* (docs/design/permissions-doctrine.md, Article II).
|
|
37
|
+
*
|
|
38
|
+
* A daemon is exactly the wrong place to discover a missing grant: nobody is
|
|
39
|
+
* watching its stderr, a per-call re-survey would let capability change under
|
|
40
|
+
* an agent mid-conversation, and the grants a daemon holds are its LAUNCHER's,
|
|
41
|
+
* fixed for the process's whole life — a `things setup` run afterwards changes
|
|
42
|
+
* nothing until the daemon is restarted. So the verdict is baked: stated in the
|
|
43
|
+
* server instructions, enforced immediately on tools whose vector class is
|
|
44
|
+
* absent, and remediated with "kill the server, run setup, restart it".
|
|
45
|
+
*/
|
|
46
|
+
export interface BakedCapability {
|
|
47
|
+
read: ReadCapability;
|
|
48
|
+
write: WriteCapability;
|
|
49
|
+
ui: UiCapability;
|
|
24
50
|
}
|
|
25
51
|
export declare function createThingsMcpServer(options?: McpServerOptions): McpServer;
|