@wirecat/cli-core 0.287.0 → 0.289.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/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/meeting-preparation-answer.d.ts +19 -0
- package/dist/cli/meeting-preparation-answer.d.ts.map +1 -1
- package/dist/cli/meeting-preparation-answer.js +16 -0
- package/dist/cli/meeting-preparation-answer.js.map +1 -1
- package/dist/cli/meeting-preparation-read.d.ts +19 -0
- package/dist/cli/meeting-preparation-read.d.ts.map +1 -1
- package/dist/cli/messenger/chats-bots-command.js +2 -2
- package/dist/cli/messenger/chats-bots-command.js.map +1 -1
- package/dist/cli/messenger/contacts-command.js +1 -1
- package/dist/cli/messenger/contacts-command.js.map +1 -1
- package/dist/cli/messenger/images-command.d.ts.map +1 -1
- package/dist/cli/messenger/images-command.js +5 -1
- package/dist/cli/messenger/images-command.js.map +1 -1
- package/dist/cli/messenger/mentions-command.d.ts.map +1 -1
- package/dist/cli/messenger/mentions-command.js +2 -0
- package/dist/cli/messenger/mentions-command.js.map +1 -1
- package/dist/cli/messenger/private-people-command.js +1 -1
- package/dist/cli/messenger/private-people-command.js.map +1 -1
- package/dist/cli/messenger/search-command.js +1 -1
- package/dist/cli/messenger/search-command.js.map +1 -1
- package/dist/cli/messenger/server-command.js +2 -2
- package/dist/cli/messenger/server-command.js.map +1 -1
- package/dist/cli/messenger/tags-command.js +1 -1
- package/dist/cli/messenger/tags-command.js.map +1 -1
- package/dist/cli/messenger/tasks-command.d.ts.map +1 -1
- package/dist/cli/messenger/tasks-command.js +52 -42
- package/dist/cli/messenger/tasks-command.js.map +1 -1
- package/dist/entities/agenda.d.ts +1 -1
- package/dist/entities/agenda.d.ts.map +1 -1
- package/dist/entities/agenda.js +1 -1
- package/dist/entities/agenda.js.map +1 -1
- package/dist/entities/index.d.ts +19 -0
- package/dist/entities/index.d.ts.map +1 -1
- package/dist/entities/meeting-preparation.d.ts +19 -0
- package/dist/entities/meeting-preparation.d.ts.map +1 -1
- package/dist/entities/meeting-preparation.js +19 -0
- package/dist/entities/meeting-preparation.js.map +1 -1
- package/dist/mcp/meeting-preparation.d.ts +19 -0
- package/dist/mcp/meeting-preparation.d.ts.map +1 -1
- package/dist/mcp/tools/tasks.d.ts.map +1 -1
- package/dist/mcp/tools/tasks.js +26 -27
- package/dist/mcp/tools/tasks.js.map +1 -1
- package/dist/meetings/index.d.ts +1 -0
- package/dist/meetings/index.d.ts.map +1 -1
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/preparation-notes.d.ts +18 -0
- package/dist/meetings/preparation-notes.d.ts.map +1 -0
- package/dist/meetings/preparation-notes.js +2 -0
- package/dist/meetings/preparation-notes.js.map +1 -0
- package/dist/sends/permissions.js +1 -1
- package/dist/sends/permissions.js.map +1 -1
- package/dist/services/agenda.d.ts +3 -9
- package/dist/services/agenda.d.ts.map +1 -1
- package/dist/services/agenda.js +76 -14
- package/dist/services/agenda.js.map +1 -1
- package/dist/services/meeting-notes-preparation.d.ts +4 -0
- package/dist/services/meeting-notes-preparation.d.ts.map +1 -0
- package/dist/services/meeting-notes-preparation.js +82 -0
- package/dist/services/meeting-notes-preparation.js.map +1 -0
- package/dist/services/meeting-preparation-types.d.ts +13 -2
- package/dist/services/meeting-preparation-types.d.ts.map +1 -1
- package/dist/services/meeting-preparation.d.ts.map +1 -1
- package/dist/services/meeting-preparation.js +4 -1
- package/dist/services/meeting-preparation.js.map +1 -1
- package/dist/services/tasks.d.ts +17 -1
- package/dist/services/tasks.d.ts.map +1 -1
- package/dist/services/tasks.js +20 -3
- package/dist/services/tasks.js.map +1 -1
- package/dist/store/index.d.ts +1 -0
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +1 -0
- package/dist/store/index.js.map +1 -1
- package/dist/store/sqlite/imported-documents.d.ts +22 -0
- package/dist/store/sqlite/imported-documents.d.ts.map +1 -0
- package/dist/store/sqlite/imported-documents.js +55 -0
- package/dist/store/sqlite/imported-documents.js.map +1 -0
- package/dist/store/sqlite/meeting-preparation-knowledge.d.ts.map +1 -1
- package/dist/store/sqlite/meeting-preparation-knowledge.js +2 -13
- package/dist/store/sqlite/meeting-preparation-knowledge.js.map +1 -1
- package/dist/store/sqlite/meeting-preparation-notes.d.ts +4 -0
- package/dist/store/sqlite/meeting-preparation-notes.d.ts.map +1 -0
- package/dist/store/sqlite/meeting-preparation-notes.js +51 -0
- package/dist/store/sqlite/meeting-preparation-notes.js.map +1 -0
- package/dist/store/sqlite/meetings.d.ts +2 -2
- package/dist/store/sqlite/meetings.d.ts.map +1 -1
- package/dist/store/sqlite/meetings.js +2 -0
- package/dist/store/sqlite/meetings.js.map +1 -1
- package/dist/store/sqlite/memories.d.ts +1 -0
- package/dist/store/sqlite/memories.d.ts.map +1 -1
- package/dist/store/sqlite/memories.js +5 -3
- package/dist/store/sqlite/memories.js.map +1 -1
- package/dist/store/sqlite/notes.d.ts +2 -1
- package/dist/store/sqlite/notes.d.ts.map +1 -1
- package/dist/store/sqlite/notes.js +13 -0
- package/dist/store/sqlite/notes.js.map +1 -1
- package/dist/store/sqlite/preparation-subjects.d.ts +3 -0
- package/dist/store/sqlite/preparation-subjects.d.ts.map +1 -0
- package/dist/store/sqlite/preparation-subjects.js +15 -0
- package/dist/store/sqlite/preparation-subjects.js.map +1 -0
- package/dist/store/sqlite/task-pairs.d.ts +2 -2
- package/dist/store/sqlite/task-pairs.d.ts.map +1 -1
- package/dist/store/sqlite/work-tasks.d.ts +3 -0
- package/dist/store/sqlite/work-tasks.d.ts.map +1 -1
- package/dist/store/sqlite/work-tasks.js +3 -3
- package/dist/store/sqlite/work-tasks.js.map +1 -1
- package/package.json +3 -3
- package/parity.json +38 -57
- package/skills/follow-ups/SKILL.md +5 -5
package/dist/services/agenda.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { queryFieldsOf } from "@wirecat/cli-base/query";
|
|
1
|
+
import { queryError, queryFieldsOf, walkQuery, } from "@wirecat/cli-base/query";
|
|
2
2
|
import { formatLocator, isLocator, parseLocator } from "../domain/locator.js";
|
|
3
3
|
import { formatReference } from "../domain/references.js";
|
|
4
4
|
import { agenda } from "../entities/agenda.js";
|
|
5
|
-
import { AGENDA_COLUMNS, inboxKey, queryFilter } from "../store/store.js";
|
|
5
|
+
import { AGENDA_COLUMNS, inboxKey, queryFilter, } from "../store/store.js";
|
|
6
6
|
import { CHAT_KINDS } from "./chats.js";
|
|
7
7
|
import { taskAccount } from "./task-rules.js";
|
|
8
8
|
const DAY = 86_400_000;
|
|
9
|
+
const CLAIMS = ["none", "mine", "others", "any"];
|
|
10
|
+
const TASK_FIELDS = new Set(["tag", "category", "claimed"]);
|
|
9
11
|
export const AGENDA_QUERY = {
|
|
10
12
|
entity: "agenda",
|
|
11
13
|
backend: "sql",
|
|
@@ -18,29 +20,36 @@ export const AGENDA_QUERY = {
|
|
|
18
20
|
example: "chat_kind:channel",
|
|
19
21
|
relation: "the kind of the chats in owed, waiting and unsynced",
|
|
20
22
|
},
|
|
23
|
+
tag: { type: "kw", example: "tag:urgent", relation: "a tag put on a listed task with tags add --task" },
|
|
24
|
+
category: { type: "kw", example: "category:money", relation: "a listed task's category" },
|
|
25
|
+
claimed: {
|
|
26
|
+
type: "enum",
|
|
27
|
+
values: CLAIMS,
|
|
28
|
+
example: "claimed:any",
|
|
29
|
+
relation: "whose claim a listed task is under: none, mine (--holder), others, or any",
|
|
30
|
+
},
|
|
21
31
|
},
|
|
22
32
|
}),
|
|
23
|
-
defaults: ["chat_kind:(dialog OR group)"],
|
|
33
|
+
defaults: ["chat_kind:(dialog OR group)", "claimed:(none OR mine)"],
|
|
24
34
|
};
|
|
25
35
|
export const agendaService = (deps, now = Date.now) => ({
|
|
26
|
-
show: async ({ dueWithin = DAY, waiting = 7 * DAY, unanswered = DAY, within = 30 * DAY, query, holder
|
|
36
|
+
show: async ({ dueWithin = DAY, waiting = 7 * DAY, unanswered = DAY, within = 30 * DAY, query, holder } = {}) => {
|
|
27
37
|
const [store, account] = [await deps.store(), await deps.account()];
|
|
28
38
|
const at = now();
|
|
29
|
-
const
|
|
30
|
-
|
|
39
|
+
const parts = query ? split(query) : { tasks: undefined, chats: undefined };
|
|
40
|
+
const find = (where) => store.tasks
|
|
41
|
+
.find({ project: inboxKey(taskAccount(account)), status: "open", limit: 500, ...(where ? { where } : {}) })
|
|
31
42
|
.catch((error) => {
|
|
32
43
|
// An account that never had a task has no inbox project yet.
|
|
33
44
|
if (error instanceof Error && "code" in error && error.code === "not_found")
|
|
34
45
|
return [];
|
|
35
46
|
throw error;
|
|
36
47
|
});
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
.filter((task) => category === undefined || task.category === category.trim().toLowerCase())
|
|
43
|
-
.filter((task) => tagged === undefined || tagged.has(task.id))
|
|
48
|
+
const open = await find();
|
|
49
|
+
const listed = parts.tasks
|
|
50
|
+
? await find(queryFilter(parts.tasks, taskColumns(holder, at), { command: "tasks agenda" }))
|
|
51
|
+
: open;
|
|
52
|
+
const tasks = listed
|
|
44
53
|
.map((task) => ({ task, reasons: reasonsOf(task, at, dueWithin) }))
|
|
45
54
|
.filter(({ reasons }) => reasons.length > 0)
|
|
46
55
|
.sort((a, b) => urgency(a.task) - urgency(b.task))
|
|
@@ -58,7 +67,7 @@ export const agendaService = (deps, now = Date.now) => ({
|
|
|
58
67
|
createdAt: task.createdAt,
|
|
59
68
|
reasons,
|
|
60
69
|
}));
|
|
61
|
-
const where =
|
|
70
|
+
const where = parts.chats ? queryFilter(parts.chats, AGENDA_COLUMNS, { command: "tasks agenda" }) : undefined;
|
|
62
71
|
const activity = await store.chatActivity(account, at - within, where);
|
|
63
72
|
const chats = activity.chats.map(({ lastMessageId, ...chat }) => ({
|
|
64
73
|
...chat,
|
|
@@ -85,6 +94,59 @@ export const agendaService = (deps, now = Date.now) => ({
|
|
|
85
94
|
};
|
|
86
95
|
},
|
|
87
96
|
});
|
|
97
|
+
/** Task terms filter the tasks, the rest the chats; a clause that mixes the two has no one source to ask. */
|
|
98
|
+
const split = (query) => {
|
|
99
|
+
const clauses = [];
|
|
100
|
+
const flatten = (node) => {
|
|
101
|
+
if (node.kind === "boolean" && node.clauses.every((clause) => clause.occur === "must"))
|
|
102
|
+
for (const clause of node.clauses)
|
|
103
|
+
flatten(clause.node);
|
|
104
|
+
else
|
|
105
|
+
clauses.push(node);
|
|
106
|
+
};
|
|
107
|
+
flatten(query.root);
|
|
108
|
+
const side = (node) => {
|
|
109
|
+
const fields = new Set(walkQuery(node).map((term) => (TASK_FIELDS.has(term.field) ? "tasks" : "chats")));
|
|
110
|
+
if (fields.size > 1)
|
|
111
|
+
queryError("query.unsupported-placement", node.span, "join task fields (tag, category, claimed) and chat_kind with AND, not OR or NOT", { command: "tasks agenda" });
|
|
112
|
+
return [...fields][0];
|
|
113
|
+
};
|
|
114
|
+
const of = (which) => {
|
|
115
|
+
const own = clauses.filter((node) => side(node) === which);
|
|
116
|
+
if (own.length === 0)
|
|
117
|
+
return undefined;
|
|
118
|
+
return {
|
|
119
|
+
...query,
|
|
120
|
+
root: { kind: "boolean", clauses: own.map((node) => ({ occur: "must", node })), span: query.root.span },
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
return { tasks: of("tasks"), chats: of("chats") };
|
|
124
|
+
};
|
|
125
|
+
const TAGGED = "EXISTS (SELECT 1 FROM taggings g JOIN tags n ON n.id = g.tag_id " +
|
|
126
|
+
"WHERE g.taggable_type = 'task' AND g.taggable_id = t.id AND n.name = ?)";
|
|
127
|
+
/** A claim that lapsed holds nothing, as `tasks claim` reads it. */
|
|
128
|
+
const taskColumns = (holder, at) => ({
|
|
129
|
+
tag: { where: (node) => ({ sql: TAGGED, params: [node.value.trim().toLowerCase()] }) },
|
|
130
|
+
category: { type: "kw", sql: "t.category" },
|
|
131
|
+
claimed: {
|
|
132
|
+
where: (node) => {
|
|
133
|
+
const claim = node.value.toLowerCase();
|
|
134
|
+
if (claim === "any")
|
|
135
|
+
return { sql: "1", params: [] };
|
|
136
|
+
if (claim === "none")
|
|
137
|
+
return { sql: "t.claimed_by IS NULL OR t.claimed_until < ?", params: [at] };
|
|
138
|
+
if (claim === "mine")
|
|
139
|
+
return {
|
|
140
|
+
sql: "t.claimed_by IS NOT NULL AND t.claimed_by = ? AND t.claimed_until >= ?",
|
|
141
|
+
params: [holder ?? null, at],
|
|
142
|
+
};
|
|
143
|
+
return {
|
|
144
|
+
sql: "t.claimed_by IS NOT NULL AND t.claimed_by IS NOT ? AND t.claimed_until >= ?",
|
|
145
|
+
params: [holder ?? null, at],
|
|
146
|
+
};
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
});
|
|
88
150
|
const reasonsOf = (task, at, dueWithin) => {
|
|
89
151
|
const due = task.dueAt === null ? undefined : Date.parse(task.dueAt);
|
|
90
152
|
const check = task.nextCheckAt === null ? undefined : Date.parse(task.nextCheckAt);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agenda.js","sourceRoot":"","sources":["../../src/services/agenda.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"agenda.js","sourceRoot":"","sources":["../../src/services/agenda.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { MeetingPreparation, MeetingPreparationPorts } from "./meeting-preparation-types.js";
|
|
2
|
+
import { type preparationRequest } from "./meeting-preparation-validation.js";
|
|
3
|
+
export declare const appendNotesPreparation: (store: MeetingPreparationPorts["meetings"], result: MeetingPreparation, input: ReturnType<typeof preparationRequest>) => Promise<undefined>;
|
|
4
|
+
//# sourceMappingURL=meeting-notes-preparation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meeting-notes-preparation.d.ts","sourceRoot":"","sources":["../../src/services/meeting-notes-preparation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACjG,OAAO,EAAwB,KAAK,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAkCnG,eAAO,MAAM,sBAAsB,UAC1B,uBAAuB,CAAC,UAAU,CAAC,UAClC,kBAAkB,SACnB,UAAU,CAAC,OAAO,kBAAkB,CAAC,uBAkD7C,CAAA"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { CliError } from "@wirecat/cli-base";
|
|
2
|
+
import { preparationCancelled } from "./meeting-preparation-validation.js";
|
|
3
|
+
const invalid = () => {
|
|
4
|
+
throw new CliError("invalid_response", "Preparation notes returned an invalid selection");
|
|
5
|
+
};
|
|
6
|
+
const noteOf = (note, before) => {
|
|
7
|
+
if (!note ||
|
|
8
|
+
typeof note.ref !== "string" ||
|
|
9
|
+
!/^note:[1-9]\d*$/.test(note.ref) ||
|
|
10
|
+
(note.title !== null && typeof note.title !== "string") ||
|
|
11
|
+
typeof note.text !== "string" ||
|
|
12
|
+
!note.text.trim() ||
|
|
13
|
+
!Number.isSafeInteger(note.revision) ||
|
|
14
|
+
note.revision < 1 ||
|
|
15
|
+
!Number.isSafeInteger(note.updatedAt) ||
|
|
16
|
+
Math.abs(note.updatedAt) > 8640000000000000 ||
|
|
17
|
+
note.updatedAt > before ||
|
|
18
|
+
(note.person !== null && (typeof note.person !== "string" || !/^person:[1-9]\d*$/.test(note.person))) ||
|
|
19
|
+
(note.project !== null && (typeof note.project !== "string" || !/^project:[1-9]\d*$/.test(note.project))) ||
|
|
20
|
+
!(note.person || note.project))
|
|
21
|
+
return invalid();
|
|
22
|
+
return {
|
|
23
|
+
ref: note.ref,
|
|
24
|
+
title: note.title,
|
|
25
|
+
text: note.text,
|
|
26
|
+
revision: note.revision,
|
|
27
|
+
updatedAt: note.updatedAt,
|
|
28
|
+
person: note.person,
|
|
29
|
+
project: note.project,
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export const appendNotesPreparation = async (store, result, input) => {
|
|
33
|
+
if (!store.preparationNotes || !result.series || !result.items.length || result.coverage.outputLimited)
|
|
34
|
+
return;
|
|
35
|
+
const limit = Math.min(input.contextLimit, 20);
|
|
36
|
+
const page = await store.preparationNotes({
|
|
37
|
+
accountId: result.accountId,
|
|
38
|
+
seriesId: result.series.id,
|
|
39
|
+
anchorIds: result.items.map((item) => item.meeting.id),
|
|
40
|
+
after: input.historyAfter,
|
|
41
|
+
before: input.after,
|
|
42
|
+
limit,
|
|
43
|
+
maxReadBytes: input.maxReadBytes,
|
|
44
|
+
signal: input.signal,
|
|
45
|
+
});
|
|
46
|
+
preparationCancelled(input.signal);
|
|
47
|
+
if (!page || !Array.isArray(page.items) || page.items.length > limit || typeof page.hasMore !== "boolean")
|
|
48
|
+
return invalid();
|
|
49
|
+
const items = page.items.map((note) => noteOf(note, input.after));
|
|
50
|
+
if (new Set(items.map((note) => note.ref)).size !== items.length)
|
|
51
|
+
return invalid();
|
|
52
|
+
if (items.reduce((total, note) => total + Buffer.byteLength((note.title ?? "") + note.text, "utf8"), 0) >
|
|
53
|
+
input.maxReadBytes)
|
|
54
|
+
return invalid();
|
|
55
|
+
const notes = {
|
|
56
|
+
anchors: result.items.map((item) => item.reference),
|
|
57
|
+
items: [],
|
|
58
|
+
selection: "owner-written-global-person/project-notes",
|
|
59
|
+
coverage: {
|
|
60
|
+
hasMore: page.hasMore,
|
|
61
|
+
outputLimited: false,
|
|
62
|
+
sourceEvidence: "not-revalidated",
|
|
63
|
+
otherSources: "not-queried",
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
result.notes = notes;
|
|
67
|
+
const size = () => Buffer.byteLength(JSON.stringify(result), "utf8");
|
|
68
|
+
if (size() > input.bytes) {
|
|
69
|
+
delete result.notes;
|
|
70
|
+
result.coverage.outputLimited = true;
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
for (const note of items) {
|
|
74
|
+
notes.items.push(note);
|
|
75
|
+
if (size() > input.bytes) {
|
|
76
|
+
notes.items.pop();
|
|
77
|
+
notes.coverage.outputLimited = result.coverage.outputLimited = true;
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=meeting-notes-preparation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meeting-notes-preparation.js","sourceRoot":"","sources":["../../src/services/meeting-notes-preparation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { createUpcomingMeetingReader, MeetingHistoryEntry, MeetingPreparationContext, MeetingPreparationContextStore, MeetingPreparationFact, MeetingPreparationKnowledgeStore, MeetingReadCapabilities, MeetingRelatedHistoryEntry, MeetingRelatedHistoryStore, MeetingSeriesContext, MeetingSeriesHistoryStore, MeetingStore, UpcomingMeetingResult } from "../meetings/index.js";
|
|
1
|
+
import type { createUpcomingMeetingReader, MeetingHistoryEntry, MeetingPreparationContext, MeetingPreparationContextStore, MeetingPreparationFact, MeetingPreparationKnowledgeStore, MeetingPreparationNote, MeetingPreparationNotesStore, MeetingReadCapabilities, MeetingRelatedHistoryEntry, MeetingRelatedHistoryStore, MeetingSeriesContext, MeetingSeriesHistoryStore, MeetingStore, UpcomingMeetingResult } from "../meetings/index.js";
|
|
2
2
|
import type { MeetingEvidencePacket } from "./meeting-evidence.js";
|
|
3
3
|
export interface MeetingPreparationRequest {
|
|
4
4
|
after: number;
|
|
@@ -12,7 +12,7 @@ export interface MeetingPreparationRequest {
|
|
|
12
12
|
signal?: AbortSignal;
|
|
13
13
|
}
|
|
14
14
|
export interface MeetingPreparationPorts {
|
|
15
|
-
meetings: Pick<MeetingStore, "account"> & MeetingReadCapabilities & MeetingSeriesHistoryStore & MeetingPreparationContextStore & MeetingRelatedHistoryStore & Partial<MeetingPreparationKnowledgeStore>;
|
|
15
|
+
meetings: Pick<MeetingStore, "account"> & MeetingReadCapabilities & MeetingSeriesHistoryStore & MeetingPreparationContextStore & MeetingRelatedHistoryStore & Partial<MeetingPreparationKnowledgeStore & MeetingPreparationNotesStore>;
|
|
16
16
|
upcoming: ReturnType<typeof createUpcomingMeetingReader>;
|
|
17
17
|
}
|
|
18
18
|
export interface MeetingPreparationEntry {
|
|
@@ -52,6 +52,17 @@ export interface MeetingPreparation {
|
|
|
52
52
|
otherSources: "not-queried";
|
|
53
53
|
};
|
|
54
54
|
};
|
|
55
|
+
notes?: {
|
|
56
|
+
anchors: string[];
|
|
57
|
+
items: MeetingPreparationNote[];
|
|
58
|
+
selection: "owner-written-global-person/project-notes";
|
|
59
|
+
coverage: {
|
|
60
|
+
hasMore: boolean;
|
|
61
|
+
outputLimited: boolean;
|
|
62
|
+
sourceEvidence: "not-revalidated";
|
|
63
|
+
otherSources: "not-queried";
|
|
64
|
+
};
|
|
65
|
+
};
|
|
55
66
|
limits: {
|
|
56
67
|
meetings: number;
|
|
57
68
|
cues: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meeting-preparation-types.d.ts","sourceRoot":"","sources":["../../src/services/meeting-preparation-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,mBAAmB,EACnB,yBAAyB,EACzB,8BAA8B,EAC9B,sBAAsB,EACtB,gCAAgC,EAChC,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,yBAAyB,EACzB,YAAY,EACZ,qBAAqB,EACtB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAElE,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AACD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GACrC,uBAAuB,GACvB,yBAAyB,GACzB,8BAA8B,GAC9B,0BAA0B,GAC1B,OAAO,CAAC,gCAAgC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"meeting-preparation-types.d.ts","sourceRoot":"","sources":["../../src/services/meeting-preparation-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meeting-preparation.d.ts","sourceRoot":"","sources":["../../src/services/meeting-preparation.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,KAAK,oBAAoB,EAAwB,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"meeting-preparation.d.ts","sourceRoot":"","sources":["../../src/services/meeting-preparation.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,KAAK,oBAAoB,EAAwB,MAAM,sBAAsB,CAAA;AAI9G,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,gCAAgC,CAAA;AAMvC,eAAO,MAAM,+BAA+B,UACnC,oBAAoB,aAChB,MAAM,SACV,uBAAuB;IA8B5B,KAAK;IACC,OAAO,aAAa,MAAM,YAAY,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA2GtG,CAAA"}
|
|
@@ -2,6 +2,7 @@ import { CliError } from "@wirecat/cli-base";
|
|
|
2
2
|
import { formatMeetingReference, snapshotMeetingScope } from "../meetings/index.js";
|
|
3
3
|
import { readMeetingEvidence } from "./meeting-evidence.js";
|
|
4
4
|
import { appendKnowledgePreparation } from "./meeting-knowledge-preparation.js";
|
|
5
|
+
import { appendNotesPreparation } from "./meeting-notes-preparation.js";
|
|
5
6
|
import { preparationCancelled, preparationRequest } from "./meeting-preparation-validation.js";
|
|
6
7
|
import { appendRelatedPreparation } from "./meeting-related-preparation.js";
|
|
7
8
|
const size = (value) => Buffer.byteLength(JSON.stringify(value), "utf8");
|
|
@@ -22,7 +23,8 @@ export const createMeetingPreparationService = (scope, accountId, ports) => {
|
|
|
22
23
|
"transcriptRows",
|
|
23
24
|
].some((key) => typeof store[key] !== "function") ||
|
|
24
25
|
typeof ports?.upcoming?.next !== "function" ||
|
|
25
|
-
(store.preparationKnowledge !== undefined && typeof store.preparationKnowledge !== "function")
|
|
26
|
+
(store.preparationKnowledge !== undefined && typeof store.preparationKnowledge !== "function") ||
|
|
27
|
+
(store.preparationNotes !== undefined && typeof store.preparationNotes !== "function"))
|
|
26
28
|
throw new CliError("configuration_error", "Meeting preparation requires bounded meeting reads and an upcoming reader");
|
|
27
29
|
if (ports.upcoming.scope?.provider !== fixed.provider || ports.upcoming.scope?.account !== fixed.account)
|
|
28
30
|
throw new CliError("configuration_error", "The upcoming reader belongs to another provider or account");
|
|
@@ -128,6 +130,7 @@ export const createMeetingPreparationService = (scope, accountId, ports) => {
|
|
|
128
130
|
}
|
|
129
131
|
await appendRelatedPreparation(store, result, input);
|
|
130
132
|
await appendKnowledgePreparation(store, result, input);
|
|
133
|
+
await appendNotesPreparation(store, result, input);
|
|
131
134
|
preparationCancelled(signal);
|
|
132
135
|
if (size(result) > bytes)
|
|
133
136
|
throw new CliError("validation_error", "Preparation coverage exceeds bytes; increase the output budget");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meeting-preparation.js","sourceRoot":"","sources":["../../src/services/meeting-preparation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,sBAAsB,EAA6B,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC9G,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAA;
|
|
1
|
+
{"version":3,"file":"meeting-preparation.js","sourceRoot":"","sources":["../../src/services/meeting-preparation.ts"],"names":[],"mappings":"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"}
|
package/dist/services/tasks.d.ts
CHANGED
|
@@ -26,6 +26,22 @@ export declare const TASK_QUERY: {
|
|
|
26
26
|
readonly backend: "sql";
|
|
27
27
|
readonly fields: import("@wirecat/cli-base/query").FieldSpec[];
|
|
28
28
|
};
|
|
29
|
+
/** Which pairs `tasks duplicates` lists: those waiting for the reviewing agent, or those it left to the owner. */
|
|
30
|
+
export declare const PAIR_DECISIONS: readonly ["review", "unsure"];
|
|
31
|
+
export type PairDecision = (typeof PAIR_DECISIONS)[number];
|
|
32
|
+
export declare const TASK_PAIR_QUERY: {
|
|
33
|
+
readonly entity: "task_pair";
|
|
34
|
+
readonly backend: "sql";
|
|
35
|
+
readonly fields: readonly [{
|
|
36
|
+
readonly name: "decision";
|
|
37
|
+
readonly type: "enum";
|
|
38
|
+
readonly values: readonly ["review", "unsure"];
|
|
39
|
+
readonly operators: readonly ["term"];
|
|
40
|
+
readonly example: "decision:unsure";
|
|
41
|
+
readonly relation: "review waits for the reviewing agent, unsure for the owner";
|
|
42
|
+
}];
|
|
43
|
+
readonly defaults: readonly ["decision:review"];
|
|
44
|
+
};
|
|
29
45
|
export type TaskItem = v.InferOutput<typeof taskEntity>;
|
|
30
46
|
export interface TaskListRequest {
|
|
31
47
|
query?: QueryAst;
|
|
@@ -93,7 +109,7 @@ export interface TasksService {
|
|
|
93
109
|
}>;
|
|
94
110
|
/** Pairs a rule left for review — or, with `unsure`, the ones the reviewing agent passed to the owner — newest first. */
|
|
95
111
|
duplicates(options: {
|
|
96
|
-
|
|
112
|
+
decision: PairDecision;
|
|
97
113
|
limit: number;
|
|
98
114
|
offset: number;
|
|
99
115
|
}): Promise<TaskPair[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/services/tasks.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/services/tasks.ts"],"names":[],"mappings":"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"}
|
package/dist/services/tasks.js
CHANGED
|
@@ -28,6 +28,23 @@ export const TASK_QUERY = {
|
|
|
28
28
|
},
|
|
29
29
|
}),
|
|
30
30
|
};
|
|
31
|
+
/** Which pairs `tasks duplicates` lists: those waiting for the reviewing agent, or those it left to the owner. */
|
|
32
|
+
export const PAIR_DECISIONS = ["review", "unsure"];
|
|
33
|
+
export const TASK_PAIR_QUERY = {
|
|
34
|
+
entity: "task_pair",
|
|
35
|
+
backend: "sql",
|
|
36
|
+
fields: [
|
|
37
|
+
{
|
|
38
|
+
name: "decision",
|
|
39
|
+
type: "enum",
|
|
40
|
+
values: PAIR_DECISIONS,
|
|
41
|
+
operators: ["term"],
|
|
42
|
+
example: "decision:unsure",
|
|
43
|
+
relation: "review waits for the reviewing agent, unsure for the owner",
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
defaults: ["decision:review"],
|
|
47
|
+
};
|
|
31
48
|
const TIME = (sql) => ({ type: "time", sql });
|
|
32
49
|
/** `chat:` names the chat as the messenger does; `groups` holds each name already resolved to its stored id. */
|
|
33
50
|
const taskColumns = (groups) => ({
|
|
@@ -160,7 +177,7 @@ export const tasksService = (deps, categories) => {
|
|
|
160
177
|
if (held)
|
|
161
178
|
return { task: await taskView(store, account, held), created: false };
|
|
162
179
|
if (choice.attach !== undefined && choice.new)
|
|
163
|
-
throw new CliError("validation_error", "choose one: --
|
|
180
|
+
throw new CliError("validation_error", "choose one: --into <id> or --new");
|
|
164
181
|
const draft = {
|
|
165
182
|
title: plan.title ?? "",
|
|
166
183
|
...(plan.description === undefined ? {} : { description: plan.description }),
|
|
@@ -205,7 +222,7 @@ export const tasksService = (deps, categories) => {
|
|
|
205
222
|
}));
|
|
206
223
|
throw new CliError("validation_error", `${candidates.length === 1 ? "a task" : `${candidates.length} tasks`} may be the same job: ` +
|
|
207
224
|
`${shown.map((one) => `${one.key} (${one.band}, ${one.score}: ${one.reasons.join(", ")})`).join("; ")}` +
|
|
208
|
-
" —
|
|
225
|
+
" — link the message to one with --into <id>, or open it anyway with --new", { reason: "task.duplicate-candidates", candidates: shown });
|
|
209
226
|
}
|
|
210
227
|
const sourceText = async () => note
|
|
211
228
|
? note.text
|
|
@@ -233,7 +250,7 @@ export const tasksService = (deps, categories) => {
|
|
|
233
250
|
return { task: await taskView(store, account, task), created, card };
|
|
234
251
|
}),
|
|
235
252
|
categories: () => inStore(async (store) => listOf(store)),
|
|
236
|
-
duplicates: ({
|
|
253
|
+
duplicates: ({ decision, limit, offset }) => inStore(async (store, account) => store.tasks.pairs(taskAccount(account), { decision, limit, offset })),
|
|
237
254
|
decideDuplicate: (dup, task, decision, by) => inStore(async (store, account) => {
|
|
238
255
|
await owned(store, account, dup);
|
|
239
256
|
await owned(store, account, task);
|