@wirecat/cli-memo 0.22.0 → 0.24.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 (150) hide show
  1. package/README.md +24 -21
  2. package/dist/actions/command.d.ts.map +1 -1
  3. package/dist/actions/command.js +14 -19
  4. package/dist/actions/command.js.map +1 -1
  5. package/dist/agents/command.d.ts.map +1 -1
  6. package/dist/agents/command.js +9 -9
  7. package/dist/agents/command.js.map +1 -1
  8. package/dist/answers/command.js +6 -6
  9. package/dist/answers/command.js.map +1 -1
  10. package/dist/author.d.ts +11 -0
  11. package/dist/author.d.ts.map +1 -0
  12. package/dist/author.js +16 -0
  13. package/dist/author.js.map +1 -0
  14. package/dist/bin/memo.js +4 -2
  15. package/dist/bin/memo.js.map +1 -1
  16. package/dist/config.d.ts +1 -1
  17. package/dist/config.d.ts.map +1 -1
  18. package/dist/config.js +1 -1
  19. package/dist/config.js.map +1 -1
  20. package/dist/context/command.d.ts.map +1 -1
  21. package/dist/context/command.js +18 -12
  22. package/dist/context/command.js.map +1 -1
  23. package/dist/context/context.d.ts +1 -1
  24. package/dist/context/context.d.ts.map +1 -1
  25. package/dist/context/context.js +2 -2
  26. package/dist/context/context.js.map +1 -1
  27. package/dist/discovery/command.d.ts +2 -0
  28. package/dist/discovery/command.d.ts.map +1 -1
  29. package/dist/discovery/command.js +18 -10
  30. package/dist/discovery/command.js.map +1 -1
  31. package/dist/examples.d.ts +5 -0
  32. package/dist/examples.d.ts.map +1 -0
  33. package/dist/examples.js +128 -0
  34. package/dist/examples.js.map +1 -0
  35. package/dist/facts/command.d.ts.map +1 -1
  36. package/dist/facts/command.js +19 -17
  37. package/dist/facts/command.js.map +1 -1
  38. package/dist/install/postinstall.d.ts +7 -0
  39. package/dist/install/postinstall.d.ts.map +1 -0
  40. package/dist/install/postinstall.js +28 -0
  41. package/dist/install/postinstall.js.map +1 -0
  42. package/dist/knowledge/command.d.ts.map +1 -1
  43. package/dist/knowledge/command.js +109 -74
  44. package/dist/knowledge/command.js.map +1 -1
  45. package/dist/knowledge/key-documents.d.ts +29 -0
  46. package/dist/knowledge/key-documents.d.ts.map +1 -0
  47. package/dist/knowledge/key-documents.js +76 -0
  48. package/dist/knowledge/key-documents.js.map +1 -0
  49. package/dist/knowledge/meeting-projects-command.d.ts +1 -1
  50. package/dist/knowledge/meeting-projects-command.d.ts.map +1 -1
  51. package/dist/knowledge/meeting-projects-command.js +7 -20
  52. package/dist/knowledge/meeting-projects-command.js.map +1 -1
  53. package/dist/mail/messages-command.d.ts +4 -0
  54. package/dist/mail/messages-command.d.ts.map +1 -0
  55. package/dist/mail/messages-command.js +32 -0
  56. package/dist/mail/messages-command.js.map +1 -0
  57. package/dist/mcp/command.js +1 -1
  58. package/dist/mcp/command.js.map +1 -1
  59. package/dist/mcp/knowledge.js +3 -3
  60. package/dist/mcp/knowledge.js.map +1 -1
  61. package/dist/mcp/server.d.ts.map +1 -1
  62. package/dist/mcp/server.js +27 -18
  63. package/dist/mcp/server.js.map +1 -1
  64. package/dist/mcp/task-relations.d.ts +3 -3
  65. package/dist/mcp/task-relations.d.ts.map +1 -1
  66. package/dist/mcp/task-relations.js +18 -6
  67. package/dist/mcp/task-relations.js.map +1 -1
  68. package/dist/mcp/vocabulary.d.ts +2 -3
  69. package/dist/mcp/vocabulary.d.ts.map +1 -1
  70. package/dist/mcp/vocabulary.js +23 -18
  71. package/dist/mcp/vocabulary.js.map +1 -1
  72. package/dist/memories/command.d.ts +1 -0
  73. package/dist/memories/command.d.ts.map +1 -1
  74. package/dist/memories/command.js +24 -23
  75. package/dist/memories/command.js.map +1 -1
  76. package/dist/notes/about.d.ts +11 -2
  77. package/dist/notes/about.d.ts.map +1 -1
  78. package/dist/notes/about.js +34 -30
  79. package/dist/notes/about.js.map +1 -1
  80. package/dist/notes/bound.d.ts +3 -0
  81. package/dist/notes/bound.d.ts.map +1 -1
  82. package/dist/notes/bound.js +9 -1
  83. package/dist/notes/bound.js.map +1 -1
  84. package/dist/notes/command.d.ts.map +1 -1
  85. package/dist/notes/command.js +28 -68
  86. package/dist/notes/command.js.map +1 -1
  87. package/dist/notes/folders-command.d.ts.map +1 -1
  88. package/dist/notes/folders-command.js +15 -13
  89. package/dist/notes/folders-command.js.map +1 -1
  90. package/dist/notes/list.d.ts +22 -0
  91. package/dist/notes/list.d.ts.map +1 -0
  92. package/dist/notes/list.js +24 -0
  93. package/dist/notes/list.js.map +1 -0
  94. package/dist/notes/search.d.ts.map +1 -1
  95. package/dist/notes/search.js +2 -2
  96. package/dist/notes/search.js.map +1 -1
  97. package/dist/options.d.ts +2 -0
  98. package/dist/options.d.ts.map +1 -1
  99. package/dist/options.js +2 -0
  100. package/dist/options.js.map +1 -1
  101. package/dist/page.d.ts +12 -0
  102. package/dist/page.d.ts.map +1 -0
  103. package/dist/page.js +10 -0
  104. package/dist/page.js.map +1 -0
  105. package/dist/people/command.js +2 -2
  106. package/dist/program.d.ts +5 -0
  107. package/dist/program.d.ts.map +1 -1
  108. package/dist/program.js +35 -6
  109. package/dist/program.js.map +1 -1
  110. package/dist/records/run.d.ts +2 -0
  111. package/dist/records/run.d.ts.map +1 -1
  112. package/dist/records/run.js +18 -12
  113. package/dist/records/run.js.map +1 -1
  114. package/dist/run/auto.d.ts.map +1 -1
  115. package/dist/run/auto.js +11 -13
  116. package/dist/run/auto.js.map +1 -1
  117. package/dist/run/import.d.ts +2 -2
  118. package/dist/run/import.d.ts.map +1 -1
  119. package/dist/run/import.js +66 -27
  120. package/dist/run/import.js.map +1 -1
  121. package/dist/run/lock.d.ts +1 -1
  122. package/dist/run/lock.d.ts.map +1 -1
  123. package/dist/run/lock.js +1 -1
  124. package/dist/run/lock.js.map +1 -1
  125. package/dist/search/command.d.ts +15 -20
  126. package/dist/search/command.d.ts.map +1 -1
  127. package/dist/search/command.js +96 -47
  128. package/dist/search/command.js.map +1 -1
  129. package/dist/tags/command.d.ts.map +1 -1
  130. package/dist/tags/command.js +25 -18
  131. package/dist/tags/command.js.map +1 -1
  132. package/dist/tasks/command.d.ts.map +1 -1
  133. package/dist/tasks/command.js +21 -14
  134. package/dist/tasks/command.js.map +1 -1
  135. package/dist/tasks/relations-command.d.ts +1 -1
  136. package/dist/tasks/relations-command.d.ts.map +1 -1
  137. package/dist/tasks/relations-command.js +12 -33
  138. package/dist/tasks/relations-command.js.map +1 -1
  139. package/dist/version.d.ts +1 -1
  140. package/dist/version.js +1 -1
  141. package/dist/vocabulary/command.d.ts.map +1 -1
  142. package/dist/vocabulary/command.js +48 -47
  143. package/dist/vocabulary/command.js.map +1 -1
  144. package/install/postinstall.mjs +9 -0
  145. package/package.json +8 -4
  146. package/skills/cli-memo/SKILL.md +49 -0
  147. package/dist/mail/command.d.ts +0 -4
  148. package/dist/mail/command.d.ts.map +0 -1
  149. package/dist/mail/command.js +0 -105
  150. package/dist/mail/command.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { CliError, createRenderer } from "@wirecat/cli-base";
1
+ import { CliError } from "@wirecat/cli-base";
2
2
  import { parseLocator } from "@wirecat/cli-messaging";
3
3
  import { closedStateOf, storeOnlyDeps, taskStateOf, tasksService } from "@wirecat/cli-messaging/services";
4
4
  import { openStore, TASK_ROLES, TASK_TYPES, WORK_TASK_TYPES, } from "@wirecat/cli-messaging/store";
@@ -6,6 +6,7 @@ import { InvalidArgumentError } from "commander";
6
6
  import { APP } from "../app.js";
7
7
  import { isNoteReference } from "../notes/about.js";
8
8
  import { accountOptions, oneOf, positive } from "../options.js";
9
+ import { printing } from "../records/run.js";
9
10
  import { heldMessage } from "../store/held.js";
10
11
  import { selectAccount } from "../store/scope.js";
11
12
  import { canonicalProject } from "../vocabulary/project.js";
@@ -34,13 +35,11 @@ const assignAll = async (store, id, people) => {
34
35
  await store.tasks.assign(id, { to: personRef(person), role: "assignee" }, "owner");
35
36
  };
36
37
  export const tasksCommand = (program, streams, env) => {
37
- const group = program.command("tasks").description("Open work linked to stored messages, documents and emails");
38
+ const group = program.command("tasks").description("open work linked to stored messages, documents and emails");
38
39
  taskRelationsCommand(group, streams, env);
39
- const print = (json, answer) => json
40
- ? createRenderer({ format: "json", color: false, streams }).result(answer)
41
- : streams.data(`${JSON.stringify(answer, null, 2)}\n`);
40
+ const print = printing(streams);
42
41
  fieldOptions(accountOptions(group.command("add")))
43
- .description("Add a task: from a message, note or document, or with --project and --title a task of your own")
42
+ .description("add a task from a message, note or document, or one of your own in a project")
44
43
  .argument("[source]", "msg: source locator, note:<id> or document:<id>; leave out for a task in a project")
45
44
  .option("--type <type>", "question, request (default), mention or promise from a source; bug, feature or chore (default) in a project", oneOf(TASK_TYPES))
46
45
  .option("--project <project>", "a task without a source: the project's key or project:<id>")
@@ -96,13 +95,23 @@ export const tasksCommand = (program, streams, env) => {
96
95
  await store.close();
97
96
  }
98
97
  });
99
- accountOptions(group.command("list").description("Tasks of one account or one project, open by default"))
98
+ accountOptions(group.command("list").description("tasks of one account or one project, open by default"))
100
99
  .option("--state <state>", "open, done or dismissed", taskStateOf, "open")
101
100
  .option("--project <project>", "a project's tasks, by its key or project:<id>, instead of an account's")
101
+ .option("--ready", "with --project: only open tasks whose prerequisites are done; this claims none")
102
102
  .option("--limit <n>", "most tasks", positive, 100)
103
103
  .action(async (options) => {
104
+ if (options.ready && (options.project === undefined || options.state !== "open"))
105
+ throw new CliError("validation_error", "--ready lists a project's open tasks: give --project, not --state");
104
106
  const store = await openStore({ env });
105
107
  try {
108
+ if (options.ready && options.project !== undefined) {
109
+ const page = await store.tasks.readyTasks(await canonicalProject(store, options.project), {
110
+ limit: options.limit,
111
+ });
112
+ print(options.json, { ...page, items: page.items.map((task) => ({ ref: `task:${task.id}`, ...task })) });
113
+ return;
114
+ }
106
115
  if (options.project !== undefined) {
107
116
  const items = await store.tasks.find({
108
117
  project: await canonicalProject(store, options.project),
@@ -113,16 +122,14 @@ export const tasksCommand = (program, streams, env) => {
113
122
  return;
114
123
  }
115
124
  const key = await selectAccount(store, options);
116
- print(options.json, await taskPage(store, key, {
117
- state: options.state,
118
- limit: options.limit,
119
- }));
125
+ const page = await taskPage(store, key, { state: options.state, limit: options.limit });
126
+ print(options.json, { ...page, items: page.items.map((task) => ({ ref: `task:${task.id}`, ...task })) });
120
127
  }
121
128
  finally {
122
129
  await store.close();
123
130
  }
124
131
  });
125
- accountOptions(group.command("close").description("Close a task as done or dismissed").argument("<id>"))
132
+ accountOptions(group.command("close").description("close a task as done or dismissed").argument("<id>", "the task's id"))
126
133
  .option("--as <state>", "done or dismissed", closedStateOf, "done")
127
134
  .option("--reason <text>", "why it is closed")
128
135
  .action(async (id, options) => {
@@ -144,7 +151,7 @@ export const tasksCommand = (program, streams, env) => {
144
151
  await store.close();
145
152
  }
146
153
  });
147
- fieldOptions(group.command("update").description("Change a task's title, priority, parent or description"))
154
+ fieldOptions(group.command("update").description("change a task's title, priority, parent or description"))
148
155
  .argument("<id>", "the task's id or key")
149
156
  .option("--json", "print JSON")
150
157
  .action(async (id, options) => {
@@ -161,7 +168,7 @@ export const tasksCommand = (program, streams, env) => {
161
168
  });
162
169
  group
163
170
  .command("assign")
164
- .description("Name who works on a task")
171
+ .description("name who works on a task")
165
172
  .argument("<id>", "the task's id or key")
166
173
  .argument("<person>", "explicit canonical person UID")
167
174
  .option("--role <role>", TASK_ROLES.join(", "), oneOf(TASK_ROLES), "assignee")
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/tasks/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/tasks/command.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type Streams } from "@wirecat/cli-base";
1
+ import type { Streams } from "@wirecat/cli-base";
2
2
  import type { Command } from "commander";
3
3
  export declare const taskRelationsCommand: (tasks: Command, streams: Streams, env: NodeJS.ProcessEnv) => void;
4
4
  //# sourceMappingURL=relations-command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relations-command.d.ts","sourceRoot":"","sources":["../../src/tasks/relations-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAIxC,eAAO,MAAM,oBAAoB,UAAW,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,SAsD5F,CAAA"}
1
+ {"version":3,"file":"relations-command.d.ts","sourceRoot":"","sources":["../../src/tasks/relations-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAIxC,eAAO,MAAM,oBAAoB,UAAW,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,SAkC5F,CAAA"}
@@ -1,27 +1,15 @@
1
- import { createRenderer } from "@wirecat/cli-base";
2
- import { openStore, TASK_RELATION_KINDS } from "@wirecat/cli-messaging/store";
3
- import { oneOf, positive } from "../options.js";
4
- import { canonicalProject } from "../vocabulary/project.js";
1
+ import { TASK_RELATION_KINDS } from "@wirecat/cli-messaging/store";
2
+ import { oneOf } from "../options.js";
3
+ import { answering } from "../records/run.js";
5
4
  export const taskRelationsCommand = (tasks, streams, env) => {
6
- const execute = async (options, work) => {
7
- const store = await openStore({ env });
8
- try {
9
- const result = await work(store);
10
- if (options.json)
11
- createRenderer({ format: "json", color: false, streams }).result(result);
12
- else
13
- streams.data(`${JSON.stringify(result, null, 2)}\n`);
14
- }
15
- finally {
16
- await store.close();
17
- }
18
- };
5
+ const run = answering(streams, env);
6
+ const execute = (options, work) => run(options.json, work);
19
7
  for (const operation of ["link", "unlink"]) {
20
8
  tasks
21
9
  .command(operation)
22
10
  .description(`${operation} reviewed project task relationships`)
23
- .argument("<task>")
24
- .argument("<other-task>")
11
+ .argument("<task>", "the task: task:<id> or its id")
12
+ .argument("<other-task>", "the task it relates to: task:<id> or its id")
25
13
  .requiredOption("--kind <kind>", TASK_RELATION_KINDS.join(", "), oneOf(TASK_RELATION_KINDS))
26
14
  .option("--json", "print JSON")
27
15
  .action((task, other, options) => execute(options, (store) => operation === "link"
@@ -30,24 +18,15 @@ export const taskRelationsCommand = (tasks, streams, env) => {
30
18
  }
31
19
  tasks
32
20
  .command("relations")
33
- .description("A task's links to other tasks")
34
- .argument("<task>")
21
+ .description("a task's links to other tasks")
22
+ .argument("<task>", "the task: task:<id> or its id")
35
23
  .option("--json", "print JSON")
36
24
  .action((task, options) => execute(options, async (store) => ({ items: await store.tasks.taskRelations(task) })));
37
25
  tasks
38
- .command("readiness")
39
- .description("Whether a task can start, and what it still waits for")
40
- .argument("<task>")
26
+ .command("status")
27
+ .description("whether a task can start, and what it still waits for")
28
+ .argument("<task>", "the task: task:<id> or its id")
41
29
  .option("--json", "print JSON")
42
30
  .action((task, options) => execute(options, (store) => store.tasks.taskReadiness(task)));
43
- tasks
44
- .command("ready")
45
- .description("Discover project work with completed prerequisites; this does not claim a task")
46
- .requiredOption("--project <project>", "canonical project reference, key or explicit alias")
47
- .option("--limit <n>", "tasks per page", positive)
48
- .option("--json", "print JSON")
49
- .action((options) => execute(options, async (store) => store.tasks.readyTasks(await canonicalProject(store, options.project), {
50
- ...(options.limit === undefined ? {} : { limit: options.limit }),
51
- })));
52
31
  };
53
32
  //# sourceMappingURL=relations-command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"relations-command.js","sourceRoot":"","sources":["../../src/tasks/relations-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgB,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAqB,SAAS,EAAE,mBAAmB,EAAyB,MAAM,8BAA8B,CAAA;AAEvH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAE3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAE,OAAgB,EAAE,GAAsB,EAAE,EAAE;IAC/F,MAAM,OAAO,GAAG,KAAK,EAAE,OAA2B,EAAE,IAA+C,EAAE,EAAE;QACrG,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAA;YAChC,IAAI,OAAO,CAAC,IAAI;gBAAE,cAAc,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;;gBACrF,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;QAC3D,CAAC;gBAAS,CAAC;YACT,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;QACrB,CAAC;IACH,CAAC,CAAA;IACD,KAAK,MAAM,SAAS,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAU,EAAE,CAAC;QACpD,KAAK;aACF,OAAO,CAAC,SAAS,CAAC;aAClB,WAAW,CAAC,GAAG,SAAS,sCAAsC,CAAC;aAC/D,QAAQ,CAAC,QAAQ,CAAC;aAClB,QAAQ,CAAC,cAAc,CAAC;aACxB,cAAc,CAAC,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;aAC3F,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC;aAC9B,MAAM,CAAC,CAAC,IAAY,EAAE,KAAa,EAAE,OAAmD,EAAE,EAAE,CAC3F,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACzB,SAAS,KAAK,MAAM;YAClB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;YAC1D,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAC/D,CACF,CAAA;IACL,CAAC;IACD,KAAK;SACF,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,+BAA+B,CAAC;SAC5C,QAAQ,CAAC,QAAQ,CAAC;SAClB,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC;SAC9B,MAAM,CAAC,CAAC,IAAY,EAAE,OAA2B,EAAE,EAAE,CACpD,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CACtF,CAAA;IACH,KAAK;SACF,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,uDAAuD,CAAC;SACpE,QAAQ,CAAC,QAAQ,CAAC;SAClB,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC;SAC9B,MAAM,CAAC,CAAC,IAAY,EAAE,OAA2B,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACtH,KAAK;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,gFAAgF,CAAC;SAC7F,cAAc,CAAC,qBAAqB,EAAE,oDAAoD,CAAC;SAC3F,MAAM,CAAC,aAAa,EAAE,gBAAgB,EAAE,QAAQ,CAAC;SACjD,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC;SAC9B,MAAM,CAAC,CAAC,OAA4D,EAAE,EAAE,CACvE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAC/B,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;QACrE,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;KACjE,CAAC,CACH,CACF,CAAA;AACL,CAAC,CAAA"}
1
+ {"version":3,"file":"relations-command.js","sourceRoot":"","sources":["../../src/tasks/relations-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,mBAAmB,EAAyB,MAAM,8BAA8B,CAAA;AAE5G,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAE7C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAE,OAAgB,EAAE,GAAsB,EAAE,EAAE;IAC/F,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,CAAC,OAA2B,EAAE,IAA+C,EAAE,EAAE,CAC/F,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACzB,KAAK,MAAM,SAAS,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAU,EAAE,CAAC;QACpD,KAAK;aACF,OAAO,CAAC,SAAS,CAAC;aAClB,WAAW,CAAC,GAAG,SAAS,sCAAsC,CAAC;aAC/D,QAAQ,CAAC,QAAQ,EAAE,+BAA+B,CAAC;aACnD,QAAQ,CAAC,cAAc,EAAE,6CAA6C,CAAC;aACvE,cAAc,CAAC,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;aAC3F,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC;aAC9B,MAAM,CAAC,CAAC,IAAY,EAAE,KAAa,EAAE,OAAmD,EAAE,EAAE,CAC3F,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACzB,SAAS,KAAK,MAAM;YAClB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;YAC1D,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAC/D,CACF,CAAA;IACL,CAAC;IACD,KAAK;SACF,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,+BAA+B,CAAC;SAC5C,QAAQ,CAAC,QAAQ,EAAE,+BAA+B,CAAC;SACnD,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC;SAC9B,MAAM,CAAC,CAAC,IAAY,EAAE,OAA2B,EAAE,EAAE,CACpD,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CACtF,CAAA;IACH,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uDAAuD,CAAC;SACpE,QAAQ,CAAC,QAAQ,EAAE,+BAA+B,CAAC;SACnD,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC;SAC9B,MAAM,CAAC,CAAC,IAAY,EAAE,OAA2B,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACxH,CAAC,CAAA"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.22.0";
1
+ export declare const VERSION = "0.24.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = "0.22.0";
1
+ export const VERSION = "0.24.0";
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/vocabulary/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAQ1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAWxC,eAAO,MAAM,iBAAiB,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,KAAG,IA0G9F,CAAA"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/vocabulary/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAYxC,eAAO,MAAM,iBAAiB,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,KAAG,IAwH9F,CAAA"}
@@ -1,6 +1,6 @@
1
- import { CliError, createRenderer } from "@wirecat/cli-base";
2
- import { openStore, } from "@wirecat/cli-messaging/store";
1
+ import { CliError } from "@wirecat/cli-base";
3
2
  import { oneOf, positive } from "../options.js";
3
+ import { answering } from "../records/run.js";
4
4
  const kinds = ["project", "tag", "topic"];
5
5
  const targetOf = (reference) => {
6
6
  const match = reference.match(/^(project|tag|topic):([1-9]\d*)$/);
@@ -11,20 +11,9 @@ const targetOf = (reference) => {
11
11
  export const vocabularyCommand = (program, streams, env) => {
12
12
  const vocabulary = program
13
13
  .command("vocabulary")
14
- .description("Canonical projects, tags and topics with explicit aliases");
15
- const execute = async (options, work) => {
16
- const store = await openStore({ env });
17
- try {
18
- const result = await work(store);
19
- if (options.json)
20
- createRenderer({ format: "json", color: false, streams }).result(result);
21
- else
22
- streams.data(`${JSON.stringify(result, null, 2)}\n`);
23
- }
24
- finally {
25
- await store.close();
26
- }
27
- };
14
+ .description("canonical projects, tags and topics with explicit aliases");
15
+ const run = answering(streams, env);
16
+ const execute = (options, work) => run(options.json, work);
28
17
  const readOptions = (command) => command
29
18
  .option("--kind <kind>", "project, tag or topic", oneOf(kinds))
30
19
  .option("--scope <scope>", "personal or work projects", oneOf(["personal", "work"]))
@@ -37,46 +26,58 @@ export const vocabularyCommand = (program, streams, env) => {
37
26
  ...(options.maxEntries === undefined ? {} : { maxEntries: options.maxEntries }),
38
27
  ...(options.maxReadBytes === undefined ? {} : { maxReadBytes: options.maxReadBytes }),
39
28
  });
40
- readOptions(vocabulary.command("list").description("List canonical IDs, aliases, usage counts and a preview fingerprint")).action((options) => execute(options, (store) => store.knowledge.vocabulary(catalogOptions(options))));
29
+ readOptions(vocabulary.command("list").description("list canonical IDs, aliases, usage counts and a preview fingerprint")).action((options) => execute(options, (store) => store.knowledge.vocabulary(catalogOptions(options))));
41
30
  readOptions(vocabulary
42
- .command("resolve")
43
- .argument("<name>")
44
- .description("Resolve an exact name or alias; ambiguity is reported")).action((name, options) => execute(options, (store) => store.knowledge.resolveVocabulary(name, catalogOptions(options))));
45
- readOptions(vocabulary.command("audit").description("Discover likely synonyms without accepting or merging them"))
46
- .option("--min-similarity <n>", "minimum lexical similarity, 0.65–1", Number)
47
- .option("--max-comparisons <n>", "bound name comparisons", positive)
48
- .option("--limit <n>", "maximum candidate pairs", positive)
49
- .action((options) => execute(options, (store) => store.knowledge.auditVocabulary({
50
- ...catalogOptions(options),
51
- ...(options.minSimilarity === undefined ? {} : { minSimilarity: options.minSimilarity }),
52
- ...(options.maxComparisons === undefined ? {} : { maxComparisons: options.maxComparisons }),
53
- ...(options.limit === undefined ? {} : { limit: options.limit }),
54
- })));
55
- vocabulary
56
- .command("preflight")
57
- .argument("<name>")
58
- .description("Review an existing label or likely lexical duplicates before creation")
59
- .option("--kind <kind>", "tag or topic", oneOf(["tag", "topic"]))
60
- .option("--json", "print JSON")
61
- .action((name, options) => execute(options, (store) => store.knowledge.tagPreflight(name, { ...(options.kind === undefined ? {} : { kind: options.kind }) })));
31
+ .command("show")
32
+ .argument("<name>", "the name or alias to look up, exactly")
33
+ .description("the project, tag or topic an exact name or alias names; ambiguity is reported")).action((name, options) => execute(options, (store) => store.knowledge.resolveVocabulary(name, catalogOptions(options))));
34
+ readOptions(vocabulary
35
+ .command("check")
36
+ .argument("[name]", "a tag or topic you mean to create; without it, the whole vocabulary")
37
+ .summary("check a new name for existing labels, or the vocabulary for likely synonyms")
38
+ .description("check a new name for an existing label or likely duplicates before vocabulary create, or without a name " +
39
+ "the whole vocabulary for likely synonyms. It merges and creates nothing"))
40
+ .option("--min-similarity <n>", "without a name: minimum lexical similarity, 0.65–1", Number)
41
+ .option("--max-comparisons <n>", "without a name: most name comparisons", positive)
42
+ .option("--limit <n>", "without a name: most candidate pairs", positive)
43
+ .action((name, options) => execute(options, (store) => {
44
+ if (name === undefined)
45
+ return store.knowledge.auditVocabulary({
46
+ ...catalogOptions(options),
47
+ ...(options.minSimilarity === undefined ? {} : { minSimilarity: options.minSimilarity }),
48
+ ...(options.maxComparisons === undefined ? {} : { maxComparisons: options.maxComparisons }),
49
+ ...(options.limit === undefined ? {} : { limit: options.limit }),
50
+ });
51
+ if (options.kind === "project" || options.scope !== undefined)
52
+ throw new CliError("validation_error", "a new name is a tag or topic: --kind tag or --kind topic, no --scope");
53
+ if (options.minSimilarity !== undefined ||
54
+ options.maxComparisons !== undefined ||
55
+ options.limit !== undefined)
56
+ throw new CliError("validation_error", "--min-similarity, --max-comparisons and --limit check the whole vocabulary: leave out the name");
57
+ return store.knowledge.tagPreflight(name, {
58
+ ...(options.kind === undefined ? {} : { kind: options.kind }),
59
+ ...(options.maxEntries === undefined ? {} : { maxEntries: options.maxEntries }),
60
+ ...(options.maxReadBytes === undefined ? {} : { maxReadBytes: options.maxReadBytes }),
61
+ });
62
+ }));
62
63
  vocabulary
63
64
  .command("create")
64
- .argument("<name>")
65
- .description("Owner: create a distinct tag or topic after reviewing its preflight")
65
+ .argument("<name>", "the new tag or topic")
66
+ .description("owner: create a distinct tag or topic after vocabulary check <name>")
66
67
  .option("--kind <kind>", "tag or topic", oneOf(["tag", "topic"]))
67
- .requiredOption("--expected <fingerprint>", "the current preflight creationFingerprint")
68
+ .requiredOption("--expected <fingerprint>", "the creationFingerprint vocabulary check <name> gave")
68
69
  .option("--json", "print JSON")
69
70
  .action((name, options) => execute(options, (store) => store.knowledge.createTag(name, {
70
71
  by: "owner",
71
72
  ...(options.kind === undefined ? {} : { kind: options.kind }),
72
73
  expectedCreationFingerprint: options.expected,
73
74
  })));
74
- const aliases = vocabulary.command("aliases").description("Owner-reviewed aliases on stable canonical IDs");
75
+ const aliases = vocabulary.command("aliases").description("owner-reviewed aliases on stable canonical IDs");
75
76
  aliases
76
77
  .command("add")
77
- .description("Owner: add another name for a project, tag or topic")
78
- .argument("<reference>")
79
- .argument("<name>")
78
+ .description("owner: add another name for a project, tag or topic")
79
+ .argument("<reference>", "project:<id>, tag:<id> or topic:<id>, from vocabulary list")
80
+ .argument("<name>", "the other name")
80
81
  .requiredOption("--expected <fingerprint>", "the current vocabulary preview fingerprint")
81
82
  .option("--json", "print JSON")
82
83
  .action((reference, name, options) => {
@@ -85,9 +86,9 @@ export const vocabularyCommand = (program, streams, env) => {
85
86
  });
86
87
  aliases
87
88
  .command("remove")
88
- .description("Owner: remove another name from a project, tag or topic")
89
- .argument("<reference>")
90
- .argument("<alias-id>")
89
+ .description("owner: remove another name from a project, tag or topic")
90
+ .argument("<reference>", "project:<id>, tag:<id> or topic:<id>, from vocabulary list")
91
+ .argument("<alias-id>", "the alias's id, from vocabulary list")
91
92
  .requiredOption("--expected <fingerprint>", "the current vocabulary preview fingerprint")
92
93
  .option("--json", "print JSON")
93
94
  .action((reference, aliasId, options) => {
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/vocabulary/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/vocabulary/command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ if (process.env.npm_config_global === "true") {
2
+ try {
3
+ const { completeGlobalInstall } = await import("../dist/install/postinstall.js")
4
+ completeGlobalInstall()
5
+ } catch (error) {
6
+ process.stderr.write(`memo installation incomplete: ${error instanceof Error ? error.message : String(error)}\n`)
7
+ process.exitCode = 1
8
+ }
9
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wirecat/cli-memo",
3
- "version": "0.22.0",
3
+ "version": "0.24.0",
4
4
  "description": "Context about people across messengers, notes and mail, from a local store",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Viacheslav Ptsarev",
@@ -18,6 +18,8 @@
18
18
  },
19
19
  "files": [
20
20
  "dist",
21
+ "skills",
22
+ "install",
21
23
  "README.md",
22
24
  "LICENSE"
23
25
  ],
@@ -29,8 +31,10 @@
29
31
  "test": "vitest run",
30
32
  "test:watch": "vitest",
31
33
  "test:coverage": "vitest run --coverage",
32
- "release:check": "pnpm lint && pnpm typecheck && pnpm test && pnpm build && pnpm secrets:scan",
34
+ "lint:commands": "cli-dev lint --cli dist/bin/memo.js",
35
+ "release:check": "pnpm lint && pnpm typecheck && pnpm test && pnpm build && pnpm lint:commands && pnpm secrets:scan",
33
36
  "prepare": "lefthook install || true",
37
+ "postinstall": "node install/postinstall.mjs",
34
38
  "secrets:scan": "gitleaks git --no-banner --redact .",
35
39
  "prepublishOnly": "pnpm build",
36
40
  "standards:check": "node config/wirecat/check.mjs",
@@ -43,8 +47,8 @@
43
47
  "dependencies": {
44
48
  "@modelcontextprotocol/server": "2.1.0",
45
49
  "@valibot/to-json-schema": "1.8.0",
46
- "@wirecat/cli-base": "0.21.0",
47
- "@wirecat/cli-messaging": "0.254.0",
50
+ "@wirecat/cli-base": "0.24.0",
51
+ "@wirecat/cli-messaging": "0.258.0",
48
52
  "commander": "15.0.0",
49
53
  "valibot": "1.5.0",
50
54
  "yaml": "2.9.1"
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: cli-memo
3
+ description: >-
4
+ Find what the owner knows about a person or a project across Telegram, MAX, mail and notes through memo, and record facts, memories and key documents. Use when asked about a person, a project, what was agreed, or to search messages, mail and notes together.
5
+ ---
6
+
7
+ # memo — the owner's context across messengers, mail and notes
8
+
9
+ memo reads the local store tg and max write, plus the owner's notes and imported mail. It never sends
10
+ anything. Add `--json` and read the answer, not the text meant for people.
11
+
12
+ ## Traps
13
+
14
+ 1. **Never choose an account for the owner.** A command that works in one account takes `--provider`
15
+ and, when there are several, `--account`. Asked for one with none given, memo refuses and lists
16
+ them: ask the owner. A read across accounts covers all of them and says so.
17
+ 2. **`content:` narrows a search to the text of files, `filename:` to their names.** Whether a plain word
18
+ also reads file text and voice transcripts depends on the version. Compare like with like:
19
+ `memo search messages 'content:invoice'` with `tg search messages 'content:invoice'`, a plain word
20
+ with a plain word.
21
+ 3. **Each search keeps its list and references under its own keys.** `search messages` and
22
+ `search mail`: `items[].locator`; `search all`: `items[].ref` with `kind`; `search notes`:
23
+ `hits[].ref`. Pass a reference back unchanged.
24
+ 4. **Start work on a project with `memo projects context <key>`.** Its key documents come first:
25
+ read them before anything else. Mark one with
26
+ `memo projects key-documents add <key> <reference> --reason '<why>'`.
27
+ 5. **What you write is yours as an agent.** `memo facts add`, `memo memories add`,
28
+ `memo relationships add`, `memo actions add` and `memo projects key-documents add` record you
29
+ as the author and wait for the owner. Never pass `--as-owner`: only the owner does, and an agent
30
+ that passes it writes as the owner.
31
+ 6. **Do not confirm your own proposals** (`memo facts confirm`, `memo memories confirm`,
32
+ `memo relationships confirm`). The owner decides.
33
+ 7. **Never write message, mail or note text to a file.** Quote it in the answer with its reference.
34
+ 8. **Before reporting a bug, compare `memo --version` with `npm view @wirecat/cli-memo version`.** An
35
+ older install may lack the fix.
36
+ 9. **zsh does not split `$c` into words.** `memo $c --help` with `c="projects add"` passes one
37
+ argument, not a command path; write `${=c}` or loop over the words.
38
+
39
+ ## The usual path
40
+
41
+ ```sh
42
+ memo context telegram:<id or name> --json # one person: messages, mail, notes, tasks
43
+ memo projects context <key> --json # one project: key documents first
44
+ memo search all '<words>' --project <key> --json # everything, the project's key documents first
45
+ memo search messages 'content:invoice' --json # inside files
46
+ memo commands --json # every command and option
47
+ ```
48
+
49
+ Cite each result by its reference (`msg:…`, `note:…`, `document:…`) so the owner can open it.
@@ -1,4 +0,0 @@
1
- import { type Streams } from "@wirecat/cli-base";
2
- import { type Command } from "commander";
3
- export declare const mailCommand: (program: Command, streams: Streams, env: NodeJS.ProcessEnv) => void;
4
- //# sourceMappingURL=command.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/mail/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAI1E,OAAO,EAAE,KAAK,OAAO,EAAwB,MAAM,WAAW,CAAA;AA0C9D,eAAO,MAAM,WAAW,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,KAAG,IA0FxF,CAAA"}