@tasksai/install 0.1.38 → 0.1.40
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 +34 -0
- package/bootstrap/Install RealtorTasksAI.command +37 -0
- package/bootstrap/Install RealtorTasksAI.ps1 +42 -0
- package/package.json +14 -3
- package/runtime/document_renderer.py +882 -0
- package/runtime/server.py +55 -581
- package/runtime/software_use.py +39 -0
- package/runtime/workflow-requirements.txt +5 -0
- package/runtime/workflows/__init__.py +0 -0
- package/runtime/workflows/account_snapshot.py +33 -0
- package/runtime/workflows/attachments.py +45 -0
- package/runtime/workflows/authority_guides.py +81 -0
- package/runtime/workflows/catalog.py +51 -0
- package/runtime/workflows/catalog_app.py +174 -0
- package/runtime/workflows/catalog_generation.py +186 -0
- package/runtime/workflows/catalog_output.py +312 -0
- package/runtime/workflows/catalog_suggestions.py +51 -0
- package/runtime/workflows/catalog_workspace.py +152 -0
- package/runtime/workflows/cli.py +66 -0
- package/runtime/workflows/document_answers.py +96 -0
- package/runtime/workflows/document_selection.py +50 -0
- package/runtime/workflows/documents.py +243 -0
- package/runtime/workflows/embedded/catalog.html +83 -0
- package/runtime/workflows/embedded/offer-review.html +516 -0
- package/runtime/workflows/embedded/preview.html +36 -0
- package/runtime/workflows/embedded_actions.py +96 -0
- package/runtime/workflows/embedded_demo.py +424 -0
- package/runtime/workflows/folders.py +120 -0
- package/runtime/workflows/gateway.py +157 -0
- package/runtime/workflows/generation_lock.py +26 -0
- package/runtime/workflows/launcher.py +61 -0
- package/runtime/workflows/licensed_delivery.py +46 -0
- package/runtime/workflows/mcp_dev.py +52 -0
- package/runtime/workflows/meeting_plan.py +92 -0
- package/runtime/workflows/model_client.py +26 -0
- package/runtime/workflows/numeric_consistency.py +72 -0
- package/runtime/workflows/public_source_fetch.py +66 -0
- package/runtime/workflows/realtor/__init__.py +0 -0
- package/runtime/workflows/realtor/adapter.py +179 -0
- package/runtime/workflows/realtor/seller_offer/ORIGIN.json +16 -0
- package/runtime/workflows/realtor/seller_offer/__init__.py +0 -0
- package/runtime/workflows/realtor/seller_offer/examples/demo-input.json +414 -0
- package/runtime/workflows/realtor/seller_offer/examples/make_demo.py +44 -0
- package/runtime/workflows/realtor/seller_offer/references/input-contract.md +65 -0
- package/runtime/workflows/realtor/seller_offer/references/source-boundaries.md +16 -0
- package/runtime/workflows/realtor/seller_offer/scripts/__init__.py +0 -0
- package/runtime/workflows/realtor/seller_offer/scripts/build_workbook.mjs +233 -0
- package/runtime/workflows/realtor/seller_offer/scripts/build_workbook.py +163 -0
- package/runtime/workflows/realtor/seller_offer/scripts/offer_engine.py +370 -0
- package/runtime/workflows/realtor/seller_offer/scripts/presentation.py +52 -0
- package/runtime/workflows/realtor/seller_offer/scripts/render_outputs.py +228 -0
- package/runtime/workflows/realtor/seller_offer/scripts/run_package.py +95 -0
- package/runtime/workflows/realtor/seller_offer/tests/test_engine.py +252 -0
- package/runtime/workflows/realtor/seller_offer/tests/test_workbook.mjs +28 -0
- package/runtime/workflows/realtor-release-registry.json +705 -0
- package/runtime/workflows/released_catalog.py +91 -0
- package/runtime/workflows/source_capture.py +82 -0
- package/runtime/workflows/store.py +492 -0
- package/runtime/workflows/table_calculations.py +132 -0
- package/runtime/workflows/template.py +65 -0
- package/runtime/workflows/workspace_launch.py +76 -0
- package/src/index.js +217 -118
- package/src/managed-python.js +63 -0
- package/src/operation-lock.js +22 -0
- package/src/prepared-update.js +86 -0
- package/src/private-workflow.js +116 -0
- package/src/python-runtime.js +50 -0
- package/src/recover-installation.js +30 -0
- package/src/recovery-lock.js +30 -0
- package/src/software-hash.js +24 -0
- package/src/software-use.js +32 -0
- package/src/update-journal.js +24 -0
- package/src/update-recovery.js +72 -0
- package/src/workspace-runtime.js +45 -0
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.0",
|
|
3
|
+
"case_id": "DEMO-001",
|
|
4
|
+
"as_of": "2026-09-09",
|
|
5
|
+
"currency": "USD",
|
|
6
|
+
"intent": "auto",
|
|
7
|
+
"example": true,
|
|
8
|
+
"context": {
|
|
9
|
+
"state": "Colorado",
|
|
10
|
+
"locality": "Not used for legal rules",
|
|
11
|
+
"brokerage": "Fictional demonstration brokerage",
|
|
12
|
+
"agency_role": "Listing-side preparation",
|
|
13
|
+
"reviewer": "Demo listing professional (fictional)"
|
|
14
|
+
},
|
|
15
|
+
"seller_priorities": [
|
|
16
|
+
{
|
|
17
|
+
"value": "Prefer closing by October 5; compare possession separately.",
|
|
18
|
+
"source_id": "SELLER",
|
|
19
|
+
"locator": "Timing preference",
|
|
20
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
21
|
+
"verified_on": "2026-09-09"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"value": "Compare proceeds and financing conditions without selecting an offer.",
|
|
25
|
+
"source_id": "SELLER",
|
|
26
|
+
"locator": "Decision instruction",
|
|
27
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
28
|
+
"verified_on": "2026-09-09"
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"sources": [
|
|
32
|
+
{
|
|
33
|
+
"id": "A",
|
|
34
|
+
"title": "Fictional Offer A term sheet",
|
|
35
|
+
"date": "2026-09-08"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "B",
|
|
39
|
+
"title": "Fictional Offer B term sheet",
|
|
40
|
+
"date": "2026-09-09"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"id": "COSTS",
|
|
44
|
+
"title": "Fictional seller cost and payoff worksheet",
|
|
45
|
+
"date": "2026-09-09"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "SELLER",
|
|
49
|
+
"title": "Fictional seller instructions",
|
|
50
|
+
"date": "2026-09-09"
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"offers": [
|
|
54
|
+
{
|
|
55
|
+
"id": "A",
|
|
56
|
+
"label": "Offer A",
|
|
57
|
+
"price": {
|
|
58
|
+
"value": "610000.00",
|
|
59
|
+
"source_id": "A",
|
|
60
|
+
"locator": "Price",
|
|
61
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
62
|
+
"verified_on": "2026-09-09"
|
|
63
|
+
},
|
|
64
|
+
"earnest_money": {
|
|
65
|
+
"value": "15000.00",
|
|
66
|
+
"source_id": "A",
|
|
67
|
+
"locator": "Earnest money",
|
|
68
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
69
|
+
"verified_on": "2026-09-09"
|
|
70
|
+
},
|
|
71
|
+
"terms": {
|
|
72
|
+
"financing": {
|
|
73
|
+
"value": "Conventional financing",
|
|
74
|
+
"source_id": "A",
|
|
75
|
+
"locator": "Financing",
|
|
76
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
77
|
+
"verified_on": "2026-09-09"
|
|
78
|
+
},
|
|
79
|
+
"financing_evidence": {
|
|
80
|
+
"value": "Document supplied; lender confirmation pending",
|
|
81
|
+
"source_id": "A",
|
|
82
|
+
"locator": "Financing evidence",
|
|
83
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
84
|
+
"verified_on": "2026-09-09"
|
|
85
|
+
},
|
|
86
|
+
"contingencies": {
|
|
87
|
+
"value": "Inspection and financing conditions supplied",
|
|
88
|
+
"source_id": "A",
|
|
89
|
+
"locator": "Contingencies",
|
|
90
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
91
|
+
"verified_on": "2026-09-09"
|
|
92
|
+
},
|
|
93
|
+
"closing": {
|
|
94
|
+
"value": "2026-10-02",
|
|
95
|
+
"source_id": "A",
|
|
96
|
+
"locator": "Closing",
|
|
97
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
98
|
+
"verified_on": "2026-09-09"
|
|
99
|
+
},
|
|
100
|
+
"possession": {
|
|
101
|
+
"value": "At closing, subject to recorded agreement",
|
|
102
|
+
"source_id": "A",
|
|
103
|
+
"locator": "Possession",
|
|
104
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
105
|
+
"verified_on": "2026-09-09"
|
|
106
|
+
},
|
|
107
|
+
"expiration": {
|
|
108
|
+
"value": "September 10 at 5 pm Mountain Time",
|
|
109
|
+
"source_id": "A",
|
|
110
|
+
"locator": "Response time",
|
|
111
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
112
|
+
"verified_on": "2026-09-09"
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
"costs": [
|
|
116
|
+
{
|
|
117
|
+
"id": "payoff",
|
|
118
|
+
"label": "Mortgage payoff",
|
|
119
|
+
"category": "payoff",
|
|
120
|
+
"direction": "deduction",
|
|
121
|
+
"payer": "seller",
|
|
122
|
+
"treatment": "base",
|
|
123
|
+
"amount": {
|
|
124
|
+
"kind": "fixed",
|
|
125
|
+
"value": "325000.00"
|
|
126
|
+
},
|
|
127
|
+
"source_id": "COSTS",
|
|
128
|
+
"locator": "Mortgage payoff",
|
|
129
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
130
|
+
"verified_on": "2026-09-09",
|
|
131
|
+
"payoff_basis": "payoff_quote",
|
|
132
|
+
"valid_through": "2026-10-10"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"id": "comp",
|
|
136
|
+
"label": "Agreed brokerage compensation",
|
|
137
|
+
"category": "compensation",
|
|
138
|
+
"direction": "deduction",
|
|
139
|
+
"payer": "seller",
|
|
140
|
+
"treatment": "base",
|
|
141
|
+
"amount": {
|
|
142
|
+
"kind": "percent",
|
|
143
|
+
"rate": "4.25"
|
|
144
|
+
},
|
|
145
|
+
"source_id": "COSTS",
|
|
146
|
+
"locator": "Agreed brokerage compensation",
|
|
147
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
148
|
+
"verified_on": "2026-09-09"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"id": "concession",
|
|
152
|
+
"label": "Seller closing credit",
|
|
153
|
+
"category": "seller_credit",
|
|
154
|
+
"direction": "deduction",
|
|
155
|
+
"payer": "seller",
|
|
156
|
+
"treatment": "base",
|
|
157
|
+
"amount": {
|
|
158
|
+
"kind": "fixed",
|
|
159
|
+
"value": "6000.00"
|
|
160
|
+
},
|
|
161
|
+
"source_id": "A",
|
|
162
|
+
"locator": "Seller closing credit",
|
|
163
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
164
|
+
"verified_on": "2026-09-09"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"id": "title",
|
|
168
|
+
"label": "Title and escrow estimate",
|
|
169
|
+
"category": "title_escrow",
|
|
170
|
+
"direction": "deduction",
|
|
171
|
+
"payer": "seller",
|
|
172
|
+
"treatment": "base",
|
|
173
|
+
"amount": {
|
|
174
|
+
"kind": "fixed",
|
|
175
|
+
"value": "2400.00"
|
|
176
|
+
},
|
|
177
|
+
"source_id": "COSTS",
|
|
178
|
+
"locator": "Title and escrow estimate",
|
|
179
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
180
|
+
"verified_on": "2026-09-09"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"id": "tax",
|
|
184
|
+
"label": "Supplied tax proration estimate",
|
|
185
|
+
"category": "tax_proration",
|
|
186
|
+
"direction": "deduction",
|
|
187
|
+
"payer": "seller",
|
|
188
|
+
"treatment": "base",
|
|
189
|
+
"amount": {
|
|
190
|
+
"kind": "fixed",
|
|
191
|
+
"value": "1850.00"
|
|
192
|
+
},
|
|
193
|
+
"source_id": "COSTS",
|
|
194
|
+
"locator": "Supplied tax proration estimate",
|
|
195
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
196
|
+
"verified_on": "2026-09-09"
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"id": "hoa",
|
|
200
|
+
"label": "Association transfer estimate",
|
|
201
|
+
"category": "hoa",
|
|
202
|
+
"direction": "deduction",
|
|
203
|
+
"payer": "seller",
|
|
204
|
+
"treatment": "base",
|
|
205
|
+
"amount": {
|
|
206
|
+
"kind": "fixed",
|
|
207
|
+
"value": "350.00"
|
|
208
|
+
},
|
|
209
|
+
"source_id": "COSTS",
|
|
210
|
+
"locator": "Association transfer estimate",
|
|
211
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
212
|
+
"verified_on": "2026-09-09"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"id": "other",
|
|
216
|
+
"label": "Other known seller costs",
|
|
217
|
+
"category": "other",
|
|
218
|
+
"direction": "deduction",
|
|
219
|
+
"payer": "seller",
|
|
220
|
+
"treatment": "base",
|
|
221
|
+
"amount": {
|
|
222
|
+
"kind": "fixed",
|
|
223
|
+
"value": "0.00"
|
|
224
|
+
},
|
|
225
|
+
"source_id": "COSTS",
|
|
226
|
+
"locator": "Other known seller costs",
|
|
227
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
228
|
+
"verified_on": "2026-09-09",
|
|
229
|
+
"note": "Fictional intake records explicitly identify no additional known seller costs; confirm before relying."
|
|
230
|
+
}
|
|
231
|
+
]
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"id": "B",
|
|
235
|
+
"label": "Offer B",
|
|
236
|
+
"price": {
|
|
237
|
+
"value": "605000.00",
|
|
238
|
+
"source_id": "B",
|
|
239
|
+
"locator": "Price",
|
|
240
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
241
|
+
"verified_on": "2026-09-09"
|
|
242
|
+
},
|
|
243
|
+
"earnest_money": {
|
|
244
|
+
"value": "15000.00",
|
|
245
|
+
"source_id": "B",
|
|
246
|
+
"locator": "Earnest money",
|
|
247
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
248
|
+
"verified_on": "2026-09-09"
|
|
249
|
+
},
|
|
250
|
+
"terms": {
|
|
251
|
+
"financing": {
|
|
252
|
+
"value": "Cash as stated in offer",
|
|
253
|
+
"source_id": "B",
|
|
254
|
+
"locator": "Financing",
|
|
255
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
256
|
+
"verified_on": "2026-09-09"
|
|
257
|
+
},
|
|
258
|
+
"financing_evidence": {
|
|
259
|
+
"value": "Document supplied; lender confirmation pending",
|
|
260
|
+
"source_id": "B",
|
|
261
|
+
"locator": "Financing evidence",
|
|
262
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
263
|
+
"verified_on": "2026-09-09"
|
|
264
|
+
},
|
|
265
|
+
"contingencies": {
|
|
266
|
+
"value": "Inspection condition supplied",
|
|
267
|
+
"source_id": "B",
|
|
268
|
+
"locator": "Contingencies",
|
|
269
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
270
|
+
"verified_on": "2026-09-09"
|
|
271
|
+
},
|
|
272
|
+
"closing": {
|
|
273
|
+
"value": "2026-10-05",
|
|
274
|
+
"source_id": "B",
|
|
275
|
+
"locator": "Closing",
|
|
276
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
277
|
+
"verified_on": "2026-09-09"
|
|
278
|
+
},
|
|
279
|
+
"possession": {
|
|
280
|
+
"value": "At closing, subject to recorded agreement",
|
|
281
|
+
"source_id": "B",
|
|
282
|
+
"locator": "Possession",
|
|
283
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
284
|
+
"verified_on": "2026-09-09"
|
|
285
|
+
},
|
|
286
|
+
"expiration": {
|
|
287
|
+
"value": "September 10 at 5 pm Mountain Time",
|
|
288
|
+
"source_id": "B",
|
|
289
|
+
"locator": "Response time",
|
|
290
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
291
|
+
"verified_on": "2026-09-09"
|
|
292
|
+
}
|
|
293
|
+
},
|
|
294
|
+
"costs": [
|
|
295
|
+
{
|
|
296
|
+
"id": "payoff",
|
|
297
|
+
"label": "Mortgage payoff",
|
|
298
|
+
"category": "payoff",
|
|
299
|
+
"direction": "deduction",
|
|
300
|
+
"payer": "seller",
|
|
301
|
+
"treatment": "base",
|
|
302
|
+
"amount": {
|
|
303
|
+
"kind": "fixed",
|
|
304
|
+
"value": "325000.00"
|
|
305
|
+
},
|
|
306
|
+
"source_id": "COSTS",
|
|
307
|
+
"locator": "Mortgage payoff",
|
|
308
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
309
|
+
"verified_on": "2026-09-09",
|
|
310
|
+
"payoff_basis": "payoff_quote",
|
|
311
|
+
"valid_through": "2026-10-10"
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
"id": "comp",
|
|
315
|
+
"label": "Agreed brokerage compensation",
|
|
316
|
+
"category": "compensation",
|
|
317
|
+
"direction": "deduction",
|
|
318
|
+
"payer": "seller",
|
|
319
|
+
"treatment": "base",
|
|
320
|
+
"amount": {
|
|
321
|
+
"kind": "percent",
|
|
322
|
+
"rate": "4.25"
|
|
323
|
+
},
|
|
324
|
+
"source_id": "COSTS",
|
|
325
|
+
"locator": "Agreed brokerage compensation",
|
|
326
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
327
|
+
"verified_on": "2026-09-09"
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"id": "concession",
|
|
331
|
+
"label": "Seller closing credit",
|
|
332
|
+
"category": "seller_credit",
|
|
333
|
+
"direction": "deduction",
|
|
334
|
+
"payer": "seller",
|
|
335
|
+
"treatment": "base",
|
|
336
|
+
"amount": {
|
|
337
|
+
"kind": "fixed",
|
|
338
|
+
"value": "2000.00"
|
|
339
|
+
},
|
|
340
|
+
"source_id": "B",
|
|
341
|
+
"locator": "Seller closing credit",
|
|
342
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
343
|
+
"verified_on": "2026-09-09"
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"id": "title",
|
|
347
|
+
"label": "Title and escrow estimate",
|
|
348
|
+
"category": "title_escrow",
|
|
349
|
+
"direction": "deduction",
|
|
350
|
+
"payer": "seller",
|
|
351
|
+
"treatment": "base",
|
|
352
|
+
"amount": {
|
|
353
|
+
"kind": "fixed",
|
|
354
|
+
"value": "2400.00"
|
|
355
|
+
},
|
|
356
|
+
"source_id": "COSTS",
|
|
357
|
+
"locator": "Title and escrow estimate",
|
|
358
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
359
|
+
"verified_on": "2026-09-09"
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
"id": "tax",
|
|
363
|
+
"label": "Supplied tax proration estimate",
|
|
364
|
+
"category": "tax_proration",
|
|
365
|
+
"direction": "deduction",
|
|
366
|
+
"payer": "seller",
|
|
367
|
+
"treatment": "base",
|
|
368
|
+
"amount": {
|
|
369
|
+
"kind": "fixed",
|
|
370
|
+
"value": "1850.00"
|
|
371
|
+
},
|
|
372
|
+
"source_id": "COSTS",
|
|
373
|
+
"locator": "Supplied tax proration estimate",
|
|
374
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
375
|
+
"verified_on": "2026-09-09"
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"id": "hoa",
|
|
379
|
+
"label": "Association transfer estimate",
|
|
380
|
+
"category": "hoa",
|
|
381
|
+
"direction": "deduction",
|
|
382
|
+
"payer": "unknown",
|
|
383
|
+
"treatment": "base",
|
|
384
|
+
"amount": {
|
|
385
|
+
"kind": "fixed",
|
|
386
|
+
"value": "350.00"
|
|
387
|
+
},
|
|
388
|
+
"source_id": "COSTS",
|
|
389
|
+
"locator": "Association transfer estimate",
|
|
390
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
391
|
+
"verified_on": "2026-09-09",
|
|
392
|
+
"note": "The fictional Offer B does not allocate this $350 charge. Show $0 to $350 seller impact separately."
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"id": "other",
|
|
396
|
+
"label": "Other known seller costs",
|
|
397
|
+
"category": "other",
|
|
398
|
+
"direction": "deduction",
|
|
399
|
+
"payer": "seller",
|
|
400
|
+
"treatment": "base",
|
|
401
|
+
"amount": {
|
|
402
|
+
"kind": "fixed",
|
|
403
|
+
"value": "0.00"
|
|
404
|
+
},
|
|
405
|
+
"source_id": "COSTS",
|
|
406
|
+
"locator": "Other known seller costs",
|
|
407
|
+
"verified_by": "Demo fixture checker (fictional)",
|
|
408
|
+
"verified_on": "2026-09-09",
|
|
409
|
+
"note": "Fictional intake records explicitly identify no additional known seller costs; confirm before relying."
|
|
410
|
+
}
|
|
411
|
+
]
|
|
412
|
+
}
|
|
413
|
+
]
|
|
414
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"""Internally authored fictional demonstration; not an independent test set."""
|
|
2
|
+
from copy import deepcopy
|
|
3
|
+
import json
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
import sys
|
|
6
|
+
|
|
7
|
+
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "scripts"))
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def demo():
|
|
11
|
+
def f(value, sid, loc):
|
|
12
|
+
return {"value": value, "source_id": sid, "locator": loc, "verified_by": "Demo fixture checker (fictional)", "verified_on": "2026-09-09"}
|
|
13
|
+
def cost(cid, label, cat, val, sid="COSTS", **kwargs):
|
|
14
|
+
row = {"id": cid, "label": label, "category": cat, "direction": "deduction", "payer": "seller", "treatment": "base", "amount": {"kind": "fixed", "value": val}, "source_id": sid, "locator": label, "verified_by": "Demo fixture checker (fictional)", "verified_on": "2026-09-09"}
|
|
15
|
+
row.update(kwargs)
|
|
16
|
+
return row
|
|
17
|
+
def offer(oid, price, credit, closing, finance, conditions):
|
|
18
|
+
return {"id": oid, "label": "Offer " + oid, "price": f(price,oid,"Price"), "earnest_money": f("15000.00",oid,"Earnest money"),
|
|
19
|
+
"terms": {"financing": f(finance,oid,"Financing"), "financing_evidence": f("Document supplied; lender confirmation pending",oid,"Financing evidence"), "contingencies": f(conditions,oid,"Contingencies"), "closing": f(closing,oid,"Closing"), "possession": f("At closing, subject to recorded agreement",oid,"Possession"), "expiration": f("September 10 at 5 pm Mountain Time",oid,"Response time")},
|
|
20
|
+
"costs": [cost("payoff","Mortgage payoff","payoff","325000.00", payoff_basis="payoff_quote",valid_through="2026-10-10"),
|
|
21
|
+
cost("comp","Agreed brokerage compensation","compensation",None,amount={"kind":"percent","rate":"4.25"}),
|
|
22
|
+
cost("concession","Seller closing credit","seller_credit",credit,sid=oid),
|
|
23
|
+
cost("title","Title and escrow estimate","title_escrow","2400.00"),
|
|
24
|
+
cost("tax","Supplied tax proration estimate","tax_proration","1850.00"),
|
|
25
|
+
cost("hoa","Association transfer estimate","hoa","350.00"),
|
|
26
|
+
cost("other","Other known seller costs","other","0.00",note="Fictional intake records explicitly identify no additional known seller costs; confirm before relying.") ]}
|
|
27
|
+
packet = {"schema_version":"1.0","case_id":"DEMO-001","as_of":"2026-09-09","currency":"USD","intent":"auto","example":True,
|
|
28
|
+
"context":{"state":"Colorado","locality":"Not used for legal rules","brokerage":"Fictional demonstration brokerage","agency_role":"Listing-side preparation","reviewer":"Demo listing professional (fictional)"},
|
|
29
|
+
"seller_priorities":[f("Prefer closing by October 5; compare possession separately.","SELLER","Timing preference"),f("Compare proceeds and financing conditions without selecting an offer.","SELLER","Decision instruction")],
|
|
30
|
+
"sources":[{"id":"A","title":"Fictional Offer A term sheet","date":"2026-09-08"}, {"id":"B","title":"Fictional Offer B term sheet","date":"2026-09-09"}, {"id":"COSTS","title":"Fictional seller cost and payoff worksheet","date":"2026-09-09"}, {"id":"SELLER","title":"Fictional seller instructions","date":"2026-09-09"}],
|
|
31
|
+
"offers":[offer("A","610000.00","6000.00","2026-10-02","Conventional financing","Inspection and financing conditions supplied"),offer("B","605000.00","2000.00","2026-10-05","Cash as stated in offer","Inspection condition supplied")]}
|
|
32
|
+
# A real uncertainty: payer of the association charge is not allocated.
|
|
33
|
+
for row in packet["offers"][1]["costs"]:
|
|
34
|
+
if row["id"] == "hoa":
|
|
35
|
+
row.update(payer="unknown", note="The fictional Offer B does not allocate this $350 charge. Show $0 to $350 seller impact separately.")
|
|
36
|
+
return packet
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
if __name__ == "__main__":
|
|
40
|
+
dest = Path(__file__).with_name("demo-input.json")
|
|
41
|
+
if dest.exists():
|
|
42
|
+
raise SystemExit("Demo input already exists; preserve it or choose a new fixture version.")
|
|
43
|
+
dest.write_text(json.dumps(demo(), indent=2) + "\n", encoding="utf-8")
|
|
44
|
+
print(dest)
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Input contract
|
|
2
|
+
|
|
3
|
+
Schema version `1.0`. `examples/demo-input.json` is a complete fictional example, not a default transaction. Unknown fields are null; do not use zero or made-up facts to pass validation. Unknown/unverified data is useful for a draft but cannot establish a complete estimate.
|
|
4
|
+
|
|
5
|
+
## Packet
|
|
6
|
+
|
|
7
|
+
Required: `schema_version`, `case_id` (letters, digits, underscore/hyphen, starting with a letter), `as_of` (YYYY-MM-DD), `currency` (USD), and `offers` (1-6). Supported `intent`: auto, estimate, compare, negotiate, legal, closing, buyer_offer. Non-calculation intents return only a handoff. `example` must be true only for fictional demonstrations.
|
|
8
|
+
|
|
9
|
+
`context` contains state, locality, brokerage, agency_role, reviewer. Unknown context may remain null; variable requirements are not inferred. `seller_priorities` is a list of sourced facts, not automatic weights.
|
|
10
|
+
|
|
11
|
+
`sources` contains unique id, title, date (original document date or null), and optional text. `as_of` is a reporting cutoff, not a substitute for the source date. Optional source text is used only for literal quote matching and is not executed. The engine does not certify document authenticity, completeness, page references, or whether a quoted statement proves the extracted value.
|
|
12
|
+
|
|
13
|
+
## Facts
|
|
14
|
+
|
|
15
|
+
Every price, deposit, term, and seller priority is an object containing:
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{"value":"610000.00","source_id":"A","locator":"Price, section 2","verified_by":null,"verified_on":null}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
`quote` is optional. If provided, it must be an exact substring of the supplied source text to pass reference checks. A verifier and date must occur together. A confirmed field requires a dated, identified source and a separately identified verifier. No automatic professional verification occurs.
|
|
22
|
+
|
|
23
|
+
Money is a nonnegative decimal string with at most two decimal places, no commas or currency signs. Results may be negative. Floating-point JSON money values, scientific notation, NaN, and excess cents are rejected. Rates are decimal strings in percent points, from 0 through 100, at most six fractional places. There is no default compensation rate.
|
|
24
|
+
|
|
25
|
+
## Offers
|
|
26
|
+
|
|
27
|
+
Each offer has unique id, neutral label, price fact, earnest_money fact, terms, and costs. `terms` has financing, financing_evidence, contingencies, closing (YYYY-MM-DD), possession, expiration. All are sourced facts. Expiration remains supplied text: the engine does not calculate legal response deadlines, determine time zones, or conclude enforceability. A missing term means unknown, not waived.
|
|
28
|
+
|
|
29
|
+
`claimed_net` is an optional sourced amount from a prior worksheet. Differences from the newly computed known subtotal enter the review queue; the engine does not adopt the old figure.
|
|
30
|
+
|
|
31
|
+
## Seller costs
|
|
32
|
+
|
|
33
|
+
Every line has unique id, label, category, direction, payer, treatment, amount, source_id and locator. Verification fields and quote work like other facts.
|
|
34
|
+
|
|
35
|
+
- Categories: payoff, compensation, seller_credit, title_escrow, tax_proration, hoa, other. These are review buckets, not universal charges or an exhaustive legal checklist. Any absent bucket is unreviewed. A sourced explicit zero or supported exclusion can account for it.
|
|
36
|
+
- Direction: deduction or credit. Magnitudes are nonnegative. Incoming seller credits need an explanatory basis.
|
|
37
|
+
- Payer: seller, buyer, unknown. For this calculator, seller designates an adjustment in the seller's proceeds calculation; buyer designates a buyer-only charge excluded from that calculation. Explain any incoming seller credit in the note. Do not encode a buyer-funded seller receipt as an excluded buyer-only charge.
|
|
38
|
+
- Treatment: base, conditional, excluded. An unknown allocation or conditional amount is excluded from the base and modeled separately as a $0-to-amount effect. Supported buyer-only or excluded items do not affect proceeds.
|
|
39
|
+
- `note` is mandatory for credits, non-seller allocations, conditions, exclusions, and per-diem calculations. It records the factual or scenario basis, not legal approval.
|
|
40
|
+
|
|
41
|
+
Amount shapes:
|
|
42
|
+
|
|
43
|
+
```json
|
|
44
|
+
{"kind":"fixed","value":"2400.00"}
|
|
45
|
+
{"kind":"percent","rate":"4.25"}
|
|
46
|
+
{"kind":"per_diem","daily_rate":"34.25","days":7}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The percent example is fictional, not customary or required compensation. Percent lines multiply offer price. Per-diem days must be expressly supplied with the basis identified in the note; the engine never invents an interest rate or day-count convention. Null values remain unknown.
|
|
50
|
+
|
|
51
|
+
Payoff lines additionally require `payoff_basis`: payoff_quote, balance_only, no_debt_confirmed, or unknown. Quotes need `valid_through` covering the proposed closing; otherwise the figure remains provisional. A balance-only figure is never converted into a payoff quote. `no_debt_confirmed` requires a sourced zero. Ask the settlement professional to reconcile liens, fees and date coverage.
|
|
52
|
+
|
|
53
|
+
## Calculation and output meaning
|
|
54
|
+
|
|
55
|
+
Base known subtotal = supplied price + base credits - base seller deductions. Each percentage or daily line is rounded to cents before summing, using half-up rounding. This is an explicit package convention; reconcile any controlling settlement convention separately.
|
|
56
|
+
|
|
57
|
+
Conditional low/high = known subtotal plus possible negative/positive effects from listed, quantified conditional items. Missing financial inputs or unreviewed categories mean no complete finite range is established. Source uncertainties can remain even when the mathematical range is finite. A range is not a confidence interval or probability distribution.
|
|
58
|
+
|
|
59
|
+
The calculator can check duplicated IDs/identical lines, numeric types, signs, source references, confirmation metadata and date coverage. It cannot detect all semantic duplicate charges or wrong extractions. A professional must reconcile the actual documents.
|
|
60
|
+
|
|
61
|
+
## Files and permissions
|
|
62
|
+
|
|
63
|
+
The input stays in its existing location. Outputs contain confidential transaction information and should be kept in a customer-selected private folder. The scripts do not upload it. AI-assisted extraction, if used, follows that host/model provider's privacy terms; local calculation does not make an earlier cloud model call local.
|
|
64
|
+
|
|
65
|
+
A successful run writes result.json, report.html, report.md, optional seller-briefing.docx and seller-comparison.xlsx, and run-manifest.json. The manifest records hashes, elapsed preparation time, and zero script API calls. It does not measure human preparation or review time. Handoff-only runs write no spreadsheet or Word comparison.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Source boundaries and evidence register
|
|
2
|
+
|
|
3
|
+
Reviewed by the authoring assistant on September 9, 2026. This is current-source research for a local pilot, not independent professional validation or an activated jurisdiction pack.
|
|
4
|
+
|
|
5
|
+
| Source | Supported design decision | Date and limitation | Refresh |
|
|
6
|
+
|---|---|---|---|
|
|
7
|
+
| CFPB, What is a payoff amount and is it the same as my current balance? https://www.consumerfinance.gov/ask-cfpb/what-is-a-payoff-amount-and-is-it-the-same-as-my-current-balance-en-205/ | Keep account balances separate from date-specific payoff amounts; do not invent interest or other fees. | Reviewed by CFPB August 28, 2026; retrieved September 9, 2026. Consumer guidance, not a transaction-specific payoff quote. | Recheck before release and by December 8, 2026. |
|
|
8
|
+
| NAR 2026 Code of Ethics and Standards of Practice https://www.nar.realtor/about-nar/governing-documents/code-of-ethics/2026-code-of-ethics-standards-of-practice | Preserve client confidentiality; do not imply permission to disclose offers; do not apply a universal compensation rate. | Effective January 1, 2026; retrieved September 9, 2026. Member ethics standards, not universal state law. See Article 1 and Standards of Practice 1-9, 1-12 and 1-15. | Recheck before release and by December 8, 2026. |
|
|
9
|
+
|
|
10
|
+
No state, county, municipal, MLS, association, brokerage, approved-form or transaction-specific legal coverage is claimed. The fictional Colorado label in the demo is context only; it does not establish reviewed Colorado coverage.
|
|
11
|
+
|
|
12
|
+
Any later jurisdiction integration must use the exact product + skill + jurisdiction + local overlay + version + release/review/refresh dates. A ready pack for another skill is not coverage here. Preserve provisional and unavailable labels. Send a resolver only general authority labels and the exact skill ID, never client facts, source documents, generated work or credentials.
|
|
13
|
+
|
|
14
|
+
The package never sets a legal deadline, declares a contingency waived, decides enforceability, approves a buyer, reproduces proprietary forms, or determines the seller's choice. Obtain the appropriate professional review. If future form support is requested, require form name, publisher, exact edition/revision and language; a generic “current form” is insufficient.
|
|
15
|
+
|
|
16
|
+
The financial review buckets and half-up rounding convention are package design choices, not claims from the cited sources. They do not establish exhaustive charges, universal allocation, or settlement accuracy.
|
|
File without changes
|