@wirecat/cli-memo 0.131.78 → 0.131.80
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-ZEUEPNFD.js → all-profiles-RVKEGURX.js} +9 -9
- package/dist/bundle/{anthropic-VF75LSDZ.js → anthropic-FC6XUSWM.js} +6 -6
- package/dist/bundle/{app-server-Z4TY5VP5.js → app-server-IRNKU3IF.js} +41 -41
- package/dist/bundle/auto-GTL4YGZX.js +91 -0
- package/dist/bundle/{bun-OUR5UZAI.js → bun-TYBGE5BX.js} +2 -2
- package/dist/bundle/{bun-sqlite-26ZGEVH3.js → bun-sqlite-YENHHNPL.js} +10 -6
- package/dist/bundle/{chunk-DDPZY27T.js → chunk-2CJIZZSI.js} +16 -16
- package/dist/bundle/{chunk-3QBRLN6T.js → chunk-2EGS6BXF.js} +2 -2
- package/dist/bundle/{chunk-IFANDP3T.js → chunk-2FICCBKH.js} +14 -2
- package/dist/bundle/{chunk-OHMF7LWW.js → chunk-3H56E3VI.js} +5 -5
- package/dist/bundle/{chunk-WYSFOL74.js → chunk-4IKO3JAA.js} +4 -4
- package/dist/bundle/{chunk-6A37YXAL.js → chunk-5LEIPSJG.js} +24 -0
- package/dist/bundle/{chunk-VJLJFLKZ.js → chunk-666J5H2Z.js} +1 -1
- package/dist/bundle/{chunk-ELKRFQ5Y.js → chunk-6W6CLZKX.js} +12 -12
- package/dist/bundle/{chunk-22RYCAAO.js → chunk-BS5JBNGX.js} +9625 -9046
- package/dist/bundle/{chunk-5PCPPT43.js → chunk-C2FE62E5.js} +31 -31
- package/dist/bundle/{chunk-Z4TPRASF.js → chunk-C4TAEYDQ.js} +5 -5
- package/dist/bundle/{chunk-UIJBGS6K.js → chunk-CEGA7A35.js} +2 -2
- package/dist/bundle/{chunk-MUFU4LNS.js → chunk-CUWTYE5A.js} +2 -2
- package/dist/bundle/{chunk-EI7LYQQA.js → chunk-CVQJ7L4C.js} +4 -4
- package/dist/bundle/{chunk-EXFRC4OT.js → chunk-DCK5AT3D.js} +1 -1
- package/dist/bundle/{chunk-DAEPTQ6N.js → chunk-DS5SA5QP.js} +5 -5
- package/dist/bundle/{chunk-OMGNXKSH.js → chunk-EOXWI2EX.js} +4 -4
- package/dist/bundle/{chunk-EF33DKMR.js → chunk-F62N6QMI.js} +1 -1
- package/dist/bundle/{chunk-P3UQGKGY.js → chunk-FIJTCBPQ.js} +10 -10
- package/dist/bundle/{chunk-T37LLOZR.js → chunk-FR646D4S.js} +1 -1
- package/dist/bundle/{chunk-6GHBGGN7.js → chunk-GHYJW4ZH.js} +2 -2
- package/dist/bundle/{chunk-6ABWVQ4T.js → chunk-GNII3UL7.js} +1 -1
- package/dist/bundle/{chunk-YOM4PA3A.js → chunk-HFQXEMRG.js} +1 -1
- package/dist/bundle/{chunk-OMCET4QP.js → chunk-HHZMDFE2.js} +47 -47
- package/dist/bundle/{chunk-WETWQO6X.js → chunk-HKXACNLD.js} +2 -2
- package/dist/bundle/{chunk-QEJHNTCX.js → chunk-HXPU3ABX.js} +511 -349
- package/dist/bundle/{chunk-4LZLU2V3.js → chunk-IJUXHUNZ.js} +3 -3
- package/dist/bundle/{chunk-GXHPPHGB.js → chunk-IW6O2SAG.js} +11 -11
- package/dist/bundle/{chunk-N7CHOWDF.js → chunk-JDQSL2EY.js} +3 -3
- package/dist/bundle/{chunk-WHZJHUK6.js → chunk-JJ6ODCVQ.js} +2 -2
- package/dist/bundle/{chunk-7ENXMVT5.js → chunk-JPC7GSJO.js} +20 -11
- package/dist/bundle/{chunk-E5JVYVRX.js → chunk-JTQAMVZH.js} +15 -14
- package/dist/bundle/{chunk-Q2CQNT3A.js → chunk-K3JEAMTT.js} +1 -1
- package/dist/bundle/{chunk-AZIXZIXT.js → chunk-KDLOSANT.js} +7 -7
- package/dist/bundle/{chunk-D67YDJ35.js → chunk-KNRYIHUJ.js} +1049 -902
- package/dist/bundle/{chunk-B2ZAEF5Z.js → chunk-KVQY7R66.js} +2 -2
- package/dist/bundle/{chunk-H2AQV772.js → chunk-MDIXXKVU.js} +10 -10
- package/dist/bundle/{chunk-LJRXD44C.js → chunk-MLYPJ4EC.js} +7 -7
- package/dist/bundle/{chunk-Y2J52Y3A.js → chunk-NH7KIGIS.js} +3 -3
- package/dist/bundle/{chunk-XC26CUGL.js → chunk-NUKMYB65.js} +6 -6
- package/dist/bundle/{chunk-PTKJIA7M.js → chunk-OFRIG3CX.js} +3 -3
- package/dist/bundle/{chunk-WHMKYJZR.js → chunk-OH4AIBZF.js} +1 -1
- package/dist/bundle/{chunk-TWWYDJBW.js → chunk-OSE7GXAR.js} +1 -1
- package/dist/bundle/{chunk-QU7UPCW2.js → chunk-PX55CRD3.js} +86 -81
- package/dist/bundle/{chunk-7DKS4GIW.js → chunk-Q46O7KXY.js} +5 -5
- package/dist/bundle/chunk-R4XCBPD2.js +53 -0
- package/dist/bundle/{chunk-X2SA73EE.js → chunk-RK24IARI.js} +1 -1
- package/dist/bundle/{chunk-TT5RMHM6.js → chunk-RUM4GGHP.js} +5 -5
- package/dist/bundle/{chunk-5NBQOU5V.js → chunk-RWVB7SLQ.js} +26 -23
- package/dist/bundle/{chunk-MW6IAMUI.js → chunk-S2KXO7MO.js} +1 -1
- package/dist/bundle/{chunk-2IQWMWMC.js → chunk-SB3AOH3M.js} +3 -3
- package/dist/bundle/{chunk-NXQFVHG4.js → chunk-SGV2Z4BO.js} +165 -152
- package/dist/bundle/{chunk-XTCN3VUP.js → chunk-SKX3BNTE.js} +8 -8
- package/dist/bundle/{chunk-OUATPEPP.js → chunk-SULQCO3Y.js} +6 -6
- package/dist/bundle/{chunk-KUY35N7Q.js → chunk-TJ2B36VK.js} +7 -7
- package/dist/bundle/{chunk-ZKCAR2OL.js → chunk-UBUCTVHB.js} +1 -1
- package/dist/bundle/{chunk-T6LXUBXY.js → chunk-UTYGPWUY.js} +3 -3
- package/dist/bundle/{chunk-JHW2ARPA.js → chunk-VQJDYQ55.js} +34 -34
- package/dist/bundle/{chunk-F7MKFYYP.js → chunk-VTBIVTS5.js} +3 -3
- package/dist/bundle/{chunk-EIQ6HCIB.js → chunk-W26VONC6.js} +7 -7
- package/dist/bundle/{chunk-I6CZU7X7.js → chunk-X3NHAO6T.js} +1 -1
- package/dist/bundle/{chunk-3QV5JWFN.js → chunk-XZJUAG7B.js} +3 -3
- package/dist/bundle/{chunk-UWF6WXM7.js → chunk-ZMLDVE22.js} +7 -7
- package/dist/bundle/{chunk-NGWKI3E6.js → chunk-ZMSEKQQQ.js} +1 -1
- package/dist/bundle/command-contract-SR6ONYV4.js +34 -0
- package/dist/bundle/{command-server-entry-A7ZCZWHH.js → command-server-entry-2WXZVYIX.js} +21 -21
- package/dist/bundle/{decode-FO2ELPW6.js → decode-U7VFYQAA.js} +6 -6
- package/dist/bundle/{dispatch-N73TJNYM.js → dispatch-BRRZ6TLX.js} +1 -1
- package/dist/bundle/{echarts-HTY3OB2X.js → echarts-2PXBBLLJ.js} +2 -2
- package/dist/bundle/{embed-2DTGMR7Z.js → embed-DPA5QOIR.js} +7 -7
- package/dist/bundle/{embedder-N3IGQ2M6.js → embedder-IGI2UTFK.js} +10 -10
- package/dist/bundle/{entry-YDEKGRCA.js → entry-7PAYGIQO.js} +9 -9
- package/dist/bundle/{entry-Q7CIJ3TU.js → entry-IFOQTBXC.js} +9 -9
- package/dist/bundle/{failure-IPHFR3KW.js → failure-ECNGLVHX.js} +2 -2
- package/dist/bundle/failure-NAM37T2T.js +71 -0
- package/dist/bundle/{first-run-SAADMYEA.js → first-run-WHDDKA4V.js} +10 -10
- package/dist/bundle/first-screen-P5C57USR.js +32 -0
- package/dist/bundle/{instructions-XB5Y5DFA.js → instructions-W7F7OQZS.js} +1 -1
- package/dist/bundle/mcp-3LAFWOGW.js +92 -0
- package/dist/bundle/memo.js +6 -6
- package/dist/bundle/{node-4ZOD7X75.js → node-K6MWX3SW.js} +2 -2
- package/dist/bundle/{node-sqlite-DWXKYFW6.js → node-sqlite-WV6GCPEC.js} +11 -7
- package/dist/bundle/{oauth-GMIBNJQB.js → oauth-EH2Y54DG.js} +8 -8
- package/dist/bundle/{open-3DBI3MHV.js → open-PB4W3UAM.js} +6 -6
- package/dist/bundle/{openai-HFJAR7W5.js → openai-76OKHXWR.js} +11 -11
- package/dist/bundle/{process-2H5HNPHH.js → process-FMQ7Q7AI.js} +1 -1
- package/dist/bundle/{program-VXKN6DLP.js → program-BR2QHF36.js} +403 -142
- package/dist/bundle/{prompt-WETKFAQS.js → prompt-AW4T6CC2.js} +6 -6
- package/dist/bundle/{recognize-5LC3DQ2W.js → recognize-X5DMT3HH.js} +5 -5
- package/dist/bundle/{remote-FURTWZ25.js → remote-HVKKXNYZ.js} +8 -8
- package/dist/bundle/{rerank-CMQWT3WC.js → rerank-IXMWD7JV.js} +8 -8
- package/dist/bundle/{serve-LEF3PX34.js → serve-42XTYB26.js} +10 -10
- package/dist/bundle/server-HUEXB5QL.js +64 -0
- package/dist/bundle/{server-GYLFN6Y7.js → server-NNE7MUYT.js} +59 -59
- package/dist/bundle/server-YLXOJOTR.js +50 -0
- package/dist/bundle/{state-OVZT24JF.js → state-EOU37GAH.js} +7 -7
- package/dist/bundle/{store-SV46T732.js → store-F3REYMA6.js} +13 -13
- package/dist/bundle/store-maintenance-command-TOBBH3ZK.js +49 -0
- package/dist/bundle/update-3QB752NL.js +74 -0
- package/dist/examples.d.ts.map +1 -1
- package/dist/examples.js +13 -3
- package/dist/examples.js.map +1 -1
- package/dist/knowledge/command.d.ts.map +1 -1
- package/dist/knowledge/command.js +2 -0
- package/dist/knowledge/command.js.map +1 -1
- package/dist/knowledge/document-context.d.ts +14 -0
- package/dist/knowledge/document-context.d.ts.map +1 -0
- package/dist/knowledge/document-context.js +33 -0
- package/dist/knowledge/document-context.js.map +1 -0
- package/dist/knowledge/project-activity-command.d.ts +5 -0
- package/dist/knowledge/project-activity-command.d.ts.map +1 -0
- package/dist/knowledge/project-activity-command.js +71 -0
- package/dist/knowledge/project-activity-command.js.map +1 -0
- package/dist/knowledge/relationships.d.ts +4 -0
- package/dist/knowledge/relationships.d.ts.map +1 -1
- package/dist/knowledge/relationships.js +14 -0
- package/dist/knowledge/relationships.js.map +1 -1
- package/dist/knowledge/roles-command.d.ts.map +1 -1
- package/dist/knowledge/roles-command.js +7 -4
- package/dist/knowledge/roles-command.js.map +1 -1
- package/dist/mcp/catalogue.d.ts +4 -4
- package/dist/mcp/catalogue.d.ts.map +1 -1
- package/dist/mcp/catalogue.js +2 -2
- package/dist/mcp/catalogue.js.map +1 -1
- package/dist/people/doubts-command.d.ts +5 -0
- package/dist/people/doubts-command.d.ts.map +1 -0
- package/dist/people/doubts-command.js +46 -0
- package/dist/people/doubts-command.js.map +1 -0
- package/dist/people/identities-command.d.ts.map +1 -1
- package/dist/people/identities-command.js +52 -57
- package/dist/people/identities-command.js.map +1 -1
- package/dist/people/proposal-rows.d.ts +48 -0
- package/dist/people/proposal-rows.d.ts.map +1 -0
- package/dist/people/proposal-rows.js +61 -0
- package/dist/people/proposal-rows.js.map +1 -0
- package/dist/people/proposals-command.d.ts +5 -0
- package/dist/people/proposals-command.d.ts.map +1 -0
- package/dist/people/proposals-command.js +107 -0
- package/dist/people/proposals-command.js.map +1 -0
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +1 -0
- package/dist/program.js.map +1 -1
- package/dist/reasons.d.ts.map +1 -1
- package/dist/reasons.js +12 -0
- package/dist/reasons.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/tasks/shared.d.ts.map +1 -1
- package/dist/tasks/shared.js +14 -2
- package/dist/tasks/shared.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
- package/skills/cli-memo/topics/proposals.md +10 -6
- package/dist/bundle/auto-SA667UAT.js +0 -91
- package/dist/bundle/chunk-VHA3LJQT.js +0 -35
- package/dist/bundle/command-contract-L5GTW74N.js +0 -34
- package/dist/bundle/failure-QL3RJILP.js +0 -71
- package/dist/bundle/first-screen-WXKAIMY6.js +0 -32
- package/dist/bundle/mcp-IRJS472M.js +0 -92
- package/dist/bundle/server-C2EVLJLW.js +0 -64
- package/dist/bundle/server-L7GHFXJF.js +0 -50
- package/dist/bundle/store-maintenance-command-TZYC5HVL.js +0 -49
- package/dist/bundle/update-PRBIV3RG.js +0 -74
- /package/dist/bundle/{chunk-DK3W4FPW.js → chunk-ID2I2X2Z.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalogue.js","sourceRoot":"","sources":["../../src/mcp/catalogue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,cAAc,EAAgB,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AACzF,OAAO,EAAqB,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAG9G,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAI1C,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,sCAAsC,EAAE;IACjE,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,iCAAiC,EAAE;IAChE,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,+CAA+C,EAAE;IACvF,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,6BAA6B,EAAE;IAClE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,4BAA4B,EAAE;IAChE,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,mDAAmD,EAAE;IACnF,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,mDAAmD,EAAE;IAC1F,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,uDAAuD,EAAE;IACjG,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,uDAAuD,EAAE;IAC9F,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,2CAA2C,EAAE;IAClF,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,uDAAuD,EAAE;IAC9F,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,4CAA4C,EAAE;IACtF,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,wDAAwD,EAAE;IACjG,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,mEAAmE,EAAE;IAC7G,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,yDAAyD,EAAE;IAC1G,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,4CAA4C,EAAE;IACzF,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,yCAAyC,EAAE;IACzF,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"catalogue.js","sourceRoot":"","sources":["../../src/mcp/catalogue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Streams } from "@wirecat/cli-base";
|
|
2
|
+
import type { Command } from "commander";
|
|
3
|
+
/** People that may be wrong across the whole store, so the owner or an agent can set them right. */
|
|
4
|
+
export declare const doubtsCommand: (people: Command, program: Command, streams: Streams, env: NodeJS.ProcessEnv) => void;
|
|
5
|
+
//# sourceMappingURL=doubts-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doubts-command.d.ts","sourceRoot":"","sources":["../../src/people/doubts-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAIhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAgBxC,oGAAoG;AACpG,eAAO,MAAM,aAAa,WAAY,OAAO,WAAW,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,KAAG,IAuC3G,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { annotate } from "@wirecat/cli-base/commands";
|
|
2
|
+
import { LOCAL_READ } from "@wirecat/cli-core/cli";
|
|
3
|
+
import { answers, listAnswer, withStore } from "../answer.js";
|
|
4
|
+
import { positive } from "../options.js";
|
|
5
|
+
import { groupOf, keepInGroup } from "../store/group.js";
|
|
6
|
+
const textOf = (doubt) => [
|
|
7
|
+
`${doubt.person}${doubt.name ? ` ${doubt.name}` : ""}${doubt.owner ? " (you)" : ""} · ${doubt.reason}`,
|
|
8
|
+
` ${doubt.why}`,
|
|
9
|
+
...doubt.identities.map(({ identity, name, method, by, at }) => ` ${identity}${name ? ` ${name}` : ""} (${method} by ${by}, ${at.slice(0, 10)})`),
|
|
10
|
+
...doubt.fix.map((command) => ` fix: memo ${command}`),
|
|
11
|
+
].join("\n");
|
|
12
|
+
/** People that may be wrong across the whole store, so the owner or an agent can set them right. */
|
|
13
|
+
export const doubtsCommand = (people, program, streams, env) => {
|
|
14
|
+
const { print } = answers(program, streams, env);
|
|
15
|
+
const links = people.commands.find((command) => command.name() === "links") ??
|
|
16
|
+
people.command("links").description("who is who: the links that make identities one person");
|
|
17
|
+
annotate(links.command("check"), { effects: LOCAL_READ })
|
|
18
|
+
.summary("people that may be wrong, with why and the command that fixes each")
|
|
19
|
+
.description("people that may be wrong, you first: your person holding an identity under another name, test data, an " +
|
|
20
|
+
"identity joined by an address a person of another name has, one person with different names and nothing " +
|
|
21
|
+
"in common. Each says why and gives the unlink or unmerge that fixes it; an agent adds --reason and it waits " +
|
|
22
|
+
"for you in people review. What you linked by hand, or kept together by turning a split down, is left out")
|
|
23
|
+
.option("--limit <n>", "most people on a page, up to 200", positive, 20)
|
|
24
|
+
.option("--page <n>", "which page, from 1", positive, 1)
|
|
25
|
+
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
26
|
+
.action(async (options) => {
|
|
27
|
+
const limit = Math.min(options.limit, 200);
|
|
28
|
+
const counted = groupOf(env) === undefined;
|
|
29
|
+
const found = await withStore(env, async (store) => {
|
|
30
|
+
const page = await store.people.doubts({ limit, offset: (options.page - 1) * limit });
|
|
31
|
+
// In a group the total covers people outside it (WC-ACCT-13), so the answer claims none.
|
|
32
|
+
return { ...page, items: await keepInGroup(store, env, page.items, ({ person }) => person) };
|
|
33
|
+
});
|
|
34
|
+
print(options.json, listAnswer("people links check", {
|
|
35
|
+
items: found.items,
|
|
36
|
+
limit,
|
|
37
|
+
page: options.page,
|
|
38
|
+
has_more: found.hasMore,
|
|
39
|
+
...(counted ? { total: { value: found.total, relation: "eq" } } : {}),
|
|
40
|
+
}), [
|
|
41
|
+
found.items.map(textOf).join("\n\n") || (found.hasMore ? "none on this page" : "no person looks wrong"),
|
|
42
|
+
...(found.hasMore ? [`more: --page ${options.page + 1}`] : []),
|
|
43
|
+
].join("\n\n"));
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=doubts-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doubts-command.js","sourceRoot":"","sources":["../../src/people/doubts-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identities-command.d.ts","sourceRoot":"","sources":["../../src/people/identities-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"identities-command.d.ts","sourceRoot":"","sources":["../../src/people/identities-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAI1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA4CxC,iHAAiH;AACjH,eAAO,MAAM,kBAAkB,WAAY,OAAO,WAAW,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,SAmL7G,CAAA"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { CliError } from "@wirecat/cli-base";
|
|
2
2
|
import { annotate } from "@wirecat/cli-base/commands";
|
|
3
3
|
import { LOCAL_READ, LOCAL_WRITE } from "@wirecat/cli-core/cli";
|
|
4
|
-
import { parseMergeId
|
|
5
|
-
import { answers, itemAnswer,
|
|
4
|
+
import { parseMergeId } from "@wirecat/cli-core/store";
|
|
5
|
+
import { answers, itemAnswer, withStore } from "../answer.js";
|
|
6
6
|
import { byOption, reasonOption, whoRuns } from "../author.js";
|
|
7
|
-
import {
|
|
7
|
+
import { doubtsCommand } from "./doubts-command.js";
|
|
8
8
|
import { exactIdentityOf, identityOf } from "./identity.js";
|
|
9
|
-
|
|
9
|
+
import { withOwner } from "./owner.js";
|
|
10
|
+
import { matchAnswer, summaryOf } from "./proposal-rows.js";
|
|
11
|
+
import { peopleProposalCommands } from "./proposals-command.js";
|
|
10
12
|
const PERSON = /^person:([1-9]\d*)$/;
|
|
11
|
-
/** `person:<uid>`, or an identity of the person as `<messenger>:<name or id>`. */
|
|
13
|
+
/** `person:<uid>`, `person:me`, or an identity of the person as `<messenger>:<name or id>`. */
|
|
12
14
|
const personOf = async (store, who) => {
|
|
13
|
-
const uid = PERSON.exec(who.trim())?.[1];
|
|
15
|
+
const uid = PERSON.exec((await withOwner(store, who)).trim())?.[1];
|
|
14
16
|
const found = uid === undefined ? await store.people.personOf(await identityOf(store, who)) : await store.people.personByUid(uid);
|
|
15
17
|
if (found === undefined)
|
|
16
18
|
throw new CliError("not_found", `the store has no person for "${who}"`, { reason: "person.not-found" });
|
|
@@ -32,29 +34,6 @@ const personAnswer = (person) => ({
|
|
|
32
34
|
linkedAt: identity.linkedAt,
|
|
33
35
|
})),
|
|
34
36
|
});
|
|
35
|
-
const matchAnswer = (row) => ({
|
|
36
|
-
id: row.id,
|
|
37
|
-
persons: row.persons,
|
|
38
|
-
joins: row.joins,
|
|
39
|
-
identity: row.identity,
|
|
40
|
-
with: row.with,
|
|
41
|
-
signal: row.signal,
|
|
42
|
-
score: row.score,
|
|
43
|
-
candidates: row.candidates,
|
|
44
|
-
reason: row.reason,
|
|
45
|
-
evidence: row.evidence,
|
|
46
|
-
proposedBy: row.proposedBy,
|
|
47
|
-
createdAt: row.createdAt,
|
|
48
|
-
});
|
|
49
|
-
const summaryOf = ({ identity, with: other, persons, signal }) => `${identity} may be the same person as ${other ?? persons[1]} (${signal})`;
|
|
50
|
-
/** The owner's moves: refused for anyone else before anything is read, whatever the store would say. */
|
|
51
|
-
const asOwner = async (command, env, question) => {
|
|
52
|
-
const options = command.opts();
|
|
53
|
-
const who = await whoRuns(command, env, { asOwner: options.asOwner, question });
|
|
54
|
-
if (who !== "owner")
|
|
55
|
-
throw new CliError("permission_error", `only the owner can ${question.replace(/\?$/, "")}`, { reason: OWNER_ONLY });
|
|
56
|
-
return who;
|
|
57
|
-
};
|
|
58
37
|
const identitiesOf = async (store, refs) => {
|
|
59
38
|
const found = [];
|
|
60
39
|
for (const ref of refs)
|
|
@@ -82,25 +61,12 @@ export const identitiesCommands = (people, program, streams, env) => {
|
|
|
82
61
|
print(options.json, itemAnswer(shown), [
|
|
83
62
|
`${shown.ref} ${shown.name ?? ""}`.trim(),
|
|
84
63
|
...shown.identities.map(({ identity, name }) => ` ${identity}${name ? ` ${name}` : ""}`),
|
|
85
|
-
...shown.merges.map(({ id, from }) => ` merged: ${id} (person:${from})`),
|
|
64
|
+
...shown.merges.map(({ id, from, method, by, at }) => ` merged: ${id} (person:${from}) by ${by} via ${method}, ${at.slice(0, 10)}`),
|
|
86
65
|
...shown.matches.map((match) => ` match ${match.id}: ${summaryOf(match)}`),
|
|
87
66
|
].join("\n"));
|
|
88
67
|
});
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
.description("people that may be one person, waiting for the owner; memo review confirms or rejects them")
|
|
92
|
-
.option("--limit <n>", "most matches, up to 500", positive, 50)
|
|
93
|
-
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
94
|
-
.action(async (options) => {
|
|
95
|
-
if (options.limit > 500)
|
|
96
|
-
throw new CliError("validation_error", "--limit takes 1–500", { param: "limit" });
|
|
97
|
-
const found = await withStore(env, (store) => store.people.linkProposals({ status: "proposed", limit: options.limit, offset: 0 }));
|
|
98
|
-
const items = found.items.map(matchAnswer);
|
|
99
|
-
print(options.json, listAnswer("people review", { items, limit: options.limit, has_more: found.hasMore }), [
|
|
100
|
-
...items.map((match) => `${match.id} ${summaryOf(match)}`),
|
|
101
|
-
...(found.hasMore ? [`more wait: --limit ${Math.min(500, options.limit * 2)}`] : []),
|
|
102
|
-
].join("\n") || "no matches wait for you");
|
|
103
|
-
});
|
|
68
|
+
peopleProposalCommands(people, program, streams, env);
|
|
69
|
+
doubtsCommand(people, program, streams, env);
|
|
104
70
|
annotate(people.command("scan"), { effects: LOCAL_WRITE })
|
|
105
71
|
.summary("match people across sources now; memo sync does it too")
|
|
106
72
|
.description("match people across sources now: the same address or a phone two people share joins them, the rest waits " +
|
|
@@ -144,18 +110,37 @@ export const identitiesCommands = (people, program, streams, env) => {
|
|
|
144
110
|
});
|
|
145
111
|
print(options.json, itemAnswer(done), done.outcome === "linked" ? `linked: ${done.person}` : `waits for the owner as match ${done.proposal}`);
|
|
146
112
|
});
|
|
147
|
-
|
|
148
|
-
|
|
113
|
+
/**
|
|
114
|
+
* The owner's separations apply at once; anyone else's waits for the owner as a split proposal, with why. A run with
|
|
115
|
+
* no reason that is not the owner's is refused before anything is read.
|
|
116
|
+
*/
|
|
117
|
+
const separation = async (command, question, reason) => {
|
|
118
|
+
const who = await whoRuns(command, env, { asOwner: command.opts().asOwner, question });
|
|
119
|
+
if (who !== "owner" && !reason?.trim())
|
|
120
|
+
throw new CliError("validation_error", "an agent's split waits for the owner; say why with --reason", {
|
|
121
|
+
reason: "proposal.reason-required",
|
|
122
|
+
param: "reason",
|
|
123
|
+
});
|
|
124
|
+
return who;
|
|
125
|
+
};
|
|
126
|
+
const proposed = (json, proposal) => print(json, itemAnswer({ outcome: "proposed", proposal }), `waits for the owner as split ${proposal}: memo people review`);
|
|
127
|
+
reasonOption(byOption(annotate(people.command("unlink"), { effects: LOCAL_WRITE })
|
|
128
|
+
.summary("take identities off a person, to one new person; an agent's waits for you")
|
|
149
129
|
.description("take identities off their person: one gets a person of its own again, several move together to one new " +
|
|
150
|
-
"person
|
|
151
|
-
|
|
130
|
+
"person, and no automatic match joins them back; yours applies at once, an agent's waits for you in " +
|
|
131
|
+
"people review")
|
|
132
|
+
.argument("<identities...>", "the identities that leave, each <messenger>:<id> exactly, all of one person")))
|
|
152
133
|
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
153
134
|
.action(async (refs, options, command) => {
|
|
154
|
-
await
|
|
155
|
-
const
|
|
135
|
+
const who = await separation(command, `unlink ${refs.join(" ")}?`, options.reason);
|
|
136
|
+
const done = await withStore(env, async (store) => {
|
|
156
137
|
const chosen = [];
|
|
157
138
|
for (const ref of refs)
|
|
158
139
|
chosen.push(await exactIdentityOf(store, ref));
|
|
140
|
+
if (who !== "owner") {
|
|
141
|
+
const reason = options.reason?.trim();
|
|
142
|
+
return { proposal: (await store.people.proposeSplit({ identities: chosen, by: who, reason })).id };
|
|
143
|
+
}
|
|
159
144
|
const [first] = chosen;
|
|
160
145
|
if (chosen.length === 1)
|
|
161
146
|
return store.people.unlinkIdentity(first, { method: "unlink", by: "owner" });
|
|
@@ -164,16 +149,26 @@ export const identitiesCommands = (people, program, streams, env) => {
|
|
|
164
149
|
throw new CliError("not_found", `the store has no person for "${refs[0]}"`, { reason: "person.not-found" });
|
|
165
150
|
return store.people.split(held.uid, chosen, "owner");
|
|
166
151
|
});
|
|
167
|
-
|
|
152
|
+
if ("proposal" in done)
|
|
153
|
+
proposed(options.json, done.proposal);
|
|
154
|
+
else
|
|
155
|
+
print(options.json, itemAnswer(personAnswer(done)), `person:${done.uid}`);
|
|
168
156
|
});
|
|
169
|
-
byOption(annotate(people.command("unmerge"), { effects: LOCAL_WRITE })
|
|
170
|
-
.summary("undo a merge: its identities go back to their person;
|
|
171
|
-
.description("give the identities a merge brought back to the person they came from;
|
|
172
|
-
|
|
157
|
+
reasonOption(byOption(annotate(people.command("unmerge"), { effects: LOCAL_WRITE })
|
|
158
|
+
.summary("undo a merge: its identities go back to their person; an agent's waits for you")
|
|
159
|
+
.description("give the identities a merge brought back to the person they came from; yours applies at once, an " +
|
|
160
|
+
"agent's waits for you in people review")
|
|
161
|
+
.argument("<merge>", "merge:<to>-<from>, as people show lists it")))
|
|
173
162
|
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
174
163
|
.action(async (merge, options, command) => {
|
|
175
164
|
const { to, from } = parseMergeId(merge);
|
|
176
|
-
await
|
|
165
|
+
const who = await separation(command, `undo ${merge}?`, options.reason);
|
|
166
|
+
if (who !== "owner") {
|
|
167
|
+
const reason = options.reason?.trim();
|
|
168
|
+
const proposal = await withStore(env, (store) => store.people.proposeSplit({ merge, by: who, reason }));
|
|
169
|
+
proposed(options.json, proposal.id);
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
177
172
|
const person = await withStore(env, (store) => store.people.undoMerge(to, from, "owner"));
|
|
178
173
|
print(options.json, itemAnswer(personAnswer(person)), `person:${person.uid}`);
|
|
179
174
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identities-command.js","sourceRoot":"","sources":["../../src/people/identities-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAgB,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"identities-command.js","sourceRoot":"","sources":["../../src/people/identities-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { IdentityLinkRow, IdentitySplitRow, MessageStore } from "@wirecat/cli-core/store";
|
|
2
|
+
import type { Command } from "commander";
|
|
3
|
+
/** The owner's moves: refused for anyone else before anything is read, whatever the store would say. */
|
|
4
|
+
export declare const asOwner: (command: Command, env: NodeJS.ProcessEnv, question: string) => Promise<"owner">;
|
|
5
|
+
export declare const matchAnswer: (row: IdentityLinkRow) => {
|
|
6
|
+
id: string;
|
|
7
|
+
kind: "identity_link";
|
|
8
|
+
persons: [string, string];
|
|
9
|
+
joins: "identity" | "person";
|
|
10
|
+
identity: string;
|
|
11
|
+
with: string | null;
|
|
12
|
+
signal: "account" | "agent" | "email" | "guest-email" | "name" | "phone";
|
|
13
|
+
score: number | null;
|
|
14
|
+
candidates: string[];
|
|
15
|
+
reason: string | null;
|
|
16
|
+
evidence: string[];
|
|
17
|
+
proposedBy: import("@wirecat/cli-core/store").Proposer;
|
|
18
|
+
createdAt: string;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* A split names one `person`, never a `persons` pair: an app that reads every row with two persons as a match would
|
|
22
|
+
* offer to confirm a split under a merge's words.
|
|
23
|
+
*/
|
|
24
|
+
export declare const splitAnswer: (row: IdentitySplitRow) => {
|
|
25
|
+
id: string;
|
|
26
|
+
kind: "identity_split";
|
|
27
|
+
split: import("@wirecat/cli-core/store").IdentitySplitMove;
|
|
28
|
+
person: string;
|
|
29
|
+
identities: string[];
|
|
30
|
+
merge: string | null;
|
|
31
|
+
reason: string | null;
|
|
32
|
+
evidence: string[];
|
|
33
|
+
proposedBy: import("@wirecat/cli-core/store").Proposer;
|
|
34
|
+
createdAt: string;
|
|
35
|
+
};
|
|
36
|
+
export type PeopleProposal = ReturnType<typeof matchAnswer> | ReturnType<typeof splitAnswer>;
|
|
37
|
+
export declare const summaryOf: (row: PeopleProposal) => string;
|
|
38
|
+
export declare const PROPOSAL_KINDS: readonly ["all", "link", "split"];
|
|
39
|
+
export type ProposalKindWord = (typeof PROPOSAL_KINDS)[number];
|
|
40
|
+
/** The matches and splits waiting for the owner, newest first, at most `limit`, and whether more wait. */
|
|
41
|
+
export declare const waiting: (store: MessageStore, { kind, limit }: {
|
|
42
|
+
kind: ProposalKindWord;
|
|
43
|
+
limit: number;
|
|
44
|
+
}) => Promise<{
|
|
45
|
+
items: PeopleProposal[];
|
|
46
|
+
hasMore: boolean;
|
|
47
|
+
}>;
|
|
48
|
+
//# sourceMappingURL=proposal-rows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposal-rows.d.ts","sourceRoot":"","sources":["../../src/people/proposal-rows.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC9F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxC,wGAAwG;AACxG,eAAO,MAAM,OAAO,YAAmB,OAAO,OAAO,MAAM,CAAC,UAAU,YAAY,MAAM,KAAG,OAAO,CAAC,OAAO,CAQzG,CAAA;AAED,eAAO,MAAM,WAAW,QAAS,eAAe;IAC9C,EAAE;IACF,IAAI,EAAE,eAAe;IACrB,OAAO;IACP,KAAK;IACL,QAAQ;IACR,IAAI;IACJ,MAAM;IACN,KAAK;IACL,UAAU;IACV,MAAM;IACN,QAAQ;IACR,UAAU;IACV,SAAS;CACT,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,QAAS,gBAAgB;IAC/C,EAAE;IACF,IAAI,EAAE,gBAAgB;IACtB,KAAK;IACL,MAAM;IACN,UAAU;IACV,KAAK;IACL,MAAM;IACN,QAAQ;IACR,UAAU;IACV,SAAS;CACT,CAAA;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAA;AAE5F,eAAO,MAAM,SAAS,QAAS,cAAc,KAAG,MAM/C,CAAA;AAED,eAAO,MAAM,cAAc,YAAI,KAAK,EAAE,MAAM,EAAE,OAAO,CAAU,CAAA;AAE/D,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE9D,0GAA0G;AAC1G,eAAO,MAAM,OAAO,UACX,YAAY,mBACF;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KACzD,OAAO,CAAC;IAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CASvD,CAAA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { CliError } from "@wirecat/cli-base";
|
|
2
|
+
import { whoRuns } from "../author.js";
|
|
3
|
+
/** The owner's moves: refused for anyone else before anything is read, whatever the store would say. */
|
|
4
|
+
export const asOwner = async (command, env, question) => {
|
|
5
|
+
const options = command.opts();
|
|
6
|
+
const who = await whoRuns(command, env, { asOwner: options.asOwner, question });
|
|
7
|
+
if (who !== "owner")
|
|
8
|
+
throw new CliError("permission_error", `only the owner can ${question.replace(/\?$/, "")}`, {
|
|
9
|
+
reason: "identity.owner-only",
|
|
10
|
+
});
|
|
11
|
+
return who;
|
|
12
|
+
};
|
|
13
|
+
export const matchAnswer = (row) => ({
|
|
14
|
+
id: row.id,
|
|
15
|
+
kind: "identity_link",
|
|
16
|
+
persons: row.persons,
|
|
17
|
+
joins: row.joins,
|
|
18
|
+
identity: row.identity,
|
|
19
|
+
with: row.with,
|
|
20
|
+
signal: row.signal,
|
|
21
|
+
score: row.score,
|
|
22
|
+
candidates: row.candidates,
|
|
23
|
+
reason: row.reason,
|
|
24
|
+
evidence: row.evidence,
|
|
25
|
+
proposedBy: row.proposedBy,
|
|
26
|
+
createdAt: row.createdAt,
|
|
27
|
+
});
|
|
28
|
+
/**
|
|
29
|
+
* A split names one `person`, never a `persons` pair: an app that reads every row with two persons as a match would
|
|
30
|
+
* offer to confirm a split under a merge's words.
|
|
31
|
+
*/
|
|
32
|
+
export const splitAnswer = (row) => ({
|
|
33
|
+
id: row.id,
|
|
34
|
+
kind: "identity_split",
|
|
35
|
+
split: row.split,
|
|
36
|
+
person: row.person,
|
|
37
|
+
identities: row.identities,
|
|
38
|
+
merge: row.merge,
|
|
39
|
+
reason: row.reason,
|
|
40
|
+
evidence: row.evidence,
|
|
41
|
+
proposedBy: row.proposedBy,
|
|
42
|
+
createdAt: row.createdAt,
|
|
43
|
+
});
|
|
44
|
+
export const summaryOf = (row) => {
|
|
45
|
+
if (row.kind === "identity_link")
|
|
46
|
+
return `${row.identity} may be the same person as ${row.with ?? row.persons[1]} (${row.signal})`;
|
|
47
|
+
return row.split === "unmerge"
|
|
48
|
+
? `undo ${row.merge}: ${row.identities.join(" ")} go back to their own person`
|
|
49
|
+
: `take ${row.identities.join(" ")} off ${row.person}`;
|
|
50
|
+
};
|
|
51
|
+
export const PROPOSAL_KINDS = ["all", "link", "split"];
|
|
52
|
+
/** The matches and splits waiting for the owner, newest first, at most `limit`, and whether more wait. */
|
|
53
|
+
export const waiting = async (store, { kind, limit }) => {
|
|
54
|
+
const none = { items: [], hasMore: false };
|
|
55
|
+
const page = { status: "proposed", limit, offset: 0 };
|
|
56
|
+
const links = kind === "split" ? none : await store.people.linkProposals(page);
|
|
57
|
+
const splits = kind === "link" ? none : await store.people.splitProposals(page);
|
|
58
|
+
const rows = [...links.items.map(matchAnswer), ...splits.items.map(splitAnswer)].sort((a, b) => b.createdAt.localeCompare(a.createdAt) || Number(b.id) - Number(a.id));
|
|
59
|
+
return { items: rows.slice(0, limit), hasMore: links.hasMore || splits.hasMore || rows.length > limit };
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=proposal-rows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposal-rows.js","sourceRoot":"","sources":["../../src/people/proposal-rows.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type Streams } from "@wirecat/cli-base";
|
|
2
|
+
import type { Command } from "commander";
|
|
3
|
+
/** The matches and splits waiting for the owner, and the owner's answer to one, several or all of them. */
|
|
4
|
+
export declare const peopleProposalCommands: (people: Command, program: Command, streams: Streams, env: NodeJS.ProcessEnv) => void;
|
|
5
|
+
//# sourceMappingURL=proposals-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposals-command.d.ts","sourceRoot":"","sources":["../../src/people/proposals-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAK1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA8CxC,2GAA2G;AAC3G,eAAO,MAAM,sBAAsB,WACzB,OAAO,WACN,OAAO,WACP,OAAO,OACX,MAAM,CAAC,UAAU,KACrB,IAsFF,CAAA"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { CliError } from "@wirecat/cli-base";
|
|
2
|
+
import { annotate } from "@wirecat/cli-base/commands";
|
|
3
|
+
import { LOCAL_READ, LOCAL_WRITE } from "@wirecat/cli-core/cli";
|
|
4
|
+
import { parseProposalIds } from "@wirecat/cli-core/services";
|
|
5
|
+
import { IDENTITY_LINK_KIND, IDENTITY_SPLIT_KIND } from "@wirecat/cli-core/store";
|
|
6
|
+
import { answers, itemAnswer, listAnswer, withStore } from "../answer.js";
|
|
7
|
+
import { byOption } from "../author.js";
|
|
8
|
+
import { oneOf, positive } from "../options.js";
|
|
9
|
+
import { decidedText, decisionOf } from "../review/review.js";
|
|
10
|
+
import { reviewOf } from "../store/guard.js";
|
|
11
|
+
import { asOwner, PROPOSAL_KINDS, summaryOf, waiting } from "./proposal-rows.js";
|
|
12
|
+
const PEOPLE_KINDS = [IDENTITY_LINK_KIND, IDENTITY_SPLIT_KIND];
|
|
13
|
+
const limitOf = (limit) => {
|
|
14
|
+
if (limit > 500)
|
|
15
|
+
throw new CliError("validation_error", "--limit takes 1–500", { param: "limit" });
|
|
16
|
+
return limit;
|
|
17
|
+
};
|
|
18
|
+
/** Only the people review's own proposals; any other id is refused on its own, so the rest are still decided. */
|
|
19
|
+
const peopleIds = async (store, ids) => {
|
|
20
|
+
const kept = [];
|
|
21
|
+
const refused = [];
|
|
22
|
+
for (const id of ids) {
|
|
23
|
+
const kind = await store.proposedActions.get(id).then((action) => action.kind, () => undefined);
|
|
24
|
+
if (kind === undefined)
|
|
25
|
+
refused.push({ id, code: "not_found", reason: "proposal.not-found", message: `no proposal ${id}` });
|
|
26
|
+
else if (!PEOPLE_KINDS.includes(kind))
|
|
27
|
+
refused.push({
|
|
28
|
+
id,
|
|
29
|
+
code: "validation_error",
|
|
30
|
+
reason: "proposal.not-people",
|
|
31
|
+
message: `${id} is a ${kind} proposal; memo review decides it`,
|
|
32
|
+
});
|
|
33
|
+
else
|
|
34
|
+
kept.push(id);
|
|
35
|
+
}
|
|
36
|
+
return { ids: kept, refused };
|
|
37
|
+
};
|
|
38
|
+
/** The matches and splits waiting for the owner, and the owner's answer to one, several or all of them. */
|
|
39
|
+
export const peopleProposalCommands = (people, program, streams, env) => {
|
|
40
|
+
const { print } = answers(program, streams, env);
|
|
41
|
+
annotate(people.command("review"), { effects: LOCAL_READ })
|
|
42
|
+
.summary("people that may be one, and splits an agent proposed, waiting for you")
|
|
43
|
+
.description("what waits for the owner about who is who: matches (people that may be one) and splits (identities an agent " +
|
|
44
|
+
"says are not this person), newest first; people confirm or people reject answers them")
|
|
45
|
+
.option("--kind <kind>", `${PROPOSAL_KINDS.join(", ")} (default all)`, oneOf(PROPOSAL_KINDS), "all")
|
|
46
|
+
.option("--limit <n>", "most proposals, up to 500", positive, 50)
|
|
47
|
+
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
48
|
+
.action(async (options) => {
|
|
49
|
+
const limit = limitOf(options.limit);
|
|
50
|
+
const found = await withStore(env, (store) => waiting(store, { kind: options.kind, limit }));
|
|
51
|
+
print(options.json, listAnswer("people review", { items: found.items, limit, has_more: found.hasMore }), [
|
|
52
|
+
...found.items.map((row) => `${row.id} ${summaryOf(row)}${row.reason ? ` — ${row.reason}` : ""}`),
|
|
53
|
+
...(found.hasMore ? [`more wait: --limit ${Math.min(500, limit * 2)}`] : []),
|
|
54
|
+
].join("\n") || "nothing about people waits for you");
|
|
55
|
+
});
|
|
56
|
+
for (const name of ["confirm", "reject"]) {
|
|
57
|
+
const confirm = name === "confirm";
|
|
58
|
+
const command = byOption(annotate(people.command(name), { effects: LOCAL_WRITE })
|
|
59
|
+
.summary(confirm
|
|
60
|
+
? "confirm matches and splits by id, or all that people review lists; only you"
|
|
61
|
+
: "turn down matches and splits by id, or all that people review lists; only you")
|
|
62
|
+
.description(confirm
|
|
63
|
+
? "confirm matches (the people become one) and splits (the identities leave their person) by id or range " +
|
|
64
|
+
"as people review lists them, or `all` of what it lists with the same --kind and --limit; each is " +
|
|
65
|
+
"decided on its own, so a refusal leaves the others decided. `all` shows what it would do until --yes"
|
|
66
|
+
: "turn down matches and splits by id or range, or `all` of what people review lists; a turned-down match " +
|
|
67
|
+
"comes back only on new evidence, a turned-down split not while its identities stay on that person. " +
|
|
68
|
+
"`all` shows what it would do until --yes")
|
|
69
|
+
.argument("<ids...>", "ids or ranges as people review lists them (17080 17082-17085), or all"))
|
|
70
|
+
.option("--kind <kind>", `with all: ${PROPOSAL_KINDS.join(", ")} (default all)`, oneOf(PROPOSAL_KINDS), "all")
|
|
71
|
+
.option("--limit <n>", "with all: as many as people review lists, up to 500", positive, 50)
|
|
72
|
+
.option("--yes", "with all: do it, not only show what would be done");
|
|
73
|
+
if (confirm)
|
|
74
|
+
command.option("--reason <text>", "why, in a few words");
|
|
75
|
+
else
|
|
76
|
+
command.requiredOption("--reason <text>", "why they are turned down, in a few words");
|
|
77
|
+
command.option("--json", "print JSON; --json=id,title keeps only those fields");
|
|
78
|
+
command.action(async (words, options) => {
|
|
79
|
+
const everything = words.length === 1 && words[0]?.toLowerCase() === "all";
|
|
80
|
+
const limit = limitOf(options.limit);
|
|
81
|
+
await asOwner(command, env, `${name} ${everything ? "all waiting" : words.join(" ")} people proposals?`);
|
|
82
|
+
const result = await withStore(env, async (store) => {
|
|
83
|
+
const listed = everything ? await waiting(store, { kind: options.kind, limit }) : undefined;
|
|
84
|
+
const chosen = listed
|
|
85
|
+
? { ids: listed.items.map(({ id }) => id), refused: [] }
|
|
86
|
+
: await peopleIds(store, parseProposalIds(words));
|
|
87
|
+
const more = listed?.hasMore ?? false;
|
|
88
|
+
if (everything && !options.yes)
|
|
89
|
+
return { kind: "preview", preview: chosen.ids, more };
|
|
90
|
+
const done = await (await reviewOf(store, env)).decide(chosen.ids, decisionOf(confirm, "owner", options.reason));
|
|
91
|
+
return { kind: "decided", ...done, refused: [...chosen.refused, ...done.refused], more };
|
|
92
|
+
});
|
|
93
|
+
const moreText = result.more ? `\nmore wait than --limit ${limit}; run it again for the rest` : "";
|
|
94
|
+
if (result.kind === "preview") {
|
|
95
|
+
const count = result.preview.length;
|
|
96
|
+
print(options.json, itemAnswer({ outcome: "preview", would: name, ids: result.preview, has_more: result.more }), count === 0
|
|
97
|
+
? "nothing about people waits for you"
|
|
98
|
+
: `would ${name} ${count}: ${result.preview.join(" ")}\nnothing changed; add --yes to ${name} them${moreText}`);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
const { more, kind: _, ...decided } = result;
|
|
102
|
+
const issues = decided.refused.map((one) => ({ code: one.code, source: one.id, reason: one.reason }));
|
|
103
|
+
print(options.json, itemAnswer({ ...decided, has_more: more }, issues.length ? { meta: { complete: false, issues } } : undefined), decidedText(decided) + moreText);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
//# sourceMappingURL=proposals-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposals-command.js","sourceRoot":"","sources":["../../src/people/proposals-command.ts"],"names":[],"mappings":"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"}
|
package/dist/program.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,KAAK,YAAY,EAAkB,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAI7G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAkBhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAyDnC,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,KAAK,YAAY,EAAkB,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAI7G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAkBhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAyDnC,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAokB9D,qHAAqH;AACrH,eAAO,MAAM,YAAY,YACvB,QAAQ,EACR,UAAU,EACV,UAAU,EACV,MAAM,EACN,WAAW,EACX,OAAO,EACP,KAAK,EACL,YAAY,CACJ,CAAA;AAkBV,eAAO,MAAM,aAAa,yHAYvB;IACD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,8GAA8G;IAC9G,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,6FAA6F;IAC7F,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;IAC7B,8EAA8E;IAC9E,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,sGAAsG;IACtG,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,8FAA8F;IAC9F,SAAS,CAAC,EAAE,gBAAgB,CAAA;IAC5B,2GAA2G;IAC3G,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iFAAiF;IACjF,WAAW,CAAC,EAAE,OAAO,KAAK,CAAA;IAC1B,kHAAkH;IAClH,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACrC,KAAQ,OA+KR,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,YACX,OAAO,QACV,SAAS,MAAM,EAAE,OAClB,MAAM,CAAC,UAAU,KACrB,OAAO,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAkB5C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,YAAa,OAAO,QAAQ,SAAS,MAAM,EAAE,KAAG,IAgB5E,CAAA"}
|
package/dist/program.js
CHANGED
|
@@ -591,6 +591,7 @@ const GROUP_AWARE = [
|
|
|
591
591
|
"projects context",
|
|
592
592
|
"projects status",
|
|
593
593
|
"projects key-documents",
|
|
594
|
+
"stats projects show",
|
|
594
595
|
];
|
|
595
596
|
const isSimpleKind = (name) => REF_KINDS.some(({ type }) => type === name);
|
|
596
597
|
/** What a `<ref>` or `<id>` argument names in each top-level group; ids of owner-only queues name no account. */
|