@wirecat/cli-memo 0.131.29 → 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-HXT2KPB6.js → all-profiles-4XCG2A54.js} +5 -5
- package/dist/bundle/{anthropic-C6H35WZP.js → anthropic-MAVIW4DJ.js} +3 -3
- package/dist/bundle/{app-server-Y6JGICRB.js → app-server-LGSYLIB3.js} +35 -35
- package/dist/bundle/auto-72Y6UJWK.js +86 -0
- package/dist/bundle/{bun-K5H33WQK.js → bun-XWUEHWDW.js} +2 -2
- package/dist/bundle/{bun-sqlite-2NGQT7HH.js → bun-sqlite-OSAC45TI.js} +2 -2
- package/dist/bundle/{chunk-7OYQFT5N.js → chunk-2NEXX3EI.js} +1 -1
- package/dist/bundle/{chunk-WI7KTIMF.js → chunk-3DXTHN5C.js} +7 -7
- package/dist/bundle/{chunk-P5FETWRW.js → chunk-3V5JXPGK.js} +1 -1
- package/dist/bundle/{chunk-WFQPCCM2.js → chunk-5CKE7LAP.js} +1 -1
- package/dist/bundle/{chunk-ERRC42BB.js → chunk-5R3OXHIN.js} +1 -1
- package/dist/bundle/{chunk-H6JNEHUC.js → chunk-6SE6ZDBF.js} +1 -1
- package/dist/bundle/{chunk-7PH33JE4.js → chunk-6ZVN4S36.js} +2 -2
- package/dist/bundle/{chunk-RGPCN63U.js → chunk-76MMXZ3W.js} +4 -4
- package/dist/bundle/{chunk-PUQYCAEP.js → chunk-7VJZKUN3.js} +9 -9
- package/dist/bundle/{chunk-HBKYPSX3.js → chunk-B6S42B6J.js} +11 -11
- package/dist/bundle/{chunk-XNV2JTJ4.js → chunk-CNAOMV43.js} +1 -1
- package/dist/bundle/{chunk-MJF6VGW4.js → chunk-CYUP7HQG.js} +421 -360
- package/dist/bundle/{chunk-BWQMZNDC.js → chunk-D6BK3H4D.js} +4 -4
- package/dist/bundle/{chunk-R7XIZMM5.js → chunk-DIQAOLWH.js} +1 -1
- package/dist/bundle/{chunk-5ZWRS2JY.js → chunk-DIT5NA73.js} +5 -5
- package/dist/bundle/{chunk-SQ6OFUHW.js → chunk-DYNSZDXG.js} +20 -20
- package/dist/bundle/{chunk-2O2RWKUT.js → chunk-EEKOBGQ7.js} +1 -1
- package/dist/bundle/{chunk-QVFB2MVU.js → chunk-EJZKYJKO.js} +2 -2
- package/dist/bundle/{chunk-KFSZAV5L.js → chunk-GACW4GZZ.js} +4 -4
- package/dist/bundle/{chunk-DXCBZT4T.js → chunk-GN3U74DV.js} +12 -12
- package/dist/bundle/{chunk-MPNDEGMC.js → chunk-GSCFCNGO.js} +7 -7
- package/dist/bundle/{chunk-46ACMQUU.js → chunk-GW2KCP4G.js} +27 -27
- package/dist/bundle/{chunk-65YDJ3Z4.js → chunk-H52RNBPU.js} +2 -2
- package/dist/bundle/{chunk-FUMGREBO.js → chunk-HWJHWNBW.js} +3 -3
- package/dist/bundle/{chunk-XHHSQ4FN.js → chunk-IIXZMACE.js} +14 -9
- package/dist/bundle/{chunk-G62DN6QY.js → chunk-JHLGFPMK.js} +2 -2
- package/dist/bundle/{chunk-XUHVJGIL.js → chunk-K6Z6B2CW.js} +10 -10
- package/dist/bundle/{chunk-H3NMOWPB.js → chunk-KJE2KFYH.js} +198 -52
- package/dist/bundle/{chunk-UZUNSDGN.js → chunk-M3REIIOH.js} +1 -1
- package/dist/bundle/{chunk-HVD2CTPH.js → chunk-MHHLYRRD.js} +1 -1
- package/dist/bundle/{chunk-2WGR73KL.js → chunk-MLDBSKW6.js} +8 -8
- package/dist/bundle/{chunk-GVYOICNB.js → chunk-N4AWIP4D.js} +5 -5
- package/dist/bundle/{chunk-6YDPWVDH.js → chunk-NUEIRBKY.js} +1 -1
- package/dist/bundle/{chunk-M3VBB37S.js → chunk-PJM4QQBT.js} +2 -2
- package/dist/bundle/{chunk-NIEWG4OY.js → chunk-Q3XFJOAY.js} +1 -1
- package/dist/bundle/{chunk-IQEEOXBV.js → chunk-QQBRNKHQ.js} +51 -50
- package/dist/bundle/{chunk-IIM3FF5L.js → chunk-RCPP2Q5O.js} +6 -6
- package/dist/bundle/{chunk-6IJ7XNK5.js → chunk-RUWY43XR.js} +252 -246
- package/dist/bundle/{chunk-KJEJOWJY.js → chunk-S34FLB7K.js} +2 -2
- package/dist/bundle/{chunk-6BS3FHTC.js → chunk-SIY75R4D.js} +5 -5
- package/dist/bundle/{chunk-FJXFU7NN.js → chunk-SQHIXN2N.js} +2 -2
- package/dist/bundle/{chunk-KIJ7UJHD.js → chunk-TIQUMRSO.js} +215 -151
- package/dist/bundle/{chunk-SZUYOU6U.js → chunk-TIU2N2SP.js} +20 -20
- package/dist/bundle/{chunk-YZKHWANJ.js → chunk-U5PEYBQT.js} +4 -4
- package/dist/bundle/{chunk-YLVSSQJP.js → chunk-U6NL7SAX.js} +5 -5
- package/dist/bundle/{chunk-7ACGYEGV.js → chunk-UBYCWQSV.js} +4 -4
- package/dist/bundle/{chunk-S67KFN67.js → chunk-UGV57SZH.js} +1 -1
- package/dist/bundle/{chunk-5FEJKSQJ.js → chunk-USLIHXWA.js} +3 -3
- package/dist/bundle/{chunk-KCAELZXB.js → chunk-UVO7UNYH.js} +1 -1
- package/dist/bundle/{chunk-Q63L5WS2.js → chunk-UXGQXP5U.js} +3 -3
- package/dist/bundle/{chunk-ERZLVE54.js → chunk-VDGKBAS2.js} +1038 -670
- package/dist/bundle/{chunk-6NGLATFQ.js → chunk-WUV5O5HN.js} +4 -4
- package/dist/bundle/{chunk-W7T2JSKY.js → chunk-XDQIJSJE.js} +1 -1
- package/dist/bundle/{chunk-KCQPEY6C.js → chunk-XV7YW65Y.js} +4 -4
- package/dist/bundle/{chunk-ZW44VJNY.js → chunk-YJSCSLAT.js} +3 -3
- package/dist/bundle/{chunk-HAC3CWPB.js → chunk-YUEAM6ZP.js} +7 -7
- package/dist/bundle/{chunk-FBSY3DVN.js → chunk-Z7J7SVZJ.js} +1 -1
- package/dist/bundle/{command-contract-AFUDV7JM.js → command-contract-ZLDRM6DG.js} +11 -11
- package/dist/bundle/{decode-P5SEK56D.js → decode-Y2DWOSOW.js} +2 -2
- package/dist/bundle/{echarts-CLHJYMDK.js → echarts-2ZHQHZ4R.js} +2 -2
- package/dist/bundle/{embed-X6H74LGP.js → embed-JEER47U6.js} +3 -3
- package/dist/bundle/{embedder-H5SWOSEL.js → embedder-BJQEGCE5.js} +6 -6
- package/dist/bundle/{entry-66SEZMKI.js → entry-YKH7GAX7.js} +4 -4
- package/dist/bundle/failure-JE2JCLGO.js +66 -0
- package/dist/bundle/{first-run-S7EW77F6.js → first-run-ESH5B55J.js} +5 -5
- package/dist/bundle/{first-screen-6GA36WQT.js → first-screen-RTATNK4S.js} +12 -12
- package/dist/bundle/{instructions-IUUSY6DO.js → instructions-NJYYRMYK.js} +1 -1
- package/dist/bundle/{mcp-7SDVTKCE.js → mcp-ZRKYZLNM.js} +35 -35
- package/dist/bundle/memo.js +6 -6
- package/dist/bundle/{node-6T5LUBAE.js → node-DBNZMTJO.js} +2 -2
- package/dist/bundle/{node-sqlite-ZTDWPRJU.js → node-sqlite-CCNVCZSG.js} +3 -3
- package/dist/bundle/{oauth-G4TCULLQ.js → oauth-UV7KBQFP.js} +4 -4
- package/dist/bundle/{open-DRJ24C7U.js → open-VTOLLLS4.js} +2 -2
- package/dist/bundle/{openai-3DSR7Z4Z.js → openai-RTJNHBCG.js} +7 -7
- package/dist/bundle/{process-IPM3OJDN.js → process-TAFRBB53.js} +1 -1
- package/dist/bundle/{program-6E2SWPCU.js → program-4UU6HJQM.js} +215 -110
- package/dist/bundle/{prompt-XKR6EQAT.js → prompt-ESMCTEJI.js} +2 -2
- package/dist/bundle/{recognize-GZXAXTEH.js → recognize-V53GEY6R.js} +1 -1
- package/dist/bundle/{remote-Y5ML6KR4.js → remote-KGKRAGA6.js} +4 -4
- package/dist/bundle/{rerank-FNNXUTMN.js → rerank-DTD24I7Y.js} +4 -4
- package/dist/bundle/{serve-BGU5ERNX.js → serve-2DVSIKM7.js} +6 -6
- package/dist/bundle/server-ODWZJIRX.js +48 -0
- package/dist/bundle/{server-3L4FHYFM.js → server-UBMV5OI7.js} +50 -50
- package/dist/bundle/server-V5YRZZID.js +61 -0
- package/dist/bundle/{state-WAMVO34N.js → state-ONT6T6PY.js} +3 -3
- package/dist/bundle/{store-PVY4UTTR.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 +6 -0
- package/dist/examples.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-A2Y225YZ.js +0 -86
- package/dist/bundle/failure-PNTFMNKK.js +0 -66
- package/dist/bundle/server-5F3GJPG3.js +0 -48
- package/dist/bundle/server-JX5TWAAW.js +0 -61
- package/dist/bundle/store-maintenance-command-RGZJWNE2.js +0 -48
- package/dist/bundle/update-VJLZT6ER.js +0 -69
- /package/dist/bundle/{chunk-XGTIABPY.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": [
|
|
@@ -21353,7 +21364,7 @@ var memoriesCommand = /* @__PURE__ */ __name((program, streams, env) => {
|
|
|
21353
21364
|
...options.supersedes === void 0 ? {} : { supersedes: options.supersedes }
|
|
21354
21365
|
}, await by))));
|
|
21355
21366
|
});
|
|
21356
|
-
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)));
|
|
21357
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({
|
|
21358
21369
|
...memoryItem(await store.memories.get(ref)),
|
|
21359
21370
|
...options.sources ? { sources: await store.memories.sources(ref) } : {}
|
|
@@ -21471,7 +21482,7 @@ var factsCommand = /* @__PURE__ */ __name((program, streams, env) => {
|
|
|
21471
21482
|
...options.supersedes === void 0 ? {} : { supersedes: options.supersedes }
|
|
21472
21483
|
}))));
|
|
21473
21484
|
});
|
|
21474
|
-
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)));
|
|
21475
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({
|
|
21476
21487
|
...factItem(await store.facts.get(ref)),
|
|
21477
21488
|
...options.sources ? { sources: await store.facts.sources(ref) } : {}
|
|
@@ -21633,7 +21644,7 @@ var writeMeta = /* @__PURE__ */ __name((command) => byOption(command.option("--p
|
|
|
21633
21644
|
var financeCommands = /* @__PURE__ */ __name((program, streams, env) => {
|
|
21634
21645
|
const { run } = answers(program, streams, env);
|
|
21635
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");
|
|
21636
|
-
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)));
|
|
21637
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))));
|
|
21638
21649
|
json(writeMeta(party(annotate(invoices.command("add"), {
|
|
21639
21650
|
effects: LOCAL_WRITE,
|
|
@@ -21657,7 +21668,7 @@ var financeCommands = /* @__PURE__ */ __name((program, streams, env) => {
|
|
|
21657
21668
|
});
|
|
21658
21669
|
});
|
|
21659
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");
|
|
21660
|
-
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)));
|
|
21661
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))));
|
|
21662
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) => {
|
|
21663
21674
|
const by = await whoRuns(command, env, { asOwner: options.asOwner, question: "record this payment as yours?" });
|
|
@@ -21688,6 +21699,66 @@ var financeCommands = /* @__PURE__ */ __name((program, streams, env) => {
|
|
|
21688
21699
|
});
|
|
21689
21700
|
}, "financeCommands");
|
|
21690
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
|
+
|
|
21691
21762
|
// dist/findings/command.js
|
|
21692
21763
|
import { createReadStream } from "node:fs";
|
|
21693
21764
|
var FINDINGS_QUERY = {
|
|
@@ -21941,18 +22012,18 @@ var ACTIONS_QUERY = {
|
|
|
21941
22012
|
fields: [termField("status", "enum", "status:proposed", { values: ["proposed", "reviewed"] })],
|
|
21942
22013
|
defaults: ["status:proposed"]
|
|
21943
22014
|
};
|
|
21944
|
-
var
|
|
22015
|
+
var json3 = /* @__PURE__ */ __name((command) => command.option("--json", "print JSON; --json=id,status keeps only those fields"), "json");
|
|
21945
22016
|
var projectActionsCommand = /* @__PURE__ */ __name((projects, streams, env) => {
|
|
21946
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");
|
|
21947
22018
|
const { run } = answers(projects, streams, env);
|
|
21948
|
-
|
|
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) => {
|
|
21949
22020
|
const input = parseEvidenceFindingsJson(await readBatchInput(file === "-" ? environmentOf(projects).stdin ?? process.stdin : createReadStream2(file)));
|
|
21950
22021
|
const author = await whoRuns(command, env, { question: "" });
|
|
21951
22022
|
if (author === "owner")
|
|
21952
22023
|
throw new CliError("validation_error", "findings are an agent's proposals; record your own with memo facts add");
|
|
21953
22024
|
await run(given.json, async (store) => itemAnswer(await store.evidenceFindings.stage(input, author)));
|
|
21954
22025
|
});
|
|
21955
|
-
withQuery(
|
|
22026
|
+
withQuery(json3(answerEntity(annotate(group.command("list"), { effects: LOCAL_READ }), "project_action", union([
|
|
21956
22027
|
strictObject({
|
|
21957
22028
|
kind: literal("key_document"),
|
|
21958
22029
|
id: string(),
|
|
@@ -21993,7 +22064,7 @@ var projectActionsCommand = /* @__PURE__ */ __name((projects, streams, env) => {
|
|
|
21993
22064
|
});
|
|
21994
22065
|
}));
|
|
21995
22066
|
for (const name of ["confirm", "reject"]) {
|
|
21996
|
-
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"));
|
|
21997
22068
|
if (name === "confirm")
|
|
21998
22069
|
command.argument("[findings...]", "the finding IDs of a batch to create");
|
|
21999
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) => {
|
|
@@ -22946,23 +23017,28 @@ due_evidence, assignee with assignee_evidence; no project means the mailbox's in
|
|
|
22946
23017
|
change close|due|detail, reason; due needs due_at, detail needs detail) \xB7 fact (type, statement, subject or project)
|
|
22947
23018
|
\xB7 memory (memory_kind, scope, body, subject or project) \xB7 link (from, to, reason: contact:email/<address> \u2192 person:N,
|
|
22948
23019
|
person:N \u2192 organization:N, chat:email/\u2026 \u2192 project:N) \xB7 new_contact (address of a cited email's sender or recipient,
|
|
22949
|
-
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.
|
|
22950
23026
|
A cited email that changed since review refuses the batch (mail-findings.stale), one still partial too
|
|
22951
23027
|
(mail-findings.partial). Nothing is created until the owner confirms: memo review confirm <batch>/<finding>.
|
|
22952
23028
|
`;
|
|
22953
|
-
var
|
|
23029
|
+
var json4 = /* @__PURE__ */ __name((command) => command.option("--json", "print JSON; --json=id,status keeps only those fields"), "json");
|
|
22954
23030
|
var mailFindingsCommand = /* @__PURE__ */ __name((program, mail, streams, env) => {
|
|
22955
23031
|
const { run } = answers(program, streams, env);
|
|
22956
|
-
const findings = mail.command("findings").description("cited tasks, task updates, facts, memories, links and
|
|
22957
|
-
|
|
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) => {
|
|
22958
23034
|
const text3 = await readBatchInput(file === "-" ? environmentOf(program).stdin ?? process.stdin : createReadStream3(file));
|
|
22959
23035
|
const input = parseMailFindingsJson(text3);
|
|
22960
23036
|
const author = await whoRuns(program, env, { question: "" });
|
|
22961
23037
|
const agent = author === "owner" ? { bot: "memo-mail-findings" } : author;
|
|
22962
23038
|
await run(given.json, async (store) => itemAnswer(await store.mailFindings.stage(await oneMailboxOf(store, env, given.source), input, agent)));
|
|
22963
23039
|
});
|
|
22964
|
-
|
|
22965
|
-
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) => {
|
|
22966
23042
|
const status = queryTerms(words2, FINDINGS_QUERY2, "mail findings list").get("status");
|
|
22967
23043
|
const account2 = given.source ? await oneMailboxOf(store, env, given.source) : void 0;
|
|
22968
23044
|
const found = await store.mailFindings.list({
|
|
@@ -23102,10 +23178,10 @@ var mcpCommandDefinition = /* @__PURE__ */ __name((program, streams, env, create
|
|
|
23102
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) => {
|
|
23103
23179
|
if (!options.http && (options.port !== void 0 || options.publicUrl !== void 0))
|
|
23104
23180
|
throw new CliError("validation_error", "--port and --public-url require --http");
|
|
23105
|
-
const { createMemoServer } = await import("./server-
|
|
23181
|
+
const { createMemoServer } = await import("./server-UBMV5OI7.js");
|
|
23106
23182
|
const build = /* @__PURE__ */ __name(() => createMemoServer(env, createProgram2, options.permission), "build");
|
|
23107
23183
|
if (options.http) {
|
|
23108
|
-
const { httpLockFile, mcpUrlOf, portOf, publicUrlOf, serveOverHttp } = await import("./mcp-
|
|
23184
|
+
const { httpLockFile, mcpUrlOf, portOf, publicUrlOf, serveOverHttp } = await import("./mcp-ZRKYZLNM.js");
|
|
23109
23185
|
const publicUrl = publicUrlOf(options.publicUrl, {
|
|
23110
23186
|
missing: "--http",
|
|
23111
23187
|
reaches: "the browser apps reach memo",
|
|
@@ -23157,7 +23233,7 @@ var mcpCommandDefinition = /* @__PURE__ */ __name((program, streams, env, create
|
|
|
23157
23233
|
});
|
|
23158
23234
|
});
|
|
23159
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() {
|
|
23160
|
-
const { revokeAll } = await import("./mcp-
|
|
23236
|
+
const { revokeAll } = await import("./mcp-ZRKYZLNM.js");
|
|
23161
23237
|
revokeAll(httpTokenFile(env));
|
|
23162
23238
|
out.print(this.opts().json, itemAnswer({ revoked: true }));
|
|
23163
23239
|
});
|
|
@@ -23688,14 +23764,14 @@ var notesCommandDefinition = /* @__PURE__ */ __name((program, streams, env) => {
|
|
|
23688
23764
|
...answer.backlinks.length ? [`linked from: ${answer.backlinks.map(({ from }) => from).join(", ")}`] : []
|
|
23689
23765
|
].join("\n"));
|
|
23690
23766
|
});
|
|
23691
|
-
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 }) => {
|
|
23692
23768
|
const terms = queryTerms(words2, NOTES_LIST_QUERY, "notes list");
|
|
23693
23769
|
const about = terms.get("about");
|
|
23694
23770
|
const source = terms.get("source");
|
|
23695
23771
|
const search2 = terms.get("text");
|
|
23696
23772
|
if (about !== void 0 && terms.size > 1)
|
|
23697
23773
|
throw new CliError("validation_error", "about: stands alone in notes list: its notes are found through links");
|
|
23698
|
-
const options = { ...paging, json:
|
|
23774
|
+
const options = { ...paging, json: json6 };
|
|
23699
23775
|
const page = await withNotes(async (store) => listNotes(store, {
|
|
23700
23776
|
limit: options.limit,
|
|
23701
23777
|
offset: (options.page - 1) * options.limit,
|
|
@@ -24077,11 +24153,11 @@ var ROW = {
|
|
|
24077
24153
|
],
|
|
24078
24154
|
text: ["reason"]
|
|
24079
24155
|
};
|
|
24080
|
-
var
|
|
24156
|
+
var json5 = /* @__PURE__ */ __name((command) => command.option("--json", "print JSON; --json=id,title keeps only those fields"), "json");
|
|
24081
24157
|
var reviewCommand = /* @__PURE__ */ __name((program, streams, env) => {
|
|
24082
24158
|
const { print } = answers(program, streams, env);
|
|
24083
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");
|
|
24084
|
-
|
|
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) => {
|
|
24085
24161
|
if (given.limit > 50)
|
|
24086
24162
|
throw new CliError("validation_error", "--limit is at most 50", { param: "limit" });
|
|
24087
24163
|
const found = await withStore(env, (store) => listReview(store, env, words2, given));
|
|
@@ -24096,7 +24172,7 @@ var reviewCommand = /* @__PURE__ */ __name((program, streams, env) => {
|
|
|
24096
24172
|
});
|
|
24097
24173
|
print(given.json, body, reviewText(found.items, found.hasMore), given.compact);
|
|
24098
24174
|
});
|
|
24099
|
-
|
|
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) => {
|
|
24100
24176
|
const body = await withStore(env, async (store) => {
|
|
24101
24177
|
const shown = await showReview(store, env, id);
|
|
24102
24178
|
const window = {
|
|
@@ -24118,7 +24194,7 @@ var reviewCommand = /* @__PURE__ */ __name((program, streams, env) => {
|
|
|
24118
24194
|
print(given.json, body, void 0, given.compact);
|
|
24119
24195
|
});
|
|
24120
24196
|
for (const name of ["confirm", "reject"]) {
|
|
24121
|
-
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");
|
|
24122
24198
|
if (name === "confirm")
|
|
24123
24199
|
command.option("--reason <text>", "why, in a few words; required when an agent decides");
|
|
24124
24200
|
else
|
|
@@ -24139,7 +24215,7 @@ var reviewCommand = /* @__PURE__ */ __name((program, streams, env) => {
|
|
|
24139
24215
|
print(given.json, itemAnswer(result, issues.length ? { meta: { complete: false, issues } } : void 0), decidedText(result), given.compact);
|
|
24140
24216
|
});
|
|
24141
24217
|
}
|
|
24142
|
-
|
|
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) => {
|
|
24143
24219
|
const since = /^\d{4}-\d{2}-\d{2}/.test(given.sinceTime) ? Date.parse(given.sinceTime) : Date.now() - parseDuration(given.sinceTime, "--since-time");
|
|
24144
24220
|
if (Number.isNaN(since))
|
|
24145
24221
|
throw new CliError("validation_error", `--since-time takes 12h, 7d or a date, not "${given.sinceTime}"`, {
|
|
@@ -24643,8 +24719,8 @@ For an agent: read with --compact, one line per hit with its reference. Never wr
|
|
|
24643
24719
|
for (const { source, reason } of answer.skipped)
|
|
24644
24720
|
streams.diagnostic(`${source} not searched: ${reason}
|
|
24645
24721
|
`);
|
|
24646
|
-
const { limit, page, json:
|
|
24647
|
-
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));
|
|
24648
24724
|
});
|
|
24649
24725
|
searchMemoriesCommand(group, streams, env);
|
|
24650
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) => {
|
|
@@ -25583,6 +25659,34 @@ var OWN_ENTITIES = entityFields({
|
|
|
25583
25659
|
agent_action: ["id", "actor", "tool", "tier", "target", "status", "error", "started_at", "finished_at"],
|
|
25584
25660
|
meeting_project: ["id", "meeting", "project", "confirmed", "provenance", "fingerprint"],
|
|
25585
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
|
+
],
|
|
25586
25690
|
invoice: [
|
|
25587
25691
|
"id",
|
|
25588
25692
|
"ref",
|
|
@@ -25716,6 +25820,7 @@ var createProgram = /* @__PURE__ */ __name(({ streams: raw = processStreams, env
|
|
|
25716
25820
|
mentionsCommand(program, streams, env);
|
|
25717
25821
|
factsCommand(program, streams, env);
|
|
25718
25822
|
financeCommands(program, streams, env);
|
|
25823
|
+
orderCommands(program, streams, env);
|
|
25719
25824
|
recordsCommand(program, streams, env);
|
|
25720
25825
|
findingsCommand(program, streams, env);
|
|
25721
25826
|
actionsCommand(program, streams, env);
|
|
@@ -25738,10 +25843,10 @@ var createProgram = /* @__PURE__ */ __name(({ streams: raw = processStreams, env
|
|
|
25738
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.", () => {
|
|
25739
25844
|
const out = answers(program, streams, env);
|
|
25740
25845
|
const skill3 = skillCommand(APP, new URL("../skills/cli-memo/SKILL.md", new URL("../program.js", import.meta.url).href), (command) => {
|
|
25741
|
-
const
|
|
25742
|
-
const renderer = createRenderer({ format:
|
|
25846
|
+
const json6 = command.opts().json === true;
|
|
25847
|
+
const renderer = createRenderer({ format: json6 ? "json" : "pretty", color: false, streams });
|
|
25743
25848
|
return {
|
|
25744
|
-
renderer:
|
|
25849
|
+
renderer: json6 ? { ...renderer, result: /* @__PURE__ */ __name((value) => out.print(true, itemAnswer(value)), "result") } : renderer,
|
|
25745
25850
|
streams,
|
|
25746
25851
|
env
|
|
25747
25852
|
};
|