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.
- package/README.md +16 -9
- package/deputy/AppIcon.icns +0 -0
- package/deputy/VERSION +1 -0
- package/deputy/helpers-Info.plist +27 -0
- package/deputy/prebuilt/Things API Helper.app/Contents/CodeResources +0 -0
- package/deputy/prebuilt/Things API Helper.app/Contents/Helpers/things-reader.app/Contents/Info.plist +22 -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/Helpers/things-reader.app/Contents/Resources/AppIcon.icns +0 -0
- package/deputy/prebuilt/Things API Helper.app/Contents/Helpers/things-reader.app/Contents/_CodeSignature/CodeResources +128 -0
- package/deputy/prebuilt/Things API Helper.app/Contents/Info.plist +27 -0
- package/deputy/prebuilt/Things API Helper.app/Contents/MacOS/things-deputy +0 -0
- package/deputy/prebuilt/Things API Helper.app/Contents/Resources/AppIcon.icns +0 -0
- package/deputy/prebuilt/Things API Helper.app/Contents/_CodeSignature/CodeResources +137 -0
- package/deputy/reader/Info.plist +22 -0
- package/deputy/reader/entitlements.plist +45 -0
- package/deputy/reader/main.swift +580 -0
- package/deputy/src/main.swift +133 -0
- package/deputy/src/osascript.swift +102 -0
- package/deputy/src/server.swift +373 -0
- package/deputy/src/sqlite.swift +121 -0
- package/deputy/src/tcc.swift +58 -0
- package/dist/audit/schema.d.ts +13 -1
- package/dist/audit/schema.js.map +1 -1
- package/dist/capability.d.ts +160 -0
- package/dist/capability.js +416 -0
- package/dist/capability.js.map +1 -0
- package/dist/cli/commands/doctor.js +181 -2
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/helpers.d.ts +17 -0
- package/dist/cli/commands/helpers.js +275 -0
- package/dist/cli/commands/helpers.js.map +1 -0
- package/dist/cli/commands/op-result.d.ts +15 -0
- package/dist/cli/commands/op-result.js +45 -0
- package/dist/cli/commands/op-result.js.map +1 -0
- package/dist/cli/commands/reads.js +47 -1
- package/dist/cli/commands/reads.js.map +1 -1
- package/dist/cli/commands/setup.d.ts +9 -0
- package/dist/cli/commands/setup.js +63 -83
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/writes.d.ts +1 -1
- package/dist/cli/commands/writes.js +262 -109
- package/dist/cli/commands/writes.js.map +1 -1
- package/dist/cli/dry-run.d.ts +1 -1
- package/dist/cli/dry-run.js +1 -1
- package/dist/cli/glyphs.d.ts +23 -4
- package/dist/cli/glyphs.js +46 -19
- package/dist/cli/glyphs.js.map +1 -1
- package/dist/cli/help.d.ts +1 -1
- package/dist/cli/help.js +53 -27
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/helpers-check.d.ts +10 -0
- package/dist/cli/helpers-check.js +59 -0
- package/dist/cli/helpers-check.js.map +1 -0
- package/dist/cli/main.js +22 -1
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/period.d.ts +3 -1
- package/dist/cli/period.js +1 -1
- package/dist/cli/period.js.map +1 -1
- package/dist/cli/read-driver.js +26 -1
- package/dist/cli/read-driver.js.map +1 -1
- package/dist/cli/render.d.ts +31 -4
- package/dist/cli/render.js +127 -15
- package/dist/cli/render.js.map +1 -1
- package/dist/client.d.ts +22 -2
- package/dist/client.js +52 -15
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +31 -0
- package/dist/config.js +9 -0
- package/dist/config.js.map +1 -1
- package/dist/contracts.d.ts +6 -2
- package/dist/contracts.js +1 -1
- package/dist/contracts.js.map +1 -1
- package/dist/db/baselines/db-v26.js +8 -4
- package/dist/db/baselines/db-v26.js.map +1 -1
- package/dist/db/baselines/db-v27.d.ts +42 -0
- package/dist/db/baselines/db-v27.js +47 -0
- package/dist/db/baselines/db-v27.js.map +1 -0
- package/dist/db/baselines/index.js +2 -1
- package/dist/db/baselines/index.js.map +1 -1
- package/dist/db/locate.d.ts +4 -1
- package/dist/db/locate.js +3 -1
- package/dist/db/locate.js.map +1 -1
- package/dist/db/schema.d.ts +1 -1
- package/dist/db/schema.js +9 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/deputy/bridge-worker.d.ts +1 -0
- package/dist/deputy/bridge-worker.js +79 -0
- package/dist/deputy/bridge-worker.js.map +1 -0
- package/dist/deputy/bridge.d.ts +14 -0
- package/dist/deputy/bridge.js +70 -0
- package/dist/deputy/bridge.js.map +1 -0
- package/dist/deputy/client.d.ts +19 -0
- package/dist/deputy/client.js +104 -0
- package/dist/deputy/client.js.map +1 -0
- package/dist/deputy/db-facade.d.ts +18 -0
- package/dist/deputy/db-facade.js +71 -0
- package/dist/deputy/db-facade.js.map +1 -0
- package/dist/deputy/files.d.ts +1 -0
- package/dist/deputy/files.js +16 -0
- package/dist/deputy/files.js.map +1 -0
- package/dist/deputy/install.d.ts +319 -0
- package/dist/deputy/install.js +1239 -0
- package/dist/deputy/install.js.map +1 -0
- package/dist/deputy/notice.d.ts +6 -0
- package/dist/deputy/notice.js +28 -0
- package/dist/deputy/notice.js.map +1 -0
- package/dist/deputy/notices.d.ts +31 -0
- package/dist/deputy/notices.js +94 -0
- package/dist/deputy/notices.js.map +1 -0
- package/dist/deputy/osa.d.ts +21 -0
- package/dist/deputy/osa.js +72 -0
- package/dist/deputy/osa.js.map +1 -0
- package/dist/deputy/protocol.d.ts +140 -0
- package/dist/deputy/protocol.js +143 -0
- package/dist/deputy/protocol.js.map +1 -0
- package/dist/deputy/routing.d.ts +84 -0
- package/dist/deputy/routing.js +422 -0
- package/dist/deputy/routing.js.map +1 -0
- package/dist/deputy/shortcuts-exec.d.ts +10 -0
- package/dist/deputy/shortcuts-exec.js +50 -0
- package/dist/deputy/shortcuts-exec.js.map +1 -0
- package/dist/diagnose.d.ts +57 -2
- package/dist/diagnose.js +105 -3
- package/dist/diagnose.js.map +1 -1
- package/dist/direct-setup.d.ts +78 -0
- package/dist/direct-setup.js +484 -0
- package/dist/direct-setup.js.map +1 -0
- package/dist/host-access.d.ts +63 -0
- package/dist/host-access.js +165 -0
- package/dist/host-access.js.map +1 -0
- package/dist/index.d.ts +31 -5
- package/dist/index.js +23 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts +27 -1
- package/dist/mcp/server.js +300 -97
- package/dist/mcp/server.js.map +1 -1
- package/dist/model/mappers.d.ts +12 -3
- package/dist/model/mappers.js +6 -1
- package/dist/model/mappers.js.map +1 -1
- package/dist/model/recurrence.d.ts +5 -1
- package/dist/model/recurrence.js +19 -1
- package/dist/model/recurrence.js.map +1 -1
- package/dist/model/template-projection.d.ts +26 -0
- package/dist/model/template-projection.js +113 -0
- package/dist/model/template-projection.js.map +1 -0
- package/dist/op-result.d.ts +55 -0
- package/dist/op-result.js +161 -0
- package/dist/op-result.js.map +1 -0
- package/dist/read/detail.js +7 -1
- package/dist/read/detail.js.map +1 -1
- package/dist/read/filter-contract.d.ts +1 -1
- package/dist/read/filter-contract.js +4 -0
- package/dist/read/filter-contract.js.map +1 -1
- package/dist/read/queries.js +8 -1
- package/dist/read/queries.js.map +1 -1
- package/dist/read/shape.js +4 -0
- package/dist/read/shape.js.map +1 -1
- package/dist/read/views.d.ts +35 -4
- package/dist/read/views.js +120 -18
- package/dist/read/views.js.map +1 -1
- package/dist/session-grant.d.ts +48 -0
- package/dist/session-grant.js +170 -0
- package/dist/session-grant.js.map +1 -0
- package/dist/surface-copy.d.ts +8 -0
- package/dist/surface-copy.js +8 -0
- package/dist/surface-copy.js.map +1 -1
- package/dist/sync-health.js +6 -2
- package/dist/sync-health.js.map +1 -1
- package/dist/wizard.d.ts +58 -0
- package/dist/wizard.js +167 -0
- package/dist/wizard.js.map +1 -0
- package/dist/write/accessibility-probe.js +4 -2
- package/dist/write/accessibility-probe.js.map +1 -1
- package/dist/write/automation-probe.js +5 -1
- package/dist/write/automation-probe.js.map +1 -1
- package/dist/write/availability.d.ts +1 -1
- package/dist/write/availability.js +10 -6
- package/dist/write/availability.js.map +1 -1
- package/dist/write/batch.d.ts +20 -0
- package/dist/write/batch.js +94 -15
- package/dist/write/batch.js.map +1 -1
- package/dist/write/capabilities.d.ts +9 -0
- package/dist/write/capabilities.js +2 -0
- package/dist/write/capabilities.js.map +1 -1
- package/dist/write/clear-reminder.js +1 -1
- package/dist/write/clear-reminder.js.map +1 -1
- package/dist/write/commands.d.ts +12 -1
- package/dist/write/commands.js +170 -237
- package/dist/write/commands.js.map +1 -1
- package/dist/write/experimental.d.ts +19 -0
- package/dist/write/experimental.js +50 -0
- package/dist/write/experimental.js.map +1 -1
- package/dist/write/failure-hints.d.ts +3 -1
- package/dist/write/failure-hints.js.map +1 -1
- package/dist/write/guards.js +19 -2
- package/dist/write/guards.js.map +1 -1
- package/dist/write/lock.d.ts +16 -13
- package/dist/write/lock.js +55 -0
- package/dist/write/lock.js.map +1 -1
- package/dist/write/make-repeating-project.js +9 -13
- package/dist/write/make-repeating-project.js.map +1 -1
- package/dist/write/move.js +14 -6
- package/dist/write/move.js.map +1 -1
- package/dist/write/operations.d.ts +64 -25
- package/dist/write/operations.js +7 -0
- package/dist/write/operations.js.map +1 -1
- package/dist/write/opid.d.ts +14 -0
- package/dist/write/opid.js +22 -0
- package/dist/write/opid.js.map +1 -1
- package/dist/write/param-schema.d.ts +124 -0
- package/dist/write/param-schema.js +747 -0
- package/dist/write/param-schema.js.map +1 -0
- package/dist/write/pipeline.d.ts +78 -2
- package/dist/write/pipeline.js +249 -4
- package/dist/write/pipeline.js.map +1 -1
- package/dist/write/pre-state.d.ts +8 -0
- package/dist/write/pre-state.js +62 -17
- package/dist/write/pre-state.js.map +1 -1
- package/dist/write/promote-clone.js +635 -367
- package/dist/write/promote-clone.js.map +1 -1
- package/dist/write/reorder.js +95 -29
- package/dist/write/reorder.js.map +1 -1
- package/dist/write/repeat-anchor.d.ts +30 -0
- package/dist/write/repeat-anchor.js +166 -1
- package/dist/write/repeat-anchor.js.map +1 -1
- package/dist/write/repeat-rule.d.ts +28 -1
- package/dist/write/repeat-rule.js +64 -4
- package/dist/write/repeat-rule.js.map +1 -1
- package/dist/write/resolution-timestamps.d.ts +11 -0
- package/dist/write/resolution-timestamps.js +83 -38
- package/dist/write/resolution-timestamps.js.map +1 -1
- package/dist/write/reversibility.js +4 -0
- package/dist/write/reversibility.js.map +1 -1
- package/dist/write/template-mutation.d.ts +137 -0
- package/dist/write/template-mutation.js +451 -0
- package/dist/write/template-mutation.js.map +1 -0
- package/dist/write/undo.js +10 -20
- package/dist/write/undo.js.map +1 -1
- package/dist/write/update-fields.d.ts +151 -0
- package/dist/write/update-fields.js +427 -0
- package/dist/write/update-fields.js.map +1 -0
- package/dist/write/vectors/applescript.js +10 -16
- package/dist/write/vectors/applescript.js.map +1 -1
- package/dist/write/vectors/registry.d.ts +1 -1
- package/dist/write/vectors/registry.js +10 -2
- package/dist/write/vectors/registry.js.map +1 -1
- package/dist/write/vectors/session-reachability.d.ts +55 -0
- package/dist/write/vectors/session-reachability.js +56 -8
- package/dist/write/vectors/session-reachability.js.map +1 -1
- package/dist/write/vectors/shortcuts.js +7 -16
- package/dist/write/vectors/shortcuts.js.map +1 -1
- package/dist/write/vectors/simulator.d.ts +16 -1
- package/dist/write/vectors/simulator.js +68 -12
- package/dist/write/vectors/simulator.js.map +1 -1
- package/dist/write/vectors/types.d.ts +124 -1
- package/dist/write/vectors/ui-recipes.d.ts +19 -0
- package/dist/write/vectors/ui-recipes.js +158 -38
- package/dist/write/vectors/ui-recipes.js.map +1 -1
- package/dist/write/vectors/ui.d.ts +89 -0
- package/dist/write/vectors/ui.js +504 -49
- package/dist/write/vectors/ui.js.map +1 -1
- package/dist/write/verify/delta.d.ts +21 -0
- package/dist/write/verify/delta.js.map +1 -1
- package/dist/write/verify/poller.d.ts +13 -0
- package/dist/write/verify/poller.js +38 -0
- package/dist/write/verify/poller.js.map +1 -1
- package/package.json +9 -1
- package/schema/envelope.schema.json +5 -3
- package/scripts/build-helpers.sh +109 -0
- package/scripts/deputy-cert-setup.sh +60 -0
- package/skills/things-cli/SKILL.md +12 -5
- package/skills/things-cli/references/contracts.md +1 -0
- package/skills/things-cli/references/data-model.md +3 -0
- package/skills/things-cli/references/errors.md +5 -1
- package/skills/things-cli/references/gui.md +1 -0
- package/skills/things-cli/references/repeating.md +75 -0
- package/skills/things-cli/references/tag-cleanup.md +64 -0
|
@@ -156,7 +156,35 @@ export type UiPrimitive = "reveal" | "activate" | "resolve" | "press" | "set-val
|
|
|
156
156
|
* closed (an `error` the pipeline re-verifies) if the box will not converge
|
|
157
157
|
* within the bounded retries.
|
|
158
158
|
*/
|
|
159
|
-
| "ensure-checkbox"
|
|
159
|
+
| "ensure-checkbox"
|
|
160
|
+
/**
|
|
161
|
+
* MEASURE which shape the open Repeat dialog is (RDLG2) and remember it for
|
|
162
|
+
* the rest of the drive. Emitted right before the first shape-dependent step;
|
|
163
|
+
* a dialog matching neither known shape aborts the drive fail-closed rather
|
|
164
|
+
* than press structural indexes it cannot vouch for.
|
|
165
|
+
*/
|
|
166
|
+
| "probe-dialog-shape"
|
|
167
|
+
/**
|
|
168
|
+
* Choose the first occurrence from the Things 3.23 `Next:` pop-up — a bounded
|
|
169
|
+
* MENU of `Today` plus the rule's own upcoming occurrences (cascading through
|
|
170
|
+
* `More…` submenus), not a date field (RDLG2). The driver matches the request
|
|
171
|
+
* against each item's parsed date, descends the cascade, clicks the match, and
|
|
172
|
+
* reads the pop-up back. A date the rule never produces is UNREACHABLE in this
|
|
173
|
+
* dialog and fails closed — 3.23 replaced the free-form first-occurrence field
|
|
174
|
+
* the ≤3.22 `set-datetime next` drive wrote.
|
|
175
|
+
*/
|
|
176
|
+
| "select-next-occurrence"
|
|
177
|
+
/**
|
|
178
|
+
* Converge the weekly dialog's weekday ROWS onto an exact target set through a
|
|
179
|
+
* deterministic closed loop (RDLG2, the RRD1 fix): read the live row count,
|
|
180
|
+
* press the row-add button until there are at least as many rows as target
|
|
181
|
+
* weekdays, assign EVERY row from the target set (cycling, so a surplus row
|
|
182
|
+
* duplicates a target weekday instead of keeping a stale one — the app stores
|
|
183
|
+
* the weekdays as a set), then read every row back and confirm the set matches.
|
|
184
|
+
* Replaces the blind first-row-then-"+" drive, which left a pre-populated
|
|
185
|
+
* dialog's stale weekdays in the committed rule.
|
|
186
|
+
*/
|
|
187
|
+
| "converge-weekdays";
|
|
160
188
|
export interface UiStep {
|
|
161
189
|
primitive: UiPrimitive;
|
|
162
190
|
/** Human-readable step label — surfaced in the partial-state report. */
|
|
@@ -238,7 +266,45 @@ export interface UiStep {
|
|
|
238
266
|
* confirms convergence (RRD1 closed loop). Required for every ensure-checkbox step.
|
|
239
267
|
*/
|
|
240
268
|
checkboxTarget?: boolean;
|
|
269
|
+
/**
|
|
270
|
+
* Run this step ONLY under the named Repeat-dialog shape (RDLG2). The two
|
|
271
|
+
* shapes present the FIRST-OCCURRENCE control as different element CLASSES —
|
|
272
|
+
* an `AXDateTimeArea` (legacy) versus an `AXPopUpButton` (next-popup) — so the
|
|
273
|
+
* recipe emits BOTH drives and the driver executes the one matching the shape
|
|
274
|
+
* its `probe-dialog-shape` step measured. A step carrying this field with no
|
|
275
|
+
* shape probed fails closed.
|
|
276
|
+
*/
|
|
277
|
+
onlyShape?: RepeatDialogShape;
|
|
278
|
+
/**
|
|
279
|
+
* Per-shape overrides merged into the step once the dialog shape is probed
|
|
280
|
+
* (RDLG2). The 3.23 `Next:` pop-up sits between Ends and every per-frequency
|
|
281
|
+
* control, shifting their group indices by +1 — so the SAME step carries both
|
|
282
|
+
* index sets and the driver picks by measured structure, never by app version.
|
|
283
|
+
* A step carrying this field whose probed shape has no entry fails closed.
|
|
284
|
+
*/
|
|
285
|
+
shaped?: Partial<Record<RepeatDialogShape, {
|
|
286
|
+
pathCandidates?: string[];
|
|
287
|
+
value?: string;
|
|
288
|
+
}>>;
|
|
241
289
|
}
|
|
290
|
+
/**
|
|
291
|
+
* The structural SHAPE of the Repeat dialog, MEASURED live (never sniffed from
|
|
292
|
+
* the app version — a version string says nothing about the tree the driver has
|
|
293
|
+
* to address, and a point release can move either way):
|
|
294
|
+
*
|
|
295
|
+
* - `next-popup` — Things 3.23+: the first occurrence is an `AXPopUpButton`
|
|
296
|
+
* listing Today + the rule's own upcoming occurrences; it sits between Ends and
|
|
297
|
+
* the per-frequency controls, so those are at +1.
|
|
298
|
+
* - `legacy` — Things ≤ 3.22: the first occurrence is a free-form
|
|
299
|
+
* `AXDateTimeArea` and the per-frequency controls follow Ends directly.
|
|
300
|
+
*
|
|
301
|
+
* Both shapes label that row `Next:` (measured on 3.22.14 and 3.23 alike), so the
|
|
302
|
+
* probe discriminates on the CONTROL CLASS occupying the row, not the label.
|
|
303
|
+
*
|
|
304
|
+
* Anything matching NEITHER shape is a third, unknown dialog — the drive
|
|
305
|
+
* refuses rather than press indexes it cannot vouch for.
|
|
306
|
+
*/
|
|
307
|
+
export type RepeatDialogShape = "next-popup" | "legacy";
|
|
242
308
|
export interface VectorSupport {
|
|
243
309
|
support: "yes" | "partial" | "no";
|
|
244
310
|
/**
|
|
@@ -297,6 +363,34 @@ export interface ExecuteResult {
|
|
|
297
363
|
/** The local trace file reconstructing the timeline, when tracing is on. */
|
|
298
364
|
tracePath?: string | null;
|
|
299
365
|
};
|
|
366
|
+
/**
|
|
367
|
+
* A ui drive stopped because the Things WINDOW stopped answering — not because
|
|
368
|
+
* the app accepted a command and did nothing (issue #512). The pre-seed and
|
|
369
|
+
* in-drive reachability gates catch a session that is ALREADY AX-blind; this
|
|
370
|
+
* covers the state that degrades UNDER a running drive (the screen locks, a
|
|
371
|
+
* full-screen app takes the Space, the app stops answering a step before its
|
|
372
|
+
* per-step deadline). Carried alongside a nonzero `exitCode` so the pipeline
|
|
373
|
+
* still runs the transport-failure re-verify (a step that landed before the
|
|
374
|
+
* abort is still honored), and, when nothing landed, shapes
|
|
375
|
+
* `verify-failed:ui-unreachable` — an ENVIRONMENT failure naming the step and
|
|
376
|
+
* the recovery — instead of `verify-failed:silent-noop`, which claims the app
|
|
377
|
+
* was reachable and chose to do nothing. See {@link drive}.
|
|
378
|
+
*/
|
|
379
|
+
uiUnreachable?: {
|
|
380
|
+
/** The drive step that stopped (the label the recipe gave it). */
|
|
381
|
+
step: string;
|
|
382
|
+
/**
|
|
383
|
+
* "unreachable" — the cleanup's own blindness probe found NO Things window on
|
|
384
|
+
* the current screen (locked Mac / full-screen Space); "unresponsive" — the
|
|
385
|
+
* step was killed by its own deadline, so the window may be reachable but did
|
|
386
|
+
* not answer in time.
|
|
387
|
+
*/
|
|
388
|
+
cause: "unreachable" | "unresponsive";
|
|
389
|
+
/** How a half-open sheet was cleaned up, when the drive had opened one. */
|
|
390
|
+
clear?: "dismissed" | "cleared-blind" | "may-remain";
|
|
391
|
+
/** What the caller does to make a retry work. */
|
|
392
|
+
remediation: string;
|
|
393
|
+
};
|
|
300
394
|
}
|
|
301
395
|
export interface WriteVector {
|
|
302
396
|
id: VectorId;
|
|
@@ -322,4 +416,33 @@ export interface WriteVector {
|
|
|
322
416
|
* directly. Undefined/false for every real transport vector.
|
|
323
417
|
*/
|
|
324
418
|
simulates?: boolean;
|
|
419
|
+
/**
|
|
420
|
+
* This vector dispatches REAL Apple Events to Things, so it is subject to the
|
|
421
|
+
* app-control gate (docs/design/permissions-doctrine.md, Articles I + II):
|
|
422
|
+
* on a machine macOS holds no consent record for, that event IS the dialog,
|
|
423
|
+
* so the pipeline establishes standing prompt-free and refuses before
|
|
424
|
+
* dispatch rather than letting the send raise a modal.
|
|
425
|
+
*
|
|
426
|
+
* Set ONLY by {@link import("./applescript.ts").createAppleScriptVector}. It
|
|
427
|
+
* is deliberately not inferred from {@link id}: engine tests substitute fake
|
|
428
|
+
* vectors under the real ids, and a fake that sends nothing must not be
|
|
429
|
+
* gated on the host's actual TCC state — that would make test outcomes
|
|
430
|
+
* depend on the developer's own grants.
|
|
431
|
+
*/
|
|
432
|
+
sendsAppleEvents?: boolean;
|
|
433
|
+
/**
|
|
434
|
+
* This vector drives the Things WINDOW through the Accessibility API, so it
|
|
435
|
+
* is subject to the GUI-driving gate (docs/design/permissions-doctrine.md,
|
|
436
|
+
* Article IV): Accessibility plus Automation → System Events, granted to the
|
|
437
|
+
* helper pair and to nothing else. On a machine that holds neither, the drive
|
|
438
|
+
* would raise an Accessibility prompt against whatever host app is running
|
|
439
|
+
* us, so the pipeline establishes standing prompt-free and refuses first.
|
|
440
|
+
*
|
|
441
|
+
* Set ONLY by {@link import("./ui.ts").createUiVector}. Deliberately not
|
|
442
|
+
* inferred from {@link id} — engine and simulator tests substitute fakes
|
|
443
|
+
* under the real ids, and a fake that never touches the AX tree must not be
|
|
444
|
+
* gated on the host's actual TCC state (the Wave A lesson: an id-keyed gate
|
|
445
|
+
* imports the developer's own grants into CI).
|
|
446
|
+
*/
|
|
447
|
+
drivesGui?: boolean;
|
|
325
448
|
}
|
|
@@ -48,6 +48,25 @@ export interface RepeatDialogRule {
|
|
|
48
48
|
next?: string;
|
|
49
49
|
}
|
|
50
50
|
export declare function pauseRepeatRecipe(targetUuid: string): UiRecipe;
|
|
51
|
+
/**
|
|
52
|
+
* `Items ▸ Repeat ▸ Create Next Copy` — Things 3.23's "spawn the pending
|
|
53
|
+
* occurrence now" command, and the first half of every template mutation we
|
|
54
|
+
* ship (CNC1, docs/lab/cnc1-template-mutations.md).
|
|
55
|
+
*
|
|
56
|
+
* One press materializes the instance the projection cursor points at AND
|
|
57
|
+
* advances the series, and the template delta is FIELD FOR FIELD what the app's
|
|
58
|
+
* own `Make Exception` writes (`rt1_instanceCreationCount +1`,
|
|
59
|
+
* `rt1_instanceCreationStartDate` → consumed slot + 1, `rt1_nextInstanceStartDate`
|
|
60
|
+
* → the next rule date, `todayIndexReferenceDate` → the cursor, `umd` silent,
|
|
61
|
+
* rule blob untouched) — measured on a fixed weekly rule against REPX3 §1.2 and
|
|
62
|
+
* on a daily rule against §2.1. Mutating the minted instance afterwards is
|
|
63
|
+
* therefore the exception the chooser withholds from automation.
|
|
64
|
+
*
|
|
65
|
+
* Template-only, like every verb in this submenu: with an INSTANCE selected the
|
|
66
|
+
* `Items` menu carries no `Repeat` item at all (REPX1 §5.1), which is what the
|
|
67
|
+
* eligibility assert catches before the press.
|
|
68
|
+
*/
|
|
69
|
+
export declare function createNextCopyRecipe(targetUuid: string): UiRecipe;
|
|
51
70
|
export declare function resumeRepeatRecipe(targetUuid: string): UiRecipe;
|
|
52
71
|
export declare function convertToProjectRecipe(op: "todo.convert-to-project" | "project.promote-heading", targetUuid: string): UiRecipe;
|
|
53
72
|
/**
|
|
@@ -64,6 +64,36 @@ export function pauseRepeatRecipe(targetUuid) {
|
|
|
64
64
|
],
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* `Items ▸ Repeat ▸ Create Next Copy` — Things 3.23's "spawn the pending
|
|
69
|
+
* occurrence now" command, and the first half of every template mutation we
|
|
70
|
+
* ship (CNC1, docs/lab/cnc1-template-mutations.md).
|
|
71
|
+
*
|
|
72
|
+
* One press materializes the instance the projection cursor points at AND
|
|
73
|
+
* advances the series, and the template delta is FIELD FOR FIELD what the app's
|
|
74
|
+
* own `Make Exception` writes (`rt1_instanceCreationCount +1`,
|
|
75
|
+
* `rt1_instanceCreationStartDate` → consumed slot + 1, `rt1_nextInstanceStartDate`
|
|
76
|
+
* → the next rule date, `todayIndexReferenceDate` → the cursor, `umd` silent,
|
|
77
|
+
* rule blob untouched) — measured on a fixed weekly rule against REPX3 §1.2 and
|
|
78
|
+
* on a daily rule against §2.1. Mutating the minted instance afterwards is
|
|
79
|
+
* therefore the exception the chooser withholds from automation.
|
|
80
|
+
*
|
|
81
|
+
* Template-only, like every verb in this submenu: with an INSTANCE selected the
|
|
82
|
+
* `Items` menu carries no `Repeat` item at all (REPX1 §5.1), which is what the
|
|
83
|
+
* eligibility assert catches before the press.
|
|
84
|
+
*/
|
|
85
|
+
export function createNextCopyRecipe(targetUuid) {
|
|
86
|
+
const item = `menu item "Create Next Copy" of menu 1 of menu item "Repeat" of ${ITEMS_MENU}`;
|
|
87
|
+
return {
|
|
88
|
+
op: "todo.create-next-copy",
|
|
89
|
+
targetUuid,
|
|
90
|
+
steps: [
|
|
91
|
+
...preamble(targetUuid),
|
|
92
|
+
assertEligible(targetUuid, item),
|
|
93
|
+
menuPress("Items ▸ Repeat ▸ Create Next Copy", item, REPEAT_SUBMENU_ANCHOR),
|
|
94
|
+
],
|
|
95
|
+
};
|
|
96
|
+
}
|
|
67
97
|
export function resumeRepeatRecipe(targetUuid) {
|
|
68
98
|
return {
|
|
69
99
|
op: "todo.resume-repeat",
|
|
@@ -188,30 +218,46 @@ const DIALOG_FREQUENCY = dualForm("pop up button 1");
|
|
|
188
218
|
const DIALOG_INTERVAL = dualForm("text field 1 of group 1");
|
|
189
219
|
/** OK button. */
|
|
190
220
|
const DIALOG_OK = dualForm(`button "OK"`);
|
|
191
|
-
// --- UIC6-CERTIFIED controls
|
|
221
|
+
// --- UIC6-CERTIFIED controls, RE-INDEXED PER DIALOG SHAPE (RDLG2) ----------
|
|
192
222
|
// The dialog's rule controls (except the reminder/end-date pickers) all live in
|
|
193
223
|
// the cadence AXGroup (`group 1`); UIC6 sat the live tree and fixed the
|
|
194
|
-
// provisional structural indices
|
|
195
|
-
//
|
|
196
|
-
// pop-ups follow it
|
|
197
|
-
//
|
|
198
|
-
//
|
|
199
|
-
|
|
224
|
+
// provisional structural indices, and RDLG2 re-derived them for Things 3.23.
|
|
225
|
+
// The invariant that makes them addressable is unchanged — the "Ends" pop-up is
|
|
226
|
+
// ALWAYS `pop up button 1 of group 1` and the per-frequency pop-ups follow it —
|
|
227
|
+
// but 3.23 inserted the new `Next:` occurrence pop-up between the two, shifting
|
|
228
|
+
// every per-frequency index by +1. Both index sets ship, keyed to the SHAPE the
|
|
229
|
+
// driver measures in the open dialog (`probe-dialog-shape`), never to the app
|
|
230
|
+
// version. Titles/`_NS:` ids are never used (both drift). Evidence:
|
|
231
|
+
// docs/lab/uic6-rule-vocabulary.md (≤3.22) and docs/lab/rdlg2-323-recipe-cert.md.
|
|
232
|
+
/** After-completion cadence unit pop-up — the ONLY group pop-up in that mode (both shapes). */
|
|
200
233
|
const DIALOG_AC_UNIT = dualForm("pop up button 1 of group 1");
|
|
201
|
-
/** Weekly day-of-week pop-up — pop up button 2 (Ends is pop up button 1). */
|
|
202
|
-
const DIALOG_WEEKDAY = dualForm("pop up button 2 of group 1");
|
|
203
|
-
/** Weekly "+" button that adds a weekday row (title-less AXButton — button 1 of the group). */
|
|
204
|
-
const DIALOG_ADD_WEEKDAY = dualForm("button 1 of group 1");
|
|
205
|
-
/** Monthly MODE pop-up (`day` · Sunday…Saturday) — pop up button 2. */
|
|
206
|
-
const DIALOG_MONTH_MODE = dualForm("pop up button 2 of group 1");
|
|
207
|
-
/** Monthly ORDINAL pop-up (`last` · 1st…31st) — pop up button 3. */
|
|
208
|
-
const DIALOG_MONTH_ORDINAL = dualForm("pop up button 3 of group 1");
|
|
209
|
-
/** Yearly MONTH pop-up — pop up button 2 (Ends 1, then month/mode/ordinal). */
|
|
210
|
-
const DIALOG_YEAR_MONTH = dualForm("pop up button 2 of group 1");
|
|
211
|
-
const DIALOG_YEAR_MODE = dualForm("pop up button 3 of group 1");
|
|
212
|
-
const DIALOG_YEAR_ORDINAL = dualForm("pop up button 4 of group 1");
|
|
213
234
|
/** "Ends" bound pop-up (`never` · `after` · `on date`) — always pop up button 1 of the group. */
|
|
214
235
|
const DIALOG_ENDS = dualForm("pop up button 1 of group 1");
|
|
236
|
+
/** The cadence group itself — the handle the shape probe and the weekday converge address. */
|
|
237
|
+
const DIALOG_GROUP = dualForm("group 1");
|
|
238
|
+
/** The 3.23 `Next:` first-occurrence pop-up — group pop-up 2 (this shape only). */
|
|
239
|
+
const DIALOG_NEXT_POPUP = dualForm("pop up button 2 of group 1");
|
|
240
|
+
/** A group pop-up addressed at DIFFERENT indices in the two dialog shapes (RDLG2). */
|
|
241
|
+
function shapedPopup(nextPopupIndex, legacyIndex) {
|
|
242
|
+
return {
|
|
243
|
+
"next-popup": { pathCandidates: dualForm(`pop up button ${nextPopupIndex} of group 1`) },
|
|
244
|
+
legacy: { pathCandidates: dualForm(`pop up button ${legacyIndex} of group 1`) },
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
/** Monthly MODE pop-up (`day` · Sunday…Saturday) — after Ends (+ Next on 3.23). */
|
|
248
|
+
const DIALOG_MONTH_MODE = shapedPopup(3, 2);
|
|
249
|
+
/** Monthly ORDINAL pop-up (`last` · 1st…31st). */
|
|
250
|
+
const DIALOG_MONTH_ORDINAL = shapedPopup(4, 3);
|
|
251
|
+
/** Yearly MONTH pop-up, then its mode + ordinal. */
|
|
252
|
+
const DIALOG_YEAR_MONTH = shapedPopup(3, 2);
|
|
253
|
+
const DIALOG_YEAR_MODE = shapedPopup(4, 3);
|
|
254
|
+
const DIALOG_YEAR_ORDINAL = shapedPopup(5, 4);
|
|
255
|
+
/**
|
|
256
|
+
* The group pop-up index of the FIRST weekday row, per shape — the one input the
|
|
257
|
+
* weekday-converge loop needs beyond the target set (it derives the row count and
|
|
258
|
+
* the add button from live structure).
|
|
259
|
+
*/
|
|
260
|
+
const WEEKDAY_BASE = { "next-popup": 3, legacy: 2 };
|
|
215
261
|
/** "Ends after [n]" count field — becomes text field 1 of the group once shown (interval was set earlier while it was the sole field). */
|
|
216
262
|
const DIALOG_ENDS_COUNT = dualForm("text field 1 of group 1");
|
|
217
263
|
/** "Add reminders" checkbox (sheet-level, title-pinned). The time is an AXDateTimeArea driven by set-datetime. */
|
|
@@ -279,6 +325,14 @@ function selectPopup(label, pathCandidates, value) {
|
|
|
279
325
|
addressing: "title",
|
|
280
326
|
};
|
|
281
327
|
}
|
|
328
|
+
/**
|
|
329
|
+
* A select-popup whose group INDEX depends on the dialog shape (RDLG2) — the
|
|
330
|
+
* driver substitutes the measured shape's candidates before dispatch, and refuses
|
|
331
|
+
* if the shape was never measured.
|
|
332
|
+
*/
|
|
333
|
+
function selectPopupShaped(label, shaped, value) {
|
|
334
|
+
return { primitive: "select-popup", label, shaped, value, dynamic: true, addressing: "title" };
|
|
335
|
+
}
|
|
282
336
|
/**
|
|
283
337
|
* A select-popup that clicks the FIRST of several candidate menu-item LABELS
|
|
284
338
|
* that exists (the after-completion unit's singular/plural pair — defect (c)).
|
|
@@ -348,13 +402,13 @@ function monthlyAnchorSteps(anchor, mode, ordinal) {
|
|
|
348
402
|
if ("day" in anchor) {
|
|
349
403
|
// mode = "day"; ordinal names the day-of-month (or "last").
|
|
350
404
|
return [
|
|
351
|
-
|
|
352
|
-
|
|
405
|
+
selectPopupShaped("monthly mode = day", mode, "day"),
|
|
406
|
+
selectPopupShaped(`monthly day = ${anchor.day}`, ordinal, anchor.day === "last" ? "last" : ORDINAL_TITLE_ANY(anchor.day)),
|
|
353
407
|
];
|
|
354
408
|
}
|
|
355
409
|
return [
|
|
356
|
-
|
|
357
|
-
|
|
410
|
+
selectPopupShaped(`monthly weekday = ${anchor.weekday}`, mode, WEEKDAY_TITLE[anchor.weekday]),
|
|
411
|
+
selectPopupShaped(`monthly ordinal = ${anchor.ordinal}`, ordinal, ordinalTitle(anchor.ordinal)),
|
|
358
412
|
];
|
|
359
413
|
}
|
|
360
414
|
/** Day-of-month ordinal display (1st…31st). */
|
|
@@ -400,25 +454,51 @@ function repeatDialogEntry(rule) {
|
|
|
400
454
|
steps.push(selectPopup(`frequency = ${rule.frequency}`, DIALOG_FREQUENCY, rule.frequency));
|
|
401
455
|
}
|
|
402
456
|
steps.push(setField(`interval = ${rule.interval}`, DIALOG_INTERVAL, String(rule.interval)));
|
|
457
|
+
// MEASURE the dialog before touching any control the 3.23 redesign moved
|
|
458
|
+
// (RDLG2). Emitted only when such a control is actually addressed, so the
|
|
459
|
+
// certified two-control path (frequency + interval + OK) costs no extra hop —
|
|
460
|
+
// and so an after-completion rule, whose cadence group has neither an Ends nor
|
|
461
|
+
// a Next label to measure, never runs a probe that could only say "unknown".
|
|
462
|
+
const needsShape = rule.afterCompletion !== true &&
|
|
463
|
+
((rule.weekdays !== undefined && rule.weekdays.length > 0) ||
|
|
464
|
+
rule.monthly !== undefined ||
|
|
465
|
+
rule.yearly !== undefined ||
|
|
466
|
+
rule.next !== undefined);
|
|
467
|
+
if (needsShape) {
|
|
468
|
+
steps.push({
|
|
469
|
+
primitive: "probe-dialog-shape",
|
|
470
|
+
label: "measure the Repeat dialog's shape (an occurrence pop-up on the Next: row, or a date field)",
|
|
471
|
+
pathCandidates: DIALOG_GROUP,
|
|
472
|
+
dynamic: true,
|
|
473
|
+
addressing: "title",
|
|
474
|
+
});
|
|
475
|
+
}
|
|
403
476
|
if (rule.weekdays !== undefined && rule.weekdays.length > 0) {
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
//
|
|
409
|
-
//
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
477
|
+
// ONE closed-loop converge (RRD1 fix) rather than "set row 1, then press +
|
|
478
|
+
// and re-drive the same index": the old shape left a PRE-POPULATED dialog's
|
|
479
|
+
// existing weekdays in the rule and could never shrink a set. The driver
|
|
480
|
+
// reads the live rows, grows to the target count, assigns every row from the
|
|
481
|
+
// target set (cycling), and reads them all back. See ui.ts
|
|
482
|
+
// axConvergeWeekdaysScript for the loop and its evidence.
|
|
483
|
+
const titles = rule.weekdays.map((day) => WEEKDAY_TITLE[day]).join(",");
|
|
484
|
+
steps.push({
|
|
485
|
+
primitive: "converge-weekdays",
|
|
486
|
+
label: `weekdays = ${rule.weekdays.join(", ")}`,
|
|
487
|
+
pathCandidates: DIALOG_GROUP,
|
|
488
|
+
shaped: {
|
|
489
|
+
"next-popup": { value: `${WEEKDAY_BASE["next-popup"]}|${titles}` },
|
|
490
|
+
legacy: { value: `${WEEKDAY_BASE.legacy}|${titles}` },
|
|
491
|
+
},
|
|
492
|
+
dynamic: true,
|
|
493
|
+
addressing: "title",
|
|
494
|
+
});
|
|
415
495
|
}
|
|
416
496
|
if (rule.monthly !== undefined) {
|
|
417
497
|
steps.push(...monthlyAnchorSteps(rule.monthly, DIALOG_MONTH_MODE, DIALOG_MONTH_ORDINAL));
|
|
418
498
|
}
|
|
419
499
|
if (rule.yearly !== undefined) {
|
|
420
500
|
const y = rule.yearly;
|
|
421
|
-
steps.push(
|
|
501
|
+
steps.push(selectPopupShaped(`yearly month = ${y.month}`, DIALOG_YEAR_MONTH, MONTH_TITLE[y.month - 1] ?? ""));
|
|
422
502
|
steps.push(...monthlyAnchorSteps(y, DIALOG_YEAR_MODE, DIALOG_YEAR_ORDINAL));
|
|
423
503
|
}
|
|
424
504
|
// "Add deadlines" / "start N days earlier" — DEADLINE MODE, converged (RRD1)
|
|
@@ -463,9 +543,28 @@ function repeatDialogEntry(rule) {
|
|
|
463
543
|
else if (endsOnDate !== null) {
|
|
464
544
|
steps.push(selectPopup("ends = on date", DIALOG_ENDS, "on date"));
|
|
465
545
|
}
|
|
466
|
-
// After-completion has no calendar, so no Next.
|
|
546
|
+
// After-completion has no calendar, so no Next. The control's CLASS differs by
|
|
547
|
+
// dialog shape, so BOTH drives are emitted and the driver runs the one that
|
|
548
|
+
// matches what it measured (RDLG2):
|
|
549
|
+
// - legacy (≤3.22): a free-form `AXDateTimeArea` — ANY date, on-rule or not;
|
|
550
|
+
// - next-popup (3.23+): a bounded MENU of the rule's own occurrences, so an
|
|
551
|
+
// off-rule first occurrence is UNREACHABLE and the step fails closed with
|
|
552
|
+
// the reason (the app removed the affordance; we do not fake it by picking
|
|
553
|
+
// a neighbouring date).
|
|
467
554
|
if (rule.next !== undefined && rule.afterCompletion !== true) {
|
|
468
|
-
steps.push(
|
|
555
|
+
steps.push({
|
|
556
|
+
...setDateTime(`Next (first occurrence) = ${rule.next}`, `date:${rule.next}`, "next"),
|
|
557
|
+
onlyShape: "legacy",
|
|
558
|
+
});
|
|
559
|
+
steps.push({
|
|
560
|
+
primitive: "select-next-occurrence",
|
|
561
|
+
label: `Next (first occurrence) = ${rule.next}`,
|
|
562
|
+
pathCandidates: DIALOG_NEXT_POPUP,
|
|
563
|
+
value: rule.next,
|
|
564
|
+
onlyShape: "next-popup",
|
|
565
|
+
dynamic: true,
|
|
566
|
+
addressing: "title",
|
|
567
|
+
});
|
|
469
568
|
}
|
|
470
569
|
if (endsOnDate !== null) {
|
|
471
570
|
steps.push(setDateTime(`ends on = ${endsOnDate.date}`, `date:${endsOnDate.date}`, "ends"));
|
|
@@ -572,7 +671,28 @@ export function rescheduleRepeatRecipe(targetUuid, frequency, interval, extras =
|
|
|
572
671
|
needsWindowReachability: true,
|
|
573
672
|
steps: [
|
|
574
673
|
...preamble(targetUuid),
|
|
575
|
-
|
|
674
|
+
// The submenu itself is still canaried (it only materializes on a selected
|
|
675
|
+
// TEMPLATE, so its presence is the real precondition) …
|
|
676
|
+
{
|
|
677
|
+
primitive: "resolve",
|
|
678
|
+
label: "Items ▸ Repeat submenu",
|
|
679
|
+
path: REPEAT_SUBMENU_ANCHOR,
|
|
680
|
+
addressing: "title",
|
|
681
|
+
},
|
|
682
|
+
// … but the ITEM was RENAMED: `Reschedule…` through Things 3.22, `Edit
|
|
683
|
+
// Rule…` from 3.23 (RDLG1). Both spellings ship as candidates so the drive
|
|
684
|
+
// self-selects on whichever the installed app offers; neither present is a
|
|
685
|
+
// fail-closed miss naming the step.
|
|
686
|
+
{
|
|
687
|
+
primitive: "press",
|
|
688
|
+
label: "Items ▸ Repeat ▸ Edit Rule… (Reschedule… on Things ≤ 3.22)",
|
|
689
|
+
pathCandidates: [
|
|
690
|
+
`menu item "Edit Rule…" of menu 1 of menu item "Repeat" of ${ITEMS_MENU}`,
|
|
691
|
+
`menu item "Reschedule…" of menu 1 of menu item "Repeat" of ${ITEMS_MENU}`,
|
|
692
|
+
],
|
|
693
|
+
dynamic: true,
|
|
694
|
+
addressing: "title",
|
|
695
|
+
},
|
|
576
696
|
...repeatDialogEntry({ frequency, interval, ...extras }),
|
|
577
697
|
],
|
|
578
698
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-recipes.js","sourceRoot":"","sources":["../../../src/write/vectors/ui-recipes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ui-recipes.js","sourceRoot":"","sources":["../../../src/write/vectors/ui-recipes.ts"],"names":[],"mappings":"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"}
|
|
@@ -96,6 +96,74 @@ export declare function axSelectPopupScript(path: string, value: string): string
|
|
|
96
96
|
* plural-safe. One stable command shape per primitive.
|
|
97
97
|
*/
|
|
98
98
|
export declare function axSelectPopupCandidatesScript(path: string, values: string[]): string;
|
|
99
|
+
/**
|
|
100
|
+
* probe-dialog-shape: MEASURE which Repeat dialog is open (RDLG2) — the whole
|
|
101
|
+
* version fork, decided by STRUCTURE rather than by the app version, so the
|
|
102
|
+
* recipe self-selects on any host and a future redesign refuses instead of
|
|
103
|
+
* silently pressing the wrong control:
|
|
104
|
+
*
|
|
105
|
+
* - `next-popup` (Things 3.23+) — the first occurrence is an `AXPopUpButton`
|
|
106
|
+
* listing the rule's own upcoming occurrences. It sits between Ends and every
|
|
107
|
+
* per-frequency control, so weekday / monthly / yearly pop-ups are one index
|
|
108
|
+
* further along.
|
|
109
|
+
* - `legacy` (Things ≤ 3.22) — the first occurrence is a free-form
|
|
110
|
+
* `AXDateTimeArea`, and the per-frequency controls follow Ends directly.
|
|
111
|
+
*
|
|
112
|
+
* The discriminator is the CONTROL CLASS on the `Next:` row, not the presence of
|
|
113
|
+
* the label: RDLG2d measured Things 3.22.14 and found it carries the same
|
|
114
|
+
* `Next:` static text (and the same occurrence-preview line) as 3.23 — only the
|
|
115
|
+
* control beside it changed. So the probe reads the label's row position and asks
|
|
116
|
+
* what kind of control shares that row, which also keeps it independent of the
|
|
117
|
+
* dialog's Ends state (an `Ends: on date` bound adds a SECOND date area, on a
|
|
118
|
+
* different row, in both shapes). Each branch is a POSITIVE match, so an
|
|
119
|
+
* unrecognized third dialog returns "unknown" and the driver refuses. Labels are
|
|
120
|
+
* pinned English, exactly like every other selector here.
|
|
121
|
+
*/
|
|
122
|
+
export declare function axProbeDialogShapeScript(groupPath: string, rowTolerance?: number): string;
|
|
123
|
+
/**
|
|
124
|
+
* select-next-occurrence: set the first occurrence through the Things 3.23
|
|
125
|
+
* `Next:` POP-UP (RDLG2). 3.23 replaced the free-form first-occurrence date area
|
|
126
|
+
* with a bounded MENU — `Today`, then the rule's own upcoming occurrences, then a
|
|
127
|
+
* `More…` item whose submenu carries the next hundred, cascading further the same
|
|
128
|
+
* way. Two consequences this script encodes:
|
|
129
|
+
*
|
|
130
|
+
* - a requested date is reachable ONLY if the rule itself produces it (or it is
|
|
131
|
+
* today): the menu offers nothing else, so an OFF-RULE first occurrence — free
|
|
132
|
+
* to set on ≤3.22 — is UNEXPRESSIBLE in this dialog and must fail closed with
|
|
133
|
+
* a named reason rather than land some neighbouring date;
|
|
134
|
+
* - item titles are localized (`Sun, Jul 12, 2026`), so the match is made by
|
|
135
|
+
* PARSING each title to a date (with a leading-weekday retry) and comparing
|
|
136
|
+
* calendar components — never by rebuilding the app's display string.
|
|
137
|
+
*
|
|
138
|
+
* The cascade is walked to a bounded depth; the click is verified by reading the
|
|
139
|
+
* pop-up's value back and requiring it to equal the clicked item's own title
|
|
140
|
+
* (the fail-closed read-back the ANCH2/YANCH1 date drives established).
|
|
141
|
+
*/
|
|
142
|
+
export declare function axSelectNextOccurrenceScript(popupPath: string, isoDate: string, maxLevels?: number): string;
|
|
143
|
+
/**
|
|
144
|
+
* converge-weekdays: drive the weekly dialog's weekday ROWS onto an exact target
|
|
145
|
+
* set through a deterministic closed loop (RDLG2 — the RRD1 fix).
|
|
146
|
+
*
|
|
147
|
+
* The shipped drive set the FIRST weekday row and then pressed "+" and re-drove
|
|
148
|
+
* THE SAME row index per extra weekday, which on a PRE-POPULATED reschedule
|
|
149
|
+
* dialog left the rule's existing weekdays untouched: `{mon,wed}` retargeted to
|
|
150
|
+
* `{tue,thu,sat}` committed `{mon,tue,thu,sat}` (VMQ1 cell 2Tb — caught only by
|
|
151
|
+
* the write pipeline's verify). It also had no way to SHRINK a set.
|
|
152
|
+
*
|
|
153
|
+
* The loop instead: (1) read the live row count; (2) press the row-add button —
|
|
154
|
+
* the smaller-x button of a weekday row, resolved from live geometry rather than
|
|
155
|
+
* a pinned index, because the row buttons enumerate in an unstable order — until
|
|
156
|
+
* there are at least as many rows as target weekdays; (3) assign EVERY row from
|
|
157
|
+
* the target set, cycling, so a surplus row duplicates a target weekday instead
|
|
158
|
+
* of keeping a stale one (the app stores the weekdays as a SET, so duplicates
|
|
159
|
+
* collapse on commit — this is what makes shrinking possible without the
|
|
160
|
+
* remove button); (4) read every row back and require the set to match exactly.
|
|
161
|
+
* Anything else errors — the pipeline re-verifies against the DB regardless.
|
|
162
|
+
*
|
|
163
|
+
* `base` is the 1-based group pop-up index of the first weekday row (2 on the
|
|
164
|
+
* legacy dialog, 3 once the 3.23 `Next:` pop-up sits in front of them).
|
|
165
|
+
*/
|
|
166
|
+
export declare function axConvergeWeekdaysScript(groupPath: string, base: number, titles: string[]): string;
|
|
99
167
|
/**
|
|
100
168
|
* select-row: select a PROJECT row by title, purely via AX (UIC4-a). Walks the
|
|
101
169
|
* content table's rows, issues the row `select` action on each (which REPLACES
|
|
@@ -107,6 +175,19 @@ export declare function axSelectPopupCandidatesScript(path: string, values: stri
|
|
|
107
175
|
* selection-landed verification, so a match guarantees the intended row is
|
|
108
176
|
* selected. One stable command shape per primitive.
|
|
109
177
|
*
|
|
178
|
+
* VMRES1 correction (2026-08-23, golden-v4 / Things 3.23): the readback LAGS the
|
|
179
|
+
* `select` action, so reading `name of selected to dos` immediately after it can
|
|
180
|
+
* return the PREVIOUS iteration's selection. A row whose `select` lands nothing
|
|
181
|
+
* (the blank spacer that follows the project rows) then matched the prior row's
|
|
182
|
+
* title, the loop returned "OK" one row LATE, and the table was left with NOTHING
|
|
183
|
+
* selected — `Items ▸ Repeat…` never materialized and the drive died at its wait
|
|
184
|
+
* (`verify-failed:silent-noop`). It reproduced 3/3 on the second project-repeat
|
|
185
|
+
* drive of a Things session and 0/2 on the first, which is the signature of a
|
|
186
|
+
* race, not of app state. Fixed the way the heading sibling below already does
|
|
187
|
+
* it: settle after `select`, then require `selected of (row i)` — the row THIS
|
|
188
|
+
* iteration targeted must itself hold the selection — before trusting the title
|
|
189
|
+
* readback. Evidence: [docs/lab/vmres1-residuals.md](../../../docs/lab/vmres1-residuals.md) §2.
|
|
190
|
+
*
|
|
110
191
|
* UIC5 correction: the shipped form set the TABLE's `AXSelectedRows` attribute
|
|
111
192
|
* to a one-row list, which is a SILENT NO-OP on Things' content table via System
|
|
112
193
|
* Events (no error, selection never lands). The row `select` action is the
|
|
@@ -226,6 +307,14 @@ export declare function jxaClickScript(x: number, y: number): string;
|
|
|
226
307
|
* calendar date at midnight). One stable JXA shape.
|
|
227
308
|
*/
|
|
228
309
|
export declare function axSetDateTimeScript(spec: string, target: "next" | "ends" | "reminder"): string;
|
|
310
|
+
/**
|
|
311
|
+
* The converge-weekdays step encodes both of its inputs in `value` as
|
|
312
|
+
* `"<base>|<Weekday>,<Weekday>…"`: the base is the group pop-up index of the
|
|
313
|
+
* FIRST weekday row, which the dialog SHAPE decides (2 legacy / 3 next-popup),
|
|
314
|
+
* so it rides the same shape-selected `value` the driver merges in.
|
|
315
|
+
*/
|
|
316
|
+
export declare function weekdayBaseOf(value: string): number;
|
|
317
|
+
export declare function weekdayTitlesOf(value: string): string[];
|
|
229
318
|
/** Parse a resolve-frame "x y w h" line into the frame's center point. */
|
|
230
319
|
export declare function parseFrameCenter(stdout: string): {
|
|
231
320
|
x: number;
|