things-api 0.17.0 → 0.18.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 +1 -1
- package/deputy/VERSION +1 -0
- package/deputy/helpers-Info.plist +23 -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 +20 -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/_CodeSignature/CodeResources +115 -0
- package/deputy/prebuilt/Things API Helper.app/Contents/Info.plist +23 -0
- package/deputy/prebuilt/Things API Helper.app/Contents/MacOS/things-deputy +0 -0
- package/deputy/prebuilt/Things API Helper.app/Contents/_CodeSignature/CodeResources +125 -0
- package/deputy/reader/Info.plist +20 -0
- package/deputy/reader/entitlements.plist +15 -0
- package/deputy/reader/main.swift +491 -0
- package/deputy/src/main.swift +133 -0
- package/deputy/src/osascript.swift +102 -0
- package/deputy/src/server.swift +350 -0
- package/deputy/src/sqlite.swift +121 -0
- package/dist/cli/commands/doctor.js +55 -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 +148 -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 +39 -0
- package/dist/cli/commands/op-result.js.map +1 -0
- package/dist/cli/commands/writes.js +22 -3
- package/dist/cli/commands/writes.js.map +1 -1
- package/dist/cli/help.js +4 -0
- 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/client.js +16 -2
- 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 +1 -1
- package/dist/contracts.js +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 +105 -0
- package/dist/deputy/install.js +467 -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 +86 -0
- package/dist/deputy/protocol.js +106 -0
- package/dist/deputy/protocol.js.map +1 -0
- package/dist/deputy/routing.d.ts +63 -0
- package/dist/deputy/routing.js +338 -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 +43 -1
- package/dist/diagnose.js +64 -2
- package/dist/diagnose.js.map +1 -1
- package/dist/index.d.ts +13 -2
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.js +25 -7
- 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 +46 -0
- package/dist/op-result.js +156 -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/queries.js +8 -1
- package/dist/read/queries.js.map +1 -1
- package/dist/read/views.d.ts +6 -4
- package/dist/read/views.js +60 -18
- package/dist/read/views.js.map +1 -1
- package/dist/sync-health.js +6 -2
- package/dist/sync-health.js.map +1 -1
- 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.js +7 -3
- package/dist/write/availability.js.map +1 -1
- package/dist/write/commands.js +58 -13
- 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/move.js +14 -6
- package/dist/write/move.js.map +1 -1
- package/dist/write/operations.d.ts +28 -4
- package/dist/write/pipeline.d.ts +2 -0
- package/dist/write/pipeline.js +59 -2
- package/dist/write/pipeline.js.map +1 -1
- package/dist/write/pre-state.js +33 -15
- package/dist/write/pre-state.js.map +1 -1
- package/dist/write/promote-clone.js +187 -19
- package/dist/write/promote-clone.js.map +1 -1
- package/dist/write/reorder.js +76 -27
- 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.js +10 -0
- package/dist/write/repeat-rule.js.map +1 -1
- package/dist/write/vectors/applescript.js +7 -16
- package/dist/write/vectors/applescript.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 +5 -14
- package/dist/write/vectors/shortcuts.js.map +1 -1
- package/dist/write/vectors/simulator.d.ts +16 -1
- package/dist/write/vectors/simulator.js +61 -10
- package/dist/write/vectors/simulator.js.map +1 -1
- package/dist/write/vectors/types.d.ts +67 -1
- package/dist/write/vectors/ui-recipes.js +128 -38
- package/dist/write/vectors/ui-recipes.js.map +1 -1
- package/dist/write/vectors/ui.d.ts +76 -0
- package/dist/write/vectors/ui.js +443 -37
- package/dist/write/vectors/ui.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 +8 -1
- package/scripts/build-helpers.sh +104 -0
- package/scripts/deputy-cert-setup.sh +60 -0
- package/skills/things-cli/SKILL.md +8 -3
- package/skills/things-cli/references/errors.md +4 -0
- package/skills/things-cli/references/repeating.md +69 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repeat-anchor.js","sourceRoot":"","sources":["../../src/write/repeat-anchor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAE,UAAU,EAAgB,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEhE,qFAAqF;AACrF,MAAM,UAAU,SAAS,CAAC,CAAU;IAClC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAA6B,CAAC;IACzE,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AACzD,CAAC;AAED,sEAAsE;AACtE,SAAS,cAAc,CAAC,CAAU,EAAE,CAAU;IAC5C,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAA6B,CAAC;IAC1E,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAA6B,CAAC;IAC1E,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;AACxF,CAAC;AAED,mFAAmF;AACnF,SAAS,oBAAoB,CAAC,QAAiB,EAAE,EAAU;IACzD,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5D,OAAO,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,uFAAuF;AACvF,SAAS,gBAAgB,CAAC,GAAY;IACpC,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,+CAA+C;AAC/C,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS;IAC/B,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,0FAA0F;AAC1F,SAAS,YAAY,CAAC,IAAwC;IAC5D,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC5D,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACV,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,QAAiB,EAAE,CAAU,EAAE,QAAgB;IACvE,MAAM,KAAK,GAAG,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClF,OAAO,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAuF,EACvF,SAAqC;IAErC,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACpD,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAClD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAClD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAY,CAAC,CAAC;AAC7D,CAAC;AAED,+CAA+C;AAC/C,SAAS,aAAa,CAAC,GAAY;IACjC,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC;AACD,wCAAwC;AACxC,SAAS,UAAU,CAAC,GAAY;IAC9B,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAyE,EACzE,SAAqC;IAErC,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACpD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAwE,EACxE,SAAqC;IAErC,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACpD,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAClD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAChD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;AACzE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAC/B,CAAmE;IAEnE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,KAAK,GACT,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAGC,EACD,SAAqC;IAErC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACnD,OAAO;QACL,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;QACzC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;KACxC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAuF,EACvF,QAAiB;IAEjB,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO;QAAE,OAAO,QAAQ,CAAC,CAAC,6BAA6B;IAC9E,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChC,IAAI,IAAI,GAAmB,IAAI,CAAC;QAChC,KAAK,MAAM,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,oBAAoB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAChD,IAAI,IAAI,KAAK,IAAI,IAAI,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;gBAAE,IAAI,GAAG,IAAI,CAAC;QACnE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,4DAA4D;AAC3E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAAuF,EACvF,QAAiB;IAEjB,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO;QAAE,OAAO,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxF,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAChC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC;gBAAE,OAAO,CAAC,CAAC;YACpF,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,0BAA0B;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAgBD,MAAM,UAAU,cAAc,CAC5B,IAAuF,EACvF,QAAiB;IAEjB,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,6EAA6E;QAC7E,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;IACjG,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,KAAK,QAAQ,CAAC;IACnC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACrF,OAAO;QACL,MAAM,EAAE,KAAK;QACb,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;QAC3C,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/B,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"repeat-anchor.js","sourceRoot":"","sources":["../../src/write/repeat-anchor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { assessOffRuleFirst } from "./repeat-anchor.js";
|
|
1
2
|
import { WEEKDAYS, } from "./operations.js";
|
|
2
3
|
const FREQUENCIES = ["daily", "weekly", "monthly", "yearly"];
|
|
3
4
|
/** Weekday name → rule encoding (wd 0 = Sunday). */
|
|
@@ -167,6 +168,15 @@ export function assertRepeatRule(params) {
|
|
|
167
168
|
throw new RangeError("startDaysEarlier requires a deadline (it counts days before the deadline)");
|
|
168
169
|
}
|
|
169
170
|
}
|
|
171
|
+
// DACON1: an EXPLICIT calendar anchor that disagrees with `--when` requests an
|
|
172
|
+
// OFF-RULE first occurrence (first on `--when`, the anchor thereafter). The app
|
|
173
|
+
// HONORS this for weekly/yearly (allowed — disclosed at the call sites), but a
|
|
174
|
+
// MONTHLY rule's dialog snaps the first occurrence to the anchor day, so that
|
|
175
|
+
// shape is inexpressible and fail-closed here before any mutation. On-rule
|
|
176
|
+
// requests and `--when`-only (derived-anchor) requests return null.
|
|
177
|
+
const offRule = assessOffRuleFirst(params);
|
|
178
|
+
if (offRule?.kind === "dishonored")
|
|
179
|
+
throw new RangeError(offRule.refusal);
|
|
170
180
|
}
|
|
171
181
|
/** The mutually-exclusive Ends bound of a decoded rule, or null if inexpressible. */
|
|
172
182
|
function endsOf(rule) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repeat-rule.js","sourceRoot":"","sources":["../../src/write/repeat-rule.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"repeat-rule.js","sourceRoot":"","sources":["../../src/write/repeat-rule.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Things launches it with focus steal (A40/A41), which the pipeline's
|
|
6
6
|
* ensure-running step prevents.
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
8
|
+
import { osaExec } from "../../deputy/osa.js";
|
|
9
9
|
export const APPLESCRIPT_MATRIX = {
|
|
10
10
|
"todo.add": {
|
|
11
11
|
support: "yes",
|
|
@@ -238,21 +238,12 @@ export const APPLESCRIPT_MATRIX = {
|
|
|
238
238
|
export function escapeAppleScript(value) {
|
|
239
239
|
return value.replaceAll("\\", "\\\\").replaceAll('"', '\\"');
|
|
240
240
|
}
|
|
241
|
-
function runOsascript(script) {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
const timedOut = err !== null && err.killed === true;
|
|
248
|
-
resolve({
|
|
249
|
-
exitCode: err === null ? 0 : (err.code ?? 1),
|
|
250
|
-
stdout: String(stdout),
|
|
251
|
-
stderr: String(stderr),
|
|
252
|
-
...(timedOut && { timedOut: true }),
|
|
253
|
-
});
|
|
254
|
-
});
|
|
255
|
-
});
|
|
241
|
+
async function runOsascript(script) {
|
|
242
|
+
// The deadline kill (timedOut) is a distinct signal from a nonzero exit: an
|
|
243
|
+
// osascript that never returns is the shape of an unanswered macOS consent
|
|
244
|
+
// dialog — surfaced for failure attribution. osaExec preserves that signal
|
|
245
|
+
// on both the direct and the deputy-routed path.
|
|
246
|
+
return osaExec(script, { timeoutMs: 30_000 });
|
|
256
247
|
}
|
|
257
248
|
export function createAppleScriptVector() {
|
|
258
249
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applescript.js","sourceRoot":"","sources":["../../../src/write/vectors/applescript.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"applescript.js","sourceRoot":"","sources":["../../../src/write/vectors/applescript.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,6 +65,24 @@ export declare const H_UI_SESSION_UNREACHABLE: HazardId;
|
|
|
65
65
|
* One stable osascript shape returning the three window counts as "AS AX ALL".
|
|
66
66
|
* Every count is wrapped so a lock-time error (a window lookup that throws on an
|
|
67
67
|
* AX-blind session) degrades to -1 rather than failing the whole script.
|
|
68
|
+
*
|
|
69
|
+
* PERF1 scoping — behavior-preserving. The app-wide `allAx` walk (System Events
|
|
70
|
+
* enumerating every foreground process's windows) is near-free on the empty lab
|
|
71
|
+
* golden but seconds-long on a busy real desktop (measured 8s+ on the
|
|
72
|
+
* maintainer's host, 2026-08-18). Two changes cut that cost WITHOUT changing any
|
|
73
|
+
* verdict `interpretReachability` can produce:
|
|
74
|
+
* - The walk runs ONLY when `thingsAx = 0`. When Things has an AX-visible
|
|
75
|
+
* window (`thingsAx >= 1`, the common healthy case) the verdict is already
|
|
76
|
+
* "reachable" regardless of `allAx`, so the walk is pure waste — skipped, and
|
|
77
|
+
* `allAx` is left at -1 (never consulted on that branch). When `thingsAx < 0`
|
|
78
|
+
* (AX unreadable) the gate fail-opens on `thingsAx`, so the walk is likewise
|
|
79
|
+
* skipped and irrelevant.
|
|
80
|
+
* - When the walk IS needed, it SHORT-CIRCUITS on the first window-bearing app
|
|
81
|
+
* and reports `allAx = 1` (not the sum). The discriminator only ever tests
|
|
82
|
+
* `allAx === 0` vs `allAx > 0` (0 => whole session AX-blind / locked;
|
|
83
|
+
* > 0 => Things' window is merely on another Space or absent), so a boolean
|
|
84
|
+
* "any other window?" yields byte-identical verdicts while avoiding the cost
|
|
85
|
+
* of materializing every app's full window list.
|
|
68
86
|
*/
|
|
69
87
|
export declare function axSessionReachabilityScript(): string;
|
|
70
88
|
/** Parse the "AS AX ALL" line into counts; null when the shape is unrecognizable (probe error). */
|
|
@@ -76,3 +94,40 @@ export declare function parseReachabilityCounts(stdout: string): ReachabilityCou
|
|
|
76
94
|
export declare function interpretReachability(counts: ReachabilityCounts | null): ReachabilityVerdict;
|
|
77
95
|
/** Run the probe through the injected runner and interpret it (fail-open on transport error). */
|
|
78
96
|
export declare function probeSessionReachability(run: (command: UiCommand, timeoutMs: number) => Promise<UiRunResult>, timeoutMs: number): Promise<ReachabilityVerdict>;
|
|
97
|
+
/**
|
|
98
|
+
* TTL for the intra-invocation reachability memo (PERF1). A promote composite
|
|
99
|
+
* probes reachability TWICE — once at the orchestrator's pre-seed gate, once at
|
|
100
|
+
* the in-drive gate after the reveal — ~20s apart on a busy host (both paid the
|
|
101
|
+
* full probe cost before this memo). 30s spans that gap with margin while
|
|
102
|
+
* expiring well before an unrelated later operation could reuse a stale verdict.
|
|
103
|
+
*/
|
|
104
|
+
export declare const REACHABILITY_CACHE_TTL_MS = 30000;
|
|
105
|
+
/**
|
|
106
|
+
* A short-lived memo of a REACHABLE verdict, shared between a promote composite's
|
|
107
|
+
* pre-seed gate and its in-drive gate so the two do not both pay the full probe
|
|
108
|
+
* cost (PERF1). `probe` returns a still-fresh memoized reachable verdict, else
|
|
109
|
+
* probes live and memoizes the result when (and only when) it is reachable;
|
|
110
|
+
* `invalidate` drops the memo (call after any action that changes window/session
|
|
111
|
+
* state, e.g. a relocation).
|
|
112
|
+
*
|
|
113
|
+
* Only a `reachable` verdict is memoized: a not-reachable verdict (locked /
|
|
114
|
+
* wrong-Space) must ALWAYS be re-evaluated fresh, because the in-drive gate probes
|
|
115
|
+
* AFTER the reveal — which surfaces a window in a healthy session and so can
|
|
116
|
+
* legitimately turn a pre-seed "window" verdict into "reachable" (reusing a stale
|
|
117
|
+
* "window" would fire a spurious relocation). A reachable verdict is stable across
|
|
118
|
+
* the reveal; if the session DEGRADES (locks / window moves) inside the cached
|
|
119
|
+
* window, the drive's dialog-wait fails and the cleanup path's OWN independent
|
|
120
|
+
* blindness probe (clearDialog, deliberately NOT routed through this memo) handles
|
|
121
|
+
* it — so a memoized reachable verdict is safe. Restricting the memo to reachable
|
|
122
|
+
* verdicts also keeps the "refuse locked / relocate wrong-Space / disclose"
|
|
123
|
+
* SESSGATE behavior byte-identical: every refusal and relocation decision is still
|
|
124
|
+
* taken on a fresh probe.
|
|
125
|
+
*/
|
|
126
|
+
export interface ReachabilityProbeCache {
|
|
127
|
+
/** Return a still-fresh memoized reachable verdict, else probe live and (if reachable) memoize it. */
|
|
128
|
+
probe(run: (command: UiCommand, timeoutMs: number) => Promise<UiRunResult>, timeoutMs: number): Promise<ReachabilityVerdict>;
|
|
129
|
+
/** Drop the memo (call after any action that changes window/session state, e.g. a relocation). */
|
|
130
|
+
invalidate(): void;
|
|
131
|
+
}
|
|
132
|
+
/** Build an intra-invocation reachability memo (PERF1). `now`/`ttlMs` are injectable for tests. */
|
|
133
|
+
export declare function createReachabilityCache(ttlMs?: number, now?: () => number): ReachabilityProbeCache;
|
|
@@ -6,6 +6,24 @@ const PROBE_MARKER = "-- sessgate-reachability probe";
|
|
|
6
6
|
* One stable osascript shape returning the three window counts as "AS AX ALL".
|
|
7
7
|
* Every count is wrapped so a lock-time error (a window lookup that throws on an
|
|
8
8
|
* AX-blind session) degrades to -1 rather than failing the whole script.
|
|
9
|
+
*
|
|
10
|
+
* PERF1 scoping — behavior-preserving. The app-wide `allAx` walk (System Events
|
|
11
|
+
* enumerating every foreground process's windows) is near-free on the empty lab
|
|
12
|
+
* golden but seconds-long on a busy real desktop (measured 8s+ on the
|
|
13
|
+
* maintainer's host, 2026-08-18). Two changes cut that cost WITHOUT changing any
|
|
14
|
+
* verdict `interpretReachability` can produce:
|
|
15
|
+
* - The walk runs ONLY when `thingsAx = 0`. When Things has an AX-visible
|
|
16
|
+
* window (`thingsAx >= 1`, the common healthy case) the verdict is already
|
|
17
|
+
* "reachable" regardless of `allAx`, so the walk is pure waste — skipped, and
|
|
18
|
+
* `allAx` is left at -1 (never consulted on that branch). When `thingsAx < 0`
|
|
19
|
+
* (AX unreadable) the gate fail-opens on `thingsAx`, so the walk is likewise
|
|
20
|
+
* skipped and irrelevant.
|
|
21
|
+
* - When the walk IS needed, it SHORT-CIRCUITS on the first window-bearing app
|
|
22
|
+
* and reports `allAx = 1` (not the sum). The discriminator only ever tests
|
|
23
|
+
* `allAx === 0` vs `allAx > 0` (0 => whole session AX-blind / locked;
|
|
24
|
+
* > 0 => Things' window is merely on another Space or absent), so a boolean
|
|
25
|
+
* "any other window?" yields byte-identical verdicts while avoiding the cost
|
|
26
|
+
* of materializing every app's full window list.
|
|
9
27
|
*/
|
|
10
28
|
export function axSessionReachabilityScript() {
|
|
11
29
|
return `${PROBE_MARKER}
|
|
@@ -19,14 +37,19 @@ tell application "System Events"
|
|
|
19
37
|
try
|
|
20
38
|
set thingsAx to count (windows of process "Things3")
|
|
21
39
|
end try
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
40
|
+
if thingsAx is 0 then
|
|
41
|
+
try
|
|
42
|
+
set allAx to 0
|
|
43
|
+
repeat with proc in (application processes whose background only is false)
|
|
44
|
+
try
|
|
45
|
+
if (count (windows of proc)) > 0 then
|
|
46
|
+
set allAx to 1
|
|
47
|
+
exit repeat
|
|
48
|
+
end if
|
|
49
|
+
end try
|
|
50
|
+
end repeat
|
|
51
|
+
end try
|
|
52
|
+
end if
|
|
30
53
|
end tell
|
|
31
54
|
return ((thingsAs as integer) as text) & " " & ((thingsAx as integer) as text) & " " & ((allAx as integer) as text)`;
|
|
32
55
|
}
|
|
@@ -100,4 +123,29 @@ export async function probeSessionReachability(run, timeoutMs) {
|
|
|
100
123
|
return { reachable: true }; // fail-open: a probe transport error never blocks
|
|
101
124
|
return interpretReachability(parseReachabilityCounts(res.stdout));
|
|
102
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* TTL for the intra-invocation reachability memo (PERF1). A promote composite
|
|
128
|
+
* probes reachability TWICE — once at the orchestrator's pre-seed gate, once at
|
|
129
|
+
* the in-drive gate after the reveal — ~20s apart on a busy host (both paid the
|
|
130
|
+
* full probe cost before this memo). 30s spans that gap with margin while
|
|
131
|
+
* expiring well before an unrelated later operation could reuse a stale verdict.
|
|
132
|
+
*/
|
|
133
|
+
export const REACHABILITY_CACHE_TTL_MS = 30_000;
|
|
134
|
+
/** Build an intra-invocation reachability memo (PERF1). `now`/`ttlMs` are injectable for tests. */
|
|
135
|
+
export function createReachabilityCache(ttlMs = REACHABILITY_CACHE_TTL_MS, now = Date.now) {
|
|
136
|
+
let entry = null;
|
|
137
|
+
return {
|
|
138
|
+
async probe(run, timeoutMs) {
|
|
139
|
+
if (entry !== null && entry.verdict.reachable && now() - entry.at < ttlMs) {
|
|
140
|
+
return entry.verdict;
|
|
141
|
+
}
|
|
142
|
+
const verdict = await probeSessionReachability(run, timeoutMs);
|
|
143
|
+
entry = { verdict, at: now() };
|
|
144
|
+
return verdict;
|
|
145
|
+
},
|
|
146
|
+
invalidate() {
|
|
147
|
+
entry = null;
|
|
148
|
+
},
|
|
149
|
+
};
|
|
150
|
+
}
|
|
103
151
|
//# sourceMappingURL=session-reachability.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-reachability.js","sourceRoot":"","sources":["../../../src/write/vectors/session-reachability.ts"],"names":[],"mappings":"AAgEA,6GAA6G;AAC7G,MAAM,CAAC,MAAM,wBAAwB,GAAa,0BAA0B,CAAC;AAE7E,sGAAsG;AACtG,MAAM,YAAY,GAAG,gCAAgC,CAAC;AAEtD
|
|
1
|
+
{"version":3,"file":"session-reachability.js","sourceRoot":"","sources":["../../../src/write/vectors/session-reachability.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
* run that HANGS against the deadline is the shape of an unanswered first-run
|
|
14
14
|
* consent dialog (classified as consent-needed by failure-hints).
|
|
15
15
|
*/
|
|
16
|
-
import { execFile } from "node:child_process";
|
|
17
16
|
import { mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
18
17
|
import { tmpdir } from "node:os";
|
|
19
18
|
import { join } from "node:path";
|
|
19
|
+
import { shortcutsRunExec } from "../../deputy/shortcuts-exec.js";
|
|
20
20
|
/** First-run consent can stall the run; give it generous headroom. */
|
|
21
21
|
const SHORTCUTS_TIMEOUT_MS = 25_000;
|
|
22
22
|
export const SHORTCUTS_MATRIX = {
|
|
@@ -46,19 +46,10 @@ export const SHORTCUTS_MATRIX = {
|
|
|
46
46
|
},
|
|
47
47
|
};
|
|
48
48
|
function defaultRun(shortcut, inputPath, outputPath) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const timedOut = err !== null && err.killed === true;
|
|
54
|
-
resolve({
|
|
55
|
-
exitCode: err === null ? 0 : (err.code ?? 1),
|
|
56
|
-
stdout: String(stdout),
|
|
57
|
-
stderr: String(stderr),
|
|
58
|
-
...(timedOut && { timedOut: true }),
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
});
|
|
49
|
+
// Deputy-routed when active (src/deputy/shortcuts-exec.ts) so the Shortcuts
|
|
50
|
+
// surface shares the deputy's stable identity; direct otherwise. The
|
|
51
|
+
// deadline-kill consent signature (timedOut) survives both paths.
|
|
52
|
+
return shortcutsRunExec(shortcut, inputPath, outputPath, SHORTCUTS_TIMEOUT_MS);
|
|
62
53
|
}
|
|
63
54
|
export function createShortcutsVector(run = defaultRun) {
|
|
64
55
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shortcuts.js","sourceRoot":"","sources":["../../../src/write/vectors/shortcuts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"shortcuts.js","sourceRoot":"","sources":["../../../src/write/vectors/shortcuts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGlE,sEAAsE;AACtE,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAEpC,MAAM,CAAC,MAAM,gBAAgB,GAAiB;IAC5C,qBAAqB,EAAE;QACrB,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,WAAW;QACvB,QAAQ,EAAE,CAAC,KAAK,CAAC;QACjB,KAAK,EACH,+EAA+E;YAC/E,kFAAkF;YAClF,oFAAoF;YACpF,oDAAoD;KACvD;IACD,2BAA2B,EAAE;QAC3B,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,WAAW;QACvB,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,KAAK,EACH,yFAAyF;YACzF,qFAAqF;YACrF,0FAA0F;YAC1F,mFAAmF;YACnF,2FAA2F;YAC3F,4FAA4F;YAC5F,4FAA4F;YAC5F,sFAAsF;KACzF;CACF,CAAC;AAaF,SAAS,UAAU,CACjB,QAAgB,EAChB,SAAiB,EACjB,UAAkB;IAElB,4EAA4E;IAC5E,qEAAqE;IACrE,kEAAkE;IAClE,OAAO,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAuB,UAAU;IACrE,OAAO;QACL,EAAE,EAAE,WAAW;QACf,MAAM,EAAE,gBAAgB;QACxB,KAAK,CAAC,OAAO,CAAC,UAA8B;YAC1C,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;YAChE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;YAC5C,IAAI,CAAC;gBACH,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;gBACzE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC3E,uEAAuE;gBACvE,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAC5C,CAAC;gBAAC,MAAM,CAAC;oBACP,mEAAmE;gBACrE,CAAC;gBACD,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC;YAC/B,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -10,8 +10,23 @@ export declare function simulatorFenceReason(dbPath: string, env?: NodeJS.Proces
|
|
|
10
10
|
* Things update bumps the real database version, the fence refuses to
|
|
11
11
|
* simulate until the whole modeling chain is consciously re-verified —
|
|
12
12
|
* a schema tripwire, not a compatibility claim.
|
|
13
|
+
*
|
|
14
|
+
* 27 (Things 3.23) since 2026-08-22. The 26→27 DDL delta is INDEX-ONLY (the
|
|
15
|
+
* fingerprint is unchanged by construction — src/db/baselines/db-v27.ts), but
|
|
16
|
+
* the DATA semantics moved, which is what these appliers model:
|
|
17
|
+
* - every TMTask row now carries all four maintained counters; the `-1`
|
|
18
|
+
* "uninitialised" sentinel is back-filled with a computed 0 on the classes
|
|
19
|
+
* that can never hold one (leaf counts on to-dos, checklist counts on
|
|
20
|
+
* projects/headings). Rows with real counts were untouched.
|
|
21
|
+
* - `rt1_nextInstanceStartDate` is TEMPLATE-SCOPED, not retired: NULL on every
|
|
22
|
+
* non-template row, retained byte-identical on every repeating template
|
|
23
|
+
* that had one.
|
|
24
|
+
* Both were re-measured in-lab and confirmed against a live 3.23 library
|
|
25
|
+
* (docs/lab/gv4-323-campaign.md §2.1/§2.2, correcting the first host reading in
|
|
26
|
+
* docs/lab/dbv27-migration-diff.md). The migration-time spawn-cursor rewrite the
|
|
27
|
+
* host appeared to show did NOT reproduce (§2.3) and is deliberately NOT modeled.
|
|
13
28
|
*/
|
|
14
|
-
export declare const SIMULATED_DATABASE_VERSION =
|
|
29
|
+
export declare const SIMULATED_DATABASE_VERSION = 27;
|
|
15
30
|
/** Whether the simulator's triple fence is satisfied for `dbPath`. */
|
|
16
31
|
export declare function simulatorFenceActive(dbPath: string, env?: NodeJS.ProcessEnv): boolean;
|
|
17
32
|
/**
|
|
@@ -81,8 +81,23 @@ export function simulatorFenceReason(dbPath, env = process.env) {
|
|
|
81
81
|
* Things update bumps the real database version, the fence refuses to
|
|
82
82
|
* simulate until the whole modeling chain is consciously re-verified —
|
|
83
83
|
* a schema tripwire, not a compatibility claim.
|
|
84
|
+
*
|
|
85
|
+
* 27 (Things 3.23) since 2026-08-22. The 26→27 DDL delta is INDEX-ONLY (the
|
|
86
|
+
* fingerprint is unchanged by construction — src/db/baselines/db-v27.ts), but
|
|
87
|
+
* the DATA semantics moved, which is what these appliers model:
|
|
88
|
+
* - every TMTask row now carries all four maintained counters; the `-1`
|
|
89
|
+
* "uninitialised" sentinel is back-filled with a computed 0 on the classes
|
|
90
|
+
* that can never hold one (leaf counts on to-dos, checklist counts on
|
|
91
|
+
* projects/headings). Rows with real counts were untouched.
|
|
92
|
+
* - `rt1_nextInstanceStartDate` is TEMPLATE-SCOPED, not retired: NULL on every
|
|
93
|
+
* non-template row, retained byte-identical on every repeating template
|
|
94
|
+
* that had one.
|
|
95
|
+
* Both were re-measured in-lab and confirmed against a live 3.23 library
|
|
96
|
+
* (docs/lab/gv4-323-campaign.md §2.1/§2.2, correcting the first host reading in
|
|
97
|
+
* docs/lab/dbv27-migration-diff.md). The migration-time spawn-cursor rewrite the
|
|
98
|
+
* host appeared to show did NOT reproduce (§2.3) and is deliberately NOT modeled.
|
|
84
99
|
*/
|
|
85
|
-
export const SIMULATED_DATABASE_VERSION =
|
|
100
|
+
export const SIMULATED_DATABASE_VERSION = 27;
|
|
86
101
|
function fixtureDatabaseVersion(dbPath) {
|
|
87
102
|
let db;
|
|
88
103
|
try {
|
|
@@ -148,7 +163,18 @@ function genUuid() {
|
|
|
148
163
|
return out;
|
|
149
164
|
}
|
|
150
165
|
// ---------------------------------------------------- shared appliers
|
|
151
|
-
/**
|
|
166
|
+
/**
|
|
167
|
+
* Full TMTask row insert, mirroring test/fixtures/seed.ts insertTask columns.
|
|
168
|
+
*
|
|
169
|
+
* v27 counter semantics (GV4 §2.2): a fresh row carries a COMPUTED count in all
|
|
170
|
+
* four maintained counters — never the `-1` "uninitialised" sentinel Things ≤3.22
|
|
171
|
+
* left on the classes that can hold none. A newly inserted row has no leaf
|
|
172
|
+
* children, so `untrashed/openUntrashedLeafActionsCount` are literal 0 for every
|
|
173
|
+
* type; the checklist counters default to 0 and are set by the caller when the row
|
|
174
|
+
* is born with items. `rt1_nextInstanceStartDate` is NULL here by construction —
|
|
175
|
+
* this helper never inserts a repeating TEMPLATE (see insertRecurrenceRow), and
|
|
176
|
+
* under 27 the column is template-scoped.
|
|
177
|
+
*/
|
|
152
178
|
function insertTask(sim, type, ctx, opts) {
|
|
153
179
|
sim
|
|
154
180
|
.prepare(`INSERT INTO TMTask (
|
|
@@ -501,7 +527,19 @@ function addMonthsIso(iso, months) {
|
|
|
501
527
|
function epochOfIso(iso) {
|
|
502
528
|
return Math.floor(Date.parse(`${iso}T12:00:00Z`) / 1000);
|
|
503
529
|
}
|
|
504
|
-
/**
|
|
530
|
+
/**
|
|
531
|
+
* Insert a template or instance row, covering the full rt1_* recurrence column set.
|
|
532
|
+
*
|
|
533
|
+
* `nextInstanceStartDate` is passed ONLY for template rows (a fixed rule's cached
|
|
534
|
+
* projection day); every INSTANCE this helper mints leaves it NULL. That is the
|
|
535
|
+
* v27 law measured in GV4 §2.1 — the 26→27 migration scopes
|
|
536
|
+
* `rt1_nextInstanceStartDate` to `rt1_recurrenceRule IS NOT NULL` and nulls it
|
|
537
|
+
* everywhere else — and it is also what the simulator already did under 26, when
|
|
538
|
+
* the app instead left an uninitialised `69760` on freshly minted instances (the
|
|
539
|
+
* `instance-next-sentinel` SIMFID tolerance; see docs/lab/simfid-results.md).
|
|
540
|
+
* A tp=1 (after-completion) template legitimately carries NULL: it has no
|
|
541
|
+
* calendar next until a completion (RDLG2e §6.1).
|
|
542
|
+
*/
|
|
505
543
|
function insertRecurrenceRow(sim, ctx, o) {
|
|
506
544
|
sim
|
|
507
545
|
.prepare(`INSERT INTO TMTask (
|
|
@@ -765,13 +803,26 @@ function applyMakeRepeatingFixed(sim, type, params, ctx) {
|
|
|
765
803
|
cursorIso: addUnitsIso(todayIso, params.frequency, params.interval),
|
|
766
804
|
instanceCount: 1,
|
|
767
805
|
};
|
|
768
|
-
// A PRESERVED source
|
|
769
|
-
//
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
806
|
+
// A PRESERVED source (deadline / terminal-element trigger, decided per-branch below)
|
|
807
|
+
// is relinked in place as the current-occurrence instance; a DELETE-fate source spawns
|
|
808
|
+
// a fresh instance only when today is an occurrence.
|
|
809
|
+
// DBLSPAWN1 (docs/lab/dblspawn1-preserved-instance.md, golden-v3 / Things 3.22.14):
|
|
810
|
+
// the template's instance-creation COUNTER follows the plan (1 iff TODAY is the
|
|
811
|
+
// occurrence, else 0), NOT the source-preserve relink. When the first occurrence is
|
|
812
|
+
// FUTURE the app leaves icCount=0 even though the preserved source ALREADY exists as
|
|
813
|
+
// a materialized instance at that date — the cursor "does not know" it is
|
|
814
|
+
// materialized (rt1_nextInstanceStartDate == the occurrence, icCount == 0), which is
|
|
815
|
+
// the double-book that spawns a DUPLICATE when the date arrives (cell A/C). The prior
|
|
816
|
+
// model forced icCount=1 on any preserve, contradicting the observed at-rest state.
|
|
817
|
+
const instanceCount = plan.instanceCount;
|
|
773
818
|
const spec = composeRepeatRuleSpec(params, plan.refIso, epochOfIso(plan.refIso));
|
|
774
819
|
const templateUuid = genUuid();
|
|
820
|
+
// The template's cursor/creation-start columns store the occurrence START date. A
|
|
821
|
+
// DEADLINED rule DROVE the Repeat dialog's "Next:" with the DUE date (start +
|
|
822
|
+
// startDaysEarlier), so plan.cursorIso is that due date — back-shift it to the START
|
|
823
|
+
// (DACON1 DC4, golden-v3: sr = icStart = the START, not the deadline). Non-deadlined:
|
|
824
|
+
// unchanged (the drive date IS the start).
|
|
825
|
+
const templateStartIso = deadlined ? addDaysIso(plan.cursorIso, -startEarlier) : plan.cursorIso;
|
|
775
826
|
// The hidden template row is identical in both fixed-project fates.
|
|
776
827
|
insertRecurrenceRow(sim, ctx, {
|
|
777
828
|
uuid: templateUuid,
|
|
@@ -784,8 +835,8 @@ function applyMakeRepeatingFixed(sim, type, params, ctx) {
|
|
|
784
835
|
deadline: deadlined ? encodePackedDate(DEADLINE_SENTINEL_ISO) : null,
|
|
785
836
|
recurrenceRuleXml: ruleXml(spec),
|
|
786
837
|
instanceCreationCount: instanceCount,
|
|
787
|
-
instanceCreationStartDate: encodePackedDate(
|
|
788
|
-
nextInstanceStartDate: encodePackedDate(
|
|
838
|
+
instanceCreationStartDate: encodePackedDate(templateStartIso),
|
|
839
|
+
nextInstanceStartDate: encodePackedDate(templateStartIso),
|
|
789
840
|
});
|
|
790
841
|
copyTaskTags(sim, params.uuid, templateUuid);
|
|
791
842
|
// The current occurrence date (the app dates the instance here; a preserved
|