things-api 0.19.0 → 0.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/README.md +3 -1
  2. package/deputy/prebuilt/Things API Helper.app/Contents/CodeResources +0 -0
  3. package/deputy/prebuilt/Things API Helper.app/Contents/Helpers/things-reader.app/Contents/MacOS/things-reader +0 -0
  4. package/deputy/prebuilt/Things API Helper.app/Contents/MacOS/things-deputy +0 -0
  5. package/dist/audit/schema.d.ts +19 -2
  6. package/dist/audit/schema.js.map +1 -1
  7. package/dist/capability.d.ts +166 -4
  8. package/dist/capability.js +303 -13
  9. package/dist/capability.js.map +1 -1
  10. package/dist/cli/commands/doctor.d.ts +13 -1
  11. package/dist/cli/commands/doctor.js +52 -22
  12. package/dist/cli/commands/doctor.js.map +1 -1
  13. package/dist/cli/commands/helpers.js +14 -3
  14. package/dist/cli/commands/helpers.js.map +1 -1
  15. package/dist/cli/commands/mcp.js +8 -0
  16. package/dist/cli/commands/mcp.js.map +1 -1
  17. package/dist/cli/commands/repeat-flags.js +34 -2
  18. package/dist/cli/commands/repeat-flags.js.map +1 -1
  19. package/dist/cli/commands/setup.js +16 -3
  20. package/dist/cli/commands/setup.js.map +1 -1
  21. package/dist/cli/commands/ui-state.d.ts +11 -0
  22. package/dist/cli/commands/ui-state.js +27 -0
  23. package/dist/cli/commands/ui-state.js.map +1 -0
  24. package/dist/cli/commands/writes.js +102 -67
  25. package/dist/cli/commands/writes.js.map +1 -1
  26. package/dist/cli/help.js +2 -0
  27. package/dist/cli/help.js.map +1 -1
  28. package/dist/cli/interrupt.d.ts +54 -6
  29. package/dist/cli/interrupt.js +78 -12
  30. package/dist/cli/interrupt.js.map +1 -1
  31. package/dist/cli/main.js +10 -5
  32. package/dist/cli/main.js.map +1 -1
  33. package/dist/client.d.ts +1 -1
  34. package/dist/contracts.d.ts +4 -4
  35. package/dist/contracts.js +1 -1
  36. package/dist/contracts.js.map +1 -1
  37. package/dist/deputy/install.d.ts +15 -1
  38. package/dist/deputy/install.js +46 -6
  39. package/dist/deputy/install.js.map +1 -1
  40. package/dist/deputy/osa.d.ts +42 -2
  41. package/dist/deputy/osa.js +79 -5
  42. package/dist/deputy/osa.js.map +1 -1
  43. package/dist/deputy/routing.d.ts +34 -0
  44. package/dist/deputy/routing.js +95 -0
  45. package/dist/deputy/routing.js.map +1 -1
  46. package/dist/deputy/wake.d.ts +61 -0
  47. package/dist/deputy/wake.js +149 -0
  48. package/dist/deputy/wake.js.map +1 -0
  49. package/dist/diagnose.d.ts +6 -4
  50. package/dist/diagnose.js +20 -4
  51. package/dist/diagnose.js.map +1 -1
  52. package/dist/direct-setup.d.ts +31 -5
  53. package/dist/direct-setup.js +200 -26
  54. package/dist/direct-setup.js.map +1 -1
  55. package/dist/host-access.d.ts +12 -0
  56. package/dist/host-access.js +12 -0
  57. package/dist/host-access.js.map +1 -1
  58. package/dist/index.d.ts +5 -3
  59. package/dist/index.js +3 -2
  60. package/dist/index.js.map +1 -1
  61. package/dist/mcp/server.js +23 -9
  62. package/dist/mcp/server.js.map +1 -1
  63. package/dist/op-result.js +8 -1
  64. package/dist/op-result.js.map +1 -1
  65. package/dist/session-grant.js +16 -1
  66. package/dist/session-grant.js.map +1 -1
  67. package/dist/surface-copy.d.ts +11 -3
  68. package/dist/surface-copy.js +11 -3
  69. package/dist/surface-copy.js.map +1 -1
  70. package/dist/ui-state.d.ts +46 -0
  71. package/dist/ui-state.js +82 -0
  72. package/dist/ui-state.js.map +1 -0
  73. package/dist/wizard.js +8 -1
  74. package/dist/wizard.js.map +1 -1
  75. package/dist/write/accessibility-probe.js +4 -1
  76. package/dist/write/accessibility-probe.js.map +1 -1
  77. package/dist/write/automation-probe.js +7 -1
  78. package/dist/write/automation-probe.js.map +1 -1
  79. package/dist/write/availability.d.ts +0 -15
  80. package/dist/write/availability.js +7 -62
  81. package/dist/write/availability.js.map +1 -1
  82. package/dist/write/batch.js +17 -6
  83. package/dist/write/batch.js.map +1 -1
  84. package/dist/write/commands.d.ts +10 -6
  85. package/dist/write/commands.js +120 -31
  86. package/dist/write/commands.js.map +1 -1
  87. package/dist/write/failure-hints.d.ts +36 -7
  88. package/dist/write/failure-hints.js +33 -14
  89. package/dist/write/failure-hints.js.map +1 -1
  90. package/dist/write/field-limits.d.ts +100 -0
  91. package/dist/write/field-limits.js +144 -0
  92. package/dist/write/field-limits.js.map +1 -0
  93. package/dist/write/guards.js +3 -2
  94. package/dist/write/guards.js.map +1 -1
  95. package/dist/write/move.js +9 -12
  96. package/dist/write/move.js.map +1 -1
  97. package/dist/write/operations.d.ts +15 -8
  98. package/dist/write/operations.js +9 -0
  99. package/dist/write/operations.js.map +1 -1
  100. package/dist/write/opid.d.ts +67 -23
  101. package/dist/write/opid.js +141 -19
  102. package/dist/write/opid.js.map +1 -1
  103. package/dist/write/param-schema.d.ts +17 -44
  104. package/dist/write/param-schema.js +74 -7
  105. package/dist/write/param-schema.js.map +1 -1
  106. package/dist/write/pipeline.d.ts +38 -7
  107. package/dist/write/pipeline.js +134 -18
  108. package/dist/write/pipeline.js.map +1 -1
  109. package/dist/write/pre-state.d.ts +30 -16
  110. package/dist/write/pre-state.js +88 -20
  111. package/dist/write/pre-state.js.map +1 -1
  112. package/dist/write/promote-clone.d.ts +26 -0
  113. package/dist/write/promote-clone.js +333 -41
  114. package/dist/write/promote-clone.js.map +1 -1
  115. package/dist/write/repeat-collateral.d.ts +31 -0
  116. package/dist/write/repeat-collateral.js +153 -0
  117. package/dist/write/repeat-collateral.js.map +1 -0
  118. package/dist/write/resolution-timestamps.js +25 -2
  119. package/dist/write/resolution-timestamps.js.map +1 -1
  120. package/dist/write/template-mutation.js +163 -16
  121. package/dist/write/template-mutation.js.map +1 -1
  122. package/dist/write/vectors/applescript.js +3 -10
  123. package/dist/write/vectors/applescript.js.map +1 -1
  124. package/dist/write/vectors/simulator.js +8 -2
  125. package/dist/write/vectors/simulator.js.map +1 -1
  126. package/dist/write/vectors/types.d.ts +236 -4
  127. package/dist/write/vectors/ui-certification.js +63 -13
  128. package/dist/write/vectors/ui-certification.js.map +1 -1
  129. package/dist/write/vectors/ui-chord.d.ts +144 -0
  130. package/dist/write/vectors/ui-chord.js +428 -0
  131. package/dist/write/vectors/ui-chord.js.map +1 -0
  132. package/dist/write/vectors/ui-drag.d.ts +8 -4
  133. package/dist/write/vectors/ui-drag.js +2 -0
  134. package/dist/write/vectors/ui-drag.js.map +1 -1
  135. package/dist/write/vectors/ui-recipes.d.ts +51 -3
  136. package/dist/write/vectors/ui-recipes.js +452 -44
  137. package/dist/write/vectors/ui-recipes.js.map +1 -1
  138. package/dist/write/vectors/ui-state.d.ts +157 -0
  139. package/dist/write/vectors/ui-state.js +237 -0
  140. package/dist/write/vectors/ui-state.js.map +1 -0
  141. package/dist/write/vectors/ui.d.ts +386 -13
  142. package/dist/write/vectors/ui.js +1543 -124
  143. package/dist/write/vectors/ui.js.map +1 -1
  144. package/dist/write/vectors/url-scheme.js +3 -0
  145. package/dist/write/vectors/url-scheme.js.map +1 -1
  146. package/dist/write/verify/delta.d.ts +41 -0
  147. package/dist/write/verify/delta.js +36 -2
  148. package/dist/write/verify/delta.js.map +1 -1
  149. package/dist/write/verify/poller.d.ts +4 -1
  150. package/dist/write/verify/poller.js +14 -0
  151. package/dist/write/verify/poller.js.map +1 -1
  152. package/package.json +1 -1
  153. package/schema/envelope.schema.json +2 -1
  154. package/skills/things-cli/SKILL.md +2 -2
@@ -1,27 +1,35 @@
1
1
  import { replayResultFromRecord, } from "./pipeline.js";
2
2
  import { readAuditRecords } from "./undo.js";
3
+ import { createDbReader, evaluateDelta } from "./verify/delta.js";
3
4
  /** The idempotency-key charset/length, identical for a batch line and a single-op flag. */
4
5
  export const OP_ID_RE = /^[A-Za-z0-9_-]{1,64}$/;
5
6
  /**
6
7
  * opId idempotency lookback: at most the last {@link OPID_LOOKBACK_RECORDS}
7
8
  * records, AND only the last {@link OPID_LOOKBACK_MS} (whichever is more
8
- * restrictive). Phase 1 matches VERIFIED-OK records only.
9
+ * restrictive).
9
10
  */
10
11
  export const OPID_LOOKBACK_RECORDS = 1000;
11
12
  export const OPID_LOOKBACK_MS = 7 * 24 * 60 * 60 * 1000;
13
+ /** The disclosure a reconciled replay carries — see {@link reconcileTimedOut}. */
14
+ export const RECONCILED_NOTE = "an earlier submission with this idempotency key did not finish confirming; the change was " +
15
+ "found already in place, so nothing ran again. It cannot be reversed with `things undo` — the " +
16
+ "earlier attempt never recorded a completed change to reverse";
17
+ /** Result classes an `opId` match acts on (see the module header). */
18
+ function matchable(result) {
19
+ return result === "ok" || result === "verify-failed:timeout";
20
+ }
12
21
  /**
13
- * The recent-history lookback for an opId: the most recent `ok` record carrying
14
- * that id, within the last {@link OPID_LOOKBACK_RECORDS} records AND the last
15
- * {@link OPID_LOOKBACK_MS} (whichever is more restrictive). Undo/intent/blocked
16
- * records are naturally excluded — only `result === "ok"` matches (phase 1; the
17
- * verify-failed:timeout reconciliation variant is a queued phase-2 round).
22
+ * The recent-history lookback for an opId: the most recent MATCHABLE record
23
+ * carrying that id, within the last {@link OPID_LOOKBACK_RECORDS} records AND
24
+ * the last {@link OPID_LOOKBACK_MS} (whichever is more restrictive). Undo/intent/
25
+ * blocked records are naturally excluded.
18
26
  */
19
- export function findAppliedOpId(records, opId, now) {
27
+ export function findOpIdRecord(records, opId, now) {
20
28
  const cutoff = now.getTime() - OPID_LOOKBACK_MS;
21
29
  const window = records.slice(-OPID_LOOKBACK_RECORDS);
22
30
  let match;
23
31
  for (const r of window) {
24
- if (r.opId !== opId || r.result !== "ok")
32
+ if (r.opId !== opId || !matchable(r.result))
25
33
  continue;
26
34
  if (new Date(r.ts).getTime() < cutoff)
27
35
  continue;
@@ -29,24 +37,138 @@ export function findAppliedOpId(records, opId, now) {
29
37
  }
30
38
  return match;
31
39
  }
40
+ export function presenceOracle(spec) {
41
+ if (spec === undefined) {
42
+ return {
43
+ usable: false,
44
+ why: "that attempt did not record what it was waiting to see",
45
+ };
46
+ }
47
+ switch (spec.mode) {
48
+ case "update":
49
+ case "state": {
50
+ const cascade = spec.mode === "state" ? (spec.cascade?.length ?? 0) : 0;
51
+ return spec.assert.length + cascade > 0
52
+ ? { usable: true }
53
+ : { usable: false, why: "it named no field whose value would show the change" };
54
+ }
55
+ case "entity-updated":
56
+ return spec.assert.length > 0
57
+ ? { usable: true }
58
+ : { usable: false, why: "it named no field whose value would show the change" };
59
+ case "create":
60
+ // An unbounded probe (sinceEpoch 0) matches any same-titled item ever
61
+ // created, so an older namesake would be read as this call's own work.
62
+ return spec.probe.sinceEpoch > 0
63
+ ? { usable: true }
64
+ : {
65
+ usable: false,
66
+ why: "its record of the new item is not bounded in time, so an older item of the same " +
67
+ "name would be mistaken for it",
68
+ };
69
+ case "entity-created":
70
+ case "gone":
71
+ return { usable: true };
72
+ case "ordering":
73
+ return spec.sequence.length > 1
74
+ ? { usable: true }
75
+ : { usable: false, why: "a single item's order reads the same before and after" };
76
+ case "trash-emptied":
77
+ return {
78
+ usable: false,
79
+ why: "emptying the Trash records none of the items it destroyed, so an empty Trash now " +
80
+ "says nothing about whether this call is what emptied it",
81
+ };
82
+ case "logged-now":
83
+ return {
84
+ usable: false,
85
+ why: "moving finished items to the Logbook records none of the items it moved, and Things " +
86
+ "moves them on its own as well",
87
+ };
88
+ default: {
89
+ const exhaustive = spec;
90
+ throw new Error(`unknown delta mode: ${JSON.stringify(exhaustive)}`);
91
+ }
92
+ }
93
+ }
94
+ /** The refusal: the key matched an unconfirmed attempt nothing here can settle. */
95
+ function unreconcilable(record, why) {
96
+ const target = record.uuid === null ? "the item" : record.uuid;
97
+ return {
98
+ kind: "blocked",
99
+ op: record.op,
100
+ reason: "reconcile",
101
+ detail: `an earlier submission with this idempotency key (${record.ts}) never confirmed its ` +
102
+ `change, and ${why} — so whether that change took effect cannot be settled from here`,
103
+ remediation: `check ${target} in Things (\`things op-result ${record.opId ?? "<key>"}\` reports what the ` +
104
+ "earlier attempt recorded); once you know whether the change is there, leave it alone or " +
105
+ "re-run with a NEW --op-id",
106
+ };
107
+ }
108
+ /**
109
+ * Reconcile a resubmission against a TIMED-OUT original: re-read current state
110
+ * through the attempt's own recorded assertion and decide.
111
+ *
112
+ * - satisfied → the change is there: replay it as already-applied, disclosing
113
+ * that a timeout was reconciled. The replay carries NO undo token — the trail
114
+ * holds no completed-change record for undo to reverse — and takes its uuid
115
+ * from the re-read, which is how a create whose uuid was never discovered
116
+ * (recorded `uuid: null`) still answers with the row it made.
117
+ * - not satisfied → the change is absent: return null so the write runs.
118
+ * - no usable oracle → refuse (never a guess).
119
+ */
120
+ function reconcileTimedOut(deps, record) {
121
+ const oracle = presenceOracle(record.expected);
122
+ if (!oracle.usable)
123
+ return unreconcilable(record, oracle.why);
124
+ const spec = record.expected;
125
+ const evaluation = evaluateDelta(spec, createDbReader(deps.db, deps.now?.() ?? new Date(), deps.zone),
126
+ // The movement classification needs the attempt's pre-read, which is long
127
+ // gone; only `satisfied`/`observed` are consulted here, and neither uses it.
128
+ { modDates: {}, fields: {} });
129
+ if (!evaluation.satisfied)
130
+ return null;
131
+ const replay = replayResultFromRecord(record);
132
+ if (replay.kind !== "ok")
133
+ return replay; // replayResultFromRecord always builds an ok
134
+ const { undoToken: _noToken, ...rest } = replay;
135
+ return {
136
+ ...rest,
137
+ uuid: evaluation.discoveredUuid ?? record.uuid,
138
+ observed: evaluation.observed,
139
+ ...(evaluation.repeating !== undefined && { repeating: evaluation.repeating }),
140
+ warnings: [...(replay.warnings ?? []), RECONCILED_NOTE],
141
+ };
142
+ }
143
+ /**
144
+ * The lookback as a DISPATCH DECISION over an already-read trail: the replay
145
+ * result when this key was already applied, a refusal when it matched an
146
+ * unsettleable attempt, or null when the write must run. Shared by the batch
147
+ * line path and {@link replayIfApplied}.
148
+ */
149
+ export function resolveOpId(deps, records, opId, now) {
150
+ const match = findOpIdRecord(records, opId, now);
151
+ if (match === undefined)
152
+ return null;
153
+ return match.result === "ok" ? replayResultFromRecord(match) : reconcileTimedOut(deps, match);
154
+ }
32
155
  /**
33
- * The lookback as a DISPATCH DECISION: the replay result when this write's
34
- * `opId` was already applied, or null when it must run. The ONE gate every
35
- * single-invocation entry point calls before doing anything the client's
36
- * single-op `run`, and the complete/cancel/exception entries whose composites
37
- * own their own dispatch (they never reach `run`, so without this the key would
38
- * be recorded and never honored).
156
+ * The dispatch decision for a SINGLE invocation, reading the trail itself. The
157
+ * ONE gate every single-invocation entry point calls before doing anything the
158
+ * client's single-op `run`, and the composites that own their own dispatch (the
159
+ * complete/cancel/exception template-target verbs, the `--completed-at`
160
+ * flip-dance, and the promote-via-clone verbs; they never reach `run`, so
161
+ * without this the key would be recorded and never honored).
39
162
  *
40
- * Three conditions, all fail-open (run the write) rather than fail-closed:
41
- * no key, a dry run (it mints and records nothing, so there is nothing to
42
- * deduplicate against), or no trail to read.
163
+ * Three conditions fail-open (run the write) rather than fail-closed: no key, a
164
+ * dry run (it mints and records nothing, so there is nothing to deduplicate
165
+ * against), or no trail to read.
43
166
  */
44
167
  export function replayIfApplied(deps, options) {
45
168
  if (options.opId === undefined || options.dryRun === true)
46
169
  return null;
47
170
  if (deps.auditDirPath === undefined)
48
171
  return null;
49
- const applied = findAppliedOpId(readAuditRecords(deps.auditDirPath), options.opId, deps.now?.() ?? new Date());
50
- return applied === undefined ? null : replayResultFromRecord(applied);
172
+ return resolveOpId(deps, readAuditRecords(deps.auditDirPath), options.opId, deps.now?.() ?? new Date());
51
173
  }
52
174
  //# sourceMappingURL=opid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"opid.js","sourceRoot":"","sources":["../../src/write/opid.ts"],"names":[],"mappings":"AAcA,OAAO,EACL,sBAAsB,GAIvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,2FAA2F;AAC3F,MAAM,CAAC,MAAM,QAAQ,GAAG,uBAAuB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAC1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAsB,EACtB,IAAY,EACZ,GAAS;IAET,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC;IAChD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACrD,IAAI,KAA8B,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI;YAAE,SAAS;QACnD,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,MAAM;YAAE,SAAS;QAChD,KAAK,GAAG,CAAC,CAAC,CAAC,4DAA4D;IACzE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,IAAe,EAAE,OAAqB;IACpE,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACvE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,OAAO,GAAG,eAAe,CAC7B,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,EACnC,OAAO,CAAC,IAAI,EACZ,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAC3B,CAAC;IACF,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"opid.js","sourceRoot":"","sources":["../../src/write/opid.ts"],"names":[],"mappings":"AAkCA,OAAO,EACL,sBAAsB,GAIvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAkB,MAAM,mBAAmB,CAAC;AAElF,2FAA2F;AAC3F,MAAM,CAAC,MAAM,QAAQ,GAAG,uBAAuB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAC1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAExD,kFAAkF;AAClF,MAAM,CAAC,MAAM,eAAe,GAC1B,4FAA4F;IAC5F,+FAA+F;IAC/F,8DAA8D,CAAC;AAEjE,sEAAsE;AACtE,SAAS,SAAS,CAAC,MAA6B;IAC9C,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,uBAAuB,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAsB,EACtB,IAAY,EACZ,GAAS;IAET,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC;IAChD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACrD,IAAI,KAA8B,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;YAAE,SAAS;QACtD,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,MAAM;YAAE,SAAS;QAChD,KAAK,GAAG,CAAC,CAAC,CAAC,4DAA4D;IACzE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAaD,MAAM,UAAU,cAAc,CAAC,IAA2B;IACxD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,wDAAwD;SAC9D,CAAC;IACJ,CAAC;IACD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,GAAG,CAAC;gBACrC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;gBAClB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,qDAAqD,EAAE,CAAC;QACpF,CAAC;QACD,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBAC3B,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;gBAClB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,qDAAqD,EAAE,CAAC;QACpF,KAAK,QAAQ;YACX,sEAAsE;YACtE,uEAAuE;YACvE,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC;gBAC9B,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;gBAClB,CAAC,CAAC;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EACD,kFAAkF;wBAClF,+BAA+B;iBAClC,CAAC;QACR,KAAK,gBAAgB,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC1B,KAAK,UAAU;YACb,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAC7B,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;gBAClB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,uDAAuD,EAAE,CAAC;QACtF,KAAK,eAAe;YAClB,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,GAAG,EACD,mFAAmF;oBACnF,yDAAyD;aAC5D,CAAC;QACJ,KAAK,YAAY;YACf,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,GAAG,EACD,sFAAsF;oBACtF,+BAA+B;aAClC,CAAC;QACJ,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,UAAU,GAAU,IAAI,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;AACH,CAAC;AAED,mFAAmF;AACnF,SAAS,cAAc,CAAC,MAAmB,EAAE,GAAW;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;IAC/D,OAAO;QACL,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,MAAM,CAAC,EAAmB;QAC9B,MAAM,EAAE,WAAW;QACnB,MAAM,EACJ,oDAAoD,MAAM,CAAC,EAAE,wBAAwB;YACrF,eAAe,GAAG,mEAAmE;QACvF,WAAW,EACT,SAAS,MAAM,kCAAkC,MAAM,CAAC,IAAI,IAAI,OAAO,sBAAsB;YAC7F,0FAA0F;YAC1F,2BAA2B;KAC9B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,iBAAiB,CAAC,IAAe,EAAE,MAAmB;IAC7D,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAqB,CAAC;IAC1C,MAAM,UAAU,GAAG,aAAa,CAC9B,IAAI,EACJ,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;IAC9D,0EAA0E;IAC1E,6EAA6E;IAC7E,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAC7B,CAAC;IACF,IAAI,CAAC,UAAU,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC,CAAC,6CAA6C;IACtF,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAChD,OAAO;QACL,GAAG,IAAI;QACP,IAAI,EAAE,UAAU,CAAC,cAAc,IAAI,MAAM,CAAC,IAAI;QAC9C,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,GAAG,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC;QAC9E,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,eAAe,CAAC;KACxD,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,IAAe,EACf,OAAsB,EACtB,IAAY,EACZ,GAAS;IAET,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACjD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAChG,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,IAAe,EAAE,OAAqB;IACpE,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACvE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACjD,OAAO,WAAW,CAChB,IAAI,EACJ,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,EACnC,OAAO,CAAC,IAAI,EACZ,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAC3B,CAAC;AACJ,CAAC"}
@@ -1,47 +1,4 @@
1
- /**
2
- * The ONE per-operation PARAMETER schema registry — the structural contract every
3
- * untyped entry point (batch JSONL, MCP `run_operation`/`batch`, a JavaScript
4
- * caller handing over parsed JSON) is held to BEFORE anything is dispatched.
5
- *
6
- * Why it exists (#580): the engine used to duck-test its own params — `todo.add`
7
- * asked whether `params.project` LOOKED like a container (`.uuid`/`.title`
8
- * present) and, when a bare uuid STRING was supplied instead, concluded the field
9
- * was ABSENT. No `list-id` compiled, no destination assertion was emitted, the
10
- * to-do landed in the Inbox, verification passed against the (empty) delta, and
11
- * the batch reported success. Malformed input degraded silently into a different,
12
- * plausible-looking mutation. The same genus lurks anywhere a shape is inferred
13
- * rather than asserted, so the fix is structural: ONE registry, checked at the
14
- * two choke points (the batch's static preflight and the mutation pipeline), and
15
- * duck tests downgraded to belt-and-braces throws.
16
- *
17
- * Doctrine (decisions.md 2026-08-17, #491 RRF1 — the exhaustive-map law): the
18
- * registry is EXHAUSTIVE on both axes. `PARAM_SCHEMAS` is a
19
- * `{ [K in OperationKind]: … }`, so a new operation breaks compilation until it
20
- * declares a schema; each op's schema is a `{ [F in keyof Params]-?: FieldSpec }`,
21
- * so a new parameter breaks compilation until its shape is consciously named.
22
- * Neither axis can be satisfied by an out-of-date literal.
23
- *
24
- * Hand-written, zero-dependency validation in the style of
25
- * [repeat-rule.ts](./repeat-rule.ts) — NO zod. zod is a consumer-surface
26
- * dependency confined to `src/mcp/server.ts` (the CLI guest bundle ships neither
27
- * it nor the MCP SDK; see the lazy loader in `src/index.ts`).
28
- *
29
- * The contract:
30
- * - a REQUIRED field must be present and the right shape; absent or `null` is a
31
- * structural error;
32
- * - an OPTIONAL field may be absent, explicitly `null`, or the right shape —
33
- * any other type is a structural error (never a silent "treat as absent");
34
- * - UNKNOWN keys are refused by name (a typo is never silently dropped);
35
- * - a container reference is an OBJECT (`{"uuid": …}` / `{"title": …}`) — a bare
36
- * string is refused with steering copy rather than normalized. One canonical
37
- * shape (ALPHA-CONTRACT: no shorthand alias machinery pre-1.0).
38
- *
39
- * The check is purely STRUCTURAL. It says nothing about whether a uuid exists,
40
- * whether two fields contradict each other (that stays with each command's
41
- * `preRead`), or whether a `"$name"` batch temp-reference is declared (that stays
42
- * with the batch's own `staticRefError`) — so `$`-prefixed strings pass every
43
- * plain-string field and every container `uuid`, as they must.
44
- */
1
+ import { type LengthLimit } from "./field-limits.ts";
45
2
  import { type OperationKind, type OperationParamsMap } from "./operations.ts";
46
3
  /**
47
4
  * The shape vocabulary. `custom` carries a hand-written validator for the shapes
@@ -61,6 +18,22 @@ export interface FieldSpec {
61
18
  values?: readonly string[];
62
19
  /** string: reject the empty string. */
63
20
  nonEmpty?: boolean;
21
+ /**
22
+ * string / stringArray: the field's MEASURED app ceilings
23
+ * ({@link TITLE_LIMITS} for a title/name, {@link NOTES_LIMITS} for a notes
24
+ * body). An over-long value is refused HERE rather than dispatched, because
25
+ * Things accepts one as a silently TRUNCATED PREFIX — the mutation
26
+ * half-lands and the caller learns only that verification failed (#621,
27
+ * NOTECAP1). For a string array each element is checked on its own.
28
+ */
29
+ limits?: readonly LengthLimit[];
30
+ /**
31
+ * stringArray / custom: the measured cap on how many entries ONE dispatch
32
+ * carries ({@link CHECKLIST_MAX_ITEMS}). Past it Things keeps the first N and
33
+ * drops the rest silently — the same partial landing an over-long value
34
+ * produces, one axis over.
35
+ */
36
+ maxItems?: number;
64
37
  /** number: whole numbers only, and the inclusive bounds. */
65
38
  integer?: boolean;
66
39
  min?: number;
@@ -42,16 +42,32 @@
42
42
  * with the batch's own `staticRefError`) — so `$`-prefixed strings pass every
43
43
  * plain-string field and every container `uuid`, as they must.
44
44
  */
45
+ import { RESOLUTION_TIMESTAMP_EXPECTED } from "../surface-copy.js";
46
+ import { CHECKLIST_MAX_ITEMS, NOTES_LIMITS, TITLE_LIMITS, fieldLengthRefusal, } from "./field-limits.js";
45
47
  import { OPERATION_KINDS, WEEKDAYS, } from "./operations.js";
46
48
  import { assertEndsBound, assertMonthlyAnchor } from "./repeat-rule.js";
49
+ // Things stores an over-long field value as a SILENT TRUNCATED PREFIX rather
50
+ // than refusing it (#621, NOTECAP1), so the measured ceilings ride on the
51
+ // shared constructors — one per field class — rather than a per-field table
52
+ // that could drift out of date. `str` covers every title/name a write carries
53
+ // (4,000 UTF-16 units, an app-model cap present on every vector); `text` covers
54
+ // the free-text notes bodies (10,000 grapheme clusters / 40,000 UTF-16 units,
55
+ // the URL scheme's cap). Neither ceiling is policy: a field the app does not
56
+ // cut carries no limit here.
47
57
  const str = (describe = "a non-empty string") => ({
48
58
  kind: "string",
49
59
  optional: false,
50
60
  nonEmpty: true,
61
+ limits: TITLE_LIMITS,
51
62
  describe,
52
63
  });
53
64
  /** A string field that legitimately accepts "" (free text: notes). */
54
- const text = (describe = "a string") => ({ kind: "string", optional: false, describe });
65
+ const text = (describe = "a string") => ({
66
+ kind: "string",
67
+ optional: false,
68
+ limits: NOTES_LIMITS,
69
+ describe,
70
+ });
55
71
  const bool = (describe = "true or false") => ({
56
72
  kind: "boolean",
57
73
  optional: false,
@@ -68,8 +84,17 @@ const int = (min, max, describe) => ({
68
84
  const strArray = (describe = "an array of non-empty strings") => ({
69
85
  kind: "stringArray",
70
86
  optional: false,
87
+ limits: TITLE_LIMITS,
71
88
  describe,
72
89
  });
90
+ /**
91
+ * Checklist-item titles: title-class strings, plus the measured 100-item cap
92
+ * one dispatch carries (identical on `add`, `update` and the json batch).
93
+ */
94
+ const checklistTitles = (describe = "an array of checklist item titles") => ({
95
+ ...strArray(describe),
96
+ maxItems: CHECKLIST_MAX_ITEMS,
97
+ });
73
98
  const enumOf = (values) => ({
74
99
  kind: "enum",
75
100
  optional: false,
@@ -112,9 +137,26 @@ export function describeType(value) {
112
137
  function isRecord(value) {
113
138
  return typeof value === "object" && value !== null && !Array.isArray(value);
114
139
  }
140
+ /**
141
+ * The refusal for a list longer than one dispatch carries. Shares the shape and
142
+ * the reasoning of {@link fieldLengthRefusal}: the app takes the prefix and
143
+ * drops the tail silently, so the caller must be told before anything is sent.
144
+ */
145
+ function itemCountRefusal(path, count, max) {
146
+ if (count <= max)
147
+ return null;
148
+ return (`${path}: expected at most ${max} items — received ${count}; Things keeps the first ` +
149
+ `${max} and drops the rest rather than refusing them, so nothing was sent`);
150
+ }
115
151
  // --------------------------------------------------------- shared field specs
116
152
  const ISO_DATE_RE = /^\d{4}-\d{2}-\d{2}$/;
117
- const TIMESTAMP_RE = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}(?::\d{2})?)?$/;
153
+ /**
154
+ * A resolution timestamp: a bare date, or a date and a wall-clock time joined by
155
+ * `T` or by a single space. The space spelling is a first-class alternative, not
156
+ * a normalization: `resolveResolutionInstant` reads both to the same instant, so
157
+ * the two layers accept exactly the same set of strings.
158
+ */
159
+ const TIMESTAMP_RE = /^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}(?::\d{2})?)?$/;
118
160
  const REMINDER_RE = /^\d{1,2}:\d{2}$/;
119
161
  const WHEN_KEYWORDS = ["today", "evening", "anytime", "someday"];
120
162
  /**
@@ -136,9 +178,9 @@ const whenValue = () => custom(WHEN_EXPECTED, (value, path) => {
136
178
  const isoDate = () => custom("a date (YYYY-MM-DD)", (value, path) => typeof value === "string" && ISO_DATE_RE.test(value)
137
179
  ? null
138
180
  : `${path}: expected a date (YYYY-MM-DD) — received ${typeof value === "string" ? `"${value}"` : describeType(value)}`);
139
- const timestamp = () => custom("a date (YYYY-MM-DD) or datetime (YYYY-MM-DDTHH:mm)", (value, path) => typeof value === "string" && TIMESTAMP_RE.test(value)
181
+ const timestamp = () => custom(RESOLUTION_TIMESTAMP_EXPECTED, (value, path) => typeof value === "string" && TIMESTAMP_RE.test(value)
140
182
  ? null
141
- : `${path}: expected a date (YYYY-MM-DD) or datetime (YYYY-MM-DDTHH:mm) — received ${typeof value === "string" ? `"${value}"` : describeType(value)}`);
183
+ : `${path}: expected ${RESOLUTION_TIMESTAMP_EXPECTED} — received ${typeof value === "string" ? `"${value}"` : describeType(value)}`);
142
184
  const reminderTime = () => custom("a time of day (HH:mm, 24-hour)", (value, path) => typeof value === "string" && REMINDER_RE.test(value)
143
185
  ? null
144
186
  : `${path}: expected a time of day (HH:mm, 24-hour) — received ${typeof value === "string" ? `"${value}"` : describeType(value)}`);
@@ -253,12 +295,18 @@ const checklistItems = () => custom('an array of titles, or {"title": "…", "co
253
295
  if (!Array.isArray(value)) {
254
296
  return `${path}: expected an array of checklist items — received ${describeType(value)}`;
255
297
  }
298
+ const tooMany = itemCountRefusal(path, value.length, CHECKLIST_MAX_ITEMS);
299
+ if (tooMany !== null)
300
+ return tooMany;
256
301
  for (let i = 0; i < value.length; i++) {
257
302
  const item = value[i];
258
303
  const at = `${path}[${i}]`;
259
304
  if (typeof item === "string") {
260
305
  if (item.length === 0)
261
306
  return `${at}: expected a non-empty title — received an empty string`;
307
+ const long = fieldLengthRefusal(at, item, TITLE_LIMITS);
308
+ if (long !== null)
309
+ return long;
262
310
  continue;
263
311
  }
264
312
  if (!isRecord(item)) {
@@ -270,6 +318,9 @@ const checklistItems = () => custom('an array of titles, or {"title": "…", "co
270
318
  if (typeof item["title"] !== "string" || item["title"].length === 0) {
271
319
  return `${at}.title: expected a non-empty string — received ${describeType(item["title"])}`;
272
320
  }
321
+ const longTitle = fieldLengthRefusal(`${at}.title`, item["title"], TITLE_LIMITS);
322
+ if (longTitle !== null)
323
+ return longTitle;
273
324
  if (item["completed"] !== undefined && typeof item["completed"] !== "boolean") {
274
325
  return `${at}.completed: expected true or false — received ${describeType(item["completed"])}`;
275
326
  }
@@ -300,6 +351,9 @@ const projectItems = () => custom('an ordered array of {"kind": "to-do" | "headi
300
351
  if (typeof item["title"] !== "string" || item["title"].length === 0) {
301
352
  return `${at}.title: expected a non-empty string — received ${describeType(item["title"])}`;
302
353
  }
354
+ const longTitle = fieldLengthRefusal(`${at}.title`, item["title"], TITLE_LIMITS);
355
+ if (longTitle !== null)
356
+ return longTitle;
303
357
  if (kind === "heading")
304
358
  continue;
305
359
  const childSpecs = {
@@ -307,7 +361,7 @@ const projectItems = () => custom('an ordered array of {"kind": "to-do" | "headi
307
361
  when: opt(whenValue()),
308
362
  deadline: opt(isoDate()),
309
363
  tags: opt(strArray()),
310
- checklistItems: opt(strArray()),
364
+ checklistItems: opt(checklistTitles()),
311
365
  };
312
366
  for (const [key, spec] of Object.entries(childSpecs)) {
313
367
  const error = checkField(spec, item[key], `${at}.${key}`);
@@ -335,6 +389,9 @@ function checkField(spec, value, path) {
335
389
  if (spec.nonEmpty === true && value.length === 0) {
336
390
  return `${path}: expected ${spec.describe} — received an empty string`;
337
391
  }
392
+ if (spec.limits !== undefined) {
393
+ return fieldLengthRefusal(path, value, spec.limits);
394
+ }
338
395
  return null;
339
396
  }
340
397
  case "boolean":
@@ -358,6 +415,11 @@ function checkField(spec, value, path) {
358
415
  if (!Array.isArray(value)) {
359
416
  return `${path}: expected ${spec.describe} — received ${describeType(value)}`;
360
417
  }
418
+ if (spec.maxItems !== undefined) {
419
+ const tooMany = itemCountRefusal(path, value.length, spec.maxItems);
420
+ if (tooMany !== null)
421
+ return tooMany;
422
+ }
361
423
  for (let i = 0; i < value.length; i++) {
362
424
  const el = value[i];
363
425
  if (typeof el !== "string") {
@@ -366,6 +428,11 @@ function checkField(spec, value, path) {
366
428
  if (el.length === 0) {
367
429
  return `${path}[${i}]: expected a non-empty string — received an empty string`;
368
430
  }
431
+ if (spec.limits !== undefined) {
432
+ const detail = fieldLengthRefusal(`${path}[${i}]`, el, spec.limits);
433
+ if (detail !== null)
434
+ return detail;
435
+ }
369
436
  }
370
437
  return null;
371
438
  }
@@ -503,7 +570,7 @@ export const PARAM_SCHEMAS = {
503
570
  reminder: opt(reminderTime()),
504
571
  deadline: opt(isoDate()),
505
572
  tags: opt(strArray("an array of tag titles")),
506
- checklistItems: opt(strArray("an array of checklist item titles")),
573
+ checklistItems: opt(checklistTitles()),
507
574
  project: opt(container()),
508
575
  area: opt(container()),
509
576
  heading: opt(str("a heading title inside the destination project")),
@@ -653,7 +720,7 @@ export const PARAM_SCHEMAS = {
653
720
  deadline: opt(isoDate()),
654
721
  startDaysEarlier: opt(int(0, 366, "a whole number of days ≥ 0")),
655
722
  tags: opt(strArray("an array of tag titles")),
656
- checklistItems: opt(strArray("an array of checklist item titles")),
723
+ checklistItems: opt(checklistTitles()),
657
724
  project: opt(container()),
658
725
  area: opt(container()),
659
726
  heading: opt(str("a heading title inside the destination project")),
@@ -1 +1 @@
1
- {"version":3,"file":"param-schema.js","sourceRoot":"","sources":["../../src/write/param-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"param-schema.js","sourceRoot":"","sources":["../../src/write/param-schema.ts"],"names":[],"mappings":"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"}