@wirecat/cli-memo 0.31.0 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/dist/actions/command.d.ts.map +1 -1
  2. package/dist/actions/command.js +7 -7
  3. package/dist/actions/command.js.map +1 -1
  4. package/dist/agents/command.js +3 -3
  5. package/dist/agents/command.js.map +1 -1
  6. package/dist/answer.d.ts +23 -0
  7. package/dist/answer.d.ts.map +1 -0
  8. package/dist/answer.js +56 -0
  9. package/dist/answer.js.map +1 -0
  10. package/dist/answers/command.d.ts.map +1 -1
  11. package/dist/answers/command.js +6 -14
  12. package/dist/answers/command.js.map +1 -1
  13. package/dist/bin/memo.js +8 -2
  14. package/dist/bin/memo.js.map +1 -1
  15. package/dist/context/command.d.ts +1 -1
  16. package/dist/context/command.d.ts.map +1 -1
  17. package/dist/context/command.js +6 -15
  18. package/dist/context/command.js.map +1 -1
  19. package/dist/doctor/command.d.ts +2 -1
  20. package/dist/doctor/command.d.ts.map +1 -1
  21. package/dist/doctor/command.js +10 -12
  22. package/dist/doctor/command.js.map +1 -1
  23. package/dist/effects.d.ts +6 -1
  24. package/dist/effects.d.ts.map +1 -1
  25. package/dist/effects.js +24 -9
  26. package/dist/effects.js.map +1 -1
  27. package/dist/examples.d.ts.map +1 -1
  28. package/dist/examples.js +5 -3
  29. package/dist/examples.js.map +1 -1
  30. package/dist/facts/command.d.ts.map +1 -1
  31. package/dist/facts/command.js +14 -22
  32. package/dist/facts/command.js.map +1 -1
  33. package/dist/facts/fact.d.ts +36 -0
  34. package/dist/facts/fact.d.ts.map +1 -0
  35. package/dist/facts/fact.js +47 -0
  36. package/dist/facts/fact.js.map +1 -0
  37. package/dist/failure.d.ts +5 -7
  38. package/dist/failure.d.ts.map +1 -1
  39. package/dist/failure.js +8 -27
  40. package/dist/failure.js.map +1 -1
  41. package/dist/knowledge/command.d.ts.map +1 -1
  42. package/dist/knowledge/command.js +32 -29
  43. package/dist/knowledge/command.js.map +1 -1
  44. package/dist/knowledge/meeting-projects-command.d.ts.map +1 -1
  45. package/dist/knowledge/meeting-projects-command.js +22 -12
  46. package/dist/knowledge/meeting-projects-command.js.map +1 -1
  47. package/dist/list-query.d.ts +18 -0
  48. package/dist/list-query.d.ts.map +1 -0
  49. package/dist/list-query.js +68 -0
  50. package/dist/list-query.js.map +1 -0
  51. package/dist/mail/apply.d.ts.map +1 -1
  52. package/dist/mail/apply.js +1 -0
  53. package/dist/mail/apply.js.map +1 -1
  54. package/dist/mail/command.d.ts.map +1 -1
  55. package/dist/mail/command.js +103 -97
  56. package/dist/mail/command.js.map +1 -1
  57. package/dist/mail/import.d.ts.map +1 -1
  58. package/dist/mail/import.js +2 -0
  59. package/dist/mail/import.js.map +1 -1
  60. package/dist/mail/messages-command.d.ts.map +1 -1
  61. package/dist/mail/messages-command.js +7 -14
  62. package/dist/mail/messages-command.js.map +1 -1
  63. package/dist/mail/rule-store.d.ts +33 -0
  64. package/dist/mail/rule-store.d.ts.map +1 -0
  65. package/dist/mail/rule-store.js +129 -0
  66. package/dist/mail/rule-store.js.map +1 -0
  67. package/dist/mail/rules.d.ts +4 -0
  68. package/dist/mail/rules.d.ts.map +1 -1
  69. package/dist/mail/rules.js.map +1 -1
  70. package/dist/mcp/knowledge.d.ts.map +1 -1
  71. package/dist/mcp/knowledge.js +15 -9
  72. package/dist/mcp/knowledge.js.map +1 -1
  73. package/dist/mcp/server.d.ts.map +1 -1
  74. package/dist/mcp/server.js +30 -36
  75. package/dist/mcp/server.js.map +1 -1
  76. package/dist/mcp/task-relations.d.ts.map +1 -1
  77. package/dist/mcp/task-relations.js +9 -7
  78. package/dist/mcp/task-relations.js.map +1 -1
  79. package/dist/mcp/tool.d.ts +3 -2
  80. package/dist/mcp/tool.d.ts.map +1 -1
  81. package/dist/mcp/tool.js.map +1 -1
  82. package/dist/mcp/vocabulary.d.ts.map +1 -1
  83. package/dist/mcp/vocabulary.js +7 -6
  84. package/dist/mcp/vocabulary.js.map +1 -1
  85. package/dist/memories/command.d.ts.map +1 -1
  86. package/dist/memories/command.js +15 -19
  87. package/dist/memories/command.js.map +1 -1
  88. package/dist/memories/memory.d.ts +31 -0
  89. package/dist/memories/memory.d.ts.map +1 -0
  90. package/dist/memories/memory.js +43 -0
  91. package/dist/memories/memory.js.map +1 -0
  92. package/dist/notes/command.d.ts.map +1 -1
  93. package/dist/notes/command.js +39 -30
  94. package/dist/notes/command.js.map +1 -1
  95. package/dist/notes/embed.d.ts +2 -0
  96. package/dist/notes/embed.d.ts.map +1 -1
  97. package/dist/notes/embed.js +8 -0
  98. package/dist/notes/embed.js.map +1 -1
  99. package/dist/notes/folders-command.d.ts.map +1 -1
  100. package/dist/notes/folders-command.js +19 -28
  101. package/dist/notes/folders-command.js.map +1 -1
  102. package/dist/notes/search.d.ts.map +1 -1
  103. package/dist/notes/search.js +2 -8
  104. package/dist/notes/search.js.map +1 -1
  105. package/dist/output.d.ts +7 -14
  106. package/dist/output.d.ts.map +1 -1
  107. package/dist/output.js +10 -45
  108. package/dist/output.js.map +1 -1
  109. package/dist/page.d.ts +2 -5
  110. package/dist/page.d.ts.map +1 -1
  111. package/dist/page.js +7 -2
  112. package/dist/page.js.map +1 -1
  113. package/dist/people/command.d.ts.map +1 -1
  114. package/dist/people/command.js +3 -7
  115. package/dist/people/command.js.map +1 -1
  116. package/dist/program.d.ts.map +1 -1
  117. package/dist/program.js +2 -0
  118. package/dist/program.js.map +1 -1
  119. package/dist/reasons.d.ts.map +1 -1
  120. package/dist/reasons.js +6 -0
  121. package/dist/reasons.js.map +1 -1
  122. package/dist/run/auto.d.ts.map +1 -1
  123. package/dist/run/auto.js +10 -14
  124. package/dist/run/auto.js.map +1 -1
  125. package/dist/run/import.d.ts.map +1 -1
  126. package/dist/run/import.js +12 -14
  127. package/dist/run/import.js.map +1 -1
  128. package/dist/search/answers.d.ts +11 -56
  129. package/dist/search/answers.d.ts.map +1 -1
  130. package/dist/search/answers.js +43 -34
  131. package/dist/search/answers.js.map +1 -1
  132. package/dist/search/command.d.ts.map +1 -1
  133. package/dist/search/command.js +28 -38
  134. package/dist/search/command.js.map +1 -1
  135. package/dist/search/hits.d.ts +8 -0
  136. package/dist/search/hits.d.ts.map +1 -0
  137. package/dist/search/hits.js +68 -0
  138. package/dist/search/hits.js.map +1 -0
  139. package/dist/tags/command.d.ts.map +1 -1
  140. package/dist/tags/command.js +17 -33
  141. package/dist/tags/command.js.map +1 -1
  142. package/dist/tasks/command.d.ts.map +1 -1
  143. package/dist/tasks/command.js +29 -44
  144. package/dist/tasks/command.js.map +1 -1
  145. package/dist/tasks/relations-command.js +4 -4
  146. package/dist/tasks/relations-command.js.map +1 -1
  147. package/dist/terminal.d.ts +4 -0
  148. package/dist/terminal.d.ts.map +1 -0
  149. package/dist/terminal.js +8 -0
  150. package/dist/terminal.js.map +1 -0
  151. package/dist/version.d.ts +1 -1
  152. package/dist/version.js +1 -1
  153. package/dist/vocabulary/command.d.ts.map +1 -1
  154. package/dist/vocabulary/command.js +3 -3
  155. package/dist/vocabulary/command.js.map +1 -1
  156. package/package.json +1 -1
  157. package/skills/cli-memo/SKILL.md +7 -3
  158. package/dist/records/run.d.ts +0 -7
  159. package/dist/records/run.d.ts.map +0 -1
  160. package/dist/records/run.js +0 -24
  161. package/dist/records/run.js.map +0 -1
package/dist/effects.js CHANGED
@@ -1,11 +1,6 @@
1
1
  import { annotate } from "@wirecat/cli-base/commands";
2
+ import { FETCH, LOCAL_READ, LOCAL_WRITE, NO_EFFECTS, REMOTE_READ } from "@wirecat/cli-core/cli";
2
3
  import { leaves } from "./examples.js";
3
- // cli-core's FETCH, LOCAL_READ… spelled out: importing its CLI module would cost every memo command ~70 ms.
4
- const REMOTE_READ = { remote: "read", local: "read" };
5
- const FETCH = { remote: "read", local: "write" };
6
- const LOCAL_READ = { remote: "none", local: "read" };
7
- const LOCAL_WRITE = { remote: "none", local: "write" };
8
- const NO_EFFECTS = { remote: "none", local: "none" };
9
4
  // memo's remote side is the mail server and a configured model; it only ever reads there. Notes folders and the
10
5
  // store are this machine. A command missing here counts as a write: never retried, never run as an unasked step.
11
6
  export const EFFECTS = {
@@ -26,6 +21,8 @@ export const EFFECTS = {
26
21
  "mail rules add": LOCAL_WRITE,
27
22
  "mail rules remove": LOCAL_WRITE,
28
23
  "mail rules apply": LOCAL_WRITE,
24
+ "mail rules export": LOCAL_READ,
25
+ "mail rules import": LOCAL_WRITE,
29
26
  note: LOCAL_WRITE,
30
27
  "tags add": LOCAL_WRITE,
31
28
  "tags remove": LOCAL_WRITE,
@@ -100,12 +97,30 @@ export const EFFECTS = {
100
97
  "skill show": NO_EFFECTS,
101
98
  "skill install": LOCAL_WRITE,
102
99
  };
103
- /** Puts each leaf's effects in `commands --json`, where retries, steps and MCP hints are judged from them. */
100
+ /** The cli-core entity each answer's items are, so `--json=<field>` is checked and the CLIs compare. */
101
+ export const OUTPUTS = {
102
+ "search all": { entity: "hit" },
103
+ "search messages": { entity: "message", view: "hit" },
104
+ "search mail": { entity: "message", view: "hit" },
105
+ "search notes": { entity: "note", view: "hit" },
106
+ "search memories": { entity: "memory" },
107
+ "facts add": { entity: "fact" },
108
+ "facts show": { entity: "fact" },
109
+ "facts confirm": { entity: "fact" },
110
+ "facts reverse": { entity: "fact" },
111
+ "memories add": { entity: "memory" },
112
+ "memories show": { entity: "memory" },
113
+ "memories confirm": { entity: "memory" },
114
+ "memories stale": { entity: "memory" },
115
+ };
116
+ /**
117
+ * Puts each leaf's effects and answer in `commands --json`, where retries, steps and MCP hints are judged from them.
118
+ */
104
119
  export const addEffects = (program) => {
105
120
  for (const [path, command] of leaves(program)) {
106
121
  const effects = EFFECTS[path];
107
- if (effects)
108
- annotate(command, { effects });
122
+ const output = OUTPUTS[path];
123
+ annotate(command, { ...(effects ? { effects } : {}), ...(output ? { output } : {}) });
109
124
  }
110
125
  };
111
126
  //# sourceMappingURL=effects.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"effects.js","sourceRoot":"","sources":["../src/effects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"effects.js","sourceRoot":"","sources":["../src/effects.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"examples.d.ts","sourceRoot":"","sources":["../src/examples.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CA2HhE,CAAA;AAED,eAAO,MAAM,MAAM,YAAa,OAAO,SAAQ,MAAM,EAAE,KAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EAI5E,CAAA;AAEJ,qFAAqF;AACrF,eAAO,MAAM,WAAW,YAAa,OAAO,KAAG,IAO9C,CAAA"}
1
+ {"version":3,"file":"examples.d.ts","sourceRoot":"","sources":["../src/examples.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CA6HhE,CAAA;AAED,eAAO,MAAM,MAAM,YAAa,OAAO,SAAQ,MAAM,EAAE,KAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EAI5E,CAAA;AAEJ,qFAAqF;AACrF,eAAO,MAAM,WAAW,YAAa,OAAO,KAAG,IAO9C,CAAA"}
package/dist/examples.js CHANGED
@@ -28,6 +28,8 @@ export const EXAMPLES = {
28
28
  ],
29
29
  "mail rules remove": ["memo mail rules remove personal --domain news.example"],
30
30
  "mail rules apply": ["memo mail rules apply personal", "memo mail rules apply personal --yes --json"],
31
+ "mail rules export": ["memo mail rules export personal"],
32
+ "mail rules import": ["memo mail rules import personal rules.json"],
31
33
  note: ["memo note telegram:'Kai Sample' People/Kai.md", "memo note telegram:'Kai Sample' --clear"],
32
34
  "tags add": ["memo tags add follow-up --note note:12", "memo tags add harbour --project HRB"],
33
35
  "tags remove": ["memo tags remove follow-up --note note:12"],
@@ -80,14 +82,14 @@ export const EXAMPLES = {
80
82
  "vocabulary aliases add": ["memo vocabulary aliases add project:2 Harbor --expected 3f9a"],
81
83
  "vocabulary aliases remove": ["memo vocabulary aliases remove project:2 5 --expected 3f9a"],
82
84
  "memories add": ["memo memories add 'Kai prefers Friday meetings' --kind preference --scope work --evidence note:12"],
83
- "memories list": ["memo memories list --status proposed"],
85
+ "memories list": ["memo memories list status:proposed kind:preference"],
84
86
  "memories show": ["memo memories show memory:4"],
85
87
  "memories confirm": ["memo memories confirm memory:4"],
86
88
  "memories stale": ["memo memories stale memory:4"],
87
89
  "facts add": [
88
- "memo facts add 'We moved the launch to spring' --type decision --evidence 'msg:telegram/1/77/42' --project HRB",
90
+ "memo facts add 'We moved the launch to spring' --kind decision --evidence 'msg:telegram/1/77/42' --project HRB",
89
91
  ],
90
- "facts list": ["memo facts list --type decision --project HRB"],
92
+ "facts list": ["memo facts list kind:decision project:HRB"],
91
93
  "facts show": ["memo facts show fact:4"],
92
94
  "facts confirm": ["memo facts confirm fact:4"],
93
95
  "facts reverse": ["memo facts reverse fact:4"],
@@ -1 +1 @@
1
- {"version":3,"file":"examples.js","sourceRoot":"","sources":["../src/examples.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"examples.js","sourceRoot":"","sources":["../src/examples.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/facts/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA4BxC,eAAO,MAAM,YAAY,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,KAAG,IAoEzF,CAAA"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/facts/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAoBxC,eAAO,MAAM,YAAY,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,KAAG,IAmEzF,CAAA"}
@@ -1,15 +1,16 @@
1
- import { FACT_STATUSES, FACT_TYPES, MEMORY_SCOPES } from "@wirecat/cli-core/store";
1
+ import { FACT_TYPES, MEMORY_SCOPES } from "@wirecat/cli-core/store";
2
+ import { answers, itemAnswer } from "../answer.js";
2
3
  import { authorOf, byOption } from "../author.js";
4
+ import { withQuery } from "../list-query.js";
3
5
  import { oneOf, positive } from "../options.js";
4
- import { pageOf } from "../page.js";
5
- import { answering } from "../records/run.js";
6
6
  import { canonicalProject } from "../vocabulary/project.js";
7
+ import { FACT_QUERY, factItem, listFacts } from "./fact.js";
7
8
  export const factsCommand = (program, streams, env) => {
8
- const run = answering(streams, env);
9
+ const { run } = answers(program, streams, env);
9
10
  const facts = program.command("facts").description("what happened — said, asked, decided, promised — with evidence");
10
11
  byOption(facts.command("add").description("record a fact; an agent's waits as proposed until you confirm it"))
11
12
  .argument("<statement...>", "what happened, in one sentence")
12
- .requiredOption("--type <type>", FACT_TYPES.join(", "), oneOf(FACT_TYPES))
13
+ .requiredOption("--kind <kind>", FACT_TYPES.join(", "), oneOf(FACT_TYPES))
13
14
  .option("--evidence <ref...>", "what shows it: msg:, note:, meeting:, person: or another reference")
14
15
  .option("--project <project>", "the project it belongs to: its key or project:<id>")
15
16
  .option("--subject <ref>", "what it is about, as a reference")
@@ -17,8 +18,8 @@ export const factsCommand = (program, streams, env) => {
17
18
  .option("--scope <scope>", MEMORY_SCOPES.join(" or "), oneOf(MEMORY_SCOPES))
18
19
  .option("--supersedes <ref>", "a decision only: the decision this one replaces")
19
20
  .option("--json", "print JSON; --json=id,title keeps only those fields")
20
- .action((words, options) => run(options.json, async (store) => store.facts.add({
21
- type: options.type,
21
+ .action((words, options) => run(options.json, async (store) => itemAnswer(factItem(await store.facts.add({
22
+ type: options.kind,
22
23
  statement: words.join(" "),
23
24
  by: authorOf(env, options.asOwner),
24
25
  ...(options.evidence === undefined ? {} : { evidence: options.evidence }),
@@ -27,37 +28,28 @@ export const factsCommand = (program, streams, env) => {
27
28
  ...(options.occurred === undefined ? {} : { occurredAt: options.occurred }),
28
29
  ...(options.scope === undefined ? {} : { scope: options.scope }),
29
30
  ...(options.supersedes === undefined ? {} : { supersedes: options.supersedes }),
30
- })));
31
- facts
32
- .command("list")
33
- .description("facts, latest first")
34
- .option("--type <type>", FACT_TYPES.join(", "), oneOf(FACT_TYPES))
35
- .option("--status <status>", FACT_STATUSES.join(", "), oneOf(FACT_STATUSES))
36
- .option("--project <project>", "only this project's: its key or project:<id>")
37
- .option("--subject <ref>", "only facts about this reference")
31
+ })))));
32
+ withQuery(facts.command("list").description("facts, latest first"), FACT_QUERY)
38
33
  .option("--limit <n>", "most facts, up to 500", positive, 100)
39
34
  .option("--json", "print JSON; --json=id,title keeps only those fields")
40
- .action(({ json, ...filters }) => run(json, async (store) => {
41
- const project = filters.project === undefined ? undefined : await canonicalProject(store, filters.project);
42
- return pageOf(filters.limit, (limit) => store.facts.list({ ...filters, ...(project === undefined ? {} : { project }), limit }));
43
- }));
35
+ .action((words, { json, limit }) => run(json, (store) => listFacts(store, words, limit)));
44
36
  facts
45
37
  .command("show")
46
38
  .description("one fact with its evidence")
47
39
  .argument("<ref>", "fact:<id>")
48
40
  .option("--json", "print JSON; --json=id,title keeps only those fields")
49
- .action((ref, options) => run(options.json, (store) => store.facts.get(ref)));
41
+ .action((ref, options) => run(options.json, async (store) => itemAnswer(factItem(await store.facts.get(ref)))));
50
42
  facts
51
43
  .command("confirm")
52
44
  .description("stand behind a fact an agent proposed; a decision it supersedes stops holding")
53
45
  .argument("<ref>", "fact:<id>")
54
46
  .option("--json", "print JSON; --json=id,title keeps only those fields")
55
- .action((ref, options) => run(options.json, (store) => store.facts.accept(ref)));
47
+ .action((ref, options) => run(options.json, async (store) => itemAnswer(factItem(await store.facts.accept(ref)))));
56
48
  facts
57
49
  .command("reverse")
58
50
  .description("an accepted decision no longer holds, and nothing replaced it")
59
51
  .argument("<ref>", "fact:<id>")
60
52
  .option("--json", "print JSON; --json=id,title keeps only those fields")
61
- .action((ref, options) => run(options.json, (store) => store.facts.reverse(ref)));
53
+ .action((ref, options) => run(options.json, async (store) => itemAnswer(factItem(await store.facts.reverse(ref)))));
62
54
  };
63
55
  //# sourceMappingURL=command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/facts/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/facts/command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { type Fact, type MessageStore } from "@wirecat/cli-core/store";
2
+ export declare const FACT_QUERY: {
3
+ readonly entity: "fact";
4
+ readonly backend: "native";
5
+ readonly fields: readonly [import("@wirecat/cli-base/query").FieldSpec, import("@wirecat/cli-base/query").FieldSpec, import("@wirecat/cli-base/query").FieldSpec, import("@wirecat/cli-base/query").FieldSpec];
6
+ };
7
+ /** A fact under cli-core's `fact` entity names; `confirmed_by` is memo's own beyond it. */
8
+ export declare const factItem: ({ type, statement, source, confirmedBy, ...fact }: Fact) => {
9
+ ref: string;
10
+ id: string;
11
+ kind: "decision" | "fact" | "promise" | "question" | "statement";
12
+ text: string;
13
+ status: "accepted" | "proposed" | "reversed" | "superseded";
14
+ project: string | null;
15
+ subject: string | null;
16
+ occurredAt: string | null;
17
+ supersedes: string | null;
18
+ author: {
19
+ type: "bot" | "person";
20
+ id: string;
21
+ name: string | null;
22
+ };
23
+ model: string | null;
24
+ scope: "personal" | "work" | null;
25
+ origin: string;
26
+ evidence: string[];
27
+ createdAt: string;
28
+ updatedAt: string;
29
+ confirmedBy: {
30
+ type: "bot" | "person";
31
+ id: string;
32
+ } | null;
33
+ };
34
+ /** Facts the store filters by the query's terms; CLI and MCP list through it. */
35
+ export declare const listFacts: (store: MessageStore, query: readonly string[] | string | undefined, limit?: number) => Promise<import("@wirecat/cli-core/cli").ListBody<unknown>>;
36
+ //# sourceMappingURL=fact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fact.d.ts","sourceRoot":"","sources":["../../src/facts/fact.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,KAAK,IAAI,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAKjG,eAAO,MAAM,UAAU;qBACb,MAAM;sBACL,QAAQ;;CAOe,CAAA;AAElC,2FAA2F;AAC3F,eAAO,MAAM,QAAQ,sDAAuD,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;CAkB9E,CAAA;AAEF,iFAAiF;AACjF,eAAO,MAAM,SAAS,UAAiB,YAAY,SAAS,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,UAAU,MAAM,+DAYjH,CAAA"}
@@ -0,0 +1,47 @@
1
+ import { FACT_STATUSES, FACT_TYPES } from "@wirecat/cli-core/store";
2
+ import { queryField, queryTerms } from "../list-query.js";
3
+ import { pageOf } from "../page.js";
4
+ import { canonicalProject } from "../vocabulary/project.js";
5
+ export const FACT_QUERY = {
6
+ entity: "fact",
7
+ backend: "native",
8
+ fields: [
9
+ queryField("kind", "enum", "kind:decision", FACT_TYPES),
10
+ queryField("status", "enum", "status:proposed", FACT_STATUSES),
11
+ queryField("project", "kw", "project:SYH"),
12
+ queryField("subject", "ref", 'subject:"person:42"'),
13
+ ],
14
+ };
15
+ /** A fact under cli-core's `fact` entity names; `confirmed_by` is memo's own beyond it. */
16
+ export const factItem = ({ type, statement, source, confirmedBy, ...fact }) => ({
17
+ ref: fact.ref,
18
+ id: fact.id,
19
+ kind: type,
20
+ text: statement,
21
+ status: fact.status,
22
+ project: fact.project,
23
+ subject: fact.subject,
24
+ occurredAt: fact.occurredAt,
25
+ supersedes: fact.supersedes,
26
+ author: fact.author,
27
+ model: fact.model,
28
+ scope: fact.scope,
29
+ origin: source,
30
+ evidence: fact.evidence,
31
+ createdAt: fact.createdAt,
32
+ updatedAt: fact.updatedAt,
33
+ confirmedBy,
34
+ });
35
+ /** Facts the store filters by the query's terms; CLI and MCP list through it. */
36
+ export const listFacts = async (store, query, limit) => {
37
+ const terms = queryTerms(query, FACT_QUERY, "facts list");
38
+ const project = terms.get("project");
39
+ const filters = {
40
+ ...(terms.has("kind") ? { type: terms.get("kind") } : {}),
41
+ ...(terms.has("status") ? { status: terms.get("status") } : {}),
42
+ ...(project === undefined ? {} : { project: await canonicalProject(store, project) }),
43
+ ...(terms.has("subject") ? { subject: terms.get("subject") } : {}),
44
+ };
45
+ return pageOf("facts list", limit, async (most) => (await store.facts.list({ ...filters, limit: most })).map(factItem));
46
+ };
47
+ //# sourceMappingURL=fact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fact.js","sourceRoot":"","sources":["../../src/facts/fact.ts"],"names":[],"mappings":"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"}
package/dist/failure.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type Streams } from "@wirecat/cli-base";
2
2
  import { type Command } from "commander";
3
- export declare const errorObject: (error: unknown) => Promise<{
3
+ export declare const errorObject: (error: unknown) => {
4
4
  error: {
5
5
  code: "authentication_error" | "cancelled" | "configuration_error" | "confirmation_required" | "internal_error" | "invalid_response" | "network_error" | "not_found" | "outcome_unknown" | "permission_error" | "provider_error" | "provider_unavailable" | "rate_limited" | "timeout" | "validation_error";
6
6
  reason: string;
@@ -30,9 +30,9 @@ export declare const errorObject: (error: unknown) => Promise<{
30
30
  };
31
31
  run_id?: string | undefined;
32
32
  };
33
- }>;
33
+ };
34
34
  /** The same object as `--json` prints on stderr, as MCP's `isError` answer. */
35
- export declare const mcpFailure: (error: unknown) => Promise<{
35
+ export declare const mcpFailure: (error: unknown) => {
36
36
  content: {
37
37
  type: "text";
38
38
  text: string;
@@ -69,9 +69,7 @@ export declare const mcpFailure: (error: unknown) => Promise<{
69
69
  };
70
70
  };
71
71
  isError: true;
72
- }>;
73
- /** A person at a terminal who did not ask for machine output. */
74
- export declare const interactiveOf: (args: readonly string[], tty: boolean) => boolean;
72
+ };
75
73
  /** Parse failures reach the handler as `CommanderError` instead of Commander's own text and exit. */
76
74
  export declare const throwParseFailures: (program: Command) => void;
77
75
  export interface ReportOptions {
@@ -83,5 +81,5 @@ export interface ReportOptions {
83
81
  tty: boolean;
84
82
  }
85
83
  /** One error object on stderr, `✗ message` at a terminal; returns the exit code. */
86
- export declare const reportFailure: (error: unknown, { args, program, streams, tty }: ReportOptions) => Promise<number>;
84
+ export declare const reportFailure: (error: unknown, { args, program, streams, tty }: ReportOptions) => number;
87
85
  //# sourceMappingURL=failure.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"failure.d.ts","sourceRoot":"","sources":["../src/failure.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,OAAO,EACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,KAAK,OAAO,EAAkB,MAAM,WAAW,CAAA;AAiCxD,eAAO,MAAM,WAAW,UAAiB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA0D,CAAA;AAE1G,+EAA+E;AAC/E,eAAO,MAAM,UAAU,UAAiB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA6C,CAAA;AAS5F,iEAAiE;AACjE,eAAO,MAAM,aAAa,SAAU,SAAS,MAAM,EAAE,OAAO,OAAO,YACF,CAAA;AAejE,qGAAqG;AACrG,eAAO,MAAM,kBAAkB,YAAa,OAAO,KAAG,IAGrD,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IACvB,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,oFAAoF;AACpF,eAAO,MAAM,aAAa,UAAiB,OAAO,mCAAmC,aAAa,oBAgBjG,CAAA"}
1
+ {"version":3,"file":"failure.d.ts","sourceRoot":"","sources":["../src/failure.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,OAAO,EACb,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,KAAK,OAAO,EAAkB,MAAM,WAAW,CAAA;AAsBxD,eAAO,MAAM,WAAW,UAAW,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAgD,CAAA;AAE1F,+EAA+E;AAC/E,eAAO,MAAM,UAAU,UAAW,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAuC,CAAA;AAehF,qGAAqG;AACrG,eAAO,MAAM,kBAAkB,YAAa,OAAO,KAAG,IAGrD,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IACvB,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,oFAAoF;AACpF,eAAO,MAAM,aAAa,UAAW,OAAO,mCAAmC,aAAa,WAY3F,CAAA"}
package/dist/failure.js CHANGED
@@ -1,22 +1,11 @@
1
1
  import { CliError, errorObjectOf, errorRecordOf, exitCodeOfError, mcpErrorResult, renderError, } from "@wirecat/cli-base";
2
+ import { failureContext, judgedEffects } from "@wirecat/cli-core/cli";
2
3
  import { CommanderError } from "commander";
3
4
  import { ValiError } from "valibot";
4
5
  import { APP } from "./app.js";
5
6
  import { EFFECTS } from "./effects.js";
6
- import { REASONS } from "./reasons.js";
7
- let shared;
8
- // cli-core's CLI module costs every memo command ~70 ms to load, so only a failure loads it.
9
- const contextOf = async () => {
10
- if (shared)
11
- return shared;
12
- try {
13
- shared = (await import("@wirecat/cli-core/cli")).failureContext(APP.errors);
14
- }
15
- catch {
16
- return { reasons: REASONS };
17
- }
18
- return shared;
19
- };
7
+ import { interactiveOf, optionsOf } from "./terminal.js";
8
+ const context = failureContext(APP.errors);
20
9
  const recognisable = (error) => {
21
10
  if (error instanceof CommanderError)
22
11
  return new CliError("validation_error", error.message.replace(/^error: /, ""), { reason: "input.invalid" });
@@ -30,16 +19,9 @@ const recognisable = (error) => {
30
19
  }
31
20
  return error;
32
21
  };
33
- export const errorObject = async (error) => errorObjectOf(recognisable(error), await contextOf());
22
+ export const errorObject = (error) => errorObjectOf(recognisable(error), context);
34
23
  /** The same object as `--json` prints on stderr, as MCP's `isError` answer. */
35
- export const mcpFailure = async (error) => mcpErrorResult(await errorObject(error));
36
- const MACHINE_FLAGS = new Set(["--json", "--jsonl"]);
37
- const optionsOf = (args) => {
38
- const end = args.indexOf("--");
39
- return end < 0 ? args : args.slice(0, end);
40
- };
41
- /** A person at a terminal who did not ask for machine output. */
42
- export const interactiveOf = (args, tty) => tty && !optionsOf(args).some((flag) => MACHINE_FLAGS.has(flag));
24
+ export const mcpFailure = (error) => mcpErrorResult(errorObject(error));
43
25
  const commandOf = (program, args) => {
44
26
  const path = [];
45
27
  let at = program;
@@ -61,12 +43,11 @@ export const throwParseFailures = (program) => {
61
43
  throwParseFailures(command);
62
44
  };
63
45
  /** One error object on stderr, `✗ message` at a terminal; returns the exit code. */
64
- export const reportFailure = async (error, { args, program, streams, tty }) => {
46
+ export const reportFailure = (error, { args, program, streams, tty }) => {
65
47
  const failure = recognisable(error);
66
48
  const flags = optionsOf(args);
67
- const judge = await import("@wirecat/cli-core/cli").then(({ judgedEffects }) => judgedEffects, () => undefined);
68
- const effects = judge?.(EFFECTS[commandOf(program, flags)]);
69
- const object = errorObjectOf(failure, { ...(await contextOf()), ...(effects ? { effects } : {}) });
49
+ const effects = judgedEffects(EFFECTS[commandOf(program, flags)]);
50
+ const object = errorObjectOf(failure, { ...context, ...(effects ? { effects } : {}) });
70
51
  const record = flags.includes("--debug")
71
52
  ? errorRecordOf(failure, object, { command: commandOf(program, flags), service: APP.command, version: APP.version })
72
53
  : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"failure.js","sourceRoot":"","sources":["../src/failure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"failure.js","sourceRoot":"","sources":["../src/failure.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/knowledge/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAW1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AASxC,eAAO,MAAM,iBAAiB,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,SAuU3F,CAAA"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/knowledge/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAW1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AASxC,eAAO,MAAM,iBAAiB,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,SAoV3F,CAAA"}
@@ -1,26 +1,18 @@
1
1
  import { CliError } from "@wirecat/cli-base";
2
- import { ORGANIZATION_KINDS, openStore, PROJECT_TYPES, SCOPES, } from "@wirecat/cli-core/store";
2
+ import { ORGANIZATION_KINDS, PROJECT_TYPES, SCOPES, } from "@wirecat/cli-core/store";
3
+ import { answers, itemAnswer, listAnswer, wholeList } from "../answer.js";
3
4
  import { authorOf, byOption } from "../author.js";
4
5
  import { notesAbout } from "../notes/about.js";
5
6
  import { accountOptions, oneOf, positive } from "../options.js";
6
- import { answering, printing } from "../records/run.js";
7
7
  import { selectAccount } from "../store/scope.js";
8
8
  import { keyDocuments, markKey, projectOf, unmarkKey } from "./key-documents.js";
9
9
  import { meetingProjectsCommand } from "./meeting-projects-command.js";
10
10
  export const knowledgeCommands = (program, streams, env) => {
11
- const run = answering(streams, env);
12
- const print = printing(streams);
11
+ const { run } = answers(program, streams, env);
13
12
  const execute = (options, work) => run(options.json, async (store) => work(store, await selectAccount(store, options)));
14
13
  /** Organisations and relations are the owner's, not an account's. */
15
- const owned = async (options, work) => {
16
- const store = await openStore({ env });
17
- try {
18
- print(options.json, await work(store));
19
- }
20
- finally {
21
- await store.close();
22
- }
23
- };
14
+ const owned = (options, work) => run(options.json, async (store) => itemAnswer(await work(store)));
15
+ const ownedList = (command, options, work) => run(options.json, async (store) => wholeList(command, await work(store)));
24
16
  /** What the store knows around an organization or a project: its relations, the notes about it, its tags. */
25
17
  const contextOf = async (store, thing, type, reference) => {
26
18
  if (thing === undefined)
@@ -54,7 +46,7 @@ export const knowledgeCommands = (program, streams, env) => {
54
46
  .command("list")
55
47
  .description("your organizations")
56
48
  .option("--json", "print JSON; --json=id,title keeps only those fields")
57
- .action((options) => owned(options, (store) => store.knowledge.organizations()));
49
+ .action((options) => ownedList("organizations list", options, (store) => store.knowledge.organizations()));
58
50
  organizations
59
51
  .command("context")
60
52
  .description("one organization by its id or organization:<id>: its relationships, the notes about or linking it, and its tags")
@@ -89,7 +81,7 @@ export const knowledgeCommands = (program, streams, env) => {
89
81
  .command("list")
90
82
  .description("your projects")
91
83
  .option("--json", "print JSON; --json=id,title keeps only those fields")
92
- .action((options) => owned(options, (store) => store.knowledge.projects()));
84
+ .action((options) => ownedList("projects list", options, (store) => store.knowledge.projects()));
93
85
  projects
94
86
  .command("context")
95
87
  .description("one project by its id, key or project:<id>: its key documents first, then its relationships, the notes " +
@@ -126,7 +118,7 @@ export const knowledgeCommands = (program, streams, env) => {
126
118
  .description("a project's key documents: why, who marked each and whether it is still there")
127
119
  .argument("<project>", "id, key or project:<id>")
128
120
  .option("--json", "print JSON; --json=id,title keeps only those fields")
129
- .action((project, options) => owned(options, async (store) => ({ items: await keyDocuments(store, await projectOf(store, project)) })));
121
+ .action((project, options) => ownedList("projects key-documents list", options, async (store) => keyDocuments(store, await projectOf(store, project))));
130
122
  const relations = program
131
123
  .command("relationships")
132
124
  .description("relations between people, organizations and projects; never between identities");
@@ -156,7 +148,7 @@ export const knowledgeCommands = (program, streams, env) => {
156
148
  .description("relationships, all or those of one reference")
157
149
  .option("--reference <reference>", "only those of this person:, organization: or project:")
158
150
  .option("--json", "print JSON; --json=id,title keeps only those fields")
159
- .action((options) => owned(options, (store) => store.knowledge.relations(null, options.reference)));
151
+ .action((options) => ownedList("relationships list", options, (store) => store.knowledge.relations(null, options.reference)));
160
152
  relations
161
153
  .command("remove")
162
154
  .description("remove a relationship")
@@ -200,7 +192,7 @@ export const knowledgeCommands = (program, streams, env) => {
200
192
  for (let left = 0; left < people.length; left++)
201
193
  for (let right = left + 1; right < people.length; right++) {
202
194
  if (suggestions.length >= options.limit)
203
- return { suggestions, complete: false, scope: "stored-direct-email-contacts" };
195
+ return listAnswer("relationships suggest", { items: suggestions, limit: options.limit, has_more: true });
204
196
  suggestions.push(await store.knowledge.relate(key, {
205
197
  from: `person:${people[left]}`,
206
198
  to: `person:${people[right]}`,
@@ -210,7 +202,11 @@ export const knowledgeCommands = (program, streams, env) => {
210
202
  provenance: "rule:email-domain-v1;confidence:weak",
211
203
  }));
212
204
  }
213
- return { suggestions, complete: !contacts.hasMore, scope: "stored-direct-email-contacts" };
205
+ return listAnswer("relationships suggest", {
206
+ items: suggestions,
207
+ limit: options.limit,
208
+ has_more: contacts.hasMore,
209
+ });
214
210
  }));
215
211
  const reminders = program
216
212
  .command("reminders")
@@ -218,24 +214,31 @@ export const knowledgeCommands = (program, streams, env) => {
218
214
  accountOptions(reminders.command("add").description("add a reminder for an open task").argument("<task>", "the task's id"))
219
215
  .requiredOption("--at-time <time>", "when to remind: an ISO 8601 time with its UTC offset")
220
216
  .option("--timezone <zone>", "IANA timezone", "UTC")
221
- .action((task, options) => execute(options, (store, key) => store.knowledge.schedule(key, task, options.atTime, options.timezone)));
222
- accountOptions(reminders.command("list").description("pending reminders of one account")).action((options) => execute(options, (store, key) => store.knowledge.reminders(key)));
217
+ .action((task, options) => execute(options, async (store, key) => itemAnswer(await store.knowledge.schedule(key, task, options.atTime, options.timezone))));
218
+ accountOptions(reminders.command("list").description("pending reminders of one account")).action((options) => execute(options, async (store, key) => wholeList("reminders list", await store.knowledge.reminders(key))));
223
219
  accountOptions(reminders.command("poll").description("hand out due reminders, each with a receipt to acknowledge"))
224
220
  .option("--limit <n>", "most due reminders, at most 500", positive, 100)
225
- .action((options) => execute(options, async (store, key) => (await store.knowledge.claimReminders(key, { limit: options.limit })).map((reminder) => ({
226
- ...reminder,
227
- deliveryId: `${reminder.id}:${reminder.revision}`,
228
- delivery: "local",
229
- }))));
221
+ .action((options) => execute(options, async (store, key) => {
222
+ const claimed = await store.knowledge.claimReminders(key, { limit: options.limit });
223
+ return listAnswer("reminders poll", {
224
+ items: claimed.map((reminder) => ({
225
+ ...reminder,
226
+ deliveryId: `${reminder.id}:${reminder.revision}`,
227
+ delivery: "local",
228
+ })),
229
+ limit: options.limit,
230
+ has_more: claimed.length >= options.limit,
231
+ });
232
+ }));
230
233
  accountOptions(reminders
231
234
  .command("ack")
232
235
  .description("confirm that a handed-out reminder was shown")
233
236
  .argument("<id>", "the reminder's id")
234
- .argument("<receipt>", "the receipt reminders poll handed out with it")).action((id, receipt, options) => execute(options, (store, key) => store.knowledge.acknowledgeReminder(key, id, receipt)));
235
- accountOptions(reminders.command("cancel").description("cancel a reminder").argument("<id>", "the reminder's id")).action((id, options) => execute(options, (store, key) => store.knowledge.cancelReminder(key, id)));
237
+ .argument("<receipt>", "the receipt reminders poll handed out with it")).action((id, receipt, options) => execute(options, async (store, key) => itemAnswer(await store.knowledge.acknowledgeReminder(key, id, receipt))));
238
+ accountOptions(reminders.command("cancel").description("cancel a reminder").argument("<id>", "the reminder's id")).action((id, options) => execute(options, async (store, key) => itemAnswer(await store.knowledge.cancelReminder(key, id))));
236
239
  accountOptions(reminders.command("update").description("move a reminder to another time").argument("<id>", "the reminder's id"))
237
240
  .requiredOption("--at-time <time>", "the new time: an ISO 8601 time with its UTC offset")
238
241
  .requiredOption("--revision <n>", "the reminder's current revision, as reminders list gives it", positive)
239
- .action((id, options) => execute(options, (store, key) => store.knowledge.snoozeReminder(key, id, options.atTime, options.revision)));
242
+ .action((id, options) => execute(options, async (store, key) => itemAnswer(await store.knowledge.snoozeReminder(key, id, options.atTime, options.revision))));
240
243
  };
241
244
  //# sourceMappingURL=command.js.map