things-api 0.19.3 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/README.md +1 -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 +42 -10
  6. package/dist/audit/schema.js +21 -0
  7. package/dist/audit/schema.js.map +1 -1
  8. package/dist/cli/commands/doctor.js +3 -1
  9. package/dist/cli/commands/doctor.js.map +1 -1
  10. package/dist/cli/commands/op-result.js +25 -7
  11. package/dist/cli/commands/op-result.js.map +1 -1
  12. package/dist/cli/commands/repeat-flags.d.ts +19 -1
  13. package/dist/cli/commands/repeat-flags.js +71 -0
  14. package/dist/cli/commands/repeat-flags.js.map +1 -1
  15. package/dist/cli/commands/rescue.d.ts +12 -0
  16. package/dist/cli/commands/rescue.js +83 -0
  17. package/dist/cli/commands/rescue.js.map +1 -0
  18. package/dist/cli/commands/writes.js +86 -32
  19. package/dist/cli/commands/writes.js.map +1 -1
  20. package/dist/cli/help.js +25 -25
  21. package/dist/cli/help.js.map +1 -1
  22. package/dist/cli/main.js +12 -2
  23. package/dist/cli/main.js.map +1 -1
  24. package/dist/cli/resolve-invocation.d.ts +9 -1
  25. package/dist/cli/resolve-invocation.js +71 -0
  26. package/dist/cli/resolve-invocation.js.map +1 -1
  27. package/dist/cli/unknown-command.d.ts +26 -0
  28. package/dist/cli/unknown-command.js +135 -0
  29. package/dist/cli/unknown-command.js.map +1 -0
  30. package/dist/contracts.d.ts +4 -3
  31. package/dist/contracts.js +1 -1
  32. package/dist/index.d.ts +4 -2
  33. package/dist/index.js +1 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/mcp/server.js +62 -10
  36. package/dist/mcp/server.js.map +1 -1
  37. package/dist/model/entities.d.ts +11 -0
  38. package/dist/model/entities.js.map +1 -1
  39. package/dist/model/mappers.js +15 -0
  40. package/dist/model/mappers.js.map +1 -1
  41. package/dist/op-result.d.ts +24 -2
  42. package/dist/op-result.js +77 -20
  43. package/dist/op-result.js.map +1 -1
  44. package/dist/process-instance.d.ts +41 -0
  45. package/dist/process-instance.js +82 -0
  46. package/dist/process-instance.js.map +1 -0
  47. package/dist/rescue.d.ts +247 -0
  48. package/dist/rescue.js +811 -0
  49. package/dist/rescue.js.map +1 -0
  50. package/dist/session-grant.js +4 -15
  51. package/dist/session-grant.js.map +1 -1
  52. package/dist/ui-state.d.ts +8 -4
  53. package/dist/ui-state.js +8 -4
  54. package/dist/ui-state.js.map +1 -1
  55. package/dist/write/batch.js +4 -1
  56. package/dist/write/batch.js.map +1 -1
  57. package/dist/write/clone.js +12 -6
  58. package/dist/write/clone.js.map +1 -1
  59. package/dist/write/commands.d.ts +9 -0
  60. package/dist/write/commands.js +135 -50
  61. package/dist/write/commands.js.map +1 -1
  62. package/dist/write/disclosures.d.ts +275 -0
  63. package/dist/write/disclosures.js +277 -0
  64. package/dist/write/disclosures.js.map +1 -0
  65. package/dist/write/experimental.d.ts +16 -0
  66. package/dist/write/experimental.js +19 -0
  67. package/dist/write/experimental.js.map +1 -1
  68. package/dist/write/failure-hints.js +3 -2
  69. package/dist/write/failure-hints.js.map +1 -1
  70. package/dist/write/guards.d.ts +1 -1
  71. package/dist/write/guards.js +102 -3
  72. package/dist/write/guards.js.map +1 -1
  73. package/dist/write/heading.js +4 -7
  74. package/dist/write/heading.js.map +1 -1
  75. package/dist/write/lock.d.ts +85 -1
  76. package/dist/write/lock.js +121 -6
  77. package/dist/write/lock.js.map +1 -1
  78. package/dist/write/make-repeating-project.js +2 -1
  79. package/dist/write/make-repeating-project.js.map +1 -1
  80. package/dist/write/operations.d.ts +52 -6
  81. package/dist/write/operations.js +22 -0
  82. package/dist/write/operations.js.map +1 -1
  83. package/dist/write/opid.d.ts +69 -8
  84. package/dist/write/opid.js +116 -20
  85. package/dist/write/opid.js.map +1 -1
  86. package/dist/write/param-schema.js +14 -2
  87. package/dist/write/param-schema.js.map +1 -1
  88. package/dist/write/pipeline.d.ts +82 -3
  89. package/dist/write/pipeline.js +204 -60
  90. package/dist/write/pipeline.js.map +1 -1
  91. package/dist/write/planner.d.ts +7 -0
  92. package/dist/write/planner.js +12 -0
  93. package/dist/write/planner.js.map +1 -1
  94. package/dist/write/preserve-modified.d.ts +17 -8
  95. package/dist/write/preserve-modified.js.map +1 -1
  96. package/dist/write/promote-clone.js +106 -53
  97. package/dist/write/promote-clone.js.map +1 -1
  98. package/dist/write/reorder.js +45 -39
  99. package/dist/write/reorder.js.map +1 -1
  100. package/dist/write/repeat-rule.d.ts +25 -1
  101. package/dist/write/repeat-rule.js +69 -0
  102. package/dist/write/repeat-rule.js.map +1 -1
  103. package/dist/write/resolution-timestamps.js +104 -78
  104. package/dist/write/resolution-timestamps.js.map +1 -1
  105. package/dist/write/reversibility.js +2 -2
  106. package/dist/write/reversibility.js.map +1 -1
  107. package/dist/write/spawn-expectation.d.ts +135 -0
  108. package/dist/write/spawn-expectation.js +237 -0
  109. package/dist/write/spawn-expectation.js.map +1 -0
  110. package/dist/write/template-mutation.js +34 -35
  111. package/dist/write/template-mutation.js.map +1 -1
  112. package/dist/write/undo.js +45 -5
  113. package/dist/write/undo.js.map +1 -1
  114. package/dist/write/vectors/simulator.js +48 -2
  115. package/dist/write/vectors/simulator.js.map +1 -1
  116. package/dist/write/vectors/types.d.ts +12 -0
  117. package/dist/write/vectors/ui-recipes.js +11 -1
  118. package/dist/write/vectors/ui-recipes.js.map +1 -1
  119. package/dist/write/vectors/ui-state.d.ts +64 -6
  120. package/dist/write/vectors/ui-state.js +91 -4
  121. package/dist/write/vectors/ui-state.js.map +1 -1
  122. package/dist/write/vectors/ui.d.ts +69 -3
  123. package/dist/write/vectors/ui.js +293 -146
  124. package/dist/write/vectors/ui.js.map +1 -1
  125. package/dist/write/vectors/url-scheme.js +26 -0
  126. package/dist/write/vectors/url-scheme.js.map +1 -1
  127. package/dist/write/verify/delta.d.ts +17 -2
  128. package/dist/write/verify/delta.js +46 -16
  129. package/dist/write/verify/delta.js.map +1 -1
  130. package/dist/write/verify/poller.d.ts +3 -2
  131. package/dist/write/verify/poller.js +3 -1
  132. package/dist/write/verify/poller.js.map +1 -1
  133. package/package.json +1 -1
  134. package/schema/envelope.schema.json +1 -2
  135. package/skills/things-cli/SKILL.md +4 -2
  136. package/skills/things-cli/references/repeating.md +1 -1
  137. package/dist/cli/commands/ui-state.d.ts +0 -11
  138. package/dist/cli/commands/ui-state.js +0 -27
  139. package/dist/cli/commands/ui-state.js.map +0 -1
@@ -1,9 +1,10 @@
1
1
  import { resolveProjectWriteTarget, resolveTaskUuidPrefix } from "../read/queries.js";
2
2
  import { taskMembershipClause } from "../read/scope.js";
3
3
  import { resolutionDeltaDate } from "./commands.js";
4
+ import { disclose, disclosuresOf, tiers } from "./disclosures.js";
4
5
  import { isRepeatingTemplate, loadTarget, projectChildren } from "./pre-state.js";
5
6
  import { replayIfApplied } from "./opid.js";
6
- import { appendCompositeSummary, runMutation, } from "./pipeline.js";
7
+ import { appendCompositeSummary, runComposite as runLockedComposite, runMutation, } from "./pipeline.js";
7
8
  import { restoreModDates } from "./preserve-modified.js";
8
9
  import { runTemplateStatusWrite } from "./template-mutation.js";
9
10
  import { createDbReader } from "./verify/delta.js";
@@ -73,93 +74,118 @@ function dryRunComposite(summaryOp, uuid, legs, delta) {
73
74
  async function runComposite(deps, summaryOp, uuid, legs, finalDelta, options) {
74
75
  if (options.dryRun === true)
75
76
  return dryRunComposite(summaryOp, uuid, legs, finalDelta);
76
- // --preserve-modified: capture the target's umd BEFORE the first leg (each flip
77
- // bumps it) and restore ONCE after the last (never per-leg — the leg options
78
- // strip the flag). Single-target by construction (the resolution-timestamp
79
- // compounds operate on one to-do/project).
80
- const preUmd = options.preserveModified === true
81
- ? createDbReader(deps.db, deps.now?.() ?? new Date(), deps.zone).modDateOf(uuid)
82
- : null;
83
77
  const startedAt = deps.now?.() ?? new Date();
84
78
  const inheritedTxn = options.txn?.role === "leg" ? options.txn.id : null;
85
79
  const txnId = inheritedTxn ?? newTxnId(startedAt);
86
- const disclosure = legs.map((l, i) => `${i + 1}. ${l.describe}`).join(" ");
87
- let last = null;
88
- for (let i = 0; i < legs.length; i++) {
89
- const leg = legs[i];
90
- const result = await exec(deps, leg.op, leg.params, legOptions(options, txnId, leg.vector));
91
- last = result;
92
- if (result.kind !== "ok") {
93
- const done = legs.slice(0, i).map((l) => l.describe);
94
- const recovery = done.length === 0
95
- ? "nothing was applied the item is unchanged"
96
- : `applied so far: ${done.join("; ")} leg ${i + 1} (${leg.describe}) failed; the item is left mid-sequence`;
97
- const reason = result.kind === "verify-failed" ? result.reason : "mismatch";
98
- // A TIMED-OUT leg leaves the sequence ambiguous the flip may or may not
99
- // have landed so a KEYED call records the AMBIGUOUS summary in the same
100
- // shape the promote compounds use: result `verify-failed:timeout` carrying
101
- // the assertion a resubmission re-evaluates. Without it a retry on the same
102
- // key would find no record and walk the whole dance again. The oracle is
103
- // this composite's OWN final assertion (`finalDelta`) — a uuid-keyed state
104
- // check on the one item every leg touches, so it settles the question
105
- // either way; and re-running is safe when it says the change is absent,
106
- // because the dance creates nothing. NESTED runs write no summary at all
107
- // (the outer composite owns the record) and carry no key to record.
108
- if (inheritedTxn === null && reason === "timeout") {
109
- appendCompositeSummary(deps, {
110
- startedAt,
80
+ // COMPOSITE LOCK (#639). The flip-dance used to serialize only leg by leg, so
81
+ // another writer could land between the complete and the cancel — and, worse,
82
+ // the key's lookback had no acquisition point to be re-checked at, which is
83
+ // what let a same-key retry wait out the legs and then run the whole dance
84
+ // again. One lock across the sequence gives both: leg acquisitions inside are
85
+ // reentrant no-ops, and the keyed gate double-checks under it. A NESTED run
86
+ // (this dance as the template composite's status leg) is already inside the
87
+ // outer hold and carries no key, so it passes straight through.
88
+ //
89
+ // The in-flight marker carries this composite's OWN final assertion as its
90
+ // oracle a uuid-keyed state check on the one item every leg touches, so a
91
+ // holder that dies mid-dance leaves a retry able to settle the question either
92
+ // way, exactly as the ambiguous summary does for a timeout.
93
+ return runLockedComposite(deps, summaryOp, () => danceBody(), {
94
+ options,
95
+ startedAt,
96
+ txnId,
97
+ uuid,
98
+ requested: { uuid },
99
+ expected: finalDelta,
100
+ });
101
+ async function danceBody() {
102
+ // --preserve-modified: capture the target's umd BEFORE the first leg (each flip
103
+ // bumps it) and restore ONCE after the last (never per-leg — the leg options
104
+ // strip the flag). Single-target by construction (the resolution-timestamp
105
+ // compounds operate on one to-do/project).
106
+ const preUmd = options.preserveModified === true
107
+ ? createDbReader(deps.db, deps.now?.() ?? new Date(), deps.zone).modDateOf(uuid)
108
+ : null;
109
+ const disclosure = legs.map((l, i) => `${i + 1}. ${l.describe}`).join(" → ");
110
+ let last = null;
111
+ for (let i = 0; i < legs.length; i++) {
112
+ const leg = legs[i];
113
+ const result = await exec(deps, leg.op, leg.params, legOptions(options, txnId, leg.vector));
114
+ last = result;
115
+ if (result.kind !== "ok") {
116
+ const done = legs.slice(0, i).map((l) => l.describe);
117
+ const recovery = done.length === 0
118
+ ? "nothing was applied — the item is unchanged"
119
+ : `applied so far: ${done.join("; ")} — leg ${i + 1} (${leg.describe}) failed; the item is left mid-sequence`;
120
+ const reason = result.kind === "verify-failed" ? result.reason : "mismatch";
121
+ // A TIMED-OUT leg leaves the sequence ambiguous — the flip may or may not
122
+ // have landed — so a KEYED call records the AMBIGUOUS summary in the same
123
+ // shape the promote compounds use: result `verify-failed:timeout` carrying
124
+ // the assertion a resubmission re-evaluates. Without it a retry on the same
125
+ // key would find no record and walk the whole dance again. The oracle is
126
+ // this composite's OWN final assertion (`finalDelta`) — a uuid-keyed state
127
+ // check on the one item every leg touches, so it settles the question
128
+ // either way; and re-running is safe when it says the change is absent,
129
+ // because the dance creates nothing. NESTED runs write no summary at all
130
+ // (the outer composite owns the record) and carry no key to record.
131
+ if (inheritedTxn === null && reason === "timeout") {
132
+ appendCompositeSummary(deps, {
133
+ startedAt,
134
+ op: summaryOp,
135
+ uuid,
136
+ txnId,
137
+ invocation: `${summaryOp} (${legs.length}-leg): ${disclosure} — unconfirmed`,
138
+ options,
139
+ ambiguous: finalDelta,
140
+ });
141
+ }
142
+ return {
143
+ kind: "verify-failed",
111
144
  op: summaryOp,
112
- uuid,
113
- txnId,
114
- invocation: `${summaryOp} (${legs.length}-leg): ${disclosure} unconfirmed`,
115
- options,
116
- ambiguous: finalDelta,
117
- });
145
+ reason,
146
+ expected: finalDelta,
147
+ observed: result.kind === "verify-failed" ? result.observed : null,
148
+ detail: `${result.kind === "blocked" ? result.detail : "a leg did not verify"} — ${recovery}`,
149
+ };
118
150
  }
119
- return {
120
- kind: "verify-failed",
151
+ }
152
+ if (inheritedTxn === null) {
153
+ appendCompositeSummary(deps, {
154
+ startedAt,
121
155
  op: summaryOp,
122
- reason,
123
- expected: finalDelta,
124
- observed: result.kind === "verify-failed" ? result.observed : null,
125
- detail: `${result.kind === "blocked" ? result.detail : "a leg did not verify"} — ${recovery}`,
126
- };
156
+ uuid,
157
+ txnId,
158
+ invocation: `${summaryOp} (${legs.length}-leg): ${disclosure}`,
159
+ // The summary is the ONE record this composite's idempotency key belongs
160
+ // on (the legs run with the key stripped), so a resubmission matches the
161
+ // whole sequence rather than one flip of it.
162
+ options,
163
+ });
127
164
  }
128
- }
129
- if (inheritedTxn === null) {
130
- appendCompositeSummary(deps, {
131
- startedAt,
165
+ const ok = last;
166
+ // Restore the captured umd once, after the last leg (best-effort, per row).
167
+ let preserve = null;
168
+ if (options.preserveModified === true && preUmd !== null) {
169
+ const post = createDbReader(deps.db, deps.now?.() ?? new Date(), deps.zone).modDateOf(uuid);
170
+ const targets = post !== null && post > preUmd ? [{ uuid, preUmd }] : [];
171
+ preserve = await restoreModDates(deps.db, deps.vectors, targets);
172
+ }
173
+ const bag = disclosuresOf(ok);
174
+ disclose(bag, "resolution-non-atomic-legs", `applied as ${legs.length} non-atomic legs: ${disclosure}`);
175
+ return {
176
+ ...ok,
132
177
  op: summaryOp,
133
178
  uuid,
134
- txnId,
135
- invocation: `${summaryOp} (${legs.length}-leg): ${disclosure}`,
136
- // The summary is the ONE record this composite's idempotency key belongs
137
- // on (the legs run with the key stripped), so a resubmission matches the
138
- // whole sequence rather than one flip of it.
139
- options,
140
- });
141
- }
142
- const ok = last;
143
- // Restore the captured umd once, after the last leg (best-effort, per row).
144
- let preserve = null;
145
- if (options.preserveModified === true && preUmd !== null) {
146
- const post = createDbReader(deps.db, deps.now?.() ?? new Date(), deps.zone).modDateOf(uuid);
147
- const targets = post !== null && post > preUmd ? [{ uuid, preUmd }] : [];
148
- preserve = await restoreModDates(deps.db, deps.vectors, targets);
179
+ undoToken: txnId,
180
+ ...(preserve !== null &&
181
+ (preserve.restored > 0 || preserve.failures.length > 0) && {
182
+ preservedModified: preserve.restored,
183
+ }),
184
+ ...(preserve !== null &&
185
+ preserve.failures.length > 0 && { preserveFailures: preserve.failures }),
186
+ ...tiers(bag),
187
+ };
149
188
  }
150
- return {
151
- ...ok,
152
- op: summaryOp,
153
- uuid,
154
- undoToken: txnId,
155
- ...(preserve !== null &&
156
- (preserve.restored > 0 || preserve.failures.length > 0) && {
157
- preservedModified: preserve.restored,
158
- }),
159
- ...(preserve !== null &&
160
- preserve.failures.length > 0 && { preserveFailures: preserve.failures }),
161
- warnings: [...(ok.warnings ?? []), `applied as ${legs.length} non-atomic legs: ${disclosure}`],
162
- };
163
189
  }
164
190
  // ------------------------------------------------------------------ helpers
165
191
  function completeOp(kind) {
@@ -1 +1 @@
1
- {"version":3,"file":"resolution-timestamps.js","sourceRoot":"","sources":["../../src/write/resolution-timestamps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolution-timestamps.js","sourceRoot":"","sources":["../../src/write/resolution-timestamps.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,sBAAsB,EACtB,YAAY,IAAI,kBAAkB,EAClC,WAAW,GAIZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAgC,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAkB,MAAM,mBAAmB,CAAC;AAenE,+DAA+D;AAC/D,SAAS,IAAI,CACX,IAAe,EACf,EAAiB,EACjB,MAA+B,EAC/B,OAAqB;IAErB,OAAO,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,MAAe,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,QAAQ,CAAC,GAAS;IACzB,OAAO,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AACzE,CAAC;AAED,SAAS,UAAU,CACjB,IAAkB,EAClB,KAAa,EACb,MAAoC;IAEpC,MAAM,GAAG,GAAiB,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC;IACtE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACrD,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;QAAE,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;IACnF,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;QAAE,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IAC7E,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAClD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,OAAO,CAAC,EAAiB,EAAE,MAAc,EAAE,WAAmB;IACrE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACnG,CAAC;AAED,SAAS,aAAa,CAAC,IAAe,EAAE,IAAoB,EAAE,GAAW;IACvE,OAAO,IAAI,KAAK,SAAS;QACvB,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC;QACzC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,QAAQ,CAAC,IAAe,EAAE,IAAY;IAC7C,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACpC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED,sEAAsE;AACtE,SAAS,eAAe,CACtB,SAAwB,EACxB,IAAY,EACZ,IAAW,EACX,KAAgB;IAEhB,OAAO;QACL,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,SAAS;QACb,IAAI,EAAE;YACJ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY;YACnF,IAAI,EAAE,CAAC;YACP,UAAU,EACR,GAAG,IAAI,CAAC,MAAM,8BAA8B;gBAC5C,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3D,aAAa,EAAE,KAAK;YACpB,cAAc,EAAE,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;SAC7D;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,KAAK,UAAU,YAAY,CACzB,IAAe,EACf,SAAwB,EACxB,IAAY,EACZ,IAAW,EACX,UAAqB,EACrB,OAAqB;IAErB,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAEvF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;IAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,MAAM,KAAK,GAAG,YAAY,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC;IAElD,8EAA8E;IAC9E,8EAA8E;IAC9E,4EAA4E;IAC5E,2EAA2E;IAC3E,8EAA8E;IAC9E,4EAA4E;IAC5E,4EAA4E;IAC5E,gEAAgE;IAChE,EAAE;IACF,2EAA2E;IAC3E,4EAA4E;IAC5E,+EAA+E;IAC/E,4DAA4D;IAC5D,OAAO,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE;QAC5D,OAAO;QACP,SAAS;QACT,KAAK;QACL,IAAI;QACJ,SAAS,EAAE,EAAE,IAAI,EAAE;QACnB,QAAQ,EAAE,UAAU;KACrB,CAAC,CAAC;IAEH,KAAK,UAAU,SAAS;QACtB,gFAAgF;QAChF,6EAA6E;QAC7E,2EAA2E;QAC3E,2CAA2C;QAC3C,MAAM,MAAM,GACV,OAAO,CAAC,gBAAgB,KAAK,IAAI;YAC/B,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;YAChF,CAAC,CAAC,IAAI,CAAC;QAEX,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7E,IAAI,IAAI,GAA0B,IAAI,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAQ,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5F,IAAI,GAAG,MAAM,CAAC;YACd,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACrD,MAAM,QAAQ,GACZ,IAAI,CAAC,MAAM,KAAK,CAAC;oBACf,CAAC,CAAC,6CAA6C;oBAC/C,CAAC,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,QAAQ,yCAAyC,CAAC;gBAClH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;gBAC5E,0EAA0E;gBAC1E,0EAA0E;gBAC1E,2EAA2E;gBAC3E,4EAA4E;gBAC5E,yEAAyE;gBACzE,2EAA2E;gBAC3E,sEAAsE;gBACtE,wEAAwE;gBACxE,yEAAyE;gBACzE,oEAAoE;gBACpE,IAAI,YAAY,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBAClD,sBAAsB,CAAC,IAAI,EAAE;wBAC3B,SAAS;wBACT,EAAE,EAAE,SAAS;wBACb,IAAI;wBACJ,KAAK;wBACL,UAAU,EAAE,GAAG,SAAS,KAAK,IAAI,CAAC,MAAM,UAAU,UAAU,gBAAgB;wBAC5E,OAAO;wBACP,SAAS,EAAE,UAAU;qBACtB,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO;oBACL,IAAI,EAAE,eAAe;oBACrB,EAAE,EAAE,SAAS;oBACb,MAAM;oBACN,QAAQ,EAAE,UAAU;oBACpB,QAAQ,EAAE,MAAM,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;oBAClE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,MAAM,QAAQ,EAAE;iBAC9F,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,sBAAsB,CAAC,IAAI,EAAE;gBAC3B,SAAS;gBACT,EAAE,EAAE,SAAS;gBACb,IAAI;gBACJ,KAAK;gBACL,UAAU,EAAE,GAAG,SAAS,KAAK,IAAI,CAAC,MAAM,UAAU,UAAU,EAAE;gBAC9D,yEAAyE;gBACzE,yEAAyE;gBACzE,6CAA6C;gBAC7C,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QACD,MAAM,EAAE,GAAG,IAA+C,CAAC;QAE3D,4EAA4E;QAC5E,IAAI,QAAQ,GAAqE,IAAI,CAAC;QACtF,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACzD,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5F,MAAM,OAAO,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,QAAQ,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QAC9B,QAAQ,CACN,GAAG,EACH,4BAA4B,EAC5B,cAAc,IAAI,CAAC,MAAM,qBAAqB,UAAU,EAAE,CAC3D,CAAC;QACF,OAAO;YACL,GAAG,EAAE;YACL,EAAE,EAAE,SAAS;YACb,IAAI;YACJ,SAAS,EAAE,KAAK;YAChB,GAAG,CAAC,QAAQ,KAAK,IAAI;gBACnB,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI;gBACzD,iBAAiB,EAAE,QAAQ,CAAC,QAAQ;aACrC,CAAC;YACJ,GAAG,CAAC,QAAQ,KAAK,IAAI;gBACnB,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC1E,GAAG,KAAK,CAAC,GAAG,CAAC;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,6EAA6E;AAE7E,SAAS,UAAU,CAAC,IAAoB;IACtC,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,eAAe,CAAC;AACnE,CAAC;AACD,SAAS,QAAQ,CAAC,IAAoB;IACpC,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC;AAC/D,CAAC;AACD,SAAS,UAAU,CAAC,IAAoB;IACtC,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAAgB,CAAC;AACrE,CAAC;AAED,gFAAgF;AAChF,SAAS,aAAa,CACpB,IAAoB,EACpB,QAA2C;IAE3C,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,WAAW,CAAC,IAAoB,EAAE,IAAY,EAAE,QAA0B;IACjF,OAAO;QACL,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC;QACpB,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;QAClD,MAAM,EAAE,YAAY;QACpB,QAAQ,EAAE,uCAAuC;KAClD,CAAC;AACJ,CAAC;AACD,SAAS,SAAS,CAAC,IAAoB,EAAE,IAAY,EAAE,QAAwB;IAC7E,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC;QAClB,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;QAClD,MAAM,EAAE,YAAY;QACpB,QAAQ,EAAE,sCAAsC;KACjD,CAAC;AACJ,CAAC;AACD,SAAS,WAAW,CAClB,IAAoB,EACpB,IAAY,EACZ,KAAmD;IAEnD,MAAM,KAAK,GAAG;QACZ,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC;IACF,OAAO;QACL,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC;QACpB,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE;QAC1B,MAAM,EAAE,aAAa;QACrB,QAAQ,EAAE,UAAU,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB;KACxD,CAAC;AACJ,CAAC;AAED,mFAAmF;AACnF,SAAS,wBAAwB,CAC/B,IAAe,EACf,IAAoB,EACpB,IAAY,EACZ,EAAiB;IAEjB,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAC/E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,OAAO,CACZ,EAAE,EACF,4FAA4F,IAAI,CAAC,MAAM,GAAG;QACxG,2EAA2E,EAC7E,6HAA6H,CAC9H,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,MAAc,EAAE,WAAoB;IACnE,OAAO;QACL,IAAI,EAAE,OAAO;QACb,IAAI;QACJ,MAAM,EAAE;YACN,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;YACnC,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE;SAC9C;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,oBAAoB,CACjC,IAAe,EACf,IAAoB,EACpB,EAAmC,EACnC,GAAW,EACX,GAAyF,EACzF,OAAqB;IAErB,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,4EAA4E;QAC5E,0EAA0E;QAC1E,2EAA2E;QAC3E,oCAAoC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,GAAG,qBAAqB,CAC1B,IAAI,CAAC,EAAE,EACP,GAAG,EACH,OAAO,EACP,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAC9D,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,CAAC,6DAA6D;IAC5E,CAAC;IACD,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE,OAAO,sBAAsB,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED,6EAA6E;AAE7E;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAe,EACf,IAAoB,EACpB,GAAW,EACX,IAA2D,EAC3D,UAAwB,EAAE;IAE1B,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IACnC,MAAM,QAAQ,GAAqB,IAAI,CAAC,QAAQ,IAAI,kBAAkB,CAAC;IACvE,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,IAAI,EACJ,IAAI,EACJ,eAAe,EACf,GAAG,EACH,CAAC,cAAc,EAAE,iBAAiB,EAAE,EAAE,CACpC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAC1E,OAAO,CACR,CAAC;IACF,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IACnC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAChG,CAAC;IACD,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,IAAI,MAAM,KAAK,WAAW;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAChG,OAAO,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAe,EACf,IAAoB,EACpB,GAAW,EACX,IAAyD,EACzD,UAAwB,EAAE;IAE1B,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IACnC,MAAM,QAAQ,GAAmB,IAAI,CAAC,QAAQ,IAAI,kBAAkB,CAAC;IACrE,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,IAAI,EACJ,IAAI,EACJ,aAAa,EACb,GAAG,EACH,CAAC,cAAc,EAAE,iBAAiB,EAAE,EAAE,CACpC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,iBAAiB,CAAC,EACxE,OAAO,CACR,CAAC;IACF,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IACnC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3B,4EAA4E;QAC5E,yDAAyD;QACzD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5E,IAAI,QAAQ,KAAK,IAAI;gBAAE,OAAO,QAAQ,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACtE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/F,OAAO,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAe,EACf,IAAoB,EACpB,GAAW,EACX,IAAkD,EAClD,UAAwB,EAAE;IAE1B,MAAM,EAAE,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC;IACjE,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAEpC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnC,gEAAgE;QAChE,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;IACpF,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO;YACL,IAAI,EAAE,SAAS;YACf,EAAE;YACF,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,iBAAiB;YACzB,MAAM,EACJ,sFAAsF;gBACtF,gDAAgD;YAClD,WAAW,EACT,iGAAiG;gBACjG,qCAAqC;SACxC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;KACnE,CAAC;IAEF,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3B,yEAAyE;QACzE,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,uEAAuE;IACvE,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAChE,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,QAAQ,CAAC;IACvC,MAAM,IAAI,GAAU;QAClB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC;QAC3C,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;QAC9B,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC;KAC1C,CAAC;IACF,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/F,OAAO,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC"}
@@ -190,11 +190,11 @@ export const REVERSIBILITY = {
190
190
  },
191
191
  "todo.reschedule-repeat": {
192
192
  class: "conditional",
193
- note: "the rule mutates in place (identity preserved, UI2-b); the FULL rule vocabulary re-drives reschedule with the captured prior rule (weekday set, monthly/yearly anchor, ends bound, deadline/start-offset all restored) — invertible whenever the prior rule was captured, decodable, and within the Repeat dialog's vocabulary; irreversible for a rule the dialog itself cannot produce (two end bounds, a multi-anchor month/year rule, or an after-completion rule with a calendar day). A per-instance reminder time is not part of the captured rule and is not restored",
193
+ note: "MOVING the next occurrence (the bare --when re-anchor) is IRREVERSIBLE: the series' old date is by then today or past, and re-writing it is the crash the guards exist to prevent (REANCH1 §5/§8) — the way back is another move to a future date, or the app's own ⌘Z. Restating the RULE mutates it in place (identity preserved, UI2-b); the FULL rule vocabulary re-drives reschedule with the captured prior rule (weekday set, monthly/yearly anchor, ends bound, deadline/start-offset all restored) — invertible whenever the prior rule was captured, decodable, and within the Repeat dialog's vocabulary; irreversible for a rule the dialog itself cannot produce (two end bounds, a multi-anchor month/year rule, or an after-completion rule with a calendar day). A per-instance reminder time is not part of the captured rule and is not restored",
194
194
  },
195
195
  "project.reschedule-repeat": {
196
196
  class: "conditional",
197
- note: "the project's rule mutates in place (identity preserved, UIC2-a); re-drives reschedule with the captured prior rule (same faithfulness boundary as todo.reschedule-repeat) — invertible when the prior rule was captured, decodable, and dialog-expressible; irreversible otherwise. A per-instance reminder time is not restored",
197
+ note: "the re-anchor spelling is IRREVERSIBLE for the same reason as the to-do verb. Restating the rule mutates it in place (identity preserved, UIC2-a); re-drives reschedule with the captured prior rule (same faithfulness boundary as todo.reschedule-repeat) — invertible when the prior rule was captured, decodable, and dialog-expressible; irreversible otherwise. A per-instance reminder time is not restored",
198
198
  },
199
199
  // ---- promote-via-clone (make/add-repeating) → undo is trash-both (+restore) --
200
200
  "todo.make-repeating": {
@@ -1 +1 @@
1
- {"version":3,"file":"reversibility.js","sourceRoot":"","sources":["../../src/write/reversibility.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reversibility.js","sourceRoot":"","sources":["../../src/write/reversibility.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * THE SPAWN-EXPECTATION MAP (#634) — what the app is KNOWN to do about
3
+ * materializing a repeating series' first occurrence, per rule shape × anchor
4
+ * relation, and the assertion that turns that knowledge into an honest
5
+ * post-promote disclosure.
6
+ *
7
+ * The failure this replaces: a successful after-completion monthly promote with
8
+ * a future anchor warned *"could not derive the spawned instance: no row links
9
+ * back to the new repeating template (the app may not have materialized the
10
+ * current occurrence)"* — a shrug, as though the absence were a surprise. It is
11
+ * not a surprise. The spawn laws are MEASURED per rule shape, and for that
12
+ * shape zero instances is the CORRECT and expected outcome. So:
13
+ *
14
+ * - the expectation is stated up front, from the rule and the anchor date;
15
+ * - it is ASSERTED against what the FK derivation actually found;
16
+ * - a mismatch in EITHER direction (expected-and-missing, or unexpected-found)
17
+ * is a real `warning` — something is wrong with the series;
18
+ * - the expectation MET is a matter-of-fact `note` naming when the first
19
+ * occurrence appears, or nothing at all when the instance is present and
20
+ * returned (the caller already has it).
21
+ *
22
+ * RRF1 discipline: {@link SPAWN_EXPECTATIONS} has an explicit entry for every
23
+ * (rule kind × anchor relation) cell with the evidence that pins it, and the
24
+ * compiler enforces completeness — the map is typed as a total record over both
25
+ * axes, so adding a rule kind or an anchor relation breaks the build until the
26
+ * new cells are given a verdict and a citation.
27
+ */
28
+ import type { IsoDate } from "../model/dates.ts";
29
+ /**
30
+ * The rule shapes the app treats DIFFERENTLY for first-occurrence
31
+ * materialization. This is deliberately coarser than the full rule vocabulary:
32
+ * frequency and interval do NOT affect materialization (ANCH1 §A2 measured
33
+ * interval 1 and interval 2 placing the first occurrence identically — "the
34
+ * interval only sets the CADENCE, not the anchor"), so they are not axes here.
35
+ *
36
+ * - `fixed` — a calendar rule (`afterCompletion: false`), including a
37
+ * deadline-bearing one: DACON1/NEXTPOP1 measured the deadline as a SHIFT of
38
+ * the dates the rule carries, not a change to whether an occurrence
39
+ * materializes, so it is not its own kind.
40
+ * - `fixed-preserved` — a fixed rule whose SOURCE was preserved by the app and
41
+ * relinked as the current-occurrence instance (SRCFATE's preserve triggers:
42
+ * a to-do deadline, a terminal element in the subtree, a project's nested
43
+ * repeater). The source's survival IS the materialization, which makes this
44
+ * a genuinely different cell from a plain fixed promote.
45
+ * - `after-completion` — a cursor-less rule (`afterCompletion: true`) whose
46
+ * next date is derived from each completion.
47
+ */
48
+ export type SpawnRuleKind = "fixed" | "fixed-preserved" | "after-completion";
49
+ /**
50
+ * Where the series' first occurrence falls relative to the local TODAY at
51
+ * promote time. `unknown` is the honest fallback for a promote whose first
52
+ * occurrence could not be read back (an undecodable rule, a missing cursor) —
53
+ * it asserts nothing rather than guessing.
54
+ */
55
+ export type AnchorRelation = "today" | "future" | "past" | "unknown";
56
+ /** Whether an instance row should exist the moment the promote returns. */
57
+ export type SpawnVerdict =
58
+ /** An instance MUST already exist — its absence is a real problem. */
59
+ "materialized"
60
+ /** No instance yet, and that is correct — the app mints it on the named date. */
61
+ | "pending"
62
+ /**
63
+ * No instance yet, and the date it appears is not knowable from the rule —
64
+ * an after-completion series with no cursor waits for a completion.
65
+ */
66
+ | "pending-until-completion"
67
+ /** The evidence does not pin this cell; assert nothing (see {@link AnchorRelation}). */
68
+ | "unpinned";
69
+ export interface SpawnExpectation {
70
+ verdict: SpawnVerdict;
71
+ /** The probe evidence pinning this cell — doc + section/cell id. */
72
+ evidence: string;
73
+ /** Why the app behaves this way, in one line. */
74
+ why: string;
75
+ }
76
+ /**
77
+ * EXHAUSTIVE over rule kind × anchor relation. Every cell carries a verdict and
78
+ * the campaign that measured it; the `unpinned` verdict is a first-class
79
+ * answer — the map says "we have not measured this" rather than inventing a
80
+ * behavior, and an unpinned cell asserts nothing at all.
81
+ */
82
+ export declare const SPAWN_EXPECTATIONS: Record<SpawnRuleKind, Record<AnchorRelation, SpawnExpectation>>;
83
+ /** The expectation for one cell. Total over both axes by construction. */
84
+ export declare function spawnExpectation(kind: SpawnRuleKind, relation: AnchorRelation): SpawnExpectation;
85
+ /**
86
+ * Which cell of the map a landed promote sits in.
87
+ *
88
+ * `preserved` is the SOURCE FATE the derivation already resolved (the source
89
+ * survived and relinked), not a guess from the rule — SRCFATE's triggers are
90
+ * structural, so the fate is read, never predicted.
91
+ */
92
+ export declare function spawnRuleKind(input: {
93
+ afterCompletion: boolean;
94
+ preserved: boolean;
95
+ }): SpawnRuleKind;
96
+ /**
97
+ * Where a first-occurrence date sits relative to today. Both dates are local
98
+ * ISO days, so the comparison is a plain string compare — no timezone
99
+ * arithmetic, and no "same day but different instant" ambiguity.
100
+ */
101
+ export declare function anchorRelation(firstOccurrence: IsoDate | null, todayIso: IsoDate): AnchorRelation;
102
+ /**
103
+ * The outcome of asserting the expectation against what was actually found.
104
+ * `id` is the disclosure id the caller routes through {@link disclose}, so the
105
+ * TIER of each outcome is decided in the registry, not here.
106
+ */
107
+ export type SpawnAssertion = {
108
+ id: "instance-pending";
109
+ text: string;
110
+ } | {
111
+ id: "instance-missing";
112
+ text: string;
113
+ } | {
114
+ id: "instance-unexpected";
115
+ text: string;
116
+ } | null;
117
+ /**
118
+ * ASSERT the spawn expectation. Returns the single disclosure this promote
119
+ * should carry about its instance, or `null` when there is nothing to say —
120
+ * which is the common case: the expectation was "materialized" and an instance
121
+ * was found, so the caller already holds it in `repeating.instanceUuid` and a
122
+ * line restating that would be noise.
123
+ *
124
+ * Mismatches are reported in BOTH directions, because both mean the series is
125
+ * not what the measured laws say it should be.
126
+ */
127
+ export declare function assertSpawnExpectation(input: {
128
+ kind: SpawnRuleKind;
129
+ relation: AnchorRelation;
130
+ /** The first-occurrence date the template carries, when readable. */
131
+ firstOccurrence: IsoDate | null;
132
+ todayIso: IsoDate;
133
+ /** Did the FK derivation find an instance row? */
134
+ found: boolean;
135
+ }): SpawnAssertion;