@wirecat/cli-core 0.406.0 → 0.408.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/CHANGELOG.md +24 -0
- package/dist/cli/answer-entity.d.ts +4 -1
- package/dist/cli/answer-entity.js +8 -2
- package/dist/cli/command-availability.d.ts +14 -0
- package/dist/cli/command-availability.js +25 -0
- package/dist/cli/command-contract.js +4 -2
- package/dist/cli/commands-command.d.ts +1 -1
- package/dist/cli/commands-command.js +17 -4
- package/dist/cli/context.d.ts +1 -0
- package/dist/cli/effects.d.ts +1 -1
- package/dist/cli/effects.js +1 -1
- package/dist/cli/help/command-help.js +18 -1
- package/dist/cli/help/commands-text.d.ts +1 -1
- package/dist/cli/help/commands-text.js +3 -2
- package/dist/cli/index.d.ts +6 -2
- package/dist/cli/index.js +5 -2
- package/dist/cli/json-fields.js +2 -2
- package/dist/cli/meeting-batch.d.ts +1 -1
- package/dist/cli/meeting-batch.js +20 -2
- package/dist/cli/meeting-results.d.ts +3 -0
- package/dist/cli/meeting-results.js +31 -0
- package/dist/cli/program.d.ts +2 -1
- package/dist/cli/program.js +24 -1
- package/dist/cli/result-fields.js +19 -1
- package/dist/entities/contact.d.ts +6 -0
- package/dist/entities/contact.js +3 -0
- package/dist/entities/index.d.ts +139 -0
- package/dist/entities/index.js +4 -1
- package/dist/entities/store-records.d.ts +11 -0
- package/dist/entities/store-records.js +1 -0
- package/dist/mcp/agent.d.ts +11 -11
- package/dist/mcp/agent.js +13 -27
- package/dist/mcp/bot/instructions.js +2 -1
- package/dist/mcp/bot/server.d.ts +2 -2
- package/dist/mcp/bot/server.js +29 -7
- package/dist/mcp/index.d.ts +1 -1
- package/dist/mcp/instructions.js +2 -1
- package/dist/mcp/server.js +33 -7
- package/dist/mcp/surface.d.ts +3 -1
- package/dist/mcp/surface.js +8 -2
- package/dist/meetings/cli/index.js +10 -3
- package/dist/meetings/index.d.ts +1 -0
- package/dist/meetings/index.js +1 -0
- package/dist/meetings/result-items.d.ts +127 -0
- package/dist/meetings/result-items.js +125 -0
- package/package.json +1 -1
package/dist/mcp/surface.js
CHANGED
|
@@ -57,7 +57,7 @@ const runnableOnly = (result, offered) => {
|
|
|
57
57
|
/**
|
|
58
58
|
* **Three tools in place of one per command** (CLI-74, NEED-766): search the commands, then run one
|
|
59
59
|
* with `read` or `write`. A command keeps its CLI path and its arguments, and runs as its own tool
|
|
60
|
-
* did. The
|
|
60
|
+
* did. The catalogue stays discoverable; current permissions annotate availability and are checked before execution.
|
|
61
61
|
*/
|
|
62
62
|
export const registerCommands = (server, prefix, commands, errors,
|
|
63
63
|
/** Throws the refusal of a command left out because the lock or a level stops it, so the agent learns why. */
|
|
@@ -79,10 +79,16 @@ withheld) => {
|
|
|
79
79
|
title: one.title,
|
|
80
80
|
description: one.description,
|
|
81
81
|
writes: one.writes,
|
|
82
|
+
availability: one.availability?.() ?? { available: true },
|
|
82
83
|
arguments: toJsonSchema(one.input),
|
|
83
84
|
output: toJsonSchema(one.output ?? ANSWER),
|
|
84
85
|
}))
|
|
85
|
-
: found.map(([command, one]) => ({
|
|
86
|
+
: found.map(([command, one]) => ({
|
|
87
|
+
command,
|
|
88
|
+
title: one.title,
|
|
89
|
+
writes: one.writes,
|
|
90
|
+
availability: one.availability?.() ?? { available: true },
|
|
91
|
+
}));
|
|
86
92
|
// The tool takes no page: more matches mean narrower words, so the list carries no page.next to rerun.
|
|
87
93
|
const { next: _paging, ...list } = listOf(`${prefix}_tools_search`, {
|
|
88
94
|
items,
|
|
@@ -73,7 +73,7 @@ export const addMeetingCommands = (program, deps) => {
|
|
|
73
73
|
.argument("<meeting>", "stored meeting id", integer)).action(async (id, _opts, command) => {
|
|
74
74
|
print(await meetingSummaryAnswer(deps.store, id, deps.accountId), command);
|
|
75
75
|
});
|
|
76
|
-
output(annotate(group.command("export"), { effects: LOCAL_WRITE })
|
|
76
|
+
output(annotate(group.command("export"), { effects: LOCAL_WRITE, output: { entity: "meeting_export" } })
|
|
77
77
|
.description("export a meeting as Markdown or one transcript as WebVTT")
|
|
78
78
|
.argument("<meeting>", "stored meeting id", integer)
|
|
79
79
|
.addOption(new Option("--format <format>", "export format").choices(["markdown", "vtt"]).default("markdown"))
|
|
@@ -110,7 +110,11 @@ export const addMeetingCommands = (program, deps) => {
|
|
|
110
110
|
cursor: opts.cursor,
|
|
111
111
|
}), command);
|
|
112
112
|
});
|
|
113
|
-
output(annotate(group.command("sync"), {
|
|
113
|
+
output(annotate(group.command("sync"), {
|
|
114
|
+
effects: FETCH,
|
|
115
|
+
offline: false,
|
|
116
|
+
output: { entity: "meeting_ingestion" },
|
|
117
|
+
}).description("bring the stored meetings up to date from the connected account"))
|
|
114
118
|
.option("--since-time <time>", "fetch meetings starting at or after this ISO 8601 date or time", date)
|
|
115
119
|
.option("--lookback-days <days>", "revisit recent occurrences for late transcripts (0–31)", lookbackDays, 0)
|
|
116
120
|
.action(async (opts, command) => {
|
|
@@ -123,7 +127,10 @@ export const addMeetingCommands = (program, deps) => {
|
|
|
123
127
|
lookbackMs: opts.lookbackDays * 86400000,
|
|
124
128
|
}), command);
|
|
125
129
|
});
|
|
126
|
-
const importCommand = annotate(group.command("import"), {
|
|
130
|
+
const importCommand = annotate(group.command("import"), {
|
|
131
|
+
effects: LOCAL_WRITE,
|
|
132
|
+
output: { entity: "meeting_ingestion" },
|
|
133
|
+
})
|
|
127
134
|
.description("import downloaded meeting transcripts")
|
|
128
135
|
.argument("<folder>", "folder of transcripts downloaded from the provider");
|
|
129
136
|
if (deps.importHelp)
|
package/dist/meetings/index.d.ts
CHANGED
|
@@ -34,6 +34,7 @@ export { parseRecordingSyncCheckpoint, type RecordingSyncCheckpoint, type Record
|
|
|
34
34
|
export { type RecordingPartial, RecordingTransferError, type RecordingTransferResponse, type RecordingTransferSource, type RecordingTransferStorage, type RecordingTransferWriter, strongRecordingValidator, transferRecording, } from "./recording-transfer.js";
|
|
35
35
|
export { canonicalMeetingReference, formatMeetingReference, type MeetingReference, parseMeetingReference, } from "./reference.js";
|
|
36
36
|
export { type MeetingRelatedHistoryEntry, type MeetingRelatedHistoryRequest, type MeetingRelatedHistoryStore, validateMeetingRelatedHistory, } from "./related-history.js";
|
|
37
|
+
export { MEETING_RESULT_ENTITIES } from "./result-items.js";
|
|
37
38
|
export { type MeetingReview, type MeetingReviewInput, type MeetingReviewItem, type MeetingReviewSpeaker, type MeetingReviewStore, REVIEW_LIMIT, } from "./review.js";
|
|
38
39
|
export { SAVE_HELP, SAVE_INSTRUCTION } from "./save-hints.js";
|
|
39
40
|
export type { MeetingHitSearchRequest, MeetingSearchIndexInput, MeetingSearchIndexReceipt, MeetingSearchIndexStore, MeetingSearchOptions, MeetingSearchPage, MeetingSearchStore, } from "./search-store.js";
|
package/dist/meetings/index.js
CHANGED
|
@@ -25,6 +25,7 @@ export { parseRecordingSyncCheckpoint, RecordingSyncError, recordingAssetFingerp
|
|
|
25
25
|
export { RecordingTransferError, strongRecordingValidator, transferRecording, } from "./recording-transfer.js";
|
|
26
26
|
export { canonicalMeetingReference, formatMeetingReference, parseMeetingReference, } from "./reference.js";
|
|
27
27
|
export { validateMeetingRelatedHistory, } from "./related-history.js";
|
|
28
|
+
export { MEETING_RESULT_ENTITIES } from "./result-items.js";
|
|
28
29
|
export { REVIEW_LIMIT, } from "./review.js";
|
|
29
30
|
export { SAVE_HELP, SAVE_INSTRUCTION } from "./save-hints.js";
|
|
30
31
|
export { validateMeetingHitSearch } from "./search-validation.js";
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
export declare const MEETING_RESULT_ENTITIES: {
|
|
3
|
+
readonly meeting_ingestion: v.StrictObjectSchema<{
|
|
4
|
+
readonly meetings: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
5
|
+
readonly participants: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
6
|
+
readonly transcript_rows: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
7
|
+
readonly summaries: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
8
|
+
readonly warnings: v.ArraySchema<v.StrictObjectSchema<{
|
|
9
|
+
readonly external_id: v.StringSchema<undefined>;
|
|
10
|
+
readonly message: v.StringSchema<undefined>;
|
|
11
|
+
}, undefined>, undefined>;
|
|
12
|
+
readonly timezone: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
13
|
+
}, undefined>;
|
|
14
|
+
readonly meeting_export: v.UnionSchema<[v.StrictObjectSchema<{
|
|
15
|
+
readonly meeting_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
16
|
+
readonly format: v.PicklistSchema<["markdown", "vtt"], undefined>;
|
|
17
|
+
readonly filename: v.StringSchema<undefined>;
|
|
18
|
+
readonly content: v.StringSchema<undefined>;
|
|
19
|
+
}, undefined>, v.StrictObjectSchema<{
|
|
20
|
+
readonly meeting_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
21
|
+
readonly format: v.PicklistSchema<["markdown", "vtt"], undefined>;
|
|
22
|
+
readonly output: v.StringSchema<undefined>;
|
|
23
|
+
}, undefined>], undefined>;
|
|
24
|
+
readonly meeting_association: v.StrictObjectSchema<{
|
|
25
|
+
readonly scope: v.StrictObjectSchema<{
|
|
26
|
+
readonly provider: v.StringSchema<undefined>;
|
|
27
|
+
readonly account: v.StringSchema<undefined>;
|
|
28
|
+
}, undefined>;
|
|
29
|
+
readonly account_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
30
|
+
readonly meeting_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
31
|
+
readonly change: v.UnionSchema<[v.StrictObjectSchema<{
|
|
32
|
+
readonly action: v.LiteralSchema<"event.link", undefined>;
|
|
33
|
+
readonly event_id: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
34
|
+
readonly expected_event_id: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>, undefined>;
|
|
35
|
+
}, undefined>, v.StrictObjectSchema<{
|
|
36
|
+
readonly action: v.LiteralSchema<"person.link", undefined>;
|
|
37
|
+
readonly participant_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
38
|
+
readonly person_uid: v.StringSchema<undefined>;
|
|
39
|
+
readonly expected_person_uid: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
40
|
+
readonly target_account_ids: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>, undefined>;
|
|
41
|
+
}, undefined>], undefined>;
|
|
42
|
+
readonly applied: v.BooleanSchema<undefined>;
|
|
43
|
+
readonly result: v.OptionalSchema<v.UnionSchema<[v.StrictObjectSchema<{
|
|
44
|
+
readonly meeting_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
45
|
+
readonly event_id: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
46
|
+
readonly previous_event_id: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
47
|
+
readonly changed: v.BooleanSchema<undefined>;
|
|
48
|
+
}, undefined>, v.StrictObjectSchema<{
|
|
49
|
+
readonly meeting_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
50
|
+
readonly participant_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
51
|
+
readonly person_uid: v.StringSchema<undefined>;
|
|
52
|
+
readonly previous_person_uid: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
53
|
+
readonly changed: v.BooleanSchema<undefined>;
|
|
54
|
+
}, undefined>], undefined>, undefined>;
|
|
55
|
+
}, undefined>;
|
|
56
|
+
readonly meeting_transcription: v.UnionSchema<[v.StrictObjectSchema<{
|
|
57
|
+
readonly applied: v.LiteralSchema<false, undefined>;
|
|
58
|
+
readonly account_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
59
|
+
readonly external_id: v.StringSchema<undefined>;
|
|
60
|
+
readonly segments: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
61
|
+
readonly media: v.StrictObjectSchema<{
|
|
62
|
+
readonly id: v.StringSchema<undefined>;
|
|
63
|
+
readonly content_hash: v.StringSchema<undefined>;
|
|
64
|
+
readonly size: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
65
|
+
readonly duration_ms: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
66
|
+
readonly format: v.StringSchema<undefined>;
|
|
67
|
+
readonly sample_rate: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
68
|
+
readonly channels: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
69
|
+
readonly recognition: v.StrictObjectSchema<{
|
|
70
|
+
readonly engine: v.StringSchema<undefined>;
|
|
71
|
+
readonly model: v.StringSchema<undefined>;
|
|
72
|
+
readonly version: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
73
|
+
readonly timing: v.OptionalSchema<v.PicklistSchema<["fixed-windows", "recognition-segments"], undefined>, undefined>;
|
|
74
|
+
}, undefined>;
|
|
75
|
+
}, undefined>;
|
|
76
|
+
}, undefined>, v.StrictObjectSchema<{
|
|
77
|
+
readonly applied: v.LiteralSchema<true, undefined>;
|
|
78
|
+
readonly account_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
79
|
+
readonly external_id: v.StringSchema<undefined>;
|
|
80
|
+
readonly meeting_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
81
|
+
readonly created: v.BooleanSchema<undefined>;
|
|
82
|
+
readonly inserted_transcripts: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
83
|
+
readonly replayed_transcripts: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
84
|
+
readonly superseded_transcripts: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
85
|
+
readonly segments: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
86
|
+
readonly media_sha256: v.StringSchema<undefined>;
|
|
87
|
+
readonly engine: v.StringSchema<undefined>;
|
|
88
|
+
readonly model: v.StringSchema<undefined>;
|
|
89
|
+
readonly model_version: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
90
|
+
readonly timing: v.PicklistSchema<["fixed-windows", "recognition-segments"], undefined>;
|
|
91
|
+
}, undefined>], undefined>;
|
|
92
|
+
readonly meeting_embedding: v.UnionSchema<[v.StrictObjectSchema<{
|
|
93
|
+
readonly account_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
94
|
+
readonly model: v.StrictObjectSchema<{
|
|
95
|
+
readonly key: v.StringSchema<undefined>;
|
|
96
|
+
readonly dims: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
97
|
+
readonly kind: v.PicklistSchema<["local", "remote"], undefined>;
|
|
98
|
+
readonly model: v.StringSchema<undefined>;
|
|
99
|
+
}, undefined>;
|
|
100
|
+
readonly status: v.StrictObjectSchema<{
|
|
101
|
+
readonly chunks: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
102
|
+
readonly embedded: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
103
|
+
}, undefined>;
|
|
104
|
+
readonly applied: v.LiteralSchema<false, undefined>;
|
|
105
|
+
readonly scope: v.LiteralSchema<"existing-current-chunks", undefined>;
|
|
106
|
+
readonly rebuild_required: v.LiteralSchema<"explicit", undefined>;
|
|
107
|
+
}, undefined>, v.StrictObjectSchema<{
|
|
108
|
+
readonly account_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
109
|
+
readonly model: v.StrictObjectSchema<{
|
|
110
|
+
readonly key: v.StringSchema<undefined>;
|
|
111
|
+
readonly dims: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
112
|
+
readonly kind: v.PicklistSchema<["local", "remote"], undefined>;
|
|
113
|
+
readonly model: v.StringSchema<undefined>;
|
|
114
|
+
}, undefined>;
|
|
115
|
+
readonly saved: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
116
|
+
readonly skipped: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
117
|
+
readonly has_more: v.BooleanSchema<undefined>;
|
|
118
|
+
readonly next_hash: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
119
|
+
readonly applied: v.LiteralSchema<true, undefined>;
|
|
120
|
+
readonly rebuild: v.StrictObjectSchema<{
|
|
121
|
+
readonly transcripts: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
122
|
+
readonly chunks: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
123
|
+
readonly has_more: v.BooleanSchema<undefined>;
|
|
124
|
+
readonly next_transcript_id: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
125
|
+
}, undefined>;
|
|
126
|
+
}, undefined>], undefined>;
|
|
127
|
+
};
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
const text = v.string();
|
|
3
|
+
const identifier = v.pipe(text, v.minLength(1));
|
|
4
|
+
const nullableText = v.nullable(text);
|
|
5
|
+
const count = v.pipe(v.number(), v.integer(), v.minValue(0));
|
|
6
|
+
const flag = v.boolean();
|
|
7
|
+
const scope = v.strictObject({ provider: text, account: text });
|
|
8
|
+
const run = v.strictObject({
|
|
9
|
+
meetings: count,
|
|
10
|
+
participants: count,
|
|
11
|
+
transcript_rows: count,
|
|
12
|
+
summaries: count,
|
|
13
|
+
warnings: v.array(v.strictObject({ external_id: text, message: text })),
|
|
14
|
+
timezone: v.optional(text),
|
|
15
|
+
});
|
|
16
|
+
const exported = v.union([
|
|
17
|
+
v.strictObject({ meeting_id: identifier, format: v.picklist(["markdown", "vtt"]), filename: text, content: text }),
|
|
18
|
+
v.strictObject({ meeting_id: identifier, format: v.picklist(["markdown", "vtt"]), output: text }),
|
|
19
|
+
]);
|
|
20
|
+
const eventChange = v.strictObject({
|
|
21
|
+
action: v.literal("event.link"),
|
|
22
|
+
event_id: v.nullable(identifier),
|
|
23
|
+
expected_event_id: v.optional(v.nullable(identifier)),
|
|
24
|
+
});
|
|
25
|
+
const personChange = v.strictObject({
|
|
26
|
+
action: v.literal("person.link"),
|
|
27
|
+
participant_id: identifier,
|
|
28
|
+
person_uid: text,
|
|
29
|
+
expected_person_uid: v.optional(nullableText),
|
|
30
|
+
target_account_ids: v.optional(v.array(identifier)),
|
|
31
|
+
});
|
|
32
|
+
const eventResult = v.strictObject({
|
|
33
|
+
meeting_id: identifier,
|
|
34
|
+
event_id: v.nullable(identifier),
|
|
35
|
+
previous_event_id: v.nullable(identifier),
|
|
36
|
+
changed: flag,
|
|
37
|
+
});
|
|
38
|
+
const personResult = v.strictObject({
|
|
39
|
+
meeting_id: identifier,
|
|
40
|
+
participant_id: identifier,
|
|
41
|
+
person_uid: text,
|
|
42
|
+
previous_person_uid: nullableText,
|
|
43
|
+
changed: flag,
|
|
44
|
+
});
|
|
45
|
+
const meetingChange = v.strictObject({
|
|
46
|
+
scope,
|
|
47
|
+
account_id: identifier,
|
|
48
|
+
meeting_id: identifier,
|
|
49
|
+
change: v.union([eventChange, personChange]),
|
|
50
|
+
applied: flag,
|
|
51
|
+
result: v.optional(v.union([eventResult, personResult])),
|
|
52
|
+
});
|
|
53
|
+
const recognition = v.strictObject({
|
|
54
|
+
engine: text,
|
|
55
|
+
model: text,
|
|
56
|
+
version: v.optional(text),
|
|
57
|
+
timing: v.optional(v.picklist(["fixed-windows", "recognition-segments"])),
|
|
58
|
+
});
|
|
59
|
+
const transcription = v.union([
|
|
60
|
+
v.strictObject({
|
|
61
|
+
applied: v.literal(false),
|
|
62
|
+
account_id: identifier,
|
|
63
|
+
external_id: text,
|
|
64
|
+
segments: count,
|
|
65
|
+
media: v.strictObject({
|
|
66
|
+
id: text,
|
|
67
|
+
content_hash: text,
|
|
68
|
+
size: count,
|
|
69
|
+
duration_ms: count,
|
|
70
|
+
format: text,
|
|
71
|
+
sample_rate: count,
|
|
72
|
+
channels: count,
|
|
73
|
+
recognition,
|
|
74
|
+
}),
|
|
75
|
+
}),
|
|
76
|
+
v.strictObject({
|
|
77
|
+
applied: v.literal(true),
|
|
78
|
+
account_id: identifier,
|
|
79
|
+
external_id: text,
|
|
80
|
+
meeting_id: identifier,
|
|
81
|
+
created: flag,
|
|
82
|
+
inserted_transcripts: count,
|
|
83
|
+
replayed_transcripts: count,
|
|
84
|
+
superseded_transcripts: count,
|
|
85
|
+
segments: count,
|
|
86
|
+
media_sha256: text,
|
|
87
|
+
engine: text,
|
|
88
|
+
model: text,
|
|
89
|
+
model_version: nullableText,
|
|
90
|
+
timing: v.picklist(["fixed-windows", "recognition-segments"]),
|
|
91
|
+
}),
|
|
92
|
+
]);
|
|
93
|
+
const embeddingModel = v.strictObject({ key: text, dims: count, kind: v.picklist(["local", "remote"]), model: text });
|
|
94
|
+
const embedding = v.union([
|
|
95
|
+
v.strictObject({
|
|
96
|
+
account_id: identifier,
|
|
97
|
+
model: embeddingModel,
|
|
98
|
+
status: v.strictObject({ chunks: count, embedded: count }),
|
|
99
|
+
applied: v.literal(false),
|
|
100
|
+
scope: v.literal("existing-current-chunks"),
|
|
101
|
+
rebuild_required: v.literal("explicit"),
|
|
102
|
+
}),
|
|
103
|
+
v.strictObject({
|
|
104
|
+
account_id: identifier,
|
|
105
|
+
model: embeddingModel,
|
|
106
|
+
saved: count,
|
|
107
|
+
skipped: count,
|
|
108
|
+
has_more: flag,
|
|
109
|
+
next_hash: v.optional(text),
|
|
110
|
+
applied: v.literal(true),
|
|
111
|
+
rebuild: v.strictObject({
|
|
112
|
+
transcripts: count,
|
|
113
|
+
chunks: count,
|
|
114
|
+
has_more: flag,
|
|
115
|
+
next_transcript_id: v.optional(identifier),
|
|
116
|
+
}),
|
|
117
|
+
}),
|
|
118
|
+
]);
|
|
119
|
+
export const MEETING_RESULT_ENTITIES = {
|
|
120
|
+
meeting_ingestion: run,
|
|
121
|
+
meeting_export: exported,
|
|
122
|
+
meeting_association: meetingChange,
|
|
123
|
+
meeting_transcription: transcription,
|
|
124
|
+
meeting_embedding: embedding,
|
|
125
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wirecat/cli-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.408.0",
|
|
4
4
|
"description": "The messenger-neutral half of a messaging CLI: domain model, message locators, rendering, name resolution, the SQLite seam, the command skeleton and shared read commands, the send guard, run records and the message store",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Viacheslav Ptsarev",
|