things-api 0.17.0 → 0.19.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.
Files changed (277) hide show
  1. package/README.md +16 -9
  2. package/deputy/AppIcon.icns +0 -0
  3. package/deputy/VERSION +1 -0
  4. package/deputy/helpers-Info.plist +27 -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 +22 -0
  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 +128 -0
  10. package/deputy/prebuilt/Things API Helper.app/Contents/Info.plist +27 -0
  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 +137 -0
  14. package/deputy/reader/Info.plist +22 -0
  15. package/deputy/reader/entitlements.plist +45 -0
  16. package/deputy/reader/main.swift +580 -0
  17. package/deputy/src/main.swift +133 -0
  18. package/deputy/src/osascript.swift +102 -0
  19. package/deputy/src/server.swift +373 -0
  20. package/deputy/src/sqlite.swift +121 -0
  21. package/deputy/src/tcc.swift +58 -0
  22. package/dist/audit/schema.d.ts +13 -1
  23. package/dist/audit/schema.js.map +1 -1
  24. package/dist/capability.d.ts +160 -0
  25. package/dist/capability.js +416 -0
  26. package/dist/capability.js.map +1 -0
  27. package/dist/cli/commands/doctor.js +181 -2
  28. package/dist/cli/commands/doctor.js.map +1 -1
  29. package/dist/cli/commands/helpers.d.ts +17 -0
  30. package/dist/cli/commands/helpers.js +275 -0
  31. package/dist/cli/commands/helpers.js.map +1 -0
  32. package/dist/cli/commands/op-result.d.ts +15 -0
  33. package/dist/cli/commands/op-result.js +45 -0
  34. package/dist/cli/commands/op-result.js.map +1 -0
  35. package/dist/cli/commands/reads.js +47 -1
  36. package/dist/cli/commands/reads.js.map +1 -1
  37. package/dist/cli/commands/setup.d.ts +9 -0
  38. package/dist/cli/commands/setup.js +63 -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 +262 -109
  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 +53 -27
  50. package/dist/cli/help.js.map +1 -1
  51. package/dist/cli/helpers-check.d.ts +10 -0
  52. package/dist/cli/helpers-check.js +59 -0
  53. package/dist/cli/helpers-check.js.map +1 -0
  54. package/dist/cli/main.js +22 -1
  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 +22 -2
  65. package/dist/client.js +52 -15
  66. package/dist/client.js.map +1 -1
  67. package/dist/config.d.ts +31 -0
  68. package/dist/config.js +9 -0
  69. package/dist/config.js.map +1 -1
  70. package/dist/contracts.d.ts +6 -2
  71. package/dist/contracts.js +1 -1
  72. package/dist/contracts.js.map +1 -1
  73. package/dist/db/baselines/db-v26.js +8 -4
  74. package/dist/db/baselines/db-v26.js.map +1 -1
  75. package/dist/db/baselines/db-v27.d.ts +42 -0
  76. package/dist/db/baselines/db-v27.js +47 -0
  77. package/dist/db/baselines/db-v27.js.map +1 -0
  78. package/dist/db/baselines/index.js +2 -1
  79. package/dist/db/baselines/index.js.map +1 -1
  80. package/dist/db/locate.d.ts +4 -1
  81. package/dist/db/locate.js +3 -1
  82. package/dist/db/locate.js.map +1 -1
  83. package/dist/db/schema.d.ts +1 -1
  84. package/dist/db/schema.js +9 -0
  85. package/dist/db/schema.js.map +1 -1
  86. package/dist/deputy/bridge-worker.d.ts +1 -0
  87. package/dist/deputy/bridge-worker.js +79 -0
  88. package/dist/deputy/bridge-worker.js.map +1 -0
  89. package/dist/deputy/bridge.d.ts +14 -0
  90. package/dist/deputy/bridge.js +70 -0
  91. package/dist/deputy/bridge.js.map +1 -0
  92. package/dist/deputy/client.d.ts +19 -0
  93. package/dist/deputy/client.js +104 -0
  94. package/dist/deputy/client.js.map +1 -0
  95. package/dist/deputy/db-facade.d.ts +18 -0
  96. package/dist/deputy/db-facade.js +71 -0
  97. package/dist/deputy/db-facade.js.map +1 -0
  98. package/dist/deputy/files.d.ts +1 -0
  99. package/dist/deputy/files.js +16 -0
  100. package/dist/deputy/files.js.map +1 -0
  101. package/dist/deputy/install.d.ts +319 -0
  102. package/dist/deputy/install.js +1239 -0
  103. package/dist/deputy/install.js.map +1 -0
  104. package/dist/deputy/notice.d.ts +6 -0
  105. package/dist/deputy/notice.js +28 -0
  106. package/dist/deputy/notice.js.map +1 -0
  107. package/dist/deputy/notices.d.ts +31 -0
  108. package/dist/deputy/notices.js +94 -0
  109. package/dist/deputy/notices.js.map +1 -0
  110. package/dist/deputy/osa.d.ts +21 -0
  111. package/dist/deputy/osa.js +72 -0
  112. package/dist/deputy/osa.js.map +1 -0
  113. package/dist/deputy/protocol.d.ts +140 -0
  114. package/dist/deputy/protocol.js +143 -0
  115. package/dist/deputy/protocol.js.map +1 -0
  116. package/dist/deputy/routing.d.ts +84 -0
  117. package/dist/deputy/routing.js +422 -0
  118. package/dist/deputy/routing.js.map +1 -0
  119. package/dist/deputy/shortcuts-exec.d.ts +10 -0
  120. package/dist/deputy/shortcuts-exec.js +50 -0
  121. package/dist/deputy/shortcuts-exec.js.map +1 -0
  122. package/dist/diagnose.d.ts +57 -2
  123. package/dist/diagnose.js +105 -3
  124. package/dist/diagnose.js.map +1 -1
  125. package/dist/direct-setup.d.ts +78 -0
  126. package/dist/direct-setup.js +484 -0
  127. package/dist/direct-setup.js.map +1 -0
  128. package/dist/host-access.d.ts +63 -0
  129. package/dist/host-access.js +165 -0
  130. package/dist/host-access.js.map +1 -0
  131. package/dist/index.d.ts +31 -5
  132. package/dist/index.js +23 -1
  133. package/dist/index.js.map +1 -1
  134. package/dist/mcp/server.d.ts +27 -1
  135. package/dist/mcp/server.js +300 -97
  136. package/dist/mcp/server.js.map +1 -1
  137. package/dist/model/mappers.d.ts +12 -3
  138. package/dist/model/mappers.js +6 -1
  139. package/dist/model/mappers.js.map +1 -1
  140. package/dist/model/recurrence.d.ts +5 -1
  141. package/dist/model/recurrence.js +19 -1
  142. package/dist/model/recurrence.js.map +1 -1
  143. package/dist/model/template-projection.d.ts +26 -0
  144. package/dist/model/template-projection.js +113 -0
  145. package/dist/model/template-projection.js.map +1 -0
  146. package/dist/op-result.d.ts +55 -0
  147. package/dist/op-result.js +161 -0
  148. package/dist/op-result.js.map +1 -0
  149. package/dist/read/detail.js +7 -1
  150. package/dist/read/detail.js.map +1 -1
  151. package/dist/read/filter-contract.d.ts +1 -1
  152. package/dist/read/filter-contract.js +4 -0
  153. package/dist/read/filter-contract.js.map +1 -1
  154. package/dist/read/queries.js +8 -1
  155. package/dist/read/queries.js.map +1 -1
  156. package/dist/read/shape.js +4 -0
  157. package/dist/read/shape.js.map +1 -1
  158. package/dist/read/views.d.ts +35 -4
  159. package/dist/read/views.js +120 -18
  160. package/dist/read/views.js.map +1 -1
  161. package/dist/session-grant.d.ts +48 -0
  162. package/dist/session-grant.js +170 -0
  163. package/dist/session-grant.js.map +1 -0
  164. package/dist/surface-copy.d.ts +8 -0
  165. package/dist/surface-copy.js +8 -0
  166. package/dist/surface-copy.js.map +1 -1
  167. package/dist/sync-health.js +6 -2
  168. package/dist/sync-health.js.map +1 -1
  169. package/dist/wizard.d.ts +58 -0
  170. package/dist/wizard.js +167 -0
  171. package/dist/wizard.js.map +1 -0
  172. package/dist/write/accessibility-probe.js +4 -2
  173. package/dist/write/accessibility-probe.js.map +1 -1
  174. package/dist/write/automation-probe.js +5 -1
  175. package/dist/write/automation-probe.js.map +1 -1
  176. package/dist/write/availability.d.ts +1 -1
  177. package/dist/write/availability.js +10 -6
  178. package/dist/write/availability.js.map +1 -1
  179. package/dist/write/batch.d.ts +20 -0
  180. package/dist/write/batch.js +94 -15
  181. package/dist/write/batch.js.map +1 -1
  182. package/dist/write/capabilities.d.ts +9 -0
  183. package/dist/write/capabilities.js +2 -0
  184. package/dist/write/capabilities.js.map +1 -1
  185. package/dist/write/clear-reminder.js +1 -1
  186. package/dist/write/clear-reminder.js.map +1 -1
  187. package/dist/write/commands.d.ts +12 -1
  188. package/dist/write/commands.js +170 -237
  189. package/dist/write/commands.js.map +1 -1
  190. package/dist/write/experimental.d.ts +19 -0
  191. package/dist/write/experimental.js +50 -0
  192. package/dist/write/experimental.js.map +1 -1
  193. package/dist/write/failure-hints.d.ts +3 -1
  194. package/dist/write/failure-hints.js.map +1 -1
  195. package/dist/write/guards.js +19 -2
  196. package/dist/write/guards.js.map +1 -1
  197. package/dist/write/lock.d.ts +16 -13
  198. package/dist/write/lock.js +55 -0
  199. package/dist/write/lock.js.map +1 -1
  200. package/dist/write/make-repeating-project.js +9 -13
  201. package/dist/write/make-repeating-project.js.map +1 -1
  202. package/dist/write/move.js +14 -6
  203. package/dist/write/move.js.map +1 -1
  204. package/dist/write/operations.d.ts +64 -25
  205. package/dist/write/operations.js +7 -0
  206. package/dist/write/operations.js.map +1 -1
  207. package/dist/write/opid.d.ts +14 -0
  208. package/dist/write/opid.js +22 -0
  209. package/dist/write/opid.js.map +1 -1
  210. package/dist/write/param-schema.d.ts +124 -0
  211. package/dist/write/param-schema.js +747 -0
  212. package/dist/write/param-schema.js.map +1 -0
  213. package/dist/write/pipeline.d.ts +78 -2
  214. package/dist/write/pipeline.js +249 -4
  215. package/dist/write/pipeline.js.map +1 -1
  216. package/dist/write/pre-state.d.ts +8 -0
  217. package/dist/write/pre-state.js +62 -17
  218. package/dist/write/pre-state.js.map +1 -1
  219. package/dist/write/promote-clone.js +635 -367
  220. package/dist/write/promote-clone.js.map +1 -1
  221. package/dist/write/reorder.js +95 -29
  222. package/dist/write/reorder.js.map +1 -1
  223. package/dist/write/repeat-anchor.d.ts +30 -0
  224. package/dist/write/repeat-anchor.js +166 -1
  225. package/dist/write/repeat-anchor.js.map +1 -1
  226. package/dist/write/repeat-rule.d.ts +28 -1
  227. package/dist/write/repeat-rule.js +64 -4
  228. package/dist/write/repeat-rule.js.map +1 -1
  229. package/dist/write/resolution-timestamps.d.ts +11 -0
  230. package/dist/write/resolution-timestamps.js +83 -38
  231. package/dist/write/resolution-timestamps.js.map +1 -1
  232. package/dist/write/reversibility.js +4 -0
  233. package/dist/write/reversibility.js.map +1 -1
  234. package/dist/write/template-mutation.d.ts +137 -0
  235. package/dist/write/template-mutation.js +451 -0
  236. package/dist/write/template-mutation.js.map +1 -0
  237. package/dist/write/undo.js +10 -20
  238. package/dist/write/undo.js.map +1 -1
  239. package/dist/write/update-fields.d.ts +151 -0
  240. package/dist/write/update-fields.js +427 -0
  241. package/dist/write/update-fields.js.map +1 -0
  242. package/dist/write/vectors/applescript.js +10 -16
  243. package/dist/write/vectors/applescript.js.map +1 -1
  244. package/dist/write/vectors/registry.d.ts +1 -1
  245. package/dist/write/vectors/registry.js +10 -2
  246. package/dist/write/vectors/registry.js.map +1 -1
  247. package/dist/write/vectors/session-reachability.d.ts +55 -0
  248. package/dist/write/vectors/session-reachability.js +56 -8
  249. package/dist/write/vectors/session-reachability.js.map +1 -1
  250. package/dist/write/vectors/shortcuts.js +7 -16
  251. package/dist/write/vectors/shortcuts.js.map +1 -1
  252. package/dist/write/vectors/simulator.d.ts +16 -1
  253. package/dist/write/vectors/simulator.js +68 -12
  254. package/dist/write/vectors/simulator.js.map +1 -1
  255. package/dist/write/vectors/types.d.ts +124 -1
  256. package/dist/write/vectors/ui-recipes.d.ts +19 -0
  257. package/dist/write/vectors/ui-recipes.js +158 -38
  258. package/dist/write/vectors/ui-recipes.js.map +1 -1
  259. package/dist/write/vectors/ui.d.ts +89 -0
  260. package/dist/write/vectors/ui.js +504 -49
  261. package/dist/write/vectors/ui.js.map +1 -1
  262. package/dist/write/verify/delta.d.ts +21 -0
  263. package/dist/write/verify/delta.js.map +1 -1
  264. package/dist/write/verify/poller.d.ts +13 -0
  265. package/dist/write/verify/poller.js +38 -0
  266. package/dist/write/verify/poller.js.map +1 -1
  267. package/package.json +9 -1
  268. package/schema/envelope.schema.json +5 -3
  269. package/scripts/build-helpers.sh +109 -0
  270. package/scripts/deputy-cert-setup.sh +60 -0
  271. package/skills/things-cli/SKILL.md +12 -5
  272. package/skills/things-cli/references/contracts.md +1 -0
  273. package/skills/things-cli/references/data-model.md +3 -0
  274. package/skills/things-cli/references/errors.md +5 -1
  275. package/skills/things-cli/references/gui.md +1 -0
  276. package/skills/things-cli/references/repeating.md +75 -0
  277. package/skills/things-cli/references/tag-cleanup.md +64 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/deputy/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /** Emit one helpers notice on stderr; later calls this process are dropped. */
2
+ export declare function emitHelpersNotice(message: string, write?: (s: string) => void): void;
3
+ /** True once this process has spent its one notice. */
4
+ export declare function helpersNoticeSpent(): boolean;
5
+ /** Test seam: forget that a notice was emitted. */
6
+ export declare function resetHelpersNoticeForTests(): void;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The single helpers stderr channel: AT MOST ONE line per process, whichever
3
+ * condition speaks first.
4
+ *
5
+ * Two producers share it — the routing layer (degradation caught at
6
+ * activation, src/deputy/routing.ts) and the CLI's passive install/upgrade
7
+ * check (src/cli/helpers-check.ts). One process can hit both (an installed but
8
+ * stale helper that also fails to answer), and two stacked lines about the same
9
+ * broken helper are noise, not information: the first one already names a
10
+ * remedy that resolves the state.
11
+ */
12
+ let noticed = false;
13
+ /** Emit one helpers notice on stderr; later calls this process are dropped. */
14
+ export function emitHelpersNotice(message, write = (s) => void process.stderr.write(s)) {
15
+ if (noticed)
16
+ return;
17
+ noticed = true;
18
+ write(`things-api helpers: ${message}\n`);
19
+ }
20
+ /** True once this process has spent its one notice. */
21
+ export function helpersNoticeSpent() {
22
+ return noticed;
23
+ }
24
+ /** Test seam: forget that a notice was emitted. */
25
+ export function resetHelpersNoticeForTests() {
26
+ noticed = false;
27
+ }
28
+ //# sourceMappingURL=notice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notice.js","sourceRoot":"","sources":["../../src/deputy/notice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,IAAI,OAAO,GAAG,KAAK,CAAC;AAEpB,+EAA+E;AAC/E,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,QAA6B,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAEhE,IAAI,OAAO;QAAE,OAAO;IACpB,OAAO,GAAG,IAAI,CAAC;IACf,KAAK,CAAC,uBAAuB,OAAO,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,kBAAkB;IAChC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,0BAA0B;IACxC,OAAO,GAAG,KAAK,CAAC;AAClB,CAAC"}
@@ -0,0 +1,31 @@
1
+ /** How long the absence hint stays quiet after being shown once. */
2
+ export declare const HELPERS_HINT_INTERVAL_DAYS = 14;
3
+ export type HelpersNoticeKind = "version-skew" | "absent-hint";
4
+ export interface HelpersNotice {
5
+ kind: HelpersNoticeKind;
6
+ /** The one line to print (no prefix — the notice sink adds it). */
7
+ text: string;
8
+ }
9
+ export interface HelpersNoticeOptions {
10
+ env?: NodeJS.ProcessEnv;
11
+ /** Wall clock (ms) for the hint throttle; defaults to now. */
12
+ now?: number;
13
+ /** Host platform; the helpers are macOS-only, so nothing fires elsewhere. */
14
+ platform?: string;
15
+ /**
16
+ * Test seam. Defaults to the real provenance: true when `helpers-enabled` is
17
+ * neither stored nor forced by the environment (nobody has ever answered the
18
+ * routing question on this host).
19
+ */
20
+ modeUntouched?: boolean;
21
+ }
22
+ /** When the absence hint was last shown (ms), or null when never/unreadable. */
23
+ export declare function lastHelpersHintAt(env?: NodeJS.ProcessEnv): number | null;
24
+ /** Record that the absence hint was shown, restarting its throttle window. */
25
+ export declare function markHelpersHintShown(env?: NodeJS.ProcessEnv, now?: number): void;
26
+ /**
27
+ * The notice this machine has earned, or null when it has nothing to say.
28
+ * Skew outranks the hint (they are mutually exclusive anyway: one needs an
29
+ * installed bundle, the other its absence).
30
+ */
31
+ export declare function computeHelpersNotice(options?: HelpersNoticeOptions): HelpersNotice | null;
@@ -0,0 +1,94 @@
1
+ /**
2
+ * The PASSIVE helpers notices — what a human sees on a command they were
3
+ * running anyway, without asking about the helpers at all (the skill-drift
4
+ * precedent, src/cli/skill-check.ts).
5
+ *
6
+ * Two conditions, both computed from disk with no handshake and no prompt:
7
+ *
8
+ * - `version-skew`: routing is on (`auto`/`true`), a bundle IS installed, and
9
+ * its version differs from the one this package expects. The remedy is a
10
+ * rebuild + reinstall — the installed bundle is a COPY, so restarting it
11
+ * would only restart the stale code.
12
+ * - `absent-hint`: nothing is installed, the routing mode has never been set,
13
+ * and the hint has not been shown for {@link HELPERS_HINT_INTERVAL_DAYS}
14
+ * days. This one is a suggestion, not a fault, so it is throttled by a stamp
15
+ * in the state dir and suppressible like the rest.
16
+ *
17
+ * Emission (gating, kill switch, the one-line-per-process budget) belongs to
18
+ * the caller — src/cli/helpers-check.ts. These functions only decide.
19
+ */
20
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
21
+ import { join } from "node:path";
22
+ import { getConfigKey, loadConfig } from "../config.js";
23
+ import { stateDir } from "../paths.js";
24
+ import { installedHelpersVersion } from "./install.js";
25
+ import { EXPECTED_HELPERS_VERSION, helpersInstalledBundlePath } from "./protocol.js";
26
+ /** How long the absence hint stays quiet after being shown once. */
27
+ export const HELPERS_HINT_INTERVAL_DAYS = 14;
28
+ function hintStampPath(env) {
29
+ return join(stateDir(env), "helpers-hint.json");
30
+ }
31
+ /** When the absence hint was last shown (ms), or null when never/unreadable. */
32
+ export function lastHelpersHintAt(env = process.env) {
33
+ try {
34
+ const raw = JSON.parse(readFileSync(hintStampPath(env), "utf8"));
35
+ const parsed = typeof raw.shownAt === "string" ? Date.parse(raw.shownAt) : NaN;
36
+ return Number.isNaN(parsed) ? null : parsed;
37
+ }
38
+ catch {
39
+ return null;
40
+ }
41
+ }
42
+ /** Record that the absence hint was shown, restarting its throttle window. */
43
+ export function markHelpersHintShown(env = process.env, now = Date.now()) {
44
+ try {
45
+ mkdirSync(stateDir(env), { recursive: true });
46
+ writeFileSync(hintStampPath(env), `${JSON.stringify({ shownAt: new Date(now).toISOString() }, null, 2)}\n`);
47
+ }
48
+ catch {
49
+ // A hint that cannot remember itself is still better than a broken command.
50
+ }
51
+ }
52
+ /**
53
+ * The notice this machine has earned, or null when it has nothing to say.
54
+ * Skew outranks the hint (they are mutually exclusive anyway: one needs an
55
+ * installed bundle, the other its absence).
56
+ */
57
+ export function computeHelpersNotice(options = {}) {
58
+ const env = options.env ?? process.env;
59
+ const platform = options.platform ?? process.platform;
60
+ if (platform !== "darwin")
61
+ return null;
62
+ const mode = loadConfig(env).helpersMode;
63
+ if (mode === "false")
64
+ return null;
65
+ const installed = existsSync(helpersInstalledBundlePath(env));
66
+ if (installed) {
67
+ const version = installedHelpersVersion(env);
68
+ if (version === null || version === EXPECTED_HELPERS_VERSION)
69
+ return null;
70
+ return {
71
+ kind: "version-skew",
72
+ text: `helpers v${version} installed, this package expects v${EXPECTED_HELPERS_VERSION} — ` +
73
+ "rebuild with `bash scripts/build-helpers.sh` and rerun `things helpers setup` " +
74
+ "(THINGS_API_NO_HELPERS_CHECK=1 silences this)",
75
+ };
76
+ }
77
+ // Nothing installed: a suggestion, and only for a host that has never
78
+ // expressed an opinion — an explicit `auto`/`true` owner is mid-setup, not
79
+ // in need of an introduction.
80
+ const untouched = options.modeUntouched ?? getConfigKey("helpers-enabled", env)?.source === "default";
81
+ if (!untouched)
82
+ return null;
83
+ const last = lastHelpersHintAt(env);
84
+ const now = options.now ?? Date.now();
85
+ if (last !== null && now - last < HELPERS_HINT_INTERVAL_DAYS * 86_400_000)
86
+ return null;
87
+ return {
88
+ kind: "absent-hint",
89
+ text: "database reads and app automation run in THIS process, so macOS permission grants " +
90
+ "follow whichever terminal or agent runtime started it — `things helpers setup` moves " +
91
+ "them onto two stable helpers (THINGS_API_NO_HELPERS_CHECK=1 silences this)",
92
+ };
93
+ }
94
+ //# sourceMappingURL=notices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notices.js","sourceRoot":"","sources":["../../src/deputy/notices.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export type OsaLang = "applescript" | "javascript";
2
+ export interface OsaExecResult {
3
+ exitCode: number;
4
+ stdout: string;
5
+ stderr: string;
6
+ timedOut?: boolean;
7
+ }
8
+ /** Async osascript for vector dispatch and ui steps (never blocks the event loop). */
9
+ export declare function osaExec(script: string, options: {
10
+ lang?: OsaLang;
11
+ timeoutMs: number;
12
+ }): Promise<OsaExecResult>;
13
+ /**
14
+ * Sync osascript for the consent probes. Returns stdout on success; throws an
15
+ * execFileSync-SHAPED error otherwise (status/stderr/killed/signal), so the
16
+ * probes' TCC classification regexes (-1743 denied, -1712/kill pending) read
17
+ * identically on both paths. In deputy mode the classification is answered
18
+ * about the DEPUTY's grants — exactly the right question, since it is the
19
+ * deputy that will send every AppleEvent.
20
+ */
21
+ export declare function osaExecSync(script: string, timeoutMs: number): string;
@@ -0,0 +1,72 @@
1
+ /**
2
+ * The single osascript execution seam. Every osascript the library runs —
3
+ * vector dispatch, ui steps, consent probes — flows through one of these two
4
+ * functions, which route to the deputy when it is active and run direct
5
+ * (execFile/execFileSync, byte-identical to the pre-deputy behavior)
6
+ * otherwise. `open`-based primitives (URL scheme, reveal) are consent-free by
7
+ * design and never route.
8
+ */
9
+ import { execFile, execFileSync } from "node:child_process";
10
+ import {} from "./protocol.js";
11
+ import { deputyAsyncRequest, deputyRouting, deputySyncRequest } from "./routing.js";
12
+ /** Deputy-side kill fires at timeoutMs; the client deadline adds grace so the deputy's honest answer wins. */
13
+ const CLIENT_GRACE_MS = 5000;
14
+ function osaArgs(script, lang) {
15
+ return lang === "javascript" ? ["-l", "JavaScript", "-e", script] : ["-e", script];
16
+ }
17
+ function fromDeputy(res) {
18
+ const r = res;
19
+ return {
20
+ exitCode: r.timedOut === true || r.signal !== undefined
21
+ ? r.exitCode === 0
22
+ ? 1
23
+ : r.exitCode
24
+ : r.exitCode,
25
+ stdout: r.stdout,
26
+ stderr: r.stderr,
27
+ ...(r.timedOut === true && { timedOut: true }),
28
+ };
29
+ }
30
+ /** Async osascript for vector dispatch and ui steps (never blocks the event loop). */
31
+ export async function osaExec(script, options) {
32
+ const lang = options.lang ?? "applescript";
33
+ if (deputyRouting().active) {
34
+ const res = await deputyAsyncRequest({ verb: "osascript", script, lang, timeoutMs: options.timeoutMs }, options.timeoutMs + CLIENT_GRACE_MS);
35
+ return fromDeputy(res);
36
+ }
37
+ return new Promise((resolve) => {
38
+ execFile("osascript", osaArgs(script, lang), { timeout: options.timeoutMs }, (err, stdout, stderr) => {
39
+ const timedOut = err !== null && err.killed === true;
40
+ resolve({
41
+ exitCode: err === null ? 0 : (err.code ?? 1),
42
+ stdout: String(stdout),
43
+ stderr: String(stderr),
44
+ ...(timedOut && { timedOut: true }),
45
+ });
46
+ });
47
+ });
48
+ }
49
+ /**
50
+ * Sync osascript for the consent probes. Returns stdout on success; throws an
51
+ * execFileSync-SHAPED error otherwise (status/stderr/killed/signal), so the
52
+ * probes' TCC classification regexes (-1743 denied, -1712/kill pending) read
53
+ * identically on both paths. In deputy mode the classification is answered
54
+ * about the DEPUTY's grants — exactly the right question, since it is the
55
+ * deputy that will send every AppleEvent.
56
+ */
57
+ export function osaExecSync(script, timeoutMs) {
58
+ if (!deputyRouting().active) {
59
+ return execFileSync("osascript", ["-e", script], { encoding: "utf8", timeout: timeoutMs });
60
+ }
61
+ const res = deputySyncRequest({ verb: "osascript", script, lang: "applescript", timeoutMs }, timeoutMs + CLIENT_GRACE_MS);
62
+ if (res.exitCode === 0 && res.timedOut !== true && res.signal === undefined)
63
+ return res.stdout;
64
+ const error = new Error(`Command failed: osascript\n${res.stderr}`);
65
+ error.status = res.timedOut === true ? null : res.exitCode;
66
+ error.stdout = res.stdout;
67
+ error.stderr = res.stderr;
68
+ error.killed = res.timedOut === true;
69
+ error.signal = res.timedOut === true || res.signal !== undefined ? "SIGTERM" : null;
70
+ throw error;
71
+ }
72
+ //# sourceMappingURL=osa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"osa.js","sourceRoot":"","sources":["../../src/deputy/osa.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,140 @@
1
+ export declare const DEPUTY_PROTOCOL_VERSION = 1;
2
+ /**
3
+ * The helpers version this package expects — the helpers are versioned on
4
+ * their OWN line (deputy/VERSION), decoupled from the package version, so a
5
+ * package release whose helper sources are unchanged never nags for (or
6
+ * forces) a reinstall of a byte-equivalent bundle. Bump deputy/VERSION with
7
+ * any helper-source change; a drift test asserts this constant matches it.
8
+ * The PROTOCOL version above remains the hard compatibility gate.
9
+ */
10
+ export declare const EXPECTED_HELPERS_VERSION = "1.3.0";
11
+ /** The outer helper bundle's identifier (Things API Helper.app) — TCC + BTM identity. */
12
+ export declare const HELPERS_BUNDLE_ID = "com.pixelcog.things-api-helper";
13
+ /** launchd label (and signing identifier) of the broker. */
14
+ export declare const DEPUTY_LAUNCHD_LABEL = "com.pixelcog.things-deputy";
15
+ /**
16
+ * The deputy derives its own state dir from the same THINGS_API_STATE_DIR /
17
+ * XDG_STATE_HOME precedence as the library (deputy/src/main.swift mirrors
18
+ * this), so pointing both sides at one env is all a test needs.
19
+ */
20
+ export declare function deputyStateDir(env?: NodeJS.ProcessEnv): string;
21
+ export declare function deputySocketPath(env?: NodeJS.ProcessEnv): string;
22
+ export declare function deputyTokenPath(env?: NodeJS.ProcessEnv): string;
23
+ /**
24
+ * The directory `helpers install` owns WHOLESALE: it is deleted and recreated
25
+ * on every install, so any previous layout (however old) is erased without
26
+ * dedicated migration logic, and the fresh inodes reset the kernel's
27
+ * per-vnode code-signature cache (copying over an executed inode makes every
28
+ * future exec die with SIGKILL — observed live 2026-08-21).
29
+ */
30
+ export declare function helpersInstallDir(env?: NodeJS.ProcessEnv): string;
31
+ /** Where `helpers install` places the bundle. */
32
+ export declare function helpersInstalledBundlePath(env?: NodeJS.ProcessEnv): string;
33
+ /** The installed deputy executable (the bundle's main executable). */
34
+ export declare function deputyInstalledBinaryPath(env?: NodeJS.ProcessEnv): string;
35
+ /** The installed nested reader app. */
36
+ export declare function readerInstalledAppPath(env?: NodeJS.ProcessEnv): string;
37
+ /** launchd label (and bundle identifier) of the sandboxed reader. */
38
+ export declare const READER_LAUNCHD_LABEL = "com.pixelcog.things-reader";
39
+ /** Points every reader-side path somewhere else (mock readers in tests/lab). */
40
+ export declare const READER_DIR_ENV = "THINGS_API_READER_DIR";
41
+ /**
42
+ * The override path when one is set, else null. A set override means the
43
+ * rendezvous is an ORDINARY directory the caller chose — a mock reader is just
44
+ * a socket and a token file, with no bundle and no sandbox behind it.
45
+ */
46
+ export declare function readerDirOverride(env?: NodeJS.ProcessEnv): string | null;
47
+ /**
48
+ * Where clients meet the reader: `<state>/reader`, a directory WE own, outside
49
+ * every App Sandbox container.
50
+ *
51
+ * This placement is the whole point. launchd creates, binds, listens on and
52
+ * owns `reader.sock` here (the `Sockets` key in the reader's LaunchAgent) and
53
+ * hands the sandboxed process the already-listening fd at activation, so the
54
+ * reader never opens this path at all — a sandboxed process could not have
55
+ * bound anywhere but its own container. The access token is a sibling file the
56
+ * INSTALLER mints. Both are therefore ordinary files in the user's own state
57
+ * directory: a client `stat`/`open` on them crosses no container boundary,
58
+ * needs no TCC class, and works identically from every host app.
59
+ *
60
+ * Until helpers 1.3.0 both files lived in the reader's container home, which
61
+ * made every client probe a cross-app container access (the
62
+ * `kTCCServiceSystemPolicyAppData` consent class) — silent under an FDA host,
63
+ * a modal from anywhere else. See docs/design/permissions-doctrine.md
64
+ * (§ RESOLVED 2026-08-24).
65
+ */
66
+ export declare function readerRendezvousDir(env?: NodeJS.ProcessEnv): string;
67
+ export declare function readerSocketPath(env?: NodeJS.ProcessEnv): string;
68
+ export declare function readerTokenPath(env?: NodeJS.ProcessEnv): string;
69
+ /**
70
+ * The reader's App Sandbox container home — the OS picks the path from the
71
+ * bundle identifier, and the security-scoped bookmark that IS the read grant
72
+ * lives there. Reader-internal: nothing on the client side reads it. The one
73
+ * client-side use is `helpers uninstall --revoke`, which deletes the grant
74
+ * (a deliberate destructive act a human asked for), and the override redirects
75
+ * it so a suite never touches the developer's real container.
76
+ */
77
+ export declare function readerSandboxContainerDir(env?: NodeJS.ProcessEnv): string;
78
+ /** The env var carrying the reader's expected token, injected by its LaunchAgent. */
79
+ export declare const READER_TOKEN_ENV = "THINGS_READER_TOKEN";
80
+ /** The `Sockets` key entry name launchd hands the reader at activation. */
81
+ export declare const READER_SOCKET_ENV = "THINGS_READER_SOCKET";
82
+ /** Reader handshake: DeputyHello plus the grant state. */
83
+ export interface ReaderHello extends DeputyHello {
84
+ role: "reader";
85
+ /** False until the one-time open-panel ceremony has granted the folder. */
86
+ granted: boolean;
87
+ }
88
+ export interface DeputyErrorShape {
89
+ code: string;
90
+ message: string;
91
+ }
92
+ /** A protocol-level failure (the deputy answered `ok:false`, or never answered). */
93
+ export declare class DeputyRequestError extends Error {
94
+ readonly code: string;
95
+ constructor(code: string, message: string);
96
+ }
97
+ /**
98
+ * One Automation target's standing, as the deputy reads it prompt-free:
99
+ * `not-running` means the target was not up, so macOS had no answer to give;
100
+ * `unknown` covers "never asked" (the consent record does not exist yet) and
101
+ * anything unrecognized. Only `granted` lets the ceremony skip that leg.
102
+ */
103
+ export type AutomationPermission = "granted" | "denied" | "not-running" | "unknown";
104
+ export interface DeputyAutomationStatus {
105
+ things: AutomationPermission;
106
+ systemEvents: AutomationPermission;
107
+ }
108
+ export interface DeputyHello {
109
+ protocol: number;
110
+ deputyVersion: string;
111
+ pid: number;
112
+ /** Reader only: its cached container-db resolution (absent on the deputy). */
113
+ dbPath?: string | null;
114
+ uptimeMs: number;
115
+ /**
116
+ * The deputy's own Accessibility trust. Absent on helpers older than 1.2.0
117
+ * (and on the reader, which drives nothing) — absent means "unknown", never
118
+ * "false".
119
+ */
120
+ axTrusted?: boolean;
121
+ /** The deputy's Automation standing per target. Absent on helpers older than 1.2.0. */
122
+ automation?: DeputyAutomationStatus;
123
+ }
124
+ /**
125
+ * osascript outcome as the deputy reports it. `ok:true` at the protocol level
126
+ * means "the deputy ran osascript" — a failing script is exitCode ≠ 0 here,
127
+ * exactly as execFile would report it, so vector-side classification logic
128
+ * reads the same signals on both paths.
129
+ */
130
+ export interface DeputyOsaResult {
131
+ exitCode: number;
132
+ stdout: string;
133
+ stderr: string;
134
+ timedOut?: boolean;
135
+ /** Present when osascript died to a signal (number, e.g. 15 for SIGTERM). */
136
+ signal?: number;
137
+ }
138
+ export type DeputyRow = Record<string, unknown>;
139
+ /** BLOB columns cross the wire as `{ "$b64": <base64> }`; revive to Uint8Array. */
140
+ export declare function reviveRow(row: DeputyRow): DeputyRow;
@@ -0,0 +1,143 @@
1
+ /**
2
+ * things-deputy wire protocol: shared constants, request/response shapes, and
3
+ * path resolution for the broker's socket, token, and state directory.
4
+ *
5
+ * The helpers (deputy/src, deputy/reader) are deliberately dumb privileged
6
+ * proxies — the deputy runs fixed-shape osascript/shortcuts (mutations), the
7
+ * sandboxed reader serves read-only SQL and scoped file reads — so that macOS
8
+ * permission grants attach to their stable signed identities instead of
9
+ * whichever agent harness invokes the CLI. All product logic stays here in the
10
+ * library; the protocol therefore carries raw primitives, never operations.
11
+ * See docs/design/agent-daemon.md (§β1, §3b).
12
+ */
13
+ import { homedir } from "node:os";
14
+ import { join } from "node:path";
15
+ import { stateDir } from "../paths.js";
16
+ export const DEPUTY_PROTOCOL_VERSION = 1;
17
+ /**
18
+ * The helpers version this package expects — the helpers are versioned on
19
+ * their OWN line (deputy/VERSION), decoupled from the package version, so a
20
+ * package release whose helper sources are unchanged never nags for (or
21
+ * forces) a reinstall of a byte-equivalent bundle. Bump deputy/VERSION with
22
+ * any helper-source change; a drift test asserts this constant matches it.
23
+ * The PROTOCOL version above remains the hard compatibility gate.
24
+ */
25
+ export const EXPECTED_HELPERS_VERSION = "1.3.0";
26
+ /** The outer helper bundle's identifier (Things API Helper.app) — TCC + BTM identity. */
27
+ export const HELPERS_BUNDLE_ID = "com.pixelcog.things-api-helper";
28
+ /** launchd label (and signing identifier) of the broker. */
29
+ export const DEPUTY_LAUNCHD_LABEL = "com.pixelcog.things-deputy";
30
+ /**
31
+ * The deputy derives its own state dir from the same THINGS_API_STATE_DIR /
32
+ * XDG_STATE_HOME precedence as the library (deputy/src/main.swift mirrors
33
+ * this), so pointing both sides at one env is all a test needs.
34
+ */
35
+ export function deputyStateDir(env = process.env) {
36
+ return join(stateDir(env), "deputy");
37
+ }
38
+ export function deputySocketPath(env = process.env) {
39
+ return join(deputyStateDir(env), "deputy.sock");
40
+ }
41
+ export function deputyTokenPath(env = process.env) {
42
+ return join(deputyStateDir(env), "token");
43
+ }
44
+ /**
45
+ * The directory `helpers install` owns WHOLESALE: it is deleted and recreated
46
+ * on every install, so any previous layout (however old) is erased without
47
+ * dedicated migration logic, and the fresh inodes reset the kernel's
48
+ * per-vnode code-signature cache (copying over an executed inode makes every
49
+ * future exec die with SIGKILL — observed live 2026-08-21).
50
+ */
51
+ export function helpersInstallDir(env = process.env) {
52
+ return join(deputyStateDir(env), "bin");
53
+ }
54
+ /** Where `helpers install` places the bundle. */
55
+ export function helpersInstalledBundlePath(env = process.env) {
56
+ return join(helpersInstallDir(env), "Things API Helper.app");
57
+ }
58
+ /** The installed deputy executable (the bundle's main executable). */
59
+ export function deputyInstalledBinaryPath(env = process.env) {
60
+ return join(helpersInstalledBundlePath(env), "Contents/MacOS/things-deputy");
61
+ }
62
+ /** The installed nested reader app. */
63
+ export function readerInstalledAppPath(env = process.env) {
64
+ return join(helpersInstalledBundlePath(env), "Contents/Helpers/things-reader.app");
65
+ }
66
+ /** launchd label (and bundle identifier) of the sandboxed reader. */
67
+ export const READER_LAUNCHD_LABEL = "com.pixelcog.things-reader";
68
+ /** Points every reader-side path somewhere else (mock readers in tests/lab). */
69
+ export const READER_DIR_ENV = "THINGS_API_READER_DIR";
70
+ /**
71
+ * The override path when one is set, else null. A set override means the
72
+ * rendezvous is an ORDINARY directory the caller chose — a mock reader is just
73
+ * a socket and a token file, with no bundle and no sandbox behind it.
74
+ */
75
+ export function readerDirOverride(env = process.env) {
76
+ const explicit = env[READER_DIR_ENV];
77
+ return explicit !== undefined && explicit !== "" ? explicit : null;
78
+ }
79
+ /**
80
+ * Where clients meet the reader: `<state>/reader`, a directory WE own, outside
81
+ * every App Sandbox container.
82
+ *
83
+ * This placement is the whole point. launchd creates, binds, listens on and
84
+ * owns `reader.sock` here (the `Sockets` key in the reader's LaunchAgent) and
85
+ * hands the sandboxed process the already-listening fd at activation, so the
86
+ * reader never opens this path at all — a sandboxed process could not have
87
+ * bound anywhere but its own container. The access token is a sibling file the
88
+ * INSTALLER mints. Both are therefore ordinary files in the user's own state
89
+ * directory: a client `stat`/`open` on them crosses no container boundary,
90
+ * needs no TCC class, and works identically from every host app.
91
+ *
92
+ * Until helpers 1.3.0 both files lived in the reader's container home, which
93
+ * made every client probe a cross-app container access (the
94
+ * `kTCCServiceSystemPolicyAppData` consent class) — silent under an FDA host,
95
+ * a modal from anywhere else. See docs/design/permissions-doctrine.md
96
+ * (§ RESOLVED 2026-08-24).
97
+ */
98
+ export function readerRendezvousDir(env = process.env) {
99
+ return readerDirOverride(env) ?? join(stateDir(env), "reader");
100
+ }
101
+ export function readerSocketPath(env = process.env) {
102
+ return join(readerRendezvousDir(env), "reader.sock");
103
+ }
104
+ export function readerTokenPath(env = process.env) {
105
+ return join(readerRendezvousDir(env), "token");
106
+ }
107
+ /**
108
+ * The reader's App Sandbox container home — the OS picks the path from the
109
+ * bundle identifier, and the security-scoped bookmark that IS the read grant
110
+ * lives there. Reader-internal: nothing on the client side reads it. The one
111
+ * client-side use is `helpers uninstall --revoke`, which deletes the grant
112
+ * (a deliberate destructive act a human asked for), and the override redirects
113
+ * it so a suite never touches the developer's real container.
114
+ */
115
+ export function readerSandboxContainerDir(env = process.env) {
116
+ return (readerDirOverride(env) ?? join(homedir(), "Library/Containers", READER_LAUNCHD_LABEL, "Data"));
117
+ }
118
+ /** The env var carrying the reader's expected token, injected by its LaunchAgent. */
119
+ export const READER_TOKEN_ENV = "THINGS_READER_TOKEN";
120
+ /** The `Sockets` key entry name launchd hands the reader at activation. */
121
+ export const READER_SOCKET_ENV = "THINGS_READER_SOCKET";
122
+ /** A protocol-level failure (the deputy answered `ok:false`, or never answered). */
123
+ export class DeputyRequestError extends Error {
124
+ code;
125
+ constructor(code, message) {
126
+ super(message);
127
+ this.name = "DeputyRequestError";
128
+ this.code = code;
129
+ }
130
+ }
131
+ /** BLOB columns cross the wire as `{ "$b64": <base64> }`; revive to Uint8Array. */
132
+ export function reviveRow(row) {
133
+ for (const [key, value] of Object.entries(row)) {
134
+ if (value !== null &&
135
+ typeof value === "object" &&
136
+ "$b64" in value &&
137
+ typeof value.$b64 === "string") {
138
+ row[key] = new Uint8Array(Buffer.from(value.$b64, "base64"));
139
+ }
140
+ }
141
+ return row;
142
+ }
143
+ //# sourceMappingURL=protocol.js.map