things-api 0.19.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 +3 -1
- package/deputy/prebuilt/Things API Helper.app/Contents/CodeResources +0 -0
- 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/MacOS/things-deputy +0 -0
- package/dist/audit/schema.d.ts +19 -2
- package/dist/audit/schema.js.map +1 -1
- package/dist/capability.d.ts +166 -4
- package/dist/capability.js +303 -13
- package/dist/capability.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +13 -1
- package/dist/cli/commands/doctor.js +24 -14
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/helpers.js +14 -3
- 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/repeat-flags.js +34 -2
- package/dist/cli/commands/repeat-flags.js.map +1 -1
- package/dist/cli/commands/setup.js +16 -3
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/writes.js +102 -67
- package/dist/cli/commands/writes.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/client.d.ts +1 -1
- package/dist/contracts.d.ts +3 -3
- package/dist/contracts.js +1 -1
- package/dist/deputy/install.d.ts +15 -1
- package/dist/deputy/install.js +46 -6
- package/dist/deputy/install.js.map +1 -1
- package/dist/deputy/routing.d.ts +16 -0
- package/dist/deputy/routing.js +70 -0
- 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 +6 -4
- package/dist/diagnose.js +20 -4
- package/dist/diagnose.js.map +1 -1
- package/dist/direct-setup.d.ts +31 -5
- package/dist/direct-setup.js +200 -26
- package/dist/direct-setup.js.map +1 -1
- package/dist/host-access.d.ts +12 -0
- package/dist/host-access.js +12 -0
- package/dist/host-access.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.js +23 -9
- package/dist/mcp/server.js.map +1 -1
- package/dist/op-result.js +8 -1
- package/dist/op-result.js.map +1 -1
- package/dist/session-grant.js +16 -1
- package/dist/session-grant.js.map +1 -1
- package/dist/surface-copy.d.ts +11 -3
- package/dist/surface-copy.js +11 -3
- package/dist/surface-copy.js.map +1 -1
- package/dist/wizard.js +8 -1
- package/dist/wizard.js.map +1 -1
- package/dist/write/availability.d.ts +0 -15
- package/dist/write/availability.js +7 -62
- package/dist/write/availability.js.map +1 -1
- package/dist/write/batch.js +17 -6
- package/dist/write/batch.js.map +1 -1
- package/dist/write/commands.d.ts +10 -6
- package/dist/write/commands.js +120 -31
- package/dist/write/commands.js.map +1 -1
- package/dist/write/failure-hints.d.ts +29 -6
- package/dist/write/failure-hints.js +9 -14
- package/dist/write/failure-hints.js.map +1 -1
- package/dist/write/guards.js +3 -2
- package/dist/write/guards.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 +15 -8
- package/dist/write/operations.js +9 -0
- package/dist/write/operations.js.map +1 -1
- package/dist/write/opid.d.ts +67 -23
- package/dist/write/opid.js +141 -19
- package/dist/write/opid.js.map +1 -1
- package/dist/write/param-schema.d.ts +0 -44
- package/dist/write/param-schema.js +10 -3
- package/dist/write/param-schema.js.map +1 -1
- package/dist/write/pipeline.d.ts +38 -7
- package/dist/write/pipeline.js +104 -18
- package/dist/write/pipeline.js.map +1 -1
- package/dist/write/pre-state.d.ts +30 -16
- package/dist/write/pre-state.js +88 -20
- package/dist/write/pre-state.js.map +1 -1
- package/dist/write/promote-clone.js +132 -18
- package/dist/write/promote-clone.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/resolution-timestamps.js +25 -2
- package/dist/write/resolution-timestamps.js.map +1 -1
- package/dist/write/template-mutation.js +163 -16
- package/dist/write/template-mutation.js.map +1 -1
- package/dist/write/vectors/applescript.js +3 -10
- package/dist/write/vectors/applescript.js.map +1 -1
- package/dist/write/vectors/simulator.js +8 -2
- package/dist/write/vectors/simulator.js.map +1 -1
- package/dist/write/vectors/types.d.ts +211 -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 +51 -3
- package/dist/write/vectors/ui-recipes.js +452 -44
- package/dist/write/vectors/ui-recipes.js.map +1 -1
- package/dist/write/vectors/ui.d.ts +267 -10
- package/dist/write/vectors/ui.js +1006 -64
- 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 +41 -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 +1 -1
- package/schema/envelope.schema.json +1 -1
- package/skills/things-cli/SKILL.md +1 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { AutomationPermission } from "./protocol.ts";
|
|
2
|
+
/** The GUI-driving target: the macOS component that reads and presses controls. */
|
|
3
|
+
export declare const SYSTEM_EVENTS_BUNDLE_ID = "com.apple.systemevents";
|
|
4
|
+
/** The Things application — the AppleScript vector's target. */
|
|
5
|
+
export declare const THINGS_BUNDLE_ID = "com.culturedcode.ThingsMac";
|
|
6
|
+
/**
|
|
7
|
+
* One Automation target, described the two ways this module needs it: the
|
|
8
|
+
* bundle id LaunchServices starts, and the `automation` field of the deputy's
|
|
9
|
+
* hello that carries its determination.
|
|
10
|
+
*/
|
|
11
|
+
export interface WakeTarget {
|
|
12
|
+
bundleId: string;
|
|
13
|
+
field: "systemEvents" | "things";
|
|
14
|
+
/** How long the target may take to come up before the wake is a failure. */
|
|
15
|
+
timeoutMs: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* System Events comes up in milliseconds — it is a headless agent with nothing
|
|
19
|
+
* to restore (SEWAKE1: `granted` on the FIRST ask after the launch, 10 ms).
|
|
20
|
+
*/
|
|
21
|
+
export declare const SYSTEM_EVENTS_TARGET: WakeTarget;
|
|
22
|
+
/**
|
|
23
|
+
* Things is a full document app that opens a window and its database, so it is
|
|
24
|
+
* given a longer bound than the agent. This wait only covers becoming
|
|
25
|
+
* ANSWERABLE to the determination; the pipeline separately waits for the app to
|
|
26
|
+
* be ready to land a write (src/write/pipeline.ts, the #486 startup window).
|
|
27
|
+
*/
|
|
28
|
+
export declare const THINGS_TARGET: WakeTarget;
|
|
29
|
+
export interface TargetWake {
|
|
30
|
+
/**
|
|
31
|
+
* The target's Automation standing once it is up. `not-running` (or
|
|
32
|
+
* undefined) means the wake did NOT take — a liveness failure, and the only
|
|
33
|
+
* state a caller may refuse on with liveness copy.
|
|
34
|
+
*/
|
|
35
|
+
standing: AutomationPermission | undefined;
|
|
36
|
+
/** One clause of provenance, for the refusal when the wake did not take. */
|
|
37
|
+
detail: string;
|
|
38
|
+
}
|
|
39
|
+
export interface WakeDeps {
|
|
40
|
+
/** Start the target in the background. Throws when the launch is refused. */
|
|
41
|
+
launch?: () => void;
|
|
42
|
+
/** Re-read the deputy's ask-false determination for the target. */
|
|
43
|
+
probe?: () => AutomationPermission | undefined;
|
|
44
|
+
sleep?: (ms: number) => void;
|
|
45
|
+
now?: () => number;
|
|
46
|
+
timeoutMs?: number;
|
|
47
|
+
intervalMs?: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Start a dormant Automation target, then report where its grant actually
|
|
51
|
+
* stands. Prompt-free by construction — see the module comment for why the
|
|
52
|
+
* launch must precede the determination.
|
|
53
|
+
*
|
|
54
|
+
* Call this only when the deputy has just reported `not-running`: on a live
|
|
55
|
+
* target the determination is already the truth and the launch buys nothing.
|
|
56
|
+
*/
|
|
57
|
+
export declare function wakeTarget(target: WakeTarget, env?: NodeJS.ProcessEnv, deps?: WakeDeps): TargetWake;
|
|
58
|
+
/** Wake the GUI-driving target (#610). */
|
|
59
|
+
export declare function wakeSystemEvents(env?: NodeJS.ProcessEnv, deps?: WakeDeps): TargetWake;
|
|
60
|
+
/** Wake the AppleScript vector's target — the user's own Things app (#617). */
|
|
61
|
+
export declare function wakeThings(env?: NodeJS.ProcessEnv, deps?: WakeDeps): TargetWake;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Waking a dormant Automation target — LIVENESS before authorization.
|
|
3
|
+
*
|
|
4
|
+
* `AEDeterminePermissionToAutomateTarget(askUserIfNeeded: false)` cannot answer
|
|
5
|
+
* for a target that is not running: it returns procNotFound, which the deputy
|
|
6
|
+
* reports as `not-running` (deputy/src/tcc.swift). That value is a fact about
|
|
7
|
+
* the PROCESS, never a verdict on the grant, and reading it as one is what made
|
|
8
|
+
* a fully onboarded machine get steered back through onboarding (#610 for
|
|
9
|
+
* System Events, #617 for Things itself).
|
|
10
|
+
*
|
|
11
|
+
* Two targets, one mechanism:
|
|
12
|
+
*
|
|
13
|
+
* - **System Events** is an on-demand macOS agent the system reaps whenever it
|
|
14
|
+
* has been idle. Its dormancy is the DEFAULT state, not an edge case
|
|
15
|
+
* (SEWAKE1 measured it down on a freshly booted machine that had done
|
|
16
|
+
* nothing).
|
|
17
|
+
* - **Things** is the user's own app, closed whenever they are not using it.
|
|
18
|
+
*
|
|
19
|
+
* The resolution, and why the ORDER is not negotiable:
|
|
20
|
+
*
|
|
21
|
+
* 1. LAUNCH the target first, with a plain background LaunchServices dispatch
|
|
22
|
+
* (`open -g -b`). An app launch is not a TCC-gated act: it raises no consent
|
|
23
|
+
* dialog, on any grant state, ever.
|
|
24
|
+
* 2. Only THEN re-read the ask-false determination. Doing it the other way
|
|
25
|
+
* round — sending the target an Apple event to wake it — auto-launches it
|
|
26
|
+
* AND raises the consent dialog when no grant is on record, which is exactly
|
|
27
|
+
* the surprise the permissions doctrine forbids outside the two ceremonies
|
|
28
|
+
* (docs/design/permissions-doctrine.md, Article I). For Things the order
|
|
29
|
+
* buys a second thing measured independently: an Apple event to a CLOSED
|
|
30
|
+
* Things auto-launches it with FOCUS STEAL (tier 2, A40/A41), while
|
|
31
|
+
* `open -g` keeps the operation at tier 0/1 — so the wake is the pre-launch
|
|
32
|
+
* the AppleScript vector wants anyway.
|
|
33
|
+
*
|
|
34
|
+
* The wait is closed-loop: the determination is re-asked until it stops saying
|
|
35
|
+
* `not-running`, bounded, with no fixed sleep standing in for the answer. When
|
|
36
|
+
* the target never comes up the caller gets a LIVENESS verdict to refuse on —
|
|
37
|
+
* never a permission one.
|
|
38
|
+
*
|
|
39
|
+
* WHO MAY CALL THIS. A launch is a side effect, so it belongs to callers that
|
|
40
|
+
* are about to DRIVE the target (the write gate before a dispatch, the two
|
|
41
|
+
* setup ceremonies). A survey — `doctor`, the MCP startup bake — must never
|
|
42
|
+
* launch the user's app as a diagnostic side effect; it reports the liveness
|
|
43
|
+
* state instead (src/capability.ts).
|
|
44
|
+
*/
|
|
45
|
+
import { execFileSync } from "node:child_process";
|
|
46
|
+
import { deputySyncRequest } from "./routing.js";
|
|
47
|
+
/** The GUI-driving target: the macOS component that reads and presses controls. */
|
|
48
|
+
export const SYSTEM_EVENTS_BUNDLE_ID = "com.apple.systemevents";
|
|
49
|
+
/** The Things application — the AppleScript vector's target. */
|
|
50
|
+
export const THINGS_BUNDLE_ID = "com.culturedcode.ThingsMac";
|
|
51
|
+
/** How often the determination is re-asked while waiting. */
|
|
52
|
+
const WAKE_POLL_INTERVAL_MS = 50;
|
|
53
|
+
/** How long the launch itself may take before it counts as refused. */
|
|
54
|
+
const LAUNCH_TIMEOUT_MS = 10_000;
|
|
55
|
+
/**
|
|
56
|
+
* System Events comes up in milliseconds — it is a headless agent with nothing
|
|
57
|
+
* to restore (SEWAKE1: `granted` on the FIRST ask after the launch, 10 ms).
|
|
58
|
+
*/
|
|
59
|
+
export const SYSTEM_EVENTS_TARGET = {
|
|
60
|
+
bundleId: SYSTEM_EVENTS_BUNDLE_ID,
|
|
61
|
+
field: "systemEvents",
|
|
62
|
+
timeoutMs: 5_000,
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Things is a full document app that opens a window and its database, so it is
|
|
66
|
+
* given a longer bound than the agent. This wait only covers becoming
|
|
67
|
+
* ANSWERABLE to the determination; the pipeline separately waits for the app to
|
|
68
|
+
* be ready to land a write (src/write/pipeline.ts, the #486 startup window).
|
|
69
|
+
*/
|
|
70
|
+
export const THINGS_TARGET = {
|
|
71
|
+
bundleId: THINGS_BUNDLE_ID,
|
|
72
|
+
field: "things",
|
|
73
|
+
timeoutMs: 10_000,
|
|
74
|
+
};
|
|
75
|
+
function launchInBackground(bundleId) {
|
|
76
|
+
execFileSync("open", ["-g", "-b", bundleId], {
|
|
77
|
+
stdio: "ignore",
|
|
78
|
+
timeout: LAUNCH_TIMEOUT_MS,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* A FRESH determination off the deputy, not the handshake the routing layer
|
|
83
|
+
* memoized at activation — the whole point of the re-probe is that the world
|
|
84
|
+
* changed since then. A deputy that stops answering mid-wake reads as
|
|
85
|
+
* undefined, which keeps the loop waiting rather than manufacturing a verdict.
|
|
86
|
+
*/
|
|
87
|
+
function targetStanding(env, field) {
|
|
88
|
+
try {
|
|
89
|
+
const res = deputySyncRequest({ verb: "hello" }, 2000, env);
|
|
90
|
+
const automation = res["automation"];
|
|
91
|
+
return automation?.[field];
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function syncSleep(ms) {
|
|
98
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
|
|
99
|
+
}
|
|
100
|
+
/** True while the target is still down (or the determination is still unread). */
|
|
101
|
+
function stillDown(standing) {
|
|
102
|
+
return standing === undefined || standing === "not-running";
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Start a dormant Automation target, then report where its grant actually
|
|
106
|
+
* stands. Prompt-free by construction — see the module comment for why the
|
|
107
|
+
* launch must precede the determination.
|
|
108
|
+
*
|
|
109
|
+
* Call this only when the deputy has just reported `not-running`: on a live
|
|
110
|
+
* target the determination is already the truth and the launch buys nothing.
|
|
111
|
+
*/
|
|
112
|
+
export function wakeTarget(target, env = process.env, deps = {}) {
|
|
113
|
+
const probe = deps.probe ?? (() => targetStanding(env, target.field));
|
|
114
|
+
const sleep = deps.sleep ?? syncSleep;
|
|
115
|
+
const now = deps.now ?? Date.now;
|
|
116
|
+
const timeoutMs = deps.timeoutMs ?? target.timeoutMs;
|
|
117
|
+
const intervalMs = deps.intervalMs ?? WAKE_POLL_INTERVAL_MS;
|
|
118
|
+
try {
|
|
119
|
+
(deps.launch ?? (() => launchInBackground(target.bundleId)))();
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
return {
|
|
123
|
+
standing: "not-running",
|
|
124
|
+
detail: `it could not be started (${err instanceof Error ? err.message : String(err)})`,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
const deadline = now() + timeoutMs;
|
|
128
|
+
let standing = probe();
|
|
129
|
+
while (stillDown(standing) && now() < deadline) {
|
|
130
|
+
sleep(intervalMs);
|
|
131
|
+
standing = probe();
|
|
132
|
+
}
|
|
133
|
+
if (stillDown(standing)) {
|
|
134
|
+
return {
|
|
135
|
+
standing,
|
|
136
|
+
detail: `it did not come up within ${Math.round(timeoutMs / 1000)}s of being started`,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
return { standing, detail: "started on demand" };
|
|
140
|
+
}
|
|
141
|
+
/** Wake the GUI-driving target (#610). */
|
|
142
|
+
export function wakeSystemEvents(env = process.env, deps = {}) {
|
|
143
|
+
return wakeTarget(SYSTEM_EVENTS_TARGET, env, deps);
|
|
144
|
+
}
|
|
145
|
+
/** Wake the AppleScript vector's target — the user's own Things app (#617). */
|
|
146
|
+
export function wakeThings(env = process.env, deps = {}) {
|
|
147
|
+
return wakeTarget(THINGS_TARGET, env, deps);
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=wake.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wake.js","sourceRoot":"","sources":["../../src/deputy/wake.ts"],"names":[],"mappings":"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"}
|
package/dist/diagnose.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { type HelpersMode } from "./config.ts";
|
|
2
2
|
import { type HelpersStatus } from "./deputy/install.ts";
|
|
3
3
|
import { type HelpersRouting } from "./deputy/routing.ts";
|
|
4
|
-
import { type ReadCapability, type UiCapability, type WriteCapability } from "./capability.ts";
|
|
4
|
+
import { type CapabilityDeps, type ReadCapability, type UiCapability, type UrlSchemeCapability, type WriteCapability } from "./capability.ts";
|
|
5
5
|
import { type AutomationProbeDeps, type AutomationProbeStatus } from "./write/automation-probe.ts";
|
|
6
6
|
import { type AccessibilityProbeDeps, type AccessibilityProbeStatus } from "./write/accessibility-probe.ts";
|
|
7
7
|
import { type CertificationStatus } from "./write/vectors/ui-certification.ts";
|
|
8
|
-
import { type AvailabilityDeps, type ShortcutsState
|
|
8
|
+
import { type AvailabilityDeps, type ShortcutsState } from "./write/availability.ts";
|
|
9
9
|
import { type EnvironmentChange, type EnvironmentTracker, type EnvironmentTuple } from "./write/environment.ts";
|
|
10
10
|
import { type SyncHealth, type SyncHealthDeps } from "./sync-health.ts";
|
|
11
11
|
import { ExitCode, type EnvelopeMeta, type ErrorCode } from "./contracts.ts";
|
|
@@ -142,8 +142,8 @@ export interface DiagnoseReport {
|
|
|
142
142
|
reason: string;
|
|
143
143
|
};
|
|
144
144
|
availability: {
|
|
145
|
-
/**
|
|
146
|
-
urlScheme:
|
|
145
|
+
/** Things' own 'Enable Things URLs' authorization (capability.ts; URLEN1). */
|
|
146
|
+
urlScheme: UrlSchemeCapability;
|
|
147
147
|
/** Which proxy shortcuts are installed (the Shortcuts surface's prerequisites). */
|
|
148
148
|
shortcuts: ShortcutsState;
|
|
149
149
|
};
|
|
@@ -205,6 +205,8 @@ export interface DiagnoseOptions {
|
|
|
205
205
|
accessibilityProbeDeps?: AccessibilityProbeDeps;
|
|
206
206
|
environment?: EnvironmentTracker;
|
|
207
207
|
availability?: AvailabilityDeps;
|
|
208
|
+
/** Test seams for the prompt-free capability verdicts (capability.ts). */
|
|
209
|
+
capability?: CapabilityDeps;
|
|
208
210
|
/** Test seams for the sync-health section (clock, process check, WAL/plist readers). */
|
|
209
211
|
syncHealth?: SyncHealthDeps;
|
|
210
212
|
/**
|
package/dist/diagnose.js
CHANGED
|
@@ -15,13 +15,13 @@ import { createDeputyDbFacade } from "./deputy/db-facade.js";
|
|
|
15
15
|
import { helpersStatus } from "./deputy/install.js";
|
|
16
16
|
import { EXPECTED_HELPERS_VERSION } from "./deputy/protocol.js";
|
|
17
17
|
import { deputyDbPath, deputyRoutesDb, helpersRouting, } from "./deputy/routing.js";
|
|
18
|
-
import { readAllowed, readCapability, uiCapability, writeCapability, } from "./capability.js";
|
|
18
|
+
import { readAllowed, readCapability, uiCapability, urlSchemeCapability, writeCapability, } from "./capability.js";
|
|
19
19
|
import { compareToBaseline, observeSchema } from "./db/fingerprint.js";
|
|
20
20
|
import { locateThingsDb, ThingsDbNotFoundError } from "./db/locate.js";
|
|
21
21
|
import { isThingsRunning, probeAutomation, } from "./write/automation-probe.js";
|
|
22
22
|
import { probeAccessibility, } from "./write/accessibility-probe.js";
|
|
23
23
|
import { allCertifications, UI_CERTIFICATION_PROFILE, } from "./write/vectors/ui-certification.js";
|
|
24
|
-
import { readShortcutProxies,
|
|
24
|
+
import { readShortcutProxies, } from "./write/availability.js";
|
|
25
25
|
import { createEnvironmentTracker, diffEnvironment, } from "./write/environment.js";
|
|
26
26
|
import { sdefDeclaresPrivateReorder } from "./write/experimental.js";
|
|
27
27
|
import { computeSyncHealth } from "./sync-health.js";
|
|
@@ -75,7 +75,16 @@ function outstandingConsent(hello) {
|
|
|
75
75
|
const automation = hello.automation;
|
|
76
76
|
if (automation === undefined)
|
|
77
77
|
return false;
|
|
78
|
-
return automation.things
|
|
78
|
+
return consentOwed(automation.things) || consentOwed(automation.systemEvents);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* `not-running` is the one value that is NOT a standing: with the target down
|
|
82
|
+
* the ask-false determination has no answer to give, so nothing is owed and no
|
|
83
|
+
* sitting would settle anything (#610 for System Events, #617 for Things).
|
|
84
|
+
* Steering a human to a ceremony on it is the false-onboarding loop itself.
|
|
85
|
+
*/
|
|
86
|
+
function consentOwed(standing) {
|
|
87
|
+
return standing !== "granted" && standing !== "not-running";
|
|
79
88
|
}
|
|
80
89
|
function buildHelpersReport(configMode, deps = {}) {
|
|
81
90
|
// The routing resolution carries the mode it resolved (helpersRouting reads
|
|
@@ -141,6 +150,8 @@ export function diagnose(dbPath, options = {}) {
|
|
|
141
150
|
// itself opening the container and raising the dialog it is diagnosing.
|
|
142
151
|
const capability = {
|
|
143
152
|
read: readCapability(dbPath !== undefined ? { dbPath } : {}),
|
|
153
|
+
// SURVEY, so a closed Things is REPORTED (`deputy-target-dormant`) and
|
|
154
|
+
// never started: doctor diagnoses the machine, it does not rearrange it.
|
|
144
155
|
write: writeCapability(),
|
|
145
156
|
ui: uiCapability(),
|
|
146
157
|
};
|
|
@@ -334,7 +345,12 @@ export function diagnose(dbPath, options = {}) {
|
|
|
334
345
|
"intended for a dedicated always-on Mac, see docs/setup.md)",
|
|
335
346
|
},
|
|
336
347
|
availability: {
|
|
337
|
-
|
|
348
|
+
// Reuses the read standing already established above rather than
|
|
349
|
+
// re-deriving it, so doctor asks the machine once.
|
|
350
|
+
urlScheme: urlSchemeCapability({
|
|
351
|
+
readStanding: () => capability.read,
|
|
352
|
+
...options.capability,
|
|
353
|
+
}),
|
|
338
354
|
shortcuts: readShortcutProxies(options.availability),
|
|
339
355
|
},
|
|
340
356
|
recurrence: scanRecurrenceRules(conn.db),
|
package/dist/diagnose.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../src/diagnose.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../src/diagnose.ts"],"names":[],"mappings":"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"}
|
package/dist/direct-setup.d.ts
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
|
-
import { writeCapability, type CapabilityDeps, type ReadCapability } from "./capability.ts";
|
|
1
|
+
import { writeCapability, type CapabilityDeps, type ReadCapability, type UrlSchemeCapability, type WriteCapabilityOptions } from "./capability.ts";
|
|
2
2
|
import { type Wizard } from "./wizard.ts";
|
|
3
3
|
import { type ShortcutsState } from "./write/availability.ts";
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* The deadline passed with the app-data dialog still unanswered. Distinct from
|
|
6
|
+
* a refusal: nothing was decided, the dialog is still on screen, and answering
|
|
7
|
+
* it later still lands the grant on the host app (APDP1 stage A).
|
|
8
|
+
*/
|
|
9
|
+
export declare class ContainerOpenTimedOut extends Error {
|
|
10
|
+
readonly timeoutMs: number;
|
|
11
|
+
constructor(timeoutMs: number);
|
|
12
|
+
}
|
|
13
|
+
export type SetupLeg = "read-access" | "app-control" | "shortcuts" | "url-scheme";
|
|
5
14
|
/**
|
|
6
15
|
* Where a leg stands. `pending` is a HUMAN-pace outcome (a toggle not yet
|
|
7
16
|
* flipped, a sheet not yet clicked) and resumes on a rerun; `denied` means
|
|
@@ -41,12 +50,21 @@ export interface DirectSetupDeps extends CapabilityDeps {
|
|
|
41
50
|
openUrl?: (url: string) => void;
|
|
42
51
|
/** Send the real Apple Event that mints an Automation grant. Throws on failure. */
|
|
43
52
|
sendAutomationProbe?: (timeoutMs: number) => void;
|
|
44
|
-
/**
|
|
45
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Open the container database once, deliberately, to provoke the app-data
|
|
55
|
+
* modal, waiting no longer than `timeoutMs` for it to be answered. Throws
|
|
56
|
+
* {@link ContainerOpenTimedOut} at the deadline and any other error when the
|
|
57
|
+
* open itself failed.
|
|
58
|
+
*/
|
|
59
|
+
openContainer?: (timeoutMs: number) => void;
|
|
60
|
+
/** How long the read leg waits for the app-data dialog (default 60s). */
|
|
61
|
+
containerOpenTimeoutMs?: number;
|
|
46
62
|
/** Open one shortcut's install sheet. */
|
|
47
63
|
openShortcut?: (file: string) => void;
|
|
48
64
|
/** The installed proxy-shortcut census (availability.ts). */
|
|
49
65
|
shortcutProxies?: () => ShortcutsState;
|
|
66
|
+
/** Things' own 'Enable Things URLs' standing, for leg (d) (capability.ts). */
|
|
67
|
+
urlSchemeStanding?: () => UrlSchemeCapability;
|
|
50
68
|
automationTimeoutMs?: number;
|
|
51
69
|
}
|
|
52
70
|
export interface SetupSurvey {
|
|
@@ -56,6 +74,7 @@ export interface SetupSurvey {
|
|
|
56
74
|
};
|
|
57
75
|
read: ReadCapability;
|
|
58
76
|
write: ReturnType<typeof writeCapability>;
|
|
77
|
+
urlScheme: UrlSchemeCapability;
|
|
59
78
|
shortcutsMissing: string[];
|
|
60
79
|
/** The legs that WOULD put something on screen. Empty means a rerun asks nothing. */
|
|
61
80
|
outstanding: SetupLeg[];
|
|
@@ -64,8 +83,15 @@ export interface SetupSurvey {
|
|
|
64
83
|
* What the ceremony would do, established entirely prompt-free. This is the
|
|
65
84
|
* idempotence check (Article V): it is what lets a rerun skip settled legs, and
|
|
66
85
|
* it is what `--dry-run` reports. Raises nothing, ever.
|
|
86
|
+
*
|
|
87
|
+
* `purpose` is the one side effect the survey can be asked for: the ceremony
|
|
88
|
+
* itself passes `dispatch` so a dormant Things is started before the dialogs
|
|
89
|
+
* are COUNTED (#617) — otherwise a machine whose app happens to be closed is
|
|
90
|
+
* told "nothing to raise" and then shown a dialog anyway. `--dry-run` keeps the
|
|
91
|
+
* default and starts nothing at all, at the cost of not knowing where a closed
|
|
92
|
+
* app's grant stands; it says so through the write verdict it reports.
|
|
67
93
|
*/
|
|
68
|
-
export declare function surveySetup(deps?: DirectSetupDeps): SetupSurvey;
|
|
94
|
+
export declare function surveySetup(deps?: DirectSetupDeps, options?: WriteCapabilityOptions): SetupSurvey;
|
|
69
95
|
/**
|
|
70
96
|
* Run the direct-path ceremony. Strict mode: the banner counts what is about
|
|
71
97
|
* to appear, waits are bounded, and an unanswered leg leaves the run nonzero.
|