@wirecat/cli-memo 0.131.28 → 0.131.30
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/dist/bin/memo.js +2 -2
- package/dist/bundle/{all-profiles-5T23TSLS.js → all-profiles-4XCG2A54.js} +5 -5
- package/dist/bundle/{anthropic-AKD5CPO6.js → anthropic-MAVIW4DJ.js} +3 -3
- package/dist/bundle/{app-server-NE7EMWAU.js → app-server-LGSYLIB3.js} +35 -35
- package/dist/bundle/auto-72Y6UJWK.js +86 -0
- package/dist/bundle/{bun-MWSCIVYY.js → bun-XWUEHWDW.js} +2 -2
- package/dist/bundle/{bun-sqlite-K2OK3SS6.js → bun-sqlite-OSAC45TI.js} +2 -2
- package/dist/bundle/{chunk-MMQ3PNY2.js → chunk-2NEXX3EI.js} +1 -1
- package/dist/bundle/{chunk-BRYOBI2N.js → chunk-3DXTHN5C.js} +7 -7
- package/dist/bundle/{chunk-BWHPJFJQ.js → chunk-3V5JXPGK.js} +1 -1
- package/dist/bundle/{chunk-2JM3HWSF.js → chunk-5CKE7LAP.js} +1 -1
- package/dist/bundle/{chunk-SS6NIBT3.js → chunk-5R3OXHIN.js} +1 -1
- package/dist/bundle/{chunk-R2YCDWZB.js → chunk-6SE6ZDBF.js} +1 -1
- package/dist/bundle/{chunk-3NERKJCL.js → chunk-6ZVN4S36.js} +2 -2
- package/dist/bundle/{chunk-6GF5XTEK.js → chunk-76MMXZ3W.js} +4 -4
- package/dist/bundle/{chunk-EKSAED2S.js → chunk-7VJZKUN3.js} +9 -9
- package/dist/bundle/{chunk-JVJSEZRZ.js → chunk-B6S42B6J.js} +11 -11
- package/dist/bundle/{chunk-7UZF7FFF.js → chunk-CNAOMV43.js} +1 -1
- package/dist/bundle/{chunk-ZAHUDQE4.js → chunk-CYUP7HQG.js} +421 -360
- package/dist/bundle/{chunk-HMZLIJZI.js → chunk-D6BK3H4D.js} +4 -4
- package/dist/bundle/{chunk-LCU6HHIT.js → chunk-DIQAOLWH.js} +1 -1
- package/dist/bundle/{chunk-TPRGT6QU.js → chunk-DIT5NA73.js} +5 -5
- package/dist/bundle/{chunk-NSU2QZ2Y.js → chunk-DYNSZDXG.js} +20 -20
- package/dist/bundle/{chunk-N3YOSX2R.js → chunk-EEKOBGQ7.js} +1 -1
- package/dist/bundle/{chunk-4BUJ4P4V.js → chunk-EJZKYJKO.js} +2 -2
- package/dist/bundle/{chunk-L2AJTH4B.js → chunk-GACW4GZZ.js} +4 -4
- package/dist/bundle/{chunk-L32UNV6A.js → chunk-GN3U74DV.js} +12 -12
- package/dist/bundle/{chunk-TOCIBRXE.js → chunk-GSCFCNGO.js} +7 -7
- package/dist/bundle/{chunk-SUWRZHLN.js → chunk-GW2KCP4G.js} +27 -27
- package/dist/bundle/{chunk-5VD4BWQ5.js → chunk-H52RNBPU.js} +2 -2
- package/dist/bundle/{chunk-JXPSZJRX.js → chunk-HWJHWNBW.js} +3 -3
- package/dist/bundle/{chunk-HG2ZICMV.js → chunk-IIXZMACE.js} +15 -10
- package/dist/bundle/{chunk-UQVZIZ3X.js → chunk-JHLGFPMK.js} +2 -2
- package/dist/bundle/{chunk-7STRA63S.js → chunk-K6Z6B2CW.js} +10 -10
- package/dist/bundle/{chunk-ZLTARJG7.js → chunk-KJE2KFYH.js} +198 -52
- package/dist/bundle/{chunk-25IIXY5K.js → chunk-M3REIIOH.js} +1 -1
- package/dist/bundle/{chunk-GYQQZAPM.js → chunk-MHHLYRRD.js} +1 -1
- package/dist/bundle/{chunk-QM7JJICP.js → chunk-MLDBSKW6.js} +8 -8
- package/dist/bundle/{chunk-BWH7HBVK.js → chunk-N4AWIP4D.js} +5 -5
- package/dist/bundle/{chunk-GR4Z3X3R.js → chunk-NUEIRBKY.js} +1 -1
- package/dist/bundle/{chunk-KNAXSFFK.js → chunk-PJM4QQBT.js} +2 -2
- package/dist/bundle/{chunk-5FTTDKHU.js → chunk-Q3XFJOAY.js} +1 -1
- package/dist/bundle/{chunk-IPVYKIDQ.js → chunk-QQBRNKHQ.js} +51 -50
- package/dist/bundle/{chunk-WF5E3GTN.js → chunk-RCPP2Q5O.js} +6 -6
- package/dist/bundle/{chunk-EDGK35LX.js → chunk-RUWY43XR.js} +252 -246
- package/dist/bundle/{chunk-52DNGWWV.js → chunk-S34FLB7K.js} +2 -2
- package/dist/bundle/{chunk-GOZXK5ZB.js → chunk-SIY75R4D.js} +5 -5
- package/dist/bundle/{chunk-LYBA6YTS.js → chunk-SQHIXN2N.js} +2 -2
- package/dist/bundle/{chunk-RQ37GH4Q.js → chunk-TIQUMRSO.js} +215 -151
- package/dist/bundle/{chunk-7XJX6KV7.js → chunk-TIU2N2SP.js} +20 -20
- package/dist/bundle/{chunk-DFSJNUV3.js → chunk-U5PEYBQT.js} +4 -4
- package/dist/bundle/{chunk-TZQBS2W6.js → chunk-U6NL7SAX.js} +5 -5
- package/dist/bundle/{chunk-FXUDATZI.js → chunk-UBYCWQSV.js} +4 -4
- package/dist/bundle/{chunk-7VIPLKQY.js → chunk-UGV57SZH.js} +1 -1
- package/dist/bundle/{chunk-C6A2FRMX.js → chunk-USLIHXWA.js} +3 -3
- package/dist/bundle/{chunk-3NCXHUGK.js → chunk-UVO7UNYH.js} +1 -1
- package/dist/bundle/{chunk-FAMGHE4L.js → chunk-UXGQXP5U.js} +3 -3
- package/dist/bundle/{chunk-P6KGH4HJ.js → chunk-VDGKBAS2.js} +1039 -671
- package/dist/bundle/{chunk-YS26XHBU.js → chunk-WUV5O5HN.js} +4 -4
- package/dist/bundle/{chunk-2O34ULVN.js → chunk-XDQIJSJE.js} +1 -1
- package/dist/bundle/{chunk-ZJO43QQG.js → chunk-XV7YW65Y.js} +4 -4
- package/dist/bundle/{chunk-WXMIDNA5.js → chunk-YJSCSLAT.js} +3 -3
- package/dist/bundle/{chunk-4ETZKMSQ.js → chunk-YUEAM6ZP.js} +7 -7
- package/dist/bundle/{chunk-CUUQ5SGZ.js → chunk-Z7J7SVZJ.js} +1 -1
- package/dist/bundle/{command-contract-YR55Y4J2.js → command-contract-ZLDRM6DG.js} +11 -11
- package/dist/bundle/{decode-KGZGT6YR.js → decode-Y2DWOSOW.js} +2 -2
- package/dist/bundle/{echarts-ZVR7COJR.js → echarts-2ZHQHZ4R.js} +2 -2
- package/dist/bundle/{embed-E3SYH7BI.js → embed-JEER47U6.js} +3 -3
- package/dist/bundle/{embedder-2OGNW5GQ.js → embedder-BJQEGCE5.js} +6 -6
- package/dist/bundle/{entry-ZVAL5NC5.js → entry-YKH7GAX7.js} +4 -4
- package/dist/bundle/failure-JE2JCLGO.js +66 -0
- package/dist/bundle/{first-run-IH2OAKCU.js → first-run-ESH5B55J.js} +5 -5
- package/dist/bundle/{first-screen-HLMFDOCL.js → first-screen-RTATNK4S.js} +12 -12
- package/dist/bundle/{instructions-BQO5IVUS.js → instructions-NJYYRMYK.js} +1 -1
- package/dist/bundle/{mcp-JQ6WGHBL.js → mcp-ZRKYZLNM.js} +35 -35
- package/dist/bundle/memo.js +6 -6
- package/dist/bundle/{node-SESRJP6V.js → node-DBNZMTJO.js} +2 -2
- package/dist/bundle/{node-sqlite-E6WGF6VQ.js → node-sqlite-CCNVCZSG.js} +3 -3
- package/dist/bundle/{oauth-5XEPM7P2.js → oauth-UV7KBQFP.js} +4 -4
- package/dist/bundle/{open-ORDS45GQ.js → open-VTOLLLS4.js} +2 -2
- package/dist/bundle/{openai-IWEPM3B7.js → openai-RTJNHBCG.js} +7 -7
- package/dist/bundle/{process-EVTLTA56.js → process-TAFRBB53.js} +1 -1
- package/dist/bundle/{program-QJOC2VHS.js → program-4UU6HJQM.js} +223 -110
- package/dist/bundle/{prompt-GSBAQBKX.js → prompt-ESMCTEJI.js} +2 -2
- package/dist/bundle/{recognize-D5ZG7KRK.js → recognize-V53GEY6R.js} +1 -1
- package/dist/bundle/{remote-Q5KOZYAA.js → remote-KGKRAGA6.js} +4 -4
- package/dist/bundle/{rerank-BDBJYOQV.js → rerank-DTD24I7Y.js} +4 -4
- package/dist/bundle/{serve-JR7XMZ4X.js → serve-2DVSIKM7.js} +6 -6
- package/dist/bundle/server-ODWZJIRX.js +48 -0
- package/dist/bundle/{server-RWZYJVLZ.js → server-UBMV5OI7.js} +50 -50
- package/dist/bundle/server-V5YRZZID.js +61 -0
- package/dist/bundle/{state-WTKI4AQ7.js → state-ONT6T6PY.js} +3 -3
- package/dist/bundle/{store-XMGQNBP3.js → store-TOYBDMML.js} +9 -9
- package/dist/bundle/store-maintenance-command-HIMIMWFU.js +48 -0
- package/dist/bundle/update-AO5UWEBY.js +69 -0
- package/dist/discovery/command.d.ts.map +1 -1
- package/dist/discovery/command.js +1 -0
- package/dist/discovery/command.js.map +1 -1
- package/dist/examples.d.ts.map +1 -1
- package/dist/examples.js +7 -0
- package/dist/examples.js.map +1 -1
- package/dist/finance/command.d.ts.map +1 -1
- package/dist/finance/command.js +13 -0
- package/dist/finance/command.js.map +1 -1
- package/dist/finance/orders-command.d.ts +12 -0
- package/dist/finance/orders-command.d.ts.map +1 -0
- package/dist/finance/orders-command.js +92 -0
- package/dist/finance/orders-command.js.map +1 -0
- package/dist/mail/findings-command.d.ts.map +1 -1
- package/dist/mail/findings-command.js +7 -2
- package/dist/mail/findings-command.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +30 -0
- package/dist/program.js.map +1 -1
- package/dist/review/kinds.d.ts +1 -1
- package/dist/review/kinds.d.ts.map +1 -1
- package/dist/review/kinds.js +1 -0
- package/dist/review/kinds.js.map +1 -1
- package/dist/review/review.d.ts.map +1 -1
- package/dist/review/review.js +1 -0
- package/dist/review/review.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
- package/skills/mail-triage/SKILL.md +30 -4
- package/dist/bundle/auto-UI3T442Q.js +0 -86
- package/dist/bundle/failure-62K4QAPV.js +0 -66
- package/dist/bundle/server-EWORQZZB.js +0 -48
- package/dist/bundle/server-HHTRVQYX.js +0 -61
- package/dist/bundle/store-maintenance-command-EY5EIO2H.js +0 -48
- package/dist/bundle/update-CUBOZISO.js +0 -69
- /package/dist/bundle/{chunk-3HNCLKYR.js → chunk-G6I5A2N3.js} +0 -0
|
@@ -6,17 +6,17 @@ import {
|
|
|
6
6
|
autoState,
|
|
7
7
|
lastAutoRun,
|
|
8
8
|
recordAutoRun
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-U5PEYBQT.js";
|
|
10
10
|
import {
|
|
11
11
|
installer,
|
|
12
12
|
latest,
|
|
13
13
|
upgradeCommand
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-U6NL7SAX.js";
|
|
15
15
|
import {
|
|
16
16
|
mcpOwnerAllowed,
|
|
17
17
|
readOnlyAvailability,
|
|
18
18
|
refuseWritesUnderLock
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-N4AWIP4D.js";
|
|
20
20
|
import {
|
|
21
21
|
answers,
|
|
22
22
|
atDetail as atDetail2,
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
trackAnswers,
|
|
27
27
|
wholeList,
|
|
28
28
|
withStore
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-XV7YW65Y.js";
|
|
30
30
|
import {
|
|
31
31
|
DIALECTS,
|
|
32
32
|
MEMO_SETTINGS,
|
|
@@ -45,15 +45,15 @@ import {
|
|
|
45
45
|
scheduleLimits,
|
|
46
46
|
unsetConfigKey,
|
|
47
47
|
updateConfig
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-GACW4GZZ.js";
|
|
49
49
|
import "./chunk-QP3KNC5D.js";
|
|
50
|
-
import "./chunk-
|
|
51
|
-
import "./chunk-
|
|
52
|
-
import "./chunk-
|
|
50
|
+
import "./chunk-SQHIXN2N.js";
|
|
51
|
+
import "./chunk-GSCFCNGO.js";
|
|
52
|
+
import "./chunk-USLIHXWA.js";
|
|
53
53
|
import {
|
|
54
54
|
errorObject,
|
|
55
55
|
recognisable
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-UXGQXP5U.js";
|
|
57
57
|
import {
|
|
58
58
|
DISCOVERY_DESCRIPTIONS,
|
|
59
59
|
SUMMARY_UNTRUSTED,
|
|
@@ -100,9 +100,9 @@ import {
|
|
|
100
100
|
tasksStatsCommand,
|
|
101
101
|
unansweredHours,
|
|
102
102
|
withSqliteSidecars
|
|
103
|
-
} from "./chunk-
|
|
104
|
-
import "./chunk-
|
|
105
|
-
import "./chunk-
|
|
103
|
+
} from "./chunk-RUWY43XR.js";
|
|
104
|
+
import "./chunk-2NEXX3EI.js";
|
|
105
|
+
import "./chunk-5CKE7LAP.js";
|
|
106
106
|
import {
|
|
107
107
|
MAIL_HIT_UNTRUSTED,
|
|
108
108
|
allHitItem,
|
|
@@ -112,21 +112,21 @@ import {
|
|
|
112
112
|
noteHitItem,
|
|
113
113
|
offsetOf,
|
|
114
114
|
shownOf
|
|
115
|
-
} from "./chunk-
|
|
116
|
-
import "./chunk-
|
|
115
|
+
} from "./chunk-DYNSZDXG.js";
|
|
116
|
+
import "./chunk-NUEIRBKY.js";
|
|
117
117
|
import {
|
|
118
118
|
SKILL_TARGETS,
|
|
119
119
|
skillCommand,
|
|
120
120
|
skillPath,
|
|
121
121
|
skillVersion
|
|
122
|
-
} from "./chunk-
|
|
122
|
+
} from "./chunk-IIXZMACE.js";
|
|
123
123
|
import {
|
|
124
124
|
messageItem,
|
|
125
125
|
modelGateway,
|
|
126
126
|
storeInfo,
|
|
127
127
|
storeSummary
|
|
128
|
-
} from "./chunk-
|
|
129
|
-
import "./chunk-
|
|
128
|
+
} from "./chunk-QQBRNKHQ.js";
|
|
129
|
+
import "./chunk-TIU2N2SP.js";
|
|
130
130
|
import {
|
|
131
131
|
AGENDA_DEFAULTS,
|
|
132
132
|
DEFAULT_BACKEND,
|
|
@@ -192,18 +192,18 @@ import {
|
|
|
192
192
|
termField,
|
|
193
193
|
typedQuery,
|
|
194
194
|
withQuery
|
|
195
|
-
} from "./chunk-
|
|
195
|
+
} from "./chunk-CYUP7HQG.js";
|
|
196
196
|
import {
|
|
197
197
|
readBoundedUtf8File,
|
|
198
198
|
writeFileAtomic
|
|
199
|
-
} from "./chunk-
|
|
199
|
+
} from "./chunk-GN3U74DV.js";
|
|
200
200
|
import {
|
|
201
201
|
commandsText,
|
|
202
202
|
inSection,
|
|
203
203
|
installHelp
|
|
204
|
-
} from "./chunk-
|
|
204
|
+
} from "./chunk-RCPP2Q5O.js";
|
|
205
205
|
import "./chunk-HTQTIKWP.js";
|
|
206
|
-
import "./chunk-
|
|
206
|
+
import "./chunk-6ZVN4S36.js";
|
|
207
207
|
import {
|
|
208
208
|
Command,
|
|
209
209
|
FETCH,
|
|
@@ -244,35 +244,31 @@ import {
|
|
|
244
244
|
text,
|
|
245
245
|
time,
|
|
246
246
|
untrusted
|
|
247
|
-
} from "./chunk-
|
|
248
|
-
import "./chunk-
|
|
249
|
-
import "./chunk-
|
|
247
|
+
} from "./chunk-TIQUMRSO.js";
|
|
248
|
+
import "./chunk-3DXTHN5C.js";
|
|
249
|
+
import "./chunk-K6Z6B2CW.js";
|
|
250
250
|
import {
|
|
251
251
|
isNewer
|
|
252
252
|
} from "./chunk-I7PL5WX2.js";
|
|
253
253
|
import "./chunk-YPF6OS37.js";
|
|
254
|
-
import "./chunk-
|
|
255
|
-
import "./chunk-
|
|
254
|
+
import "./chunk-YJSCSLAT.js";
|
|
255
|
+
import "./chunk-7VJZKUN3.js";
|
|
256
256
|
import {
|
|
257
257
|
mailHolderVariable,
|
|
258
258
|
readOnlyLockOf
|
|
259
|
-
} from "./chunk-
|
|
260
|
-
import "./chunk-
|
|
259
|
+
} from "./chunk-CNAOMV43.js";
|
|
260
|
+
import "./chunk-76MMXZ3W.js";
|
|
261
261
|
import {
|
|
262
262
|
releaseLock,
|
|
263
263
|
takeLock
|
|
264
|
-
} from "./chunk-
|
|
265
|
-
import "./chunk-
|
|
264
|
+
} from "./chunk-S34FLB7K.js";
|
|
265
|
+
import "./chunk-EEKOBGQ7.js";
|
|
266
266
|
import {
|
|
267
267
|
EVIDENCE_FINDINGS_KIND,
|
|
268
|
-
FINANCE_REVIEWS,
|
|
269
|
-
INVOICE_DIRECTIONS,
|
|
270
|
-
INVOICE_STATUSES,
|
|
271
268
|
MAIL_FINDINGS_KIND,
|
|
272
269
|
MAX_FILE_BYTES,
|
|
273
270
|
MENTION_QUERY,
|
|
274
271
|
MESSAGE_PARSING,
|
|
275
|
-
MONEY_DIRECTIONS,
|
|
276
272
|
ORGANIZATION_KINDS,
|
|
277
273
|
PROJECT_ANNOTATIONS_MAX_BYTES,
|
|
278
274
|
PROJECT_TASK_FIELDS,
|
|
@@ -293,8 +289,6 @@ import {
|
|
|
293
289
|
isFolderProvider,
|
|
294
290
|
looksLikeReference,
|
|
295
291
|
mailOwnText,
|
|
296
|
-
minorUnits,
|
|
297
|
-
moneyOf,
|
|
298
292
|
openOf,
|
|
299
293
|
openStore,
|
|
300
294
|
parseLocator,
|
|
@@ -303,14 +297,20 @@ import {
|
|
|
303
297
|
queryFilter,
|
|
304
298
|
refLabel,
|
|
305
299
|
validateFields
|
|
306
|
-
} from "./chunk-
|
|
300
|
+
} from "./chunk-VDGKBAS2.js";
|
|
307
301
|
import {
|
|
308
302
|
FACT_STATUSES,
|
|
309
303
|
FACT_TYPES,
|
|
304
|
+
FINANCE_REVIEWS,
|
|
305
|
+
INVOICE_DIRECTIONS,
|
|
306
|
+
INVOICE_STATUSES,
|
|
310
307
|
MEETING_FINDINGS_KIND,
|
|
311
308
|
MEMORY_KINDS,
|
|
312
309
|
MEMORY_SCOPES,
|
|
313
310
|
MEMORY_STATUSES,
|
|
311
|
+
MONEY_DIRECTIONS,
|
|
312
|
+
ORDER_PURPOSES,
|
|
313
|
+
ORDER_STATUSES,
|
|
314
314
|
PRIORITY_LABELS,
|
|
315
315
|
TASK_STATES,
|
|
316
316
|
TASK_TYPES,
|
|
@@ -320,6 +320,8 @@ import {
|
|
|
320
320
|
defineQuery,
|
|
321
321
|
isClosedState,
|
|
322
322
|
meetingHitsList,
|
|
323
|
+
minorUnits,
|
|
324
|
+
moneyOf,
|
|
323
325
|
normalizeTag,
|
|
324
326
|
parseLucene,
|
|
325
327
|
parseMeetingReference,
|
|
@@ -330,22 +332,22 @@ import {
|
|
|
330
332
|
timezoneOf,
|
|
331
333
|
validateQuery,
|
|
332
334
|
walkQuery
|
|
333
|
-
} from "./chunk-
|
|
334
|
-
import "./chunk-
|
|
335
|
-
import "./chunk-
|
|
336
|
-
import "./chunk-
|
|
337
|
-
import "./chunk-
|
|
338
|
-
import "./chunk-
|
|
339
|
-
import "./chunk-
|
|
340
|
-
import "./chunk-
|
|
341
|
-
import "./chunk-
|
|
342
|
-
import "./chunk-
|
|
335
|
+
} from "./chunk-KJE2KFYH.js";
|
|
336
|
+
import "./chunk-Q3XFJOAY.js";
|
|
337
|
+
import "./chunk-YUEAM6ZP.js";
|
|
338
|
+
import "./chunk-UBYCWQSV.js";
|
|
339
|
+
import "./chunk-H52RNBPU.js";
|
|
340
|
+
import "./chunk-MHHLYRRD.js";
|
|
341
|
+
import "./chunk-3V5JXPGK.js";
|
|
342
|
+
import "./chunk-UGV57SZH.js";
|
|
343
|
+
import "./chunk-JHLGFPMK.js";
|
|
344
|
+
import "./chunk-DIT5NA73.js";
|
|
343
345
|
import {
|
|
344
346
|
sharedModelsDirectory
|
|
345
|
-
} from "./chunk-
|
|
347
|
+
} from "./chunk-HWJHWNBW.js";
|
|
346
348
|
import {
|
|
347
349
|
storePath
|
|
348
|
-
} from "./chunk-
|
|
350
|
+
} from "./chunk-DIQAOLWH.js";
|
|
349
351
|
import {
|
|
350
352
|
provideTerminal,
|
|
351
353
|
terminalOf
|
|
@@ -355,12 +357,12 @@ import {
|
|
|
355
357
|
REASONS,
|
|
356
358
|
STORE_CLIENT,
|
|
357
359
|
VERSION
|
|
358
|
-
} from "./chunk-
|
|
360
|
+
} from "./chunk-XDQIJSJE.js";
|
|
359
361
|
import "./chunk-KV4267S4.js";
|
|
360
362
|
import "./chunk-LU3WKZBA.js";
|
|
361
363
|
import "./chunk-D72URWJE.js";
|
|
362
|
-
import "./chunk-
|
|
363
|
-
import "./chunk-
|
|
364
|
+
import "./chunk-SIY75R4D.js";
|
|
365
|
+
import "./chunk-6SE6ZDBF.js";
|
|
364
366
|
import {
|
|
365
367
|
createDeadline,
|
|
366
368
|
createRenderer,
|
|
@@ -401,7 +403,7 @@ import {
|
|
|
401
403
|
errorCodes,
|
|
402
404
|
isCliError
|
|
403
405
|
} from "./chunk-EB2IULWB.js";
|
|
404
|
-
import "./chunk-
|
|
406
|
+
import "./chunk-5R3OXHIN.js";
|
|
405
407
|
import {
|
|
406
408
|
__commonJS,
|
|
407
409
|
__name,
|
|
@@ -10422,10 +10424,10 @@ var collect = /* @__PURE__ */ __name((value, previous = []) => [...previous, val
|
|
|
10422
10424
|
var readScope = /* @__PURE__ */ __name((command, help = ONE_ACCOUNT_HELP) => sourceOptions(command, help).option("--json", "print JSON; --json=id,title keeps only those fields"), "readScope");
|
|
10423
10425
|
var writeScope = /* @__PURE__ */ __name((command, help) => writeOptions(command, help).option("--json", "print JSON; --json=id,title keeps only those fields"), "writeScope");
|
|
10424
10426
|
|
|
10425
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
10427
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/account-key.js
|
|
10426
10428
|
var mailAccountKey = /* @__PURE__ */ __name((address) => ({ provider: "email", account: address.toLowerCase() }), "mailAccountKey");
|
|
10427
10429
|
|
|
10428
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
10430
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/attachments.js
|
|
10429
10431
|
var MAX_ATTACHMENT_CHARS = 2e5;
|
|
10430
10432
|
var DEFAULT_ATTACHMENT_POLICY = { read: true, maxBytes: 10 * 1024 * 1024 };
|
|
10431
10433
|
var POLICY_SKIPS = ["not-read", "too-large"];
|
|
@@ -10464,11 +10466,11 @@ var readAttachments = /* @__PURE__ */ __name(async (mail, messageId, { loadEngin
|
|
|
10464
10466
|
return files;
|
|
10465
10467
|
}, "readAttachments");
|
|
10466
10468
|
|
|
10467
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
10469
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/bulk.js
|
|
10468
10470
|
var BULK = "bulk";
|
|
10469
10471
|
var bulkBox = { externalId: "memo:bulk", name: "bulk", kind: BULK };
|
|
10470
10472
|
|
|
10471
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
10473
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/score.js
|
|
10472
10474
|
var import_disposable_email_domains_js = __toESM(require_dist(), 1);
|
|
10473
10475
|
var import_tldts = __toESM(require_cjs(), 1);
|
|
10474
10476
|
var WEIGHTS = {
|
|
@@ -10576,7 +10578,7 @@ var scoreGroup = /* @__PURE__ */ __name((items, context) => {
|
|
|
10576
10578
|
return { score: kept.reduce((sum, signal) => sum + WEIGHTS[signal], 0), signals: kept };
|
|
10577
10579
|
}, "scoreGroup");
|
|
10578
10580
|
|
|
10579
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
10581
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/presets.js
|
|
10580
10582
|
var PRESETS = {
|
|
10581
10583
|
social: {
|
|
10582
10584
|
about: "notifications from social networks",
|
|
@@ -10668,7 +10670,7 @@ var presetMatches = /* @__PURE__ */ __name((name, facts) => {
|
|
|
10668
10670
|
return false;
|
|
10669
10671
|
}, "presetMatches");
|
|
10670
10672
|
|
|
10671
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
10673
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/probe.js
|
|
10672
10674
|
var share = /* @__PURE__ */ __name((part, whole2) => Math.round(part / whole2 * 100) / 100, "share");
|
|
10673
10675
|
var isSent = /* @__PURE__ */ __name((item) => item.labels?.includes("Sent") || /(^|\/)sent\b/i.test(item.folder ?? ""), "isSent");
|
|
10674
10676
|
var groupKey = /* @__PURE__ */ __name((headers) => headers.listId === void 0 ? `from:${headers.from}` : `list:${headers.listId}`, "groupKey");
|
|
@@ -10736,7 +10738,7 @@ var probeMail = /* @__PURE__ */ __name((items, limit, ages = /* @__PURE__ */ new
|
|
|
10736
10738
|
};
|
|
10737
10739
|
}, "probeMail");
|
|
10738
10740
|
|
|
10739
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
10741
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/facts.js
|
|
10740
10742
|
var factsOf = /* @__PURE__ */ __name((listed, rules, ages = /* @__PURE__ */ new Map()) => {
|
|
10741
10743
|
const grouped = rules.some(({ match }) => match.score_at_least !== void 0 || match.preset !== void 0);
|
|
10742
10744
|
if (!grouped)
|
|
@@ -16007,7 +16009,7 @@ var PostalMime = class _PostalMime {
|
|
|
16007
16009
|
}
|
|
16008
16010
|
};
|
|
16009
16011
|
|
|
16010
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
16012
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/headers.js
|
|
16011
16013
|
var unfold = /* @__PURE__ */ __name((text3) => text3.replace(/\r?\n[ \t]+/g, " "), "unfold");
|
|
16012
16014
|
var field = /* @__PURE__ */ __name((unfolded, name) => new RegExp(`^${name}:[ \\t]*(.*?)\\r?$`, "im").exec(unfolded)?.[1], "field");
|
|
16013
16015
|
var fieldsOf2 = /* @__PURE__ */ __name((unfolded, name) => [...unfolded.matchAll(new RegExp(`^${name}:[ \\t]*(.*?)\\r?$`, "gim"))].map(([, value]) => value), "fieldsOf");
|
|
@@ -16054,7 +16056,7 @@ var mailHeadersOf = /* @__PURE__ */ __name((raw) => {
|
|
|
16054
16056
|
};
|
|
16055
16057
|
}, "mailHeadersOf");
|
|
16056
16058
|
|
|
16057
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
16059
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/parse.js
|
|
16058
16060
|
var MAX_BODY_CHARS = 1e6;
|
|
16059
16061
|
var MAX_ATTACHMENTS = 50;
|
|
16060
16062
|
var BRACKETED_ID = /<[^<>\s]+>/g;
|
|
@@ -16119,7 +16121,7 @@ var parseMail = /* @__PURE__ */ __name(async (raw, maxBodyChars = MAX_BODY_CHARS
|
|
|
16119
16121
|
};
|
|
16120
16122
|
}, "parseMail");
|
|
16121
16123
|
|
|
16122
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
16124
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/email-input.js
|
|
16123
16125
|
var sentAtOf = /* @__PURE__ */ __name((date, receivedAt) => {
|
|
16124
16126
|
const sent = date === null ? Number.NaN : Date.parse(date);
|
|
16125
16127
|
return Number.isNaN(sent) ? Date.parse(receivedAt) : sent;
|
|
@@ -16139,10 +16141,10 @@ var parsedEmail = /* @__PURE__ */ __name((mail, item, header, address) => ({
|
|
|
16139
16141
|
outgoing: mail.from === null ? null : mail.from.email === address
|
|
16140
16142
|
}), "parsedEmail");
|
|
16141
16143
|
|
|
16142
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
16144
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/partial.js
|
|
16143
16145
|
var PARTIAL = "partial";
|
|
16144
16146
|
|
|
16145
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
16147
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/read.js
|
|
16146
16148
|
var lowerSuspicious = /* @__PURE__ */ __name((items, suspicious) => [
|
|
16147
16149
|
...items.filter((item) => !suspicious(item)),
|
|
16148
16150
|
...items.filter(suspicious)
|
|
@@ -16229,7 +16231,7 @@ var attachmentsText = /* @__PURE__ */ __name((hit) => (hit.attachments ?? []).ma
|
|
|
16229
16231
|
${file.text.replace(/\n/g, "\n ")}`;
|
|
16230
16232
|
}).join("\n"), "attachmentsText");
|
|
16231
16233
|
|
|
16232
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
16234
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/review.js
|
|
16233
16235
|
var REVIEW_THREADS = 50;
|
|
16234
16236
|
var REVIEW_PER_THREAD = 50;
|
|
16235
16237
|
var OWED_DAYS = 30;
|
|
@@ -16327,7 +16329,7 @@ var reviewMail = /* @__PURE__ */ __name(async (store, mailbox, options) => {
|
|
|
16327
16329
|
};
|
|
16328
16330
|
}, "reviewMail");
|
|
16329
16331
|
|
|
16330
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
16332
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/rules.js
|
|
16331
16333
|
var DAY_MS2 = 24 * 60 * 60 * 1e3;
|
|
16332
16334
|
var domainOf = /* @__PURE__ */ __name((address) => address.slice(address.lastIndexOf("@") + 1), "domainOf");
|
|
16333
16335
|
var domainMatches = /* @__PURE__ */ __name((wanted2, sender) => {
|
|
@@ -16399,7 +16401,7 @@ var tagsOf = /* @__PURE__ */ __name((rules, facts) => {
|
|
|
16399
16401
|
}, "tagsOf");
|
|
16400
16402
|
var conditionKeys = /* @__PURE__ */ __name((match) => Object.keys(match).filter((key) => match[key] !== void 0).sort(), "conditionKeys");
|
|
16401
16403
|
|
|
16402
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
16404
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/rule-input.js
|
|
16403
16405
|
var STORE_ACTION = { keep: "full", envelope: "envelope", skip: "skip" };
|
|
16404
16406
|
var LOWER = ["from", "domain", "list_id", "subject"];
|
|
16405
16407
|
var conditionsOf = /* @__PURE__ */ __name((match) => Object.fromEntries(conditionKeys(match).map((key) => {
|
|
@@ -16429,7 +16431,7 @@ var ruleInput = /* @__PURE__ */ __name((rule, source = rule.source ?? "owner") =
|
|
|
16429
16431
|
decidedAt: decidedAtOf(rule.decided_at)
|
|
16430
16432
|
}), "ruleInput");
|
|
16431
16433
|
|
|
16432
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
16434
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/rule-stored.js
|
|
16433
16435
|
var ACTION_OF = { full: "keep", envelope: "envelope", skip: "skip" };
|
|
16434
16436
|
var KINDS = {
|
|
16435
16437
|
from: "string",
|
|
@@ -16498,7 +16500,7 @@ var storedMailRuleSet = /* @__PURE__ */ __name(async (store, account2, query) =>
|
|
|
16498
16500
|
}, "storedMailRuleSet");
|
|
16499
16501
|
var storedMailRules = /* @__PURE__ */ __name(async (store, account2, query) => (await storedMailRuleSet(store, account2, query)).rules, "storedMailRules");
|
|
16500
16502
|
|
|
16501
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
16503
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/rule-tags.js
|
|
16502
16504
|
var reuseOf = /* @__PURE__ */ __name((error) => {
|
|
16503
16505
|
const { details } = error;
|
|
16504
16506
|
return details?.reason === "tag-review.required" ? details.candidates?.[0]?.name : void 0;
|
|
@@ -16559,7 +16561,7 @@ var settleRuleTags = /* @__PURE__ */ __name(async (store, accountId, rules, outc
|
|
|
16559
16561
|
}
|
|
16560
16562
|
}, "settleRuleTags");
|
|
16561
16563
|
|
|
16562
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
16564
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/sender-scores.js
|
|
16563
16565
|
var SCORED = "mail_sender_scores";
|
|
16564
16566
|
var DAY = 864e5;
|
|
16565
16567
|
var RECENT = 2 * 365 * DAY;
|
|
@@ -16575,7 +16577,7 @@ var demotedSenders = /* @__PURE__ */ __name(async (store) => {
|
|
|
16575
16577
|
return senders;
|
|
16576
16578
|
}, "demotedSenders");
|
|
16577
16579
|
|
|
16578
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
16580
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/server-query.js
|
|
16579
16581
|
var DAY2 = 864e5;
|
|
16580
16582
|
var empty = /* @__PURE__ */ __name(() => ({ words: [], from: [], to: [], cc: [], subject: [], body: [] }), "empty");
|
|
16581
16583
|
var narrows = /* @__PURE__ */ __name((criteria) => criteria.words.length + criteria.from.length + criteria.to.length + criteria.cc.length + criteria.subject.length + criteria.body.length > 0 || criteria.since !== void 0 || criteria.before !== void 0 || criteria.seen !== void 0 || criteria.flagged !== void 0, "narrows");
|
|
@@ -16648,7 +16650,7 @@ var mailCriteriaOf = /* @__PURE__ */ __name((text3, { exact, timezone } = {}) =>
|
|
|
16648
16650
|
};
|
|
16649
16651
|
}, "mailCriteriaOf");
|
|
16650
16652
|
|
|
16651
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
16653
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/server-search.js
|
|
16652
16654
|
var refusal = {
|
|
16653
16655
|
unsupported: "this mailbox's server cannot be searched \u2014 use --backend archive",
|
|
16654
16656
|
offline: "--backend server needs the network \u2014 not with --offline",
|
|
@@ -16863,7 +16865,7 @@ var searchMailServer = /* @__PURE__ */ __name(async (store, mailbox, access, req
|
|
|
16863
16865
|
return { report, sources };
|
|
16864
16866
|
}, "searchMailServer");
|
|
16865
16867
|
|
|
16866
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
16868
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/sync.js
|
|
16867
16869
|
var DAY3 = 864e5;
|
|
16868
16870
|
var EDGE = 2 * DAY3;
|
|
16869
16871
|
|
|
@@ -16897,7 +16899,8 @@ var REVIEW_KINDS = [
|
|
|
16897
16899
|
"task_close",
|
|
16898
16900
|
"action",
|
|
16899
16901
|
"invoice",
|
|
16900
|
-
"payment"
|
|
16902
|
+
"payment",
|
|
16903
|
+
"order"
|
|
16901
16904
|
];
|
|
16902
16905
|
var BY_ACCOUNT = [MEETING_FINDINGS_KIND, MAIL_FINDINGS_KIND];
|
|
16903
16906
|
var reviewRegistry = /* @__PURE__ */ __name((store) => {
|
|
@@ -16980,6 +16983,7 @@ var titleOf = /* @__PURE__ */ __name((row, label) => {
|
|
|
16980
16983
|
return `${row.summary ?? "action"} ${subject}`;
|
|
16981
16984
|
case "invoice":
|
|
16982
16985
|
case "payment":
|
|
16986
|
+
case "order":
|
|
16983
16987
|
return row.summary ?? subject;
|
|
16984
16988
|
default:
|
|
16985
16989
|
return object2 === null ? subject : `${subject} \u2192 ${object2}`;
|
|
@@ -18090,7 +18094,7 @@ import { createHash } from "node:crypto";
|
|
|
18090
18094
|
import { existsSync, readFileSync as readFileSync2, statSync } from "node:fs";
|
|
18091
18095
|
import { basename, extname, relative, sep } from "node:path";
|
|
18092
18096
|
|
|
18093
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
18097
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/services/documents/extraction.js
|
|
18094
18098
|
var Proposal = object({
|
|
18095
18099
|
kind: picklist(["summary", "digest", "fact", "preference"]),
|
|
18096
18100
|
body: pipe(string(), trim(), minLength(1), maxLength(15e3)),
|
|
@@ -18098,10 +18102,10 @@ var Proposal = object({
|
|
|
18098
18102
|
});
|
|
18099
18103
|
var Proposals = object({ items: pipe(array(Proposal), maxLength(20)) });
|
|
18100
18104
|
|
|
18101
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
18105
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/services/documents/mirrors.js
|
|
18102
18106
|
var ID = pipe(string(), regex(/^[A-Za-z0-9_-]{1,200}$/));
|
|
18103
18107
|
|
|
18104
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
18108
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/services/documents/sync.js
|
|
18105
18109
|
var MAX_PICTURE_BYTES = 25 * 1024 * 1024;
|
|
18106
18110
|
|
|
18107
18111
|
// dist/notes/links.js
|
|
@@ -18407,7 +18411,7 @@ var importNotesMap = /* @__PURE__ */ __name(async (store, env, folders) => {
|
|
|
18407
18411
|
return linked2;
|
|
18408
18412
|
}, "importNotesMap");
|
|
18409
18413
|
|
|
18410
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
18414
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/cli/marks.js
|
|
18411
18415
|
var iso = /* @__PURE__ */ __name((ms) => ms === null ? null : new Date(ms).toISOString(), "iso");
|
|
18412
18416
|
var mailMark = strictObject({
|
|
18413
18417
|
holder: string(),
|
|
@@ -18451,7 +18455,7 @@ var acknowledgeCommand = /* @__PURE__ */ __name((mail) => answerEntity(proposesO
|
|
|
18451
18455
|
renderAnswer(this, outputFor(this), itemOf(markItem(mark)), () => markText(mark));
|
|
18452
18456
|
}), "acknowledgeCommand");
|
|
18453
18457
|
|
|
18454
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
18458
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/cli/review.js
|
|
18455
18459
|
var DAY4 = 864e5;
|
|
18456
18460
|
var REVIEW_UNTRUSTED = [...SUMMARY_UNTRUSTED, ...MAIL_HIT_UNTRUSTED];
|
|
18457
18461
|
var MAIL_REVIEW_QUERY = defineQuery({
|
|
@@ -18681,7 +18685,7 @@ an agent over MCP, and each scheduled run.`).action(async function(query) {
|
|
|
18681
18685
|
saved?.save(found.checked ?? {}, found.complete ? { through: found.until } : {});
|
|
18682
18686
|
}), "mailReviewCommand");
|
|
18683
18687
|
|
|
18684
|
-
// node_modules/.pnpm/@wirecat+cli-core@0.
|
|
18688
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/cli/index.js
|
|
18685
18689
|
var absentAccount = /* @__PURE__ */ __name((error) => {
|
|
18686
18690
|
if (error instanceof CliError && error.code === "not_found")
|
|
18687
18691
|
return void 0;
|
|
@@ -20747,6 +20751,7 @@ var SECTIONS = [
|
|
|
20747
20751
|
["notes links", "organise"],
|
|
20748
20752
|
["organizations", "organise"],
|
|
20749
20753
|
["invoices", "organise"],
|
|
20754
|
+
["orders", "organise"],
|
|
20750
20755
|
["payments", "organise"],
|
|
20751
20756
|
["records", "organise"],
|
|
20752
20757
|
["projects", "organise"],
|
|
@@ -21106,6 +21111,12 @@ var EXAMPLES = {
|
|
|
21106
21111
|
"memo facts add 'We moved the launch to spring' --kind decision --evidence 'msg:telegram/1/77/42' --project HRB"
|
|
21107
21112
|
],
|
|
21108
21113
|
"facts list": ["memo facts list kind:decision project:HRB"],
|
|
21114
|
+
"orders list": ["memo orders list status:shipped", `memo orders list number:A-1042 'supplier:"Shop One"' --json`],
|
|
21115
|
+
"orders show": ["memo orders show order:3"],
|
|
21116
|
+
"orders add": [
|
|
21117
|
+
"memo orders add 'Shop One' 2499.00 RUB --kind personal --title A-1042",
|
|
21118
|
+
"memo orders add 'Office Supply' --kind client --organization organization:3"
|
|
21119
|
+
],
|
|
21109
21120
|
"invoices list": ["memo invoices list project:HRB open:true", "memo invoices list review:proposed --json"],
|
|
21110
21121
|
"invoices show": ["memo invoices show invoice:4"],
|
|
21111
21122
|
"invoices add": [
|
|
@@ -21128,6 +21139,7 @@ var EXAMPLES = {
|
|
|
21128
21139
|
],
|
|
21129
21140
|
"records link": ["memo records link organization:client organization:3 --account sheet:rentals"],
|
|
21130
21141
|
"payments allocate": ["memo payments allocate payment:9 invoice:4 25000.00"],
|
|
21142
|
+
"payments unlink": ["memo payments unlink payment:9 invoice:4"],
|
|
21131
21143
|
"facts show": ["memo facts show fact:4 --sources"],
|
|
21132
21144
|
"facts confirm": ["memo facts confirm fact:4"],
|
|
21133
21145
|
"facts revoke": ["memo facts revoke fact:4"],
|
|
@@ -21352,7 +21364,7 @@ var memoriesCommand = /* @__PURE__ */ __name((program, streams, env) => {
|
|
|
21352
21364
|
...options.supersedes === void 0 ? {} : { supersedes: options.supersedes }
|
|
21353
21365
|
}, await by))));
|
|
21354
21366
|
});
|
|
21355
|
-
withQuery(annotate(memories.command("list"), { effects: LOCAL_READ }).description("memories, newest first"), MEMORY_QUERY).option("--limit <n>", "most memories, up to 500", positive, 100).option("--json", "print JSON; --json=id,title keeps only those fields").action((words2, { json:
|
|
21367
|
+
withQuery(annotate(memories.command("list"), { effects: LOCAL_READ }).description("memories, newest first"), MEMORY_QUERY).option("--limit <n>", "most memories, up to 500", positive, 100).option("--json", "print JSON; --json=id,title keeps only those fields").action((words2, { json: json6, limit }) => run(json6, (store) => listMemories(store, words2, limit)));
|
|
21356
21368
|
annotate(memories.command("show"), { effects: LOCAL_READ, output: { entity: "memory" } }).description("one memory with its evidence").argument("<ref>", "memory:<id>").option("--sources", "read each piece of evidence back: who, when, a short excerpt, and whether it is gone").option("--json", "print JSON; --json=id,title keeps only those fields").action((ref, options) => run(options.json, async (store) => itemAnswer({
|
|
21357
21369
|
...memoryItem(await store.memories.get(ref)),
|
|
21358
21370
|
...options.sources ? { sources: await store.memories.sources(ref) } : {}
|
|
@@ -21470,7 +21482,7 @@ var factsCommand = /* @__PURE__ */ __name((program, streams, env) => {
|
|
|
21470
21482
|
...options.supersedes === void 0 ? {} : { supersedes: options.supersedes }
|
|
21471
21483
|
}))));
|
|
21472
21484
|
});
|
|
21473
|
-
withQuery(annotate(facts.command("list"), { effects: LOCAL_READ }).description("facts, latest first"), FACT_QUERY).option("--limit <n>", "most facts, up to 500", positive, 100).option("--json", "print JSON; --json=id,title keeps only those fields").action((words2, { json:
|
|
21485
|
+
withQuery(annotate(facts.command("list"), { effects: LOCAL_READ }).description("facts, latest first"), FACT_QUERY).option("--limit <n>", "most facts, up to 500", positive, 100).option("--json", "print JSON; --json=id,title keeps only those fields").action((words2, { json: json6, limit }) => run(json6, (store) => listFacts(store, words2, limit)));
|
|
21474
21486
|
annotate(facts.command("show"), { effects: LOCAL_READ, output: { entity: "fact" } }).description("one fact with its evidence").argument("<ref>", "fact:<id>").option("--sources", "read each piece of evidence back: who, when, a short excerpt, and whether it is gone").option("--json", "print JSON; --json=id,title keeps only those fields").action((ref, options) => run(options.json, async (store) => itemAnswer({
|
|
21475
21487
|
...factItem(await store.facts.get(ref)),
|
|
21476
21488
|
...options.sources ? { sources: await store.facts.sources(ref) } : {}
|
|
@@ -21632,7 +21644,7 @@ var writeMeta = /* @__PURE__ */ __name((command) => byOption(command.option("--p
|
|
|
21632
21644
|
var financeCommands = /* @__PURE__ */ __name((program, streams, env) => {
|
|
21633
21645
|
const { run } = answers(program, streams, env);
|
|
21634
21646
|
const invoices = program.command("invoices").description("invoices you issued or received, with their lines and what paid them; amounts per currency").summary("invoices you issued or received, and what paid them");
|
|
21635
|
-
withQuery(json(annotate(invoices.command("list"), { effects: LOCAL_READ })).description("invoices, newest first; review:proposed lists what waits for you"), INVOICE_QUERY).option("--limit <n>", "most invoices, up to 500", positive, 100).action((words2, { json:
|
|
21647
|
+
withQuery(json(annotate(invoices.command("list"), { effects: LOCAL_READ })).description("invoices, newest first; review:proposed lists what waits for you"), INVOICE_QUERY).option("--limit <n>", "most invoices, up to 500", positive, 100).action((words2, { json: json6, limit }) => run(json6, (store) => listInvoices(store, words2, limit)));
|
|
21636
21648
|
json(annotate(invoices.command("show"), { effects: LOCAL_READ, output: { entity: "invoice" } })).description("one invoice with its lines and the payments allocated to it").argument("<ref>", "invoice:<id>").action((ref, options) => run(options.json, async (store) => itemAnswer(await store.finance.invoice(ref))));
|
|
21637
21649
|
json(writeMeta(party(annotate(invoices.command("add"), {
|
|
21638
21650
|
effects: LOCAL_WRITE,
|
|
@@ -21656,7 +21668,7 @@ var financeCommands = /* @__PURE__ */ __name((program, streams, env) => {
|
|
|
21656
21668
|
});
|
|
21657
21669
|
});
|
|
21658
21670
|
const payments = program.command("payments").description("money paid to you or by you, and the invoices each payment settles; amounts per currency").summary("money paid to you or by you, and what it settles");
|
|
21659
|
-
withQuery(json(annotate(payments.command("list"), { effects: LOCAL_READ })).description("payments, newest first; review:proposed lists what waits for you"), PAYMENT_QUERY).option("--limit <n>", "most payments, up to 500", positive, 100).action((words2, { json:
|
|
21671
|
+
withQuery(json(annotate(payments.command("list"), { effects: LOCAL_READ })).description("payments, newest first; review:proposed lists what waits for you"), PAYMENT_QUERY).option("--limit <n>", "most payments, up to 500", positive, 100).action((words2, { json: json6, limit }) => run(json6, (store) => listPayments(store, words2, limit)));
|
|
21660
21672
|
json(annotate(payments.command("show"), { effects: LOCAL_READ, output: { entity: "payment" } })).description("one payment with the invoices it is allocated to").argument("<ref>", "payment:<id>").action((ref, options) => run(options.json, async (store) => itemAnswer(await store.finance.payment(ref))));
|
|
21661
21673
|
json(writeMeta(party(annotate(payments.command("add"), { effects: LOCAL_WRITE, output: { entity: "payment" } }), "who paid or was paid").option("--kind <kind>", "in (paid to you) or out (paid by you)").option("--title <title>", "the payment's reference, such as the bank's purpose line").option("--occurred-time <time>", "the day it was paid, such as 2026-11-01; today when left out"))).description(`record a payment; ${PROPOSES}. payments allocate matches it to an invoice`).summary("record a payment; an agent's waits for your review").argument("<amount>", "a decimal, such as 50000.00").argument("<currency>", "ISO 4217, such as RUB").action(async (amount, currency, options, command) => {
|
|
21662
21674
|
const by = await whoRuns(command, env, { asOwner: options.asOwner, question: "record this payment as yours?" });
|
|
@@ -21678,8 +21690,75 @@ var financeCommands = /* @__PURE__ */ __name((program, streams, env) => {
|
|
|
21678
21690
|
const by = await whoRuns(command, env, { asOwner: options.asOwner, question: `allocate ${payment} as yours?` });
|
|
21679
21691
|
await run(options.json, async (store) => itemAnswer(await store.finance.allocate({ payment, invoice, amount, by })));
|
|
21680
21692
|
});
|
|
21693
|
+
json(byOption(annotate(payments.command("unlink"), { effects: LOCAL_WRITE, output: { entity: "payment" } }))).description("take back what a payment settles of an invoice, to allocate it again; you set right a confirmed payment's wrong split, and an agent unlinks only a still-proposed payment it proposed").summary("take back a payment's allocation to an invoice").argument("<payment>", "payment:<id>").argument("<invoice>", "invoice:<id>").action(async (payment, invoice, options, command) => {
|
|
21694
|
+
const by = await whoRuns(command, env, {
|
|
21695
|
+
asOwner: options.asOwner,
|
|
21696
|
+
question: `unlink ${payment} as yours?`
|
|
21697
|
+
});
|
|
21698
|
+
await run(options.json, async (store) => itemAnswer(await store.finance.unallocate({ payment, invoice, by })));
|
|
21699
|
+
});
|
|
21681
21700
|
}, "financeCommands");
|
|
21682
21701
|
|
|
21702
|
+
// dist/finance/orders-command.js
|
|
21703
|
+
var ORDER_QUERY = {
|
|
21704
|
+
entity: "order",
|
|
21705
|
+
backend: "native",
|
|
21706
|
+
fields: [
|
|
21707
|
+
termField("project", "kw", "project:PMED"),
|
|
21708
|
+
termField("status", "enum", "status:shipped", { values: ORDER_STATUSES }),
|
|
21709
|
+
termField("purpose", "enum", "purpose:personal", { values: ORDER_PURPOSES }),
|
|
21710
|
+
termField("review", "enum", "review:proposed", { values: FINANCE_REVIEWS }),
|
|
21711
|
+
termField("customer", "ref", 'customer:"organization:3"'),
|
|
21712
|
+
termField("supplier", "kw", 'supplier:"Shop One"'),
|
|
21713
|
+
termField("number", "kw", "number:A-1042")
|
|
21714
|
+
]
|
|
21715
|
+
};
|
|
21716
|
+
var listOrders = /* @__PURE__ */ __name(async (store, words2, limit) => {
|
|
21717
|
+
const terms = queryTerms(words2, ORDER_QUERY, "orders list");
|
|
21718
|
+
const filter = {
|
|
21719
|
+
...terms.has("project") ? { project: await canonicalProject(store, terms.get("project")) } : {},
|
|
21720
|
+
...terms.has("status") ? { status: terms.get("status") } : {},
|
|
21721
|
+
...terms.has("purpose") ? { purpose: terms.get("purpose") } : {},
|
|
21722
|
+
...terms.has("review") ? { review: terms.get("review") } : {},
|
|
21723
|
+
...terms.has("customer") ? { customer: terms.get("customer") } : {},
|
|
21724
|
+
...terms.has("supplier") ? { supplierName: terms.get("supplier") } : {},
|
|
21725
|
+
...terms.has("number") ? { number: terms.get("number") } : {}
|
|
21726
|
+
};
|
|
21727
|
+
return pageOf("orders list", limit, (most2) => store.orders.list({ ...filter, limit: most2 }));
|
|
21728
|
+
}, "listOrders");
|
|
21729
|
+
var oneOf2 = /* @__PURE__ */ __name((value, allowed, flag) => {
|
|
21730
|
+
if (value === void 0 || !allowed.includes(value))
|
|
21731
|
+
throw new CliError("validation_error", `${flag} is one of ${allowed.join(", ")}`, { param: flag });
|
|
21732
|
+
return value;
|
|
21733
|
+
}, "oneOf");
|
|
21734
|
+
var json2 = /* @__PURE__ */ __name((command) => command.option("--json", "print JSON; --json=ref,title keeps only those fields"), "json");
|
|
21735
|
+
var orderCommands = /* @__PURE__ */ __name((program, streams, env) => {
|
|
21736
|
+
const { run } = answers(program, streams, env);
|
|
21737
|
+
const orders = program.command("orders").description("orders you placed or took, for whom, from which shop, and how far delivery got").summary("orders you placed or took, and how far delivery got");
|
|
21738
|
+
withQuery(json2(annotate(orders.command("list"), { effects: LOCAL_READ })).description("orders, newest first; review:proposed is what waits for you"), ORDER_QUERY).option("--limit <n>", "most orders, up to 500", positive, 100).action((words2, { json: json6, limit }) => run(json6, (store) => listOrders(store, words2, limit)));
|
|
21739
|
+
json2(annotate(orders.command("show"), { effects: LOCAL_READ, output: { entity: "order" } })).description("one order with its customer, shop, amount, status and the mail it was read from").argument("<ref>", "order:<id>").action((ref, options) => run(options.json, async (store) => itemAnswer(await store.orders.get(ref))));
|
|
21740
|
+
json2(byOption(annotate(orders.command("add"), { effects: LOCAL_WRITE, output: { entity: "order" }, literal_after_dashes: true }).option("--kind <kind>", `why it was ordered: ${ORDER_PURPOSES.join(", ")}`).option("--person <uid>", "whom it is for, when not you: person:<id>").option("--organization <organization>", "whom it is for, when not you: organization:<id>").option("--title <title>", "the shop's order number").option("--occurred-time <time>", "the day it was ordered, such as 2026-11-01").option("--project <project>", "the project it belongs to: its key or project:<id>").option("--reason <text>", "why an agent proposes it, for the owner who decides").option("--evidence <ref...>", "what shows it, up to 8: msg:, note:, document: or another reference"))).description("record a placed order; yours is confirmed at once, an agent's waits as proposed for you in memo review").summary("record an order; an agent's waits for your review").argument("<shop>", "the shop or supplier, as its mail names it").argument("[amount]", "the order's amount, a decimal such as 2499.00").argument("[currency]", "ISO 4217, such as RUB; given with the amount").action(async (shop, amount, currency, options, command) => {
|
|
21741
|
+
const by = await whoRuns(command, env, { asOwner: options.asOwner, question: "record this order as yours?" });
|
|
21742
|
+
await run(options.json, async (store) => {
|
|
21743
|
+
const customer = partyOf(options, false);
|
|
21744
|
+
const orderDate = dayOf(options.occurredTime);
|
|
21745
|
+
return itemAnswer(await store.orders.add({
|
|
21746
|
+
by,
|
|
21747
|
+
purpose: oneOf2(options.kind, ORDER_PURPOSES, "--kind"),
|
|
21748
|
+
supplierName: shop,
|
|
21749
|
+
...customer === void 0 ? {} : { customer },
|
|
21750
|
+
...options.title === void 0 ? {} : { number: options.title },
|
|
21751
|
+
...amount === void 0 ? {} : { total: amount },
|
|
21752
|
+
...currency === void 0 ? {} : { currency },
|
|
21753
|
+
...orderDate === void 0 ? {} : { orderDate },
|
|
21754
|
+
...options.project === void 0 ? {} : { project: await canonicalProject(store, options.project) },
|
|
21755
|
+
...by !== "owner" && options.reason !== void 0 ? { reason: options.reason } : {},
|
|
21756
|
+
...options.evidence === void 0 ? {} : { evidence: options.evidence }
|
|
21757
|
+
}));
|
|
21758
|
+
});
|
|
21759
|
+
});
|
|
21760
|
+
}, "orderCommands");
|
|
21761
|
+
|
|
21683
21762
|
// dist/findings/command.js
|
|
21684
21763
|
import { createReadStream } from "node:fs";
|
|
21685
21764
|
var FINDINGS_QUERY = {
|
|
@@ -21933,18 +22012,18 @@ var ACTIONS_QUERY = {
|
|
|
21933
22012
|
fields: [termField("status", "enum", "status:proposed", { values: ["proposed", "reviewed"] })],
|
|
21934
22013
|
defaults: ["status:proposed"]
|
|
21935
22014
|
};
|
|
21936
|
-
var
|
|
22015
|
+
var json3 = /* @__PURE__ */ __name((command) => command.option("--json", "print JSON; --json=id,status keeps only those fields"), "json");
|
|
21937
22016
|
var projectActionsCommand = /* @__PURE__ */ __name((projects, streams, env) => {
|
|
21938
22017
|
const group = projects.command("actions").description("cited key documents and findings an agent proposed for a project, with the evidence to decide them").summary("an agent's proposals for a project, and deciding them");
|
|
21939
22018
|
const { run } = answers(projects, streams, env);
|
|
21940
|
-
|
|
22019
|
+
json3(annotate(group.command("add"), { effects: LOCAL_WRITE })).description("stage an agent's cited facts and follow-ups about one project for review").argument("<file>", "JSON findings file, or - for stdin; at most 65536 UTF-8 bytes").addHelpText("after", "\nInput: schema_version 1, key, extractor, findings. Every finding names id, kind and evidence: 1\u20138 msg:, document: or note: references with the fingerprint projects evidence or notes show gives. A fact may name a project and a subject (person:, organization:, task: or project:), or neither; a task names its project. Facts name type and statement; tasks name type, title, reason and commitment (explicit or inferred). A due_at or assignee needs due_evidence or assignee_evidence citing this finding's references. A payment names payment {amount, currency, direction to_us|from_us, state paid|expected|cancelled, counterparty, paid_at}: an expected one becomes an invoice and needs a person: or organization: counterparty; a paid or cancelled one names in supersedes the invoice: it settles or voids. At most one project per batch. The same key and input returns the same batch; actions confirm and reject decide it by its id.\n").action(async (file, given, command) => {
|
|
21941
22020
|
const input = parseEvidenceFindingsJson(await readBatchInput(file === "-" ? environmentOf(projects).stdin ?? process.stdin : createReadStream2(file)));
|
|
21942
22021
|
const author = await whoRuns(command, env, { question: "" });
|
|
21943
22022
|
if (author === "owner")
|
|
21944
22023
|
throw new CliError("validation_error", "findings are an agent's proposals; record your own with memo facts add");
|
|
21945
22024
|
await run(given.json, async (store) => itemAnswer(await store.evidenceFindings.stage(input, author)));
|
|
21946
22025
|
});
|
|
21947
|
-
withQuery(
|
|
22026
|
+
withQuery(json3(answerEntity(annotate(group.command("list"), { effects: LOCAL_READ }), "project_action", union([
|
|
21948
22027
|
strictObject({
|
|
21949
22028
|
kind: literal("key_document"),
|
|
21950
22029
|
id: string(),
|
|
@@ -21985,7 +22064,7 @@ var projectActionsCommand = /* @__PURE__ */ __name((projects, streams, env) => {
|
|
|
21985
22064
|
});
|
|
21986
22065
|
}));
|
|
21987
22066
|
for (const name of ["confirm", "reject"]) {
|
|
21988
|
-
const command = byOption(
|
|
22067
|
+
const command = byOption(json3(annotate(group.command(name), { effects: LOCAL_WRITE })).description(name === "confirm" ? "confirm a suggested key document, or create the named findings of a batch and reject its other new ones; an agent decides for you only when agent_decisions is true, and with --reason" : "reject a suggested key document, or every new finding of a batch").summary(name === "confirm" ? "confirm a proposal, yours or an agent's with --reason" : "reject a proposal").argument("<project>", "the project's id, project:<id>, key, exact name or alias").argument("<id>", "key:<id> for a key document, or a findings batch number, as projects actions list gives them"));
|
|
21989
22068
|
if (name === "confirm")
|
|
21990
22069
|
command.argument("[findings...]", "the finding IDs of a batch to create");
|
|
21991
22070
|
command.option("--fingerprint <hash>", "a findings batch's fingerprint, as projects actions list gives it").option("--reason <text>", "why, in a few words; required when an agent decides for you").action(async (reference3, id, ...rest) => {
|
|
@@ -22938,23 +23017,28 @@ due_evidence, assignee with assignee_evidence; no project means the mailbox's in
|
|
|
22938
23017
|
change close|due|detail, reason; due needs due_at, detail needs detail) \xB7 fact (type, statement, subject or project)
|
|
22939
23018
|
\xB7 memory (memory_kind, scope, body, subject or project) \xB7 link (from, to, reason: contact:email/<address> \u2192 person:N,
|
|
22940
23019
|
person:N \u2192 organization:N, chat:email/\u2026 \u2192 project:N) \xB7 new_contact (address of a cited email's sender or recipient,
|
|
22941
|
-
name, reason)
|
|
23020
|
+
name, reason) \xB7 invoice (direction receivable|payable, counterparty person:N|organization:N, currency, lines of
|
|
23021
|
+
description and amount, optional total, number, issue_date, due_date, project) \xB7 payment (direction in|out, amount,
|
|
23022
|
+
currency, date, optional payer, payee, reference, allocations of stored invoices) \xB7 order (purpose
|
|
23023
|
+
personal|business|client|other, supplier_name, optional customer, supplier, number, total with currency, status,
|
|
23024
|
+
order_date, invoice, payment) \xB7 order_update (supplier_name and number of a stored order, status, date when delivered).
|
|
23025
|
+
An invoice, payment or order is checked as memo invoices|payments|orders add checks yours; a refusal names why.
|
|
22942
23026
|
A cited email that changed since review refuses the batch (mail-findings.stale), one still partial too
|
|
22943
23027
|
(mail-findings.partial). Nothing is created until the owner confirms: memo review confirm <batch>/<finding>.
|
|
22944
23028
|
`;
|
|
22945
|
-
var
|
|
23029
|
+
var json4 = /* @__PURE__ */ __name((command) => command.option("--json", "print JSON; --json=id,status keeps only those fields"), "json");
|
|
22946
23030
|
var mailFindingsCommand = /* @__PURE__ */ __name((program, mail, streams, env) => {
|
|
22947
23031
|
const { run } = answers(program, streams, env);
|
|
22948
|
-
const findings = mail.command("findings").description("cited tasks, task updates, facts, memories, links and
|
|
22949
|
-
|
|
23032
|
+
const findings = mail.command("findings").description("cited tasks, task updates, facts, memories, links, contacts, invoices, payments and orders an agent read in new mail").summary("what an agent read in new mail, cited, waiting for the owner");
|
|
23033
|
+
json4(proposesOnly(annotate(findings.command("add"), { effects: LOCAL_WRITE, output: { entity: "mail_findings" } }))).description("stage one mailbox's findings for the owner; nothing is created until the owner confirms").summary("stage one mailbox's findings; the owner confirms them").argument("<file>", "JSON findings file, or - for stdin; at most 65536 UTF-8 bytes").option("--source <accounts>", MAILBOX_HELP).addHelpText("after", INPUT_HELP).action(async (file, given) => {
|
|
22950
23034
|
const text3 = await readBatchInput(file === "-" ? environmentOf(program).stdin ?? process.stdin : createReadStream3(file));
|
|
22951
23035
|
const input = parseMailFindingsJson(text3);
|
|
22952
23036
|
const author = await whoRuns(program, env, { question: "" });
|
|
22953
23037
|
const agent = author === "owner" ? { bot: "memo-mail-findings" } : author;
|
|
22954
23038
|
await run(given.json, async (store) => itemAnswer(await store.mailFindings.stage(await oneMailboxOf(store, env, given.source), input, agent)));
|
|
22955
23039
|
});
|
|
22956
|
-
|
|
22957
|
-
withQuery(
|
|
23040
|
+
json4(annotate(findings.command("show"), { effects: LOCAL_READ, output: { entity: "mail_findings" } })).description("one findings batch: its findings with their evidence, earlier decisions and the review receipt").summary("one findings batch with its evidence and decisions").argument("<id>", "the batch id `mail findings add` or `list` gave").action((id, given) => run(given.json, async (store) => itemAnswer(await store.mailFindings.get(id))));
|
|
23041
|
+
withQuery(json4(annotate(findings.command("list"), { effects: LOCAL_READ, output: { entity: "mail_findings" } })), FINDINGS_QUERY2).description("mail findings batches, newest first; status:proposed is what waits for the owner").option("--source <accounts>", "only this mailbox's batches: email:<address>").option("--limit <n>", "batches per page, at most 50", positive, 20).option("--page <n>", "which page, from 1", positive, 1).action((words2, given) => run(given.json, async (store) => {
|
|
22958
23042
|
const status = queryTerms(words2, FINDINGS_QUERY2, "mail findings list").get("status");
|
|
22959
23043
|
const account2 = given.source ? await oneMailboxOf(store, env, given.source) : void 0;
|
|
22960
23044
|
const found = await store.mailFindings.list({
|
|
@@ -23094,10 +23178,10 @@ var mcpCommandDefinition = /* @__PURE__ */ __name((program, streams, env, create
|
|
|
23094
23178
|
}).summary("serve this profile's commands to an AI agent").description("serve memo commands over MCP on stdio or authenticated HTTP, limited by saved permissions").option("--permission <key=level>", "tighten one saved permission for this server; repeat for more keys", (value, previous = []) => [...previous, value]).option("--http", "serve on 127.0.0.1 behind an HTTPS tunnel with an owner access-code login").option("--port <port>", `local HTTP port (default ${DEFAULT_PORT}); requires --http`).option("--public-url <url>", "tunnel's HTTPS address without /mcp, or a path of it such as https://<name>.ts.net/memo; requires --http").action(async (options) => {
|
|
23095
23179
|
if (!options.http && (options.port !== void 0 || options.publicUrl !== void 0))
|
|
23096
23180
|
throw new CliError("validation_error", "--port and --public-url require --http");
|
|
23097
|
-
const { createMemoServer } = await import("./server-
|
|
23181
|
+
const { createMemoServer } = await import("./server-UBMV5OI7.js");
|
|
23098
23182
|
const build = /* @__PURE__ */ __name(() => createMemoServer(env, createProgram2, options.permission), "build");
|
|
23099
23183
|
if (options.http) {
|
|
23100
|
-
const { httpLockFile, mcpUrlOf, portOf, publicUrlOf, serveOverHttp } = await import("./mcp-
|
|
23184
|
+
const { httpLockFile, mcpUrlOf, portOf, publicUrlOf, serveOverHttp } = await import("./mcp-ZRKYZLNM.js");
|
|
23101
23185
|
const publicUrl = publicUrlOf(options.publicUrl, {
|
|
23102
23186
|
missing: "--http",
|
|
23103
23187
|
reaches: "the browser apps reach memo",
|
|
@@ -23149,7 +23233,7 @@ var mcpCommandDefinition = /* @__PURE__ */ __name((program, streams, env, create
|
|
|
23149
23233
|
});
|
|
23150
23234
|
});
|
|
23151
23235
|
annotate(mcp2.command("revoke"), { effects: LOCAL_WRITE, mcp: false, examples: ["memo mcp revoke --json"] }).summary("forget every login given to a browser app").description("forget every login `memo mcp serve --http` gave a browser app; each app must log in again").option("--json", "print JSON").action(async function() {
|
|
23152
|
-
const { revokeAll } = await import("./mcp-
|
|
23236
|
+
const { revokeAll } = await import("./mcp-ZRKYZLNM.js");
|
|
23153
23237
|
revokeAll(httpTokenFile(env));
|
|
23154
23238
|
out.print(this.opts().json, itemAnswer({ revoked: true }));
|
|
23155
23239
|
});
|
|
@@ -23680,14 +23764,14 @@ var notesCommandDefinition = /* @__PURE__ */ __name((program, streams, env) => {
|
|
|
23680
23764
|
...answer.backlinks.length ? [`linked from: ${answer.backlinks.map(({ from }) => from).join(", ")}`] : []
|
|
23681
23765
|
].join("\n"));
|
|
23682
23766
|
});
|
|
23683
|
-
withQuery(annotate(notes2.command("list"), { effects: LOCAL_READ }).description("notes, newest first"), NOTES_LIST_QUERY).option("--limit <n>", "most notes, at most 500", positive, 20).option("--page <n>", "which page, from 1", positive, 1).option("--json", "print JSON; --json=id,title keeps only those fields").action(async (words2, { json:
|
|
23767
|
+
withQuery(annotate(notes2.command("list"), { effects: LOCAL_READ }).description("notes, newest first"), NOTES_LIST_QUERY).option("--limit <n>", "most notes, at most 500", positive, 20).option("--page <n>", "which page, from 1", positive, 1).option("--json", "print JSON; --json=id,title keeps only those fields").action(async (words2, { json: json6, ...paging }) => {
|
|
23684
23768
|
const terms = queryTerms(words2, NOTES_LIST_QUERY, "notes list");
|
|
23685
23769
|
const about = terms.get("about");
|
|
23686
23770
|
const source = terms.get("source");
|
|
23687
23771
|
const search2 = terms.get("text");
|
|
23688
23772
|
if (about !== void 0 && terms.size > 1)
|
|
23689
23773
|
throw new CliError("validation_error", "about: stands alone in notes list: its notes are found through links");
|
|
23690
|
-
const options = { ...paging, json:
|
|
23774
|
+
const options = { ...paging, json: json6 };
|
|
23691
23775
|
const page = await withNotes(async (store) => listNotes(store, {
|
|
23692
23776
|
limit: options.limit,
|
|
23693
23777
|
offset: (options.page - 1) * options.limit,
|
|
@@ -24069,11 +24153,11 @@ var ROW = {
|
|
|
24069
24153
|
],
|
|
24070
24154
|
text: ["reason"]
|
|
24071
24155
|
};
|
|
24072
|
-
var
|
|
24156
|
+
var json5 = /* @__PURE__ */ __name((command) => command.option("--json", "print JSON; --json=id,title keeps only those fields"), "json");
|
|
24073
24157
|
var reviewCommand = /* @__PURE__ */ __name((program, streams, env) => {
|
|
24074
24158
|
const { print } = answers(program, streams, env);
|
|
24075
24159
|
const review = program.command("review").description("every proposal waiting for your decision, across projects: links, key documents, facts, invoices, payments and more").summary("every proposal waiting for your decision, across projects");
|
|
24076
|
-
|
|
24160
|
+
json5(answerEntity(withQuery(annotate(review.command("list", { isDefault: true }), { effects: LOCAL_READ }).description("what waits for the owner's decision, newest first, with titles, who proposed it, why and the evidence").summary("what waits for your decision, newest first, with titles and evidence"), REVIEW_QUERY), "memo_proposal", PROPOSAL, { row: ROW })).option("--limit <n>", "proposals per page, at most 50", positive, 20).option("--page <n>", "which page, from 1", positive, 1).option("--compact", "one line per proposal").action(async (words2, given) => {
|
|
24077
24161
|
if (given.limit > 50)
|
|
24078
24162
|
throw new CliError("validation_error", "--limit is at most 50", { param: "limit" });
|
|
24079
24163
|
const found = await withStore(env, (store) => listReview(store, env, words2, given));
|
|
@@ -24088,7 +24172,7 @@ var reviewCommand = /* @__PURE__ */ __name((program, streams, env) => {
|
|
|
24088
24172
|
});
|
|
24089
24173
|
print(given.json, body, reviewText(found.items, found.hasMore), given.compact);
|
|
24090
24174
|
});
|
|
24091
|
-
|
|
24175
|
+
json5(annotate(review.command("show"), { effects: LOCAL_READ })).description("one proposal with its titles, signals and the text around each piece of evidence").argument("<id>", "the proposal's id, as review lists it: 17070, fact:512, memory:88, link:17, payment:4, close:Q-15").option("--brief", "only references and their titles, without excerpts or nearby text").option("--before-n <n>", "messages or document paragraphs before the evidence, at most 5", whole, 2).option("--after-n <n>", "messages or document paragraphs after the evidence, at most 5", whole, 2).option("--compact", "one line, as review prints it").action(async (id, given) => {
|
|
24092
24176
|
const body = await withStore(env, async (store) => {
|
|
24093
24177
|
const shown = await showReview(store, env, id);
|
|
24094
24178
|
const window = {
|
|
@@ -24110,7 +24194,7 @@ var reviewCommand = /* @__PURE__ */ __name((program, streams, env) => {
|
|
|
24110
24194
|
print(given.json, body, void 0, given.compact);
|
|
24111
24195
|
});
|
|
24112
24196
|
for (const name of ["confirm", "reject"]) {
|
|
24113
|
-
const command = byOption(
|
|
24197
|
+
const command = byOption(json5(annotate(review.command(name), { effects: LOCAL_WRITE }))).description(name === "confirm" ? "confirm proposals by id or range (17070-17079,fact:500-502,17080/f1); each is decided on its own, so a refusal leaves the others decided. An agent decides only with --reason, never its own or a scan's" : "turn proposals down by id or range, with why; each is decided on its own").summary(name === "confirm" ? "confirm proposals by id or range; each on its own" : "turn proposals down, with why").argument("<ids...>", name === "confirm" ? "ids or ranges as review lists them; 17080/f1 accepts that finding and rejects the batch's others" : "ids or ranges as review lists them; a batch is turned down whole");
|
|
24114
24198
|
if (name === "confirm")
|
|
24115
24199
|
command.option("--reason <text>", "why, in a few words; required when an agent decides");
|
|
24116
24200
|
else
|
|
@@ -24131,7 +24215,7 @@ var reviewCommand = /* @__PURE__ */ __name((program, streams, env) => {
|
|
|
24131
24215
|
print(given.json, itemAnswer(result, issues.length ? { meta: { complete: false, issues } } : void 0), decidedText(result), given.compact);
|
|
24132
24216
|
});
|
|
24133
24217
|
}
|
|
24134
|
-
|
|
24218
|
+
json5(annotate(review.command("status"), { effects: LOCAL_READ, output: { entity: "review_status" } })).summary("since yesterday: new mail, what is owed and waiting, what agents proposed").description("the owner's daily look, with no model call: per mail account the threads with new mail, what you owe and wait for, and how far each agent's processing mark has read; then what was proposed and what waits").option("--since-time <time>", "how far back: hours or days (12h, 7d) or a start date (2026-11-01)", "1d").action(async (given) => {
|
|
24135
24219
|
const since = /^\d{4}-\d{2}-\d{2}/.test(given.sinceTime) ? Date.parse(given.sinceTime) : Date.now() - parseDuration(given.sinceTime, "--since-time");
|
|
24136
24220
|
if (Number.isNaN(since))
|
|
24137
24221
|
throw new CliError("validation_error", `--since-time takes 12h, 7d or a date, not "${given.sinceTime}"`, {
|
|
@@ -24635,8 +24719,8 @@ For an agent: read with --compact, one line per hit with its reference. Never wr
|
|
|
24635
24719
|
for (const { source, reason } of answer.skipped)
|
|
24636
24720
|
streams.diagnostic(`${source} not searched: ${reason}
|
|
24637
24721
|
`);
|
|
24638
|
-
const { limit, page, json:
|
|
24639
|
-
print(
|
|
24722
|
+
const { limit, page, json: json6, ...rest } = options;
|
|
24723
|
+
print(json6, notesAnswer(answer, limit, page, { query: words2.join(" "), ...rest }), searchText(answer, (page - 1) * limit));
|
|
24640
24724
|
});
|
|
24641
24725
|
searchMemoriesCommand(group, streams, env);
|
|
24642
24726
|
annotate(group.command("people"), { effects: LOCAL_READ, output: { entity: "person" } }).description("people whose name, username or alias holds every word, in every account unless --source narrows it; each with its person:<id> for --contact and its identities").summary("people by name across every account").argument("<name...>", "parts of the name, username or alias; case and accents do not matter").option("--source <accounts>", ACCOUNTS_HELP).option("--limit <n>", "most people, at most 100", (value) => {
|
|
@@ -25575,6 +25659,34 @@ var OWN_ENTITIES = entityFields({
|
|
|
25575
25659
|
agent_action: ["id", "actor", "tool", "tier", "target", "status", "error", "started_at", "finished_at"],
|
|
25576
25660
|
meeting_project: ["id", "meeting", "project", "confirmed", "provenance", "fingerprint"],
|
|
25577
25661
|
notes_folder: ["id", "name", "path", "format", "kept_by"],
|
|
25662
|
+
order: [
|
|
25663
|
+
"id",
|
|
25664
|
+
"ref",
|
|
25665
|
+
"title",
|
|
25666
|
+
"customer",
|
|
25667
|
+
"purpose",
|
|
25668
|
+
"supplier",
|
|
25669
|
+
"supplier_name",
|
|
25670
|
+
"number",
|
|
25671
|
+
"currency",
|
|
25672
|
+
"total",
|
|
25673
|
+
"status",
|
|
25674
|
+
"order_date",
|
|
25675
|
+
"fulfilled_date",
|
|
25676
|
+
"invoice",
|
|
25677
|
+
"payment",
|
|
25678
|
+
"review",
|
|
25679
|
+
"author",
|
|
25680
|
+
"model",
|
|
25681
|
+
"confirmed_by",
|
|
25682
|
+
"source",
|
|
25683
|
+
"reason",
|
|
25684
|
+
"project",
|
|
25685
|
+
"project_name",
|
|
25686
|
+
"created_at",
|
|
25687
|
+
"updated_at",
|
|
25688
|
+
"evidence"
|
|
25689
|
+
],
|
|
25578
25690
|
invoice: [
|
|
25579
25691
|
"id",
|
|
25580
25692
|
"ref",
|
|
@@ -25708,6 +25820,7 @@ var createProgram = /* @__PURE__ */ __name(({ streams: raw = processStreams, env
|
|
|
25708
25820
|
mentionsCommand(program, streams, env);
|
|
25709
25821
|
factsCommand(program, streams, env);
|
|
25710
25822
|
financeCommands(program, streams, env);
|
|
25823
|
+
orderCommands(program, streams, env);
|
|
25711
25824
|
recordsCommand(program, streams, env);
|
|
25712
25825
|
findingsCommand(program, streams, env);
|
|
25713
25826
|
actionsCommand(program, streams, env);
|
|
@@ -25730,10 +25843,10 @@ var createProgram = /* @__PURE__ */ __name(({ streams: raw = processStreams, env
|
|
|
25730
25843
|
const skill2 = customizeSharedCommand(skillCommand2(APP, new URL("../skills/cli-memo/SKILL.md", new URL("../program.js", import.meta.url).href)), "Memo installs its own stored-data instructions through its environment, prints the packaged primary skill without filesystem effects, and takes --json on each skill command because it has no global one.", () => {
|
|
25731
25844
|
const out = answers(program, streams, env);
|
|
25732
25845
|
const skill3 = skillCommand(APP, new URL("../skills/cli-memo/SKILL.md", new URL("../program.js", import.meta.url).href), (command) => {
|
|
25733
|
-
const
|
|
25734
|
-
const renderer = createRenderer({ format:
|
|
25846
|
+
const json6 = command.opts().json === true;
|
|
25847
|
+
const renderer = createRenderer({ format: json6 ? "json" : "pretty", color: false, streams });
|
|
25735
25848
|
return {
|
|
25736
|
-
renderer:
|
|
25849
|
+
renderer: json6 ? { ...renderer, result: /* @__PURE__ */ __name((value) => out.print(true, itemAnswer(value)), "result") } : renderer,
|
|
25737
25850
|
streams,
|
|
25738
25851
|
env
|
|
25739
25852
|
};
|