@wirecat/cli-memo 0.73.0 → 0.74.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.
- package/dist/knowledge/project-gather-command.d.ts.map +1 -1
- package/dist/knowledge/project-gather-command.js +15 -6
- package/dist/knowledge/project-gather-command.js.map +1 -1
- package/dist/knowledge/project-gathering.d.ts +11 -2
- package/dist/knowledge/project-gathering.d.ts.map +1 -1
- package/dist/knowledge/project-gathering.js +34 -15
- package/dist/knowledge/project-gathering.js.map +1 -1
- package/dist/mcp/knowledge.d.ts.map +1 -1
- package/dist/mcp/knowledge.js +12 -4
- package/dist/mcp/knowledge.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
- package/skills/cli-memo/SKILL.md +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-gather-command.d.ts","sourceRoot":"","sources":["../../src/knowledge/project-gather-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,uBAAuB,CAAA;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"project-gather-command.d.ts","sourceRoot":"","sources":["../../src/knowledge/project-gather-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,uBAAuB,CAAA;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAqBxC,eAAO,MAAM,oBAAoB,aACrB,OAAO,SACV,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,OAChE,MAAM,CAAC,UAAU,YAyClB,CAAA"}
|
|
@@ -1,29 +1,38 @@
|
|
|
1
1
|
import { annotate } from "@wirecat/cli-base/commands";
|
|
2
2
|
import { LOCAL_READ } from "@wirecat/cli-core/cli";
|
|
3
3
|
import { itemAnswer, withStore } from "../answer.js";
|
|
4
|
-
import { collect, positive } from "../options.js";
|
|
4
|
+
import { collect, positive, whole } from "../options.js";
|
|
5
5
|
import { ACCOUNTS_HELP } from "../store/source-list.js";
|
|
6
|
-
import {
|
|
6
|
+
import { gatherStoredProject, projectGatherText, windowOf } from "./project-gathering.js";
|
|
7
7
|
export const projectGatherCommand = (projects, print, env) => annotate(projects.command("evidence"), { effects: LOCAL_READ })
|
|
8
8
|
.description("cited references about a project in stored messages, mail and imported notes folders. The project's name, " +
|
|
9
|
-
"each of its aliases, each --context-query and each --contact name is its own literal search, and their " +
|
|
10
|
-
"hits are joined.
|
|
9
|
+
"its key, each of its aliases and each --alias, each --context-query and each --contact name is its own literal search, and their " +
|
|
10
|
+
"hits are joined. New mail and documents are indexed for search first, unless --no-catch-up. Reads only " +
|
|
11
|
+
"what the store holds; proposes and confirms nothing")
|
|
11
12
|
.summary("find what the store holds about a project, by its names, more words and people")
|
|
12
13
|
.argument("<project>", "an existing project's id, key, exact name or alias, or a new project's name")
|
|
13
14
|
.requiredOption("--source <accounts>", `where to look, or all: ${ACCOUNTS_HELP}`)
|
|
15
|
+
.option("--alias <name>", "another name of the project, searched on its own; repeat for more", collect)
|
|
14
16
|
.option("--context-query <words>", "more words that all appear in one text; repeat for another search", collect)
|
|
15
17
|
.option("--contact <person>", "a person's name; what only names them is context, not the project", collect)
|
|
16
|
-
.option("--since-time <time>", "how
|
|
18
|
+
.option("--since-time <time>", "how far back: days (90d, at most 730d) or a start date (2026-09-01)", "60d")
|
|
17
19
|
.option("--limit <n>", "new references at most, up to 500", positive, 100)
|
|
18
20
|
.option("--max-pages <pages>", "store pages read at most this run, up to 512", positive)
|
|
19
21
|
.option("--cursor <cursor>", "continue a stopped search from its checkpoint, with the same options")
|
|
22
|
+
.option("--before-n <n>", "messages before each message hit, shown as its context, at most 5", whole, 2)
|
|
23
|
+
.option("--after-n <n>", "messages after each message hit, shown as its context, at most 5", whole, 2)
|
|
24
|
+
.option("--no-catch-up", "read the search index as it is, without indexing new mail and documents first")
|
|
20
25
|
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
21
26
|
.action(async (project, options) => {
|
|
22
27
|
const found = await withStore(env, (store) => gatherStoredProject(store, env, {
|
|
23
28
|
project,
|
|
24
29
|
source: options.source,
|
|
25
|
-
|
|
30
|
+
...windowOf(options.sinceTime),
|
|
26
31
|
limit: options.limit,
|
|
32
|
+
catchUp: options.catchUp,
|
|
33
|
+
beforeN: options.beforeN,
|
|
34
|
+
afterN: options.afterN,
|
|
35
|
+
...(options.alias ? { aliases: options.alias } : {}),
|
|
27
36
|
...(options.contextQuery ? { keywords: options.contextQuery } : {}),
|
|
28
37
|
...(options.contact ? { people: options.contact } : {}),
|
|
29
38
|
...(options.maxPages === undefined ? {} : { maxReads: options.maxPages }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-gather-command.js","sourceRoot":"","sources":["../../src/knowledge/project-gather-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAa,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"project-gather-command.js","sourceRoot":"","sources":["../../src/knowledge/project-gather-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,15 +3,24 @@ import type { MessageStore } from "@wirecat/cli-core/store";
|
|
|
3
3
|
export interface ProjectGatherInput {
|
|
4
4
|
project: string;
|
|
5
5
|
source: string;
|
|
6
|
+
aliases?: string[];
|
|
6
7
|
keywords?: string[];
|
|
7
8
|
people?: string[];
|
|
8
9
|
days?: number;
|
|
10
|
+
after?: number;
|
|
9
11
|
checkpoint?: string;
|
|
10
12
|
maxReads?: number;
|
|
11
13
|
limit?: number;
|
|
14
|
+
catchUp?: boolean;
|
|
15
|
+
beforeN?: number;
|
|
16
|
+
afterN?: number;
|
|
12
17
|
}
|
|
13
|
-
/** Days
|
|
14
|
-
export declare const
|
|
18
|
+
/** Days back (`90d`) or a start date (`2026-09-01`); either way the run freezes its end, so a resume keeps it. */
|
|
19
|
+
export declare const windowOf: (value: string) => {
|
|
20
|
+
days: number;
|
|
21
|
+
} | {
|
|
22
|
+
after: number;
|
|
23
|
+
};
|
|
15
24
|
export type StoredProjectGathering = ProjectGathering & {
|
|
16
25
|
projectRef: string | null;
|
|
17
26
|
unreadSources: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-gathering.d.ts","sourceRoot":"","sources":["../../src/knowledge/project-gathering.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"project-gathering.d.ts","sourceRoot":"","sources":["../../src/knowledge/project-gathering.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,gBAAgB,EAA2B,MAAM,4BAA4B,CAAA;AAClH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAI3D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAqBD,kHAAkH;AAClH,eAAO,MAAM,QAAQ,UAAW,MAAM,KAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAY1E,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,GAAG;IACtD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,aAAa,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,mBAAmB,UACvB,YAAY,OACd,MAAM,CAAC,UAAU,SACf,kBAAkB,KACxB,OAAO,CAAC,sBAAsB,CA0ChC,CAAA;AAID,eAAO,MAAM,iBAAiB,UAAW,sBAAsB,WAsC9D,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CliError } from "@wirecat/cli-base";
|
|
2
|
-
import { gatherProjectEvidence } from "@wirecat/cli-core/services";
|
|
2
|
+
import { gatherProjectEvidence, storedMessageNeighbours } from "@wirecat/cli-core/services";
|
|
3
3
|
import { contextSourcesOf } from "../store/source-list.js";
|
|
4
4
|
import { canonicalProject } from "../vocabulary/project.js";
|
|
5
5
|
/**
|
|
@@ -14,22 +14,25 @@ const projectOf = async (store, reference) => {
|
|
|
14
14
|
}
|
|
15
15
|
catch (error) {
|
|
16
16
|
if (!id && error instanceof CliError && error.code === "not_found")
|
|
17
|
-
return { ref: null, name: reference, aliases: [] };
|
|
17
|
+
return { ref: null, name: reference, key: null, aliases: [] };
|
|
18
18
|
throw error;
|
|
19
19
|
}
|
|
20
20
|
const entry = (await store.knowledge.vocabulary({ kind: "project" })).entries.find((one) => one.id === ref.slice(8));
|
|
21
21
|
if (!entry)
|
|
22
22
|
throw new CliError("not_found", "the owner project is unavailable");
|
|
23
|
-
return { ref, name: entry.name, aliases: entry.aliases.map((alias) => alias.name) };
|
|
23
|
+
return { ref, name: entry.name, key: entry.key, aliases: entry.aliases.map((alias) => alias.name) };
|
|
24
24
|
};
|
|
25
|
-
/** Days
|
|
26
|
-
export const
|
|
25
|
+
/** Days back (`90d`) or a start date (`2026-09-01`); either way the run freezes its end, so a resume keeps it. */
|
|
26
|
+
export const windowOf = (value) => {
|
|
27
27
|
const days = /^([1-9]\d{0,2})d$/.exec(value)?.[1];
|
|
28
|
-
if (days
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
if (days !== undefined && Number(days) <= 730)
|
|
29
|
+
return { days: Number(days) };
|
|
30
|
+
const after = /^\d{4}-\d{2}-\d{2}(T[\d:.]+(Z|[+-]\d{2}:\d{2})?)?$/.test(value) ? Date.parse(value) : Number.NaN;
|
|
31
|
+
if (Number.isFinite(after))
|
|
32
|
+
return { after };
|
|
33
|
+
throw new CliError("validation_error", `--since-time takes 1d to 730d or a date, such as 90d or 2026-09-01 — not ${value}`, {
|
|
34
|
+
param: "since_time",
|
|
35
|
+
});
|
|
33
36
|
};
|
|
34
37
|
export const gatherStoredProject = async (store, env, input) => {
|
|
35
38
|
if (!store.contextEvidence)
|
|
@@ -40,14 +43,25 @@ export const gatherStoredProject = async (store, env, input) => {
|
|
|
40
43
|
throw new CliError("not_found", `${input.source} holds no messenger account, mailbox or notes folder to read`, {
|
|
41
44
|
param: "source",
|
|
42
45
|
});
|
|
43
|
-
const aliases = project.aliases.filter((alias) => alias !== project.name);
|
|
44
|
-
const gathered = await gatherProjectEvidence({
|
|
45
|
-
|
|
46
|
+
const aliases = [...new Set([...project.aliases, ...(input.aliases ?? [])])].filter((alias) => alias !== project.name);
|
|
47
|
+
const gathered = await gatherProjectEvidence({
|
|
48
|
+
evidence: store.contextEvidence,
|
|
49
|
+
neighbours: storedMessageNeighbours(store.messages),
|
|
50
|
+
...(store.contextIndex ? { index: store.contextIndex } : {}),
|
|
51
|
+
}, {
|
|
52
|
+
project: {
|
|
53
|
+
name: project.name,
|
|
54
|
+
...(project.key ? { key: project.key } : {}),
|
|
55
|
+
...(aliases.length ? { aliases } : {}),
|
|
56
|
+
},
|
|
57
|
+
index: input.catchUp === false ? "as-is" : "update",
|
|
58
|
+
around: { before: input.beforeN ?? 2, after: input.afterN ?? 2 },
|
|
46
59
|
...(input.keywords?.length ? { keywords: input.keywords } : {}),
|
|
47
60
|
...(input.people?.length ? { people: input.people.map((name) => ({ name })) } : {}),
|
|
48
61
|
sources,
|
|
49
62
|
scope,
|
|
50
63
|
...(input.days === undefined ? {} : { lookbackDays: input.days }),
|
|
64
|
+
...(input.after === undefined ? {} : { after: input.after }),
|
|
51
65
|
...(input.checkpoint === undefined ? {} : { checkpoint: input.checkpoint }),
|
|
52
66
|
...(input.maxReads === undefined && input.limit === undefined
|
|
53
67
|
? {}
|
|
@@ -68,18 +82,23 @@ export const projectGatherText = (found) => {
|
|
|
68
82
|
`${found.project.name}${found.projectRef ? ` — ${found.projectRef}` : ""}: ${found.items.length} new references, ` +
|
|
69
83
|
`${day(found.window.after)} to ${day(found.window.before)}, ${found.scope.sources.length} sources`,
|
|
70
84
|
`searched: ${[...lanes.values()].join("; ")}`,
|
|
71
|
-
...found.items.map((item) => `${day(item.at)} ${item.ref}${item.context === "person-only" ? " [person only]" : ""}\n ${item.text}`
|
|
85
|
+
...found.items.map((item) => `${day(item.at)} ${item.ref}${item.context === "person-only" ? " [person only]" : ""}\n ${item.text}` +
|
|
86
|
+
(item.around ?? [])
|
|
87
|
+
.map((one) => `\n ${one.found ? "(hit) " : ""}${one.sender ? `${one.sender}: ` : ""}${one.text}`)
|
|
88
|
+
.join("")),
|
|
72
89
|
];
|
|
73
90
|
if (found.matchedAgain.length)
|
|
74
91
|
lines.push(`${found.matchedAgain.length} earlier references found again`);
|
|
75
92
|
if (failed.length)
|
|
76
93
|
lines.push(`${failed.length} reads failed or had no source: see --json units`);
|
|
94
|
+
if (found.index.state === "failed" || found.index.state === "unavailable")
|
|
95
|
+
lines.push(`the search index could not be brought up to date first (${found.index.code ?? found.index.state})`);
|
|
77
96
|
const pending = [
|
|
78
97
|
...new Set(found.units.filter((unit) => unit.issue?.startsWith("index-")).map((unit) => found.scope.sources[unit.source])),
|
|
79
98
|
];
|
|
80
99
|
if (pending.length)
|
|
81
100
|
lines.push(`not yet searchable: new text in ${pending.map((one) => `${one?.provider}:${one?.account}`).join(", ")} ` +
|
|
82
|
-
|
|
101
|
+
`is still waiting for the search index, so it was not found${found.index.state === "as-is" ? "; leave out --no-catch-up to index it first" : ""}`);
|
|
83
102
|
if (found.unreadSources.length)
|
|
84
103
|
lines.push(`not read: ${found.unreadSources.map((one) => `${one.source} (${one.kind})`).join(", ")}`);
|
|
85
104
|
if (found.checkpoint)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-gathering.js","sourceRoot":"","sources":["../../src/knowledge/project-gathering.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,qBAAqB,EAAyB,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"project-gathering.js","sourceRoot":"","sources":["../../src/knowledge/project-gathering.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/mcp/knowledge.ts"],"names":[],"mappings":"AAkBA,qFAAqF;AACrF,eAAO,MAAM,cAAc;IACzB,eAAe;IAQf,gBAAgB;
|
|
1
|
+
{"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/mcp/knowledge.ts"],"names":[],"mappings":"AAkBA,qFAAqF;AACrF,eAAO,MAAM,cAAc;IACzB,eAAe;IAQf,gBAAgB;IAgDhB,UAAU;IAOV,eAAe;IAQf,WAAW;IAgBX,YAAY;IAuBZ,cAAc;CAmBf,CAAA"}
|
package/dist/mcp/knowledge.js
CHANGED
|
@@ -3,7 +3,7 @@ import * as v from "valibot";
|
|
|
3
3
|
import { itemAnswer } from "../answer.js";
|
|
4
4
|
import { contextAccountOf, memoContext } from "../context/context.js";
|
|
5
5
|
import { projectContext } from "../knowledge/project-context.js";
|
|
6
|
-
import {
|
|
6
|
+
import { gatherStoredProject, windowOf } from "../knowledge/project-gathering.js";
|
|
7
7
|
import { allAnswer, kindAnswer, notesAnswer } from "../search/answers.js";
|
|
8
8
|
import { searchEverywhere, searchKind } from "../search/search.js";
|
|
9
9
|
import { MAIL_SOURCES, mailboxesOf } from "../store/source-list.js";
|
|
@@ -25,14 +25,18 @@ export const knowledgeTools = {
|
|
|
25
25
|
}),
|
|
26
26
|
project_evidence: define({
|
|
27
27
|
title: "Gather cited project evidence",
|
|
28
|
-
description: "memo projects evidence: what the store holds about a project in stored messages, mail and imported notes folders. The project's name (an existing project brings its aliases), each context_query and each contact name is a separate literal search (all words of one must match); their hits are joined. source is required: provider:account entries, a kind or group:<name>, separated by commas, or all. since_time is days back, as 60d (default). An item found only through a contact's name has context person-only: not membership. Failed or unread sources are coverage, never absence; completeness is unknown. When checkpoint is returned, call again with the same arguments and cursor set to it. Reads only; proposes and confirms nothing.",
|
|
28
|
+
description: "memo projects evidence: what the store holds about a project in stored messages, mail and imported notes folders. The project's name (an existing project brings its key and aliases), each alias, each context_query and each contact name is a separate literal search (all words of one must match); their hits are joined. New mail and documents are indexed for search first unless catch_up is false. source is required: provider:account entries, a kind or group:<name>, separated by commas, or all. since_time is days back, as 60d (default), or a start date. Each message hit carries around: before_n and after_n messages next to it in its chat (default 2), as context, never as more hits. An item found only through a contact's name has context person-only: not membership. Failed or unread sources are coverage, never absence; completeness is unknown. When checkpoint is returned, call again with the same arguments and cursor set to it. Reads only; proposes and confirms nothing.",
|
|
29
29
|
writes: false,
|
|
30
30
|
input: v.object({
|
|
31
31
|
project: v.pipe(v.string(), v.minLength(1), v.description("an existing project's id, key, name or alias, or a new name")),
|
|
32
32
|
source: v.pipe(v.string(), v.minLength(1), v.description("where to look: provider:account list, a kind, group:<name> or all")),
|
|
33
|
+
alias: v.optional(v.pipe(v.array(v.pipe(v.string(), v.minLength(1))), v.maxLength(16))),
|
|
34
|
+
catch_up: v.optional(v.boolean(), true),
|
|
35
|
+
before_n: v.optional(v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(5)), 2),
|
|
36
|
+
after_n: v.optional(v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(5)), 2),
|
|
33
37
|
context_query: v.optional(v.pipe(v.array(v.pipe(v.string(), v.minLength(1))), v.maxLength(16))),
|
|
34
38
|
contact: v.optional(v.pipe(v.array(v.pipe(v.string(), v.minLength(1))), v.maxLength(16))),
|
|
35
|
-
since_time: v.optional(v.pipe(v.string(), v.description("
|
|
39
|
+
since_time: v.optional(v.pipe(v.string(), v.description("how far back: 1d to 730d, or a start date such as 2026-09-01")), "60d"),
|
|
36
40
|
limit: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(500))),
|
|
37
41
|
max_pages: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(512))),
|
|
38
42
|
cursor: v.optional(v.pipe(v.string(), v.minLength(1))),
|
|
@@ -40,7 +44,11 @@ export const knowledgeTools = {
|
|
|
40
44
|
run: async (store, args, env) => itemAnswer(await gatherStoredProject(store, env, {
|
|
41
45
|
project: args.project,
|
|
42
46
|
source: args.source,
|
|
43
|
-
|
|
47
|
+
...windowOf(args.since_time),
|
|
48
|
+
catchUp: args.catch_up,
|
|
49
|
+
beforeN: args.before_n,
|
|
50
|
+
afterN: args.after_n,
|
|
51
|
+
...(args.alias ? { aliases: args.alias } : {}),
|
|
44
52
|
...(args.limit === undefined ? {} : { limit: args.limit }),
|
|
45
53
|
...(args.context_query ? { keywords: args.context_query } : {}),
|
|
46
54
|
...(args.contact ? { people: args.contact } : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/mcp/knowledge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC5E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/mcp/knowledge.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.
|
|
1
|
+
export declare const VERSION = "0.74.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = "0.
|
|
1
|
+
export const VERSION = "0.74.0";
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wirecat/cli-memo",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.74.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",
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"@modelcontextprotocol/server": "2.1.0",
|
|
60
60
|
"@valibot/to-json-schema": "1.8.0",
|
|
61
|
-
"@wirecat/cli-base": "0.47.
|
|
62
|
-
"@wirecat/cli-core": "0.
|
|
61
|
+
"@wirecat/cli-base": "0.47.1",
|
|
62
|
+
"@wirecat/cli-core": "0.349.0",
|
|
63
63
|
"commander": "15.0.0",
|
|
64
64
|
"disposable-email-domains-js": "1.26.0",
|
|
65
65
|
"postal-mime": "4.0.0",
|
package/skills/cli-memo/SKILL.md
CHANGED
|
@@ -120,7 +120,7 @@ meeting previews cover linked accounts only. Read the full batch before owner re
|
|
|
120
120
|
for other projects. Never confirm or reject your own suggestions.
|
|
121
121
|
|
|
122
122
|
To collect what the store holds about a project, use `memo projects evidence <project> --source <accounts|all>`
|
|
123
|
-
(MCP `project_evidence`).
|
|
124
|
-
are joined. A `person-only` item mentions a person, not the project. Unread or failed sources are coverage, not
|
|
123
|
+
(MCP `project_evidence`). The name, the key, each alias, `--alias`, `--context-query` and `--contact` is its own
|
|
124
|
+
literal search; hits are joined. New mail and documents are indexed first unless `--no-catch-up`. A `person-only` item mentions a person, not the project. Unread or failed sources are coverage, not
|
|
125
125
|
absence. Continue a stopped run with `--cursor <checkpoint>` and the same options. Nothing is proposed or
|
|
126
126
|
confirmed: cite the references, then stage findings through the review flow above.
|