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.
Files changed (224) hide show
  1. package/README.md +18 -9
  2. package/deputy/AppIcon.icns +0 -0
  3. package/deputy/VERSION +1 -1
  4. package/deputy/helpers-Info.plist +4 -0
  5. package/deputy/prebuilt/Things API Helper.app/Contents/CodeResources +0 -0
  6. package/deputy/prebuilt/Things API Helper.app/Contents/Helpers/things-reader.app/Contents/Info.plist +3 -1
  7. package/deputy/prebuilt/Things API Helper.app/Contents/Helpers/things-reader.app/Contents/MacOS/things-reader +0 -0
  8. package/deputy/prebuilt/Things API Helper.app/Contents/Helpers/things-reader.app/Contents/Resources/AppIcon.icns +0 -0
  9. package/deputy/prebuilt/Things API Helper.app/Contents/Helpers/things-reader.app/Contents/_CodeSignature/CodeResources +15 -2
  10. package/deputy/prebuilt/Things API Helper.app/Contents/Info.plist +5 -1
  11. package/deputy/prebuilt/Things API Helper.app/Contents/MacOS/things-deputy +0 -0
  12. package/deputy/prebuilt/Things API Helper.app/Contents/Resources/AppIcon.icns +0 -0
  13. package/deputy/prebuilt/Things API Helper.app/Contents/_CodeSignature/CodeResources +14 -2
  14. package/deputy/reader/Info.plist +2 -0
  15. package/deputy/reader/entitlements.plist +30 -0
  16. package/deputy/reader/main.swift +129 -40
  17. package/deputy/src/server.swift +25 -2
  18. package/deputy/src/tcc.swift +58 -0
  19. package/dist/audit/schema.d.ts +30 -1
  20. package/dist/audit/schema.js.map +1 -1
  21. package/dist/capability.d.ts +322 -0
  22. package/dist/capability.js +706 -0
  23. package/dist/capability.js.map +1 -0
  24. package/dist/cli/commands/doctor.d.ts +13 -1
  25. package/dist/cli/commands/doctor.js +141 -5
  26. package/dist/cli/commands/doctor.js.map +1 -1
  27. package/dist/cli/commands/helpers.js +189 -51
  28. package/dist/cli/commands/helpers.js.map +1 -1
  29. package/dist/cli/commands/mcp.js +8 -0
  30. package/dist/cli/commands/mcp.js.map +1 -1
  31. package/dist/cli/commands/op-result.js +6 -0
  32. package/dist/cli/commands/op-result.js.map +1 -1
  33. package/dist/cli/commands/reads.js +47 -1
  34. package/dist/cli/commands/reads.js.map +1 -1
  35. package/dist/cli/commands/repeat-flags.js +34 -2
  36. package/dist/cli/commands/repeat-flags.js.map +1 -1
  37. package/dist/cli/commands/setup.d.ts +9 -0
  38. package/dist/cli/commands/setup.js +76 -83
  39. package/dist/cli/commands/setup.js.map +1 -1
  40. package/dist/cli/commands/writes.d.ts +1 -1
  41. package/dist/cli/commands/writes.js +311 -142
  42. package/dist/cli/commands/writes.js.map +1 -1
  43. package/dist/cli/dry-run.d.ts +1 -1
  44. package/dist/cli/dry-run.js +1 -1
  45. package/dist/cli/glyphs.d.ts +23 -4
  46. package/dist/cli/glyphs.js +46 -19
  47. package/dist/cli/glyphs.js.map +1 -1
  48. package/dist/cli/help.d.ts +1 -1
  49. package/dist/cli/help.js +49 -27
  50. package/dist/cli/help.js.map +1 -1
  51. package/dist/cli/interrupt.d.ts +54 -6
  52. package/dist/cli/interrupt.js +78 -12
  53. package/dist/cli/interrupt.js.map +1 -1
  54. package/dist/cli/main.js +8 -5
  55. package/dist/cli/main.js.map +1 -1
  56. package/dist/cli/period.d.ts +3 -1
  57. package/dist/cli/period.js +1 -1
  58. package/dist/cli/period.js.map +1 -1
  59. package/dist/cli/read-driver.js +26 -1
  60. package/dist/cli/read-driver.js.map +1 -1
  61. package/dist/cli/render.d.ts +31 -4
  62. package/dist/cli/render.js +127 -15
  63. package/dist/cli/render.js.map +1 -1
  64. package/dist/client.d.ts +23 -3
  65. package/dist/client.js +36 -13
  66. package/dist/client.js.map +1 -1
  67. package/dist/contracts.d.ts +8 -4
  68. package/dist/contracts.js +1 -1
  69. package/dist/contracts.js.map +1 -1
  70. package/dist/deputy/install.d.ts +234 -6
  71. package/dist/deputy/install.js +843 -31
  72. package/dist/deputy/install.js.map +1 -1
  73. package/dist/deputy/notices.js +2 -2
  74. package/dist/deputy/notices.js.map +1 -1
  75. package/dist/deputy/protocol.d.ts +59 -5
  76. package/dist/deputy/protocol.js +48 -11
  77. package/dist/deputy/protocol.js.map +1 -1
  78. package/dist/deputy/routing.d.ts +37 -0
  79. package/dist/deputy/routing.js +181 -27
  80. package/dist/deputy/routing.js.map +1 -1
  81. package/dist/deputy/wake.d.ts +61 -0
  82. package/dist/deputy/wake.js +149 -0
  83. package/dist/deputy/wake.js.map +1 -0
  84. package/dist/diagnose.d.ts +19 -4
  85. package/dist/diagnose.js +64 -8
  86. package/dist/diagnose.js.map +1 -1
  87. package/dist/direct-setup.d.ts +104 -0
  88. package/dist/direct-setup.js +658 -0
  89. package/dist/direct-setup.js.map +1 -0
  90. package/dist/host-access.d.ts +75 -0
  91. package/dist/host-access.js +177 -0
  92. package/dist/host-access.js.map +1 -0
  93. package/dist/index.d.ts +20 -5
  94. package/dist/index.js +14 -1
  95. package/dist/index.js.map +1 -1
  96. package/dist/mcp/server.d.ts +27 -1
  97. package/dist/mcp/server.js +308 -109
  98. package/dist/mcp/server.js.map +1 -1
  99. package/dist/op-result.d.ts +9 -0
  100. package/dist/op-result.js +13 -1
  101. package/dist/op-result.js.map +1 -1
  102. package/dist/read/filter-contract.d.ts +1 -1
  103. package/dist/read/filter-contract.js +4 -0
  104. package/dist/read/filter-contract.js.map +1 -1
  105. package/dist/read/shape.js +4 -0
  106. package/dist/read/shape.js.map +1 -1
  107. package/dist/read/views.d.ts +29 -0
  108. package/dist/read/views.js +60 -0
  109. package/dist/read/views.js.map +1 -1
  110. package/dist/session-grant.d.ts +48 -0
  111. package/dist/session-grant.js +185 -0
  112. package/dist/session-grant.js.map +1 -0
  113. package/dist/surface-copy.d.ts +19 -3
  114. package/dist/surface-copy.js +19 -3
  115. package/dist/surface-copy.js.map +1 -1
  116. package/dist/wizard.d.ts +58 -0
  117. package/dist/wizard.js +174 -0
  118. package/dist/wizard.js.map +1 -0
  119. package/dist/write/availability.d.ts +1 -16
  120. package/dist/write/availability.js +10 -65
  121. package/dist/write/availability.js.map +1 -1
  122. package/dist/write/batch.d.ts +20 -0
  123. package/dist/write/batch.js +111 -21
  124. package/dist/write/batch.js.map +1 -1
  125. package/dist/write/capabilities.d.ts +9 -0
  126. package/dist/write/capabilities.js +2 -0
  127. package/dist/write/capabilities.js.map +1 -1
  128. package/dist/write/clear-reminder.js +1 -1
  129. package/dist/write/clear-reminder.js.map +1 -1
  130. package/dist/write/commands.d.ts +22 -7
  131. package/dist/write/commands.js +231 -254
  132. package/dist/write/commands.js.map +1 -1
  133. package/dist/write/failure-hints.d.ts +32 -7
  134. package/dist/write/failure-hints.js +9 -14
  135. package/dist/write/failure-hints.js.map +1 -1
  136. package/dist/write/guards.js +22 -4
  137. package/dist/write/guards.js.map +1 -1
  138. package/dist/write/lock.d.ts +16 -13
  139. package/dist/write/lock.js +55 -0
  140. package/dist/write/lock.js.map +1 -1
  141. package/dist/write/make-repeating-project.js +9 -13
  142. package/dist/write/make-repeating-project.js.map +1 -1
  143. package/dist/write/move.js +9 -12
  144. package/dist/write/move.js.map +1 -1
  145. package/dist/write/operations.d.ts +51 -29
  146. package/dist/write/operations.js +16 -0
  147. package/dist/write/operations.js.map +1 -1
  148. package/dist/write/opid.d.ts +72 -14
  149. package/dist/write/opid.js +152 -8
  150. package/dist/write/opid.js.map +1 -1
  151. package/dist/write/param-schema.d.ts +80 -0
  152. package/dist/write/param-schema.js +754 -0
  153. package/dist/write/param-schema.js.map +1 -0
  154. package/dist/write/pipeline.d.ts +110 -5
  155. package/dist/write/pipeline.js +288 -14
  156. package/dist/write/pipeline.js.map +1 -1
  157. package/dist/write/pre-state.d.ts +38 -16
  158. package/dist/write/pre-state.js +117 -22
  159. package/dist/write/pre-state.js.map +1 -1
  160. package/dist/write/promote-clone.js +658 -444
  161. package/dist/write/promote-clone.js.map +1 -1
  162. package/dist/write/reorder.js +25 -8
  163. package/dist/write/reorder.js.map +1 -1
  164. package/dist/write/repeat-collateral.d.ts +31 -0
  165. package/dist/write/repeat-collateral.js +153 -0
  166. package/dist/write/repeat-collateral.js.map +1 -0
  167. package/dist/write/repeat-rule.d.ts +28 -1
  168. package/dist/write/repeat-rule.js +54 -4
  169. package/dist/write/repeat-rule.js.map +1 -1
  170. package/dist/write/resolution-timestamps.d.ts +11 -0
  171. package/dist/write/resolution-timestamps.js +108 -40
  172. package/dist/write/resolution-timestamps.js.map +1 -1
  173. package/dist/write/reversibility.js +4 -0
  174. package/dist/write/reversibility.js.map +1 -1
  175. package/dist/write/template-mutation.d.ts +137 -0
  176. package/dist/write/template-mutation.js +598 -0
  177. package/dist/write/template-mutation.js.map +1 -0
  178. package/dist/write/undo.js +10 -20
  179. package/dist/write/undo.js.map +1 -1
  180. package/dist/write/update-fields.d.ts +151 -0
  181. package/dist/write/update-fields.js +427 -0
  182. package/dist/write/update-fields.js.map +1 -0
  183. package/dist/write/vectors/applescript.js +6 -10
  184. package/dist/write/vectors/applescript.js.map +1 -1
  185. package/dist/write/vectors/registry.d.ts +1 -1
  186. package/dist/write/vectors/registry.js +10 -2
  187. package/dist/write/vectors/registry.js.map +1 -1
  188. package/dist/write/vectors/shortcuts.js +2 -2
  189. package/dist/write/vectors/shortcuts.js.map +1 -1
  190. package/dist/write/vectors/simulator.js +15 -4
  191. package/dist/write/vectors/simulator.js.map +1 -1
  192. package/dist/write/vectors/types.d.ts +268 -1
  193. package/dist/write/vectors/ui-certification.js +63 -13
  194. package/dist/write/vectors/ui-certification.js.map +1 -1
  195. package/dist/write/vectors/ui-chord.d.ts +144 -0
  196. package/dist/write/vectors/ui-chord.js +428 -0
  197. package/dist/write/vectors/ui-chord.js.map +1 -0
  198. package/dist/write/vectors/ui-drag.d.ts +8 -4
  199. package/dist/write/vectors/ui-drag.js +2 -0
  200. package/dist/write/vectors/ui-drag.js.map +1 -1
  201. package/dist/write/vectors/ui-recipes.d.ts +70 -3
  202. package/dist/write/vectors/ui-recipes.js +482 -44
  203. package/dist/write/vectors/ui-recipes.js.map +1 -1
  204. package/dist/write/vectors/ui.d.ts +280 -10
  205. package/dist/write/vectors/ui.js +1068 -77
  206. package/dist/write/vectors/ui.js.map +1 -1
  207. package/dist/write/vectors/url-scheme.js +3 -0
  208. package/dist/write/vectors/url-scheme.js.map +1 -1
  209. package/dist/write/verify/delta.d.ts +62 -0
  210. package/dist/write/verify/delta.js +36 -2
  211. package/dist/write/verify/delta.js.map +1 -1
  212. package/dist/write/verify/poller.d.ts +4 -1
  213. package/dist/write/verify/poller.js +14 -0
  214. package/dist/write/verify/poller.js.map +1 -1
  215. package/package.json +2 -1
  216. package/schema/envelope.schema.json +6 -4
  217. package/scripts/build-helpers.sh +5 -0
  218. package/skills/things-cli/SKILL.md +5 -3
  219. package/skills/things-cli/references/contracts.md +1 -0
  220. package/skills/things-cli/references/data-model.md +3 -0
  221. package/skills/things-cli/references/errors.md +1 -1
  222. package/skills/things-cli/references/gui.md +1 -0
  223. package/skills/things-cli/references/repeating.md +6 -0
  224. 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;AA4BtF,8EAA8E;AAC9E,gEAAgE;AAChE,mDAAmD;AACnD,OAAO,EACL,eAAe,EACf,cAAc,EACd,eAAe,EACf,eAAe,EACf,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAmCnC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAQ/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAIpF,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAoB9D,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AASvE,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,iFAAiF;AACjF,yEAAyE;AACzE,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAM/B,gFAAgF;AAChF,+EAA+E;AAC/E,uEAAuE;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,gFAAgF;AAChF,4EAA4E;AAC5E,oDAAoD;AACpD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG9D,iFAAiF;AACjF,wEAAwE;AACxE,kCAAkC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAGvD,kEAAkE;AAClE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,yEAAyE;AACzE,+DAA+D;AAC/D,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,uBAAuB,EACvB,uBAAuB,EACvB,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAaxB,8EAA8E;AAC9E,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,8EAA8E;AAE9E,2EAA2E;AAC3E,cAAc,mBAAmB,CAAC;AAElC,yDAAyD;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,iFAAiF;AACjF,2EAA2E;AAC3E,4DAA4D;AAC5D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,+EAA+E;AAC/E,8EAA8E;AAC9E,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,4EAA4E;AAC5E,+EAA+E;AAC/E,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7E,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMnF,0DAA0D;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AActD,4EAA4E;AAC5E,mEAAmE;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,+EAA+E;AAC/E,4EAA4E;AAC5E,4EAA4E;AAC5E,iFAAiF;AACjF,mEAAmE;AACnE,OAAO,EACL,aAAa,EACb,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,KAAK,EACL,WAAW,EACX,SAAS,GACV,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAWtC,MAAM,UAAU,aAAa;IAC3B,OAAO,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -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;