@wirecat/cli-core 0.406.0 → 0.407.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 +12 -0
- package/dist/cli/answer-entity.d.ts +4 -1
- package/dist/cli/answer-entity.js +8 -2
- package/dist/cli/command-contract.js +4 -2
- package/dist/cli/index.d.ts +5 -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/messenger/store-maintenance-command.d.ts +1 -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/meetings/cli/index.js +10 -3
- package/dist/meetings/index.d.ts +1 -0
- package/dist/meetings/index.js +1 -0
- package/dist/meetings/mcp/index.d.ts +15 -15
- package/dist/meetings/result-items.d.ts +127 -0
- package/dist/meetings/result-items.js +125 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,18 @@ Notable changes to `@wirecat/cli-core` (`@wirecat/cli-messaging` up to 0.261.0,
|
|
|
5
5
|
minor version may break callers, and says how under "Changed — may break callers". `pnpm docs:check` checks the
|
|
6
6
|
shape of this file.
|
|
7
7
|
|
|
8
|
+
## 0.407.0 — 24.10.2026
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- The `contact` entity has optional `email` and `phones` (number and label), for a source that knows them, such as zm's Zoom contacts.
|
|
13
|
+
|
|
14
|
+
- Command discovery projections preserve the CLI document and command identities while selecting fields inside its command tree.
|
|
15
|
+
|
|
16
|
+
- Portable ingestion, export, association, transcription and embedding receipts have shared entities and `meetingResultItem` serializers. Public IDs are strings; stored numeric IDs remain internal.
|
|
17
|
+
|
|
18
|
+
- Meeting batch results declare their correlated success/error schemas. `answerEntity` can name a separate typed projection payload, preserving batch field selection inside each answer without weakening its outer result contract.
|
|
19
|
+
|
|
8
20
|
## 0.406.0 — 24.10.2026
|
|
9
21
|
|
|
10
22
|
### Added
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { Command } from "commander";
|
|
2
2
|
import type * as v from "valibot";
|
|
3
3
|
/** Provider-specific wire fields must not redefine an entity shared by every CLI. */
|
|
4
|
-
export declare const answerEntity: (command: Command, name: string, schema: v.GenericSchema
|
|
4
|
+
export declare const answerEntity: (command: Command, name: string, schema: v.GenericSchema, options?: {
|
|
5
|
+
project?: v.GenericSchema;
|
|
6
|
+
}) => Command;
|
|
5
7
|
export declare const answerEntitySchema: (command: Command | undefined) => v.GenericSchema | undefined;
|
|
8
|
+
export declare const answerProjectionSchema: (command: Command | undefined) => v.GenericSchema | undefined;
|
|
@@ -2,14 +2,16 @@ import { annotate, metaOf } from "@wirecat/cli-base/commands";
|
|
|
2
2
|
import { ENTITIES } from "../entities/index.js";
|
|
3
3
|
const schemas = new WeakMap();
|
|
4
4
|
/** Provider-specific wire fields must not redefine an entity shared by every CLI. */
|
|
5
|
-
export const answerEntity = (command, name, schema) => {
|
|
5
|
+
export const answerEntity = (command, name, schema, options = {}) => {
|
|
6
6
|
if (Object.hasOwn(ENTITIES, name))
|
|
7
7
|
throw new Error(`${name} is a shared entity; use its existing schema`);
|
|
8
8
|
if (!/^[a-z][a-z0-9_]*$/.test(name))
|
|
9
9
|
throw new Error("an answer entity needs a lowercase name");
|
|
10
10
|
if (!("entries" in schema) && schema.type !== "union")
|
|
11
11
|
throw new Error("an answer entity needs an object schema or a union of object schemas");
|
|
12
|
-
|
|
12
|
+
if (options.project && !("entries" in options.project) && options.project.type !== "union")
|
|
13
|
+
throw new Error("projection needs an object schema or a union of object schemas");
|
|
14
|
+
schemas.set(command, { name, schema, ...options });
|
|
13
15
|
return annotate(command, { output: { entity: name } });
|
|
14
16
|
};
|
|
15
17
|
export const answerEntitySchema = (command) => {
|
|
@@ -23,3 +25,7 @@ export const answerEntitySchema = (command) => {
|
|
|
23
25
|
const own = schemas.get(command);
|
|
24
26
|
return own?.name === name ? own.schema : undefined;
|
|
25
27
|
};
|
|
28
|
+
export const answerProjectionSchema = (command) => {
|
|
29
|
+
const own = command && schemas.get(command);
|
|
30
|
+
return own && metaOf(command).output?.entity === own.name ? own.project : undefined;
|
|
31
|
+
};
|
|
@@ -2,7 +2,7 @@ import { CliError } from "@wirecat/cli-base";
|
|
|
2
2
|
import { describeOptions, metaOf } from "@wirecat/cli-base/commands";
|
|
3
3
|
import { jsonSchemaOf } from "@wirecat/cli-base/standards";
|
|
4
4
|
import { keyForCommand } from "../sends/permissions.js";
|
|
5
|
-
import { answerEntitySchema } from "./answer-entity.js";
|
|
5
|
+
import { answerEntitySchema, answerProjectionSchema } from "./answer-entity.js";
|
|
6
6
|
import { answerSchema } from "./envelope.js";
|
|
7
7
|
export const SCHEMA_DIALECT = "https://json-schema.org/draft/2020-12/schema";
|
|
8
8
|
/**
|
|
@@ -97,7 +97,9 @@ export const commandContract = (command) => {
|
|
|
97
97
|
outputSchemaCoverage: output.coverage,
|
|
98
98
|
jsonlSchema: { $schema: SCHEMA_DIALECT, ...output.item },
|
|
99
99
|
jsonlSchemaCoverage: output.coverage,
|
|
100
|
-
projection:
|
|
100
|
+
projection: answerProjectionSchema(command)
|
|
101
|
+
? "--json=<fields> selects inside each nested answer; correlation and envelopes are preserved"
|
|
102
|
+
: "--json=<fields> may omit item/object members; present members retain their types and envelopes are preserved",
|
|
101
103
|
validation: {
|
|
102
104
|
syntax: "declared",
|
|
103
105
|
semantic: "command-and-provider-validation",
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { AI_ENTRIES, AI_SETTING_KEYS, type AISettings, resolveAISettings } from "../analysis/settings.js";
|
|
2
2
|
export { parseDuration } from "../domain/duration.js";
|
|
3
|
+
export { syncProgress } from "../entities/store-records.js";
|
|
3
4
|
export { isCliFailure, isCommanderFailure } from "../errors/failures.js";
|
|
4
5
|
export { type AppErrors, failureContext } from "../errors/reasons.js";
|
|
5
6
|
export { botInstructions } from "../mcp/bot/instructions.js";
|
|
@@ -10,6 +11,7 @@ export { callMeetingProjectCandidatesTool, meetingProjectCandidatesTool } from "
|
|
|
10
11
|
export { callMeetingSeriesInventoryTool, meetingSeriesInventoryTool } from "../mcp/meeting-series-inventory.js";
|
|
11
12
|
export { registerLinkConversationsPrompt } from "../mcp/prompts.js";
|
|
12
13
|
export { agentBody, agentJson, agentResult, UNTRUSTED, UNTRUSTED_INSTRUCTION } from "../mcp/text.js";
|
|
14
|
+
export { MEETING_RESULT_ENTITIES } from "../meetings/index.js";
|
|
13
15
|
export { type AppIdentity, envName, readOnlyLockOf, readOnlyRefusal } from "../ports/app.js";
|
|
14
16
|
export type { AccountEditing, AccountHealth, AccountRecords, AccountSettings, AccountStanding, AccountTools, After, BotChats, ChannelComments, ChatDeletion, ChatFolders, ChatReading, ContactBook, Download, ForumControl, ForumState, GroupAdmin, GroupModeration, HistoryBatch, HistoryChatEvent, HistoryReaction, HistoryStar, HistoryVote, InviteLinks, JoinRequests, LiveUpdates, MessageButtons, MessageEditing, MessageMedia, MessagePermalinks, MessagePins, MessagePolls, MessageReactions, MessageSearch, MessageStars, MessengerAdapter, MessengerCore, NewPoll, OfficialStats, PassiveUpdates, PersonProfiles, ProfileChange, ProfilePhotos, PushedHistory, ReadState, RemoteFile, ScheduledMessages, SenderIdentities, SenderSearch, SendOptions, Sent, ServerQuery, ServerReads, ThreadAddressing, TopicEditing, TopicHistory, TopicReadState, Transcript, } from "../ports/messenger.js";
|
|
15
17
|
export type { Fetching, MediaOption, MessengerTraits } from "../ports/traits.js";
|
|
@@ -54,8 +56,8 @@ export { loadSnakeCaseConfig } from "./config-keys.js";
|
|
|
54
56
|
export { type AgentRun, type BaseContext, type BaseEnvironment, baseContext, environmentOf, outputFor, provide, secretInputOf, } from "./context.js";
|
|
55
57
|
export { type Closeable, withDeadline } from "./deadline.js";
|
|
56
58
|
export { DEFAULT_CONFIG, ensureDefaultConfig } from "./default-config.js";
|
|
57
|
-
export { changesAuthority, changesAuthorityAt, destroysNothing, FETCH, grantsAuthority, isLogin, isOtherServiceCall, isStoreChange, judgedEffects, judgedTargets, LOCAL_READ, LOCAL_WRITE, logsInOrOut, NO_EFFECTS, ownerOnlyOption, REMOTE_READ, REMOTE_WRITE, reachesOtherService, refuseUnderReadOnly, } from "./effects.js";
|
|
58
|
-
export { type AnswerOutput, answerSchema, type Body, type ItemBody, itemAnswer, itemOf, jsonlRecords, judgedAnswer, type ListBody, type ListInput, listOf, metaNow, printItem, renderAnswer, sealed, snakeKeys, snakeKeysKeeping, } from "./envelope.js";
|
|
59
|
+
export { changesAuthority, changesAuthorityAt, changesAuthorityNow, destroysNothing, FETCH, grantsAuthority, isLogin, isOtherServiceCall, isStoreChange, judgedEffects, judgedTargets, LOCAL_READ, LOCAL_WRITE, logsInOrOut, NO_EFFECTS, ownerOnlyOption, REMOTE_READ, REMOTE_WRITE, reachesOtherService, refuseUnderReadOnly, } from "./effects.js";
|
|
60
|
+
export { type AnswerOutput, answerSchema, type Body, type ItemBody, isBody, itemAnswer, itemOf, jsonlRecords, judgedAnswer, type ListBody, type ListInput, listOf, metaNow, printItem, renderAnswer, sealed, snakeKeys, snakeKeysKeeping, } from "./envelope.js";
|
|
59
61
|
export { withAbort } from "./execution.js";
|
|
60
62
|
export { askSetupQuestions, asksAtStart, type FirstRun, type FirstRunIo, LANGUAGES, setupAtStart, systemLanguage, } from "./first-run.js";
|
|
61
63
|
export { checkGuide, checkStep, type GuideOptions, type GuideReference, type GuideStep, guideCommand, loadScenarios, MEMO_SCENARIOS, type Scenario, shellProblems, } from "./guide.js";
|
|
@@ -74,6 +76,7 @@ export { addMeetingPreparationCommand } from "./meeting-preparation-command.js";
|
|
|
74
76
|
export { type MeetingPreparationReader, meetingPreparationInput, readMeetingPreparation, } from "./meeting-preparation-read.js";
|
|
75
77
|
export { addMeetingProjectCandidatesCommand } from "./meeting-project-candidates-command.js";
|
|
76
78
|
export { readMeetingProjectCandidates } from "./meeting-project-candidates-read.js";
|
|
79
|
+
export { meetingResultItem } from "./meeting-results.js";
|
|
77
80
|
export { addMeetingSeriesInventoryCommand } from "./meeting-series-inventory-command.js";
|
|
78
81
|
export { type MeetingSeriesInventoryReader, readMeetingSeriesInventory } from "./meeting-series-inventory-read.js";
|
|
79
82
|
export { accountCommand } from "./messenger/account-command.js";
|
package/dist/cli/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { AI_ENTRIES, AI_SETTING_KEYS, resolveAISettings } from "../analysis/settings.js";
|
|
2
2
|
export { parseDuration } from "../domain/duration.js";
|
|
3
|
+
export { syncProgress } from "../entities/store-records.js";
|
|
3
4
|
export { isCliFailure, isCommanderFailure } from "../errors/failures.js";
|
|
4
5
|
export { failureContext } from "../errors/reasons.js";
|
|
5
6
|
export { botInstructions } from "../mcp/bot/instructions.js";
|
|
@@ -8,6 +9,7 @@ export { callMeetingProjectCandidatesTool, meetingProjectCandidatesTool } from "
|
|
|
8
9
|
export { callMeetingSeriesInventoryTool, meetingSeriesInventoryTool } from "../mcp/meeting-series-inventory.js";
|
|
9
10
|
export { registerLinkConversationsPrompt } from "../mcp/prompts.js";
|
|
10
11
|
export { agentBody, agentJson, agentResult, UNTRUSTED, UNTRUSTED_INSTRUCTION } from "../mcp/text.js";
|
|
12
|
+
export { MEETING_RESULT_ENTITIES } from "../meetings/index.js";
|
|
11
13
|
export { envName, readOnlyLockOf, readOnlyRefusal } from "../ports/app.js";
|
|
12
14
|
export { senderFacts } from "../replies/dry-run.js";
|
|
13
15
|
export { replyRenderer } from "../replies/rendering.js";
|
|
@@ -49,8 +51,8 @@ export { loadSnakeCaseConfig } from "./config-keys.js";
|
|
|
49
51
|
export { baseContext, environmentOf, outputFor, provide, secretInputOf, } from "./context.js";
|
|
50
52
|
export { withDeadline } from "./deadline.js";
|
|
51
53
|
export { DEFAULT_CONFIG, ensureDefaultConfig } from "./default-config.js";
|
|
52
|
-
export { changesAuthority, changesAuthorityAt, destroysNothing, FETCH, grantsAuthority, isLogin, isOtherServiceCall, isStoreChange, judgedEffects, judgedTargets, LOCAL_READ, LOCAL_WRITE, logsInOrOut, NO_EFFECTS, ownerOnlyOption, REMOTE_READ, REMOTE_WRITE, reachesOtherService, refuseUnderReadOnly, } from "./effects.js";
|
|
53
|
-
export { answerSchema, itemAnswer, itemOf, jsonlRecords, judgedAnswer, listOf, metaNow, printItem, renderAnswer, sealed, snakeKeys, snakeKeysKeeping, } from "./envelope.js";
|
|
54
|
+
export { changesAuthority, changesAuthorityAt, changesAuthorityNow, destroysNothing, FETCH, grantsAuthority, isLogin, isOtherServiceCall, isStoreChange, judgedEffects, judgedTargets, LOCAL_READ, LOCAL_WRITE, logsInOrOut, NO_EFFECTS, ownerOnlyOption, REMOTE_READ, REMOTE_WRITE, reachesOtherService, refuseUnderReadOnly, } from "./effects.js";
|
|
55
|
+
export { answerSchema, isBody, itemAnswer, itemOf, jsonlRecords, judgedAnswer, listOf, metaNow, printItem, renderAnswer, sealed, snakeKeys, snakeKeysKeeping, } from "./envelope.js";
|
|
54
56
|
export { withAbort } from "./execution.js";
|
|
55
57
|
export { askSetupQuestions, asksAtStart, LANGUAGES, setupAtStart, systemLanguage, } from "./first-run.js";
|
|
56
58
|
export { checkGuide, checkStep, guideCommand, loadScenarios, MEMO_SCENARIOS, shellProblems, } from "./guide.js";
|
|
@@ -69,6 +71,7 @@ export { addMeetingPreparationCommand } from "./meeting-preparation-command.js";
|
|
|
69
71
|
export { meetingPreparationInput, readMeetingPreparation, } from "./meeting-preparation-read.js";
|
|
70
72
|
export { addMeetingProjectCandidatesCommand } from "./meeting-project-candidates-command.js";
|
|
71
73
|
export { readMeetingProjectCandidates } from "./meeting-project-candidates-read.js";
|
|
74
|
+
export { meetingResultItem } from "./meeting-results.js";
|
|
72
75
|
export { addMeetingSeriesInventoryCommand } from "./meeting-series-inventory-command.js";
|
|
73
76
|
export { readMeetingSeriesInventory } from "./meeting-series-inventory-read.js";
|
|
74
77
|
export { accountCommand } from "./messenger/account-command.js";
|
package/dist/cli/json-fields.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CliError } from "@wirecat/cli-base";
|
|
2
2
|
import { metaOf } from "@wirecat/cli-base/commands";
|
|
3
3
|
import { ENTITIES } from "../entities/index.js";
|
|
4
|
-
import { answerEntitySchema } from "./answer-entity.js";
|
|
4
|
+
import { answerEntitySchema, answerProjectionSchema } from "./answer-entity.js";
|
|
5
5
|
const declaredEntity = (command) => {
|
|
6
6
|
const output = command ? metaOf(command).output : undefined;
|
|
7
7
|
return output && (output.view ? `${output.entity}.${output.view}` : output.entity);
|
|
@@ -38,7 +38,7 @@ export const answerFields = (command, resolve) => {
|
|
|
38
38
|
const own = resolve?.(command);
|
|
39
39
|
if (own !== undefined)
|
|
40
40
|
return [...own];
|
|
41
|
-
const schema = answerEntitySchema(command);
|
|
41
|
+
const schema = answerProjectionSchema(command) ?? answerEntitySchema(command);
|
|
42
42
|
return schemaFields(schema);
|
|
43
43
|
};
|
|
44
44
|
const PATHS = /^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*(,[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*)*$/;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type BatchReport } from "@wirecat/cli-base";
|
|
2
|
-
import type
|
|
2
|
+
import { type Meta } from "@wirecat/cli-base/standards";
|
|
3
3
|
import { Command } from "commander";
|
|
4
4
|
import { type MeetingBatchReader, type MeetingPassageOutputFormat } from "../meetings/index.js";
|
|
5
5
|
import { type Body } from "./envelope.js";
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { BATCH_LIMITS, CliError, prepareBatch, runBatch, } from "@wirecat/cli-base";
|
|
2
2
|
import { annotate } from "@wirecat/cli-base/commands";
|
|
3
|
+
import { errorObjectSchema } from "@wirecat/cli-base/standards";
|
|
3
4
|
import { Command, Option } from "commander";
|
|
5
|
+
import * as v from "valibot";
|
|
6
|
+
import { ENTITIES } from "../entities/index.js";
|
|
4
7
|
import { failureContext } from "../errors/reasons.js";
|
|
5
8
|
import { createMeetingPassageCommand, createMeetingSearchCommand, meetingHitSearchRequest, meetingPassageRequest, meetingSearchArguments, meetingSearchMeta, } from "../meetings/cli/index.js";
|
|
6
9
|
import { meetingHitsList, parseMeetingReference, } from "../meetings/index.js";
|
|
7
10
|
import { formatMeetingEvidenceText, formatMeetingPassage } from "../services/meeting-passage-format.js";
|
|
8
|
-
import {
|
|
11
|
+
import { answerEntity } from "./answer-entity.js";
|
|
12
|
+
import { destroysNothing } from "./effects.js";
|
|
13
|
+
import { answerSchema, itemOf, listOf } from "./envelope.js";
|
|
9
14
|
const INDEX_BYTES = 4194304;
|
|
10
15
|
const parse = (command, args) => {
|
|
11
16
|
command
|
|
@@ -162,10 +167,23 @@ export const addMeetingBatchCommand = (program, deps) => {
|
|
|
162
167
|
},
|
|
163
168
|
}), report, format);
|
|
164
169
|
});
|
|
165
|
-
|
|
170
|
+
destroysNothing(command);
|
|
171
|
+
annotate(command, {
|
|
166
172
|
origin: "handwritten",
|
|
167
173
|
partial: true,
|
|
168
174
|
effects: { remote: "none", local: "write" },
|
|
169
175
|
examples: [`${program.name()} batch requests.json --json`],
|
|
170
176
|
});
|
|
177
|
+
return answerEntity(command, "meeting_batch_result", batchResult, { project: batchPayload });
|
|
171
178
|
};
|
|
179
|
+
const batchPayload = v.union([ENTITIES.meeting_hit, ENTITIES.meeting_passage]);
|
|
180
|
+
const correlated = { id: v.string(), command: v.array(v.string()) };
|
|
181
|
+
const batchResult = v.union([
|
|
182
|
+
v.strictObject({ ...correlated, status: v.literal("ok"), answer: answerSchema(batchPayload), complete: v.boolean() }),
|
|
183
|
+
v.strictObject({
|
|
184
|
+
...correlated,
|
|
185
|
+
status: v.picklist(["error", "not_run"]),
|
|
186
|
+
error: errorObjectSchema.entries.error,
|
|
187
|
+
complete: v.literal(false),
|
|
188
|
+
}),
|
|
189
|
+
]);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { MEETING_RESULT_ENTITIES } from "../meetings/index.js";
|
|
2
|
+
/** Store IDs stay numeric below the CLI; public receipts use the shared string IDs and validated wire fields. */
|
|
3
|
+
export declare const meetingResultItem: (entity: keyof typeof MEETING_RESULT_ENTITIES, value: unknown) => unknown;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { CliError } from "@wirecat/cli-base";
|
|
2
|
+
import * as v from "valibot";
|
|
3
|
+
import { MEETING_RESULT_ENTITIES } from "../meetings/index.js";
|
|
4
|
+
import { snakeKeys } from "./envelope.js";
|
|
5
|
+
const ids = new Set([
|
|
6
|
+
"meeting_id",
|
|
7
|
+
"account_id",
|
|
8
|
+
"participant_id",
|
|
9
|
+
"event_id",
|
|
10
|
+
"previous_event_id",
|
|
11
|
+
"expected_event_id",
|
|
12
|
+
"next_transcript_id",
|
|
13
|
+
]);
|
|
14
|
+
const publicValue = (value, key = "") => {
|
|
15
|
+
if (typeof value === "number" && ids.has(key))
|
|
16
|
+
return String(value);
|
|
17
|
+
if (Array.isArray(value))
|
|
18
|
+
return value.map((item) => publicValue(item, key === "target_account_ids" ? "account_id" : ""));
|
|
19
|
+
if (value && typeof value === "object")
|
|
20
|
+
return Object.fromEntries(Object.entries(value).map(([name, item]) => [name, publicValue(item, name)]));
|
|
21
|
+
return value;
|
|
22
|
+
};
|
|
23
|
+
/** Store IDs stay numeric below the CLI; public receipts use the shared string IDs and validated wire fields. */
|
|
24
|
+
export const meetingResultItem = (entity, value) => {
|
|
25
|
+
const parsed = v.safeParse(MEETING_RESULT_ENTITIES[entity], publicValue(snakeKeys(value)));
|
|
26
|
+
if (!parsed.success) {
|
|
27
|
+
const applied = value && typeof value === "object" && "applied" in value && value.applied === true;
|
|
28
|
+
throw new CliError(applied ? "outcome_unknown" : "invalid_response", `the command returned an invalid ${entity} answer`);
|
|
29
|
+
}
|
|
30
|
+
return parsed.output;
|
|
31
|
+
};
|
|
@@ -3,9 +3,9 @@ import type { CacheDatabase } from "../../store/driver.js";
|
|
|
3
3
|
import type { Messenger } from "./context.js";
|
|
4
4
|
/** `doctor`'s short summary of the store. Must answer for a broken file, so an error is a field. */
|
|
5
5
|
export declare const storeSummary: (env: NodeJS.ProcessEnv) => Promise<{
|
|
6
|
-
error?: undefined;
|
|
7
6
|
path: string;
|
|
8
7
|
exists: boolean;
|
|
8
|
+
error?: undefined;
|
|
9
9
|
} | {
|
|
10
10
|
path: string;
|
|
11
11
|
exists: boolean;
|
|
@@ -12,4 +12,22 @@ const named = (work) => {
|
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
14
|
export const fieldsOf = (value) => named(() => coreFieldsOf(value));
|
|
15
|
-
|
|
15
|
+
const projectCommands = (commands, fields) => commands.map((command) => ({
|
|
16
|
+
...coreProjectFields(command, fields),
|
|
17
|
+
path: command.path,
|
|
18
|
+
name: command.name,
|
|
19
|
+
origin: command.origin,
|
|
20
|
+
effects: command.effects,
|
|
21
|
+
commands: projectCommands(command.commands, fields),
|
|
22
|
+
}));
|
|
23
|
+
export const projectFields = (value, fields) => named(() => {
|
|
24
|
+
if (value &&
|
|
25
|
+
typeof value === "object" &&
|
|
26
|
+
"cli" in value &&
|
|
27
|
+
typeof value.cli === "string" &&
|
|
28
|
+
"contract" in value &&
|
|
29
|
+
"commands" in value &&
|
|
30
|
+
Array.isArray(value.commands))
|
|
31
|
+
return { ...value, commands: projectCommands(value.commands, fields) };
|
|
32
|
+
return coreProjectFields(value, fields);
|
|
33
|
+
});
|
|
@@ -11,6 +11,12 @@ export declare const contact: v.StrictObjectSchema<{
|
|
|
11
11
|
readonly description: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
12
12
|
/** The newest message in a one-to-one chat with them. */
|
|
13
13
|
readonly last_messaged_at: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time in UTC">, v.EndsWithAction<string, "Z", "an ISO 8601 time in UTC, ending in `Z`">]>, undefined>;
|
|
14
|
+
/** For a source that knows it, such as a Zoom contact. */
|
|
15
|
+
readonly email: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
16
|
+
readonly phones: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
|
|
17
|
+
readonly number: v.StringSchema<undefined>;
|
|
18
|
+
readonly label: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
19
|
+
}, undefined>, undefined>, undefined>;
|
|
14
20
|
/** `contacts show`: the chats shared with them. */
|
|
15
21
|
readonly chats: v.OptionalSchema<v.ArraySchema<Omit<v.StrictObjectSchema<{
|
|
16
22
|
readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
|
package/dist/entities/contact.js
CHANGED
|
@@ -13,6 +13,9 @@ export const contact = v.strictObject({
|
|
|
13
13
|
description: v.nullable(text),
|
|
14
14
|
/** The newest message in a one-to-one chat with them. */
|
|
15
15
|
last_messaged_at: v.nullable(time),
|
|
16
|
+
/** For a source that knows it, such as a Zoom contact. */
|
|
17
|
+
email: v.optional(v.nullable(text)),
|
|
18
|
+
phones: v.optional(v.array(v.strictObject({ number: text, label: v.nullable(text) }))),
|
|
16
19
|
/** `contacts show`: the chats shared with them. */
|
|
17
20
|
chats: v.optional(v.array(v.pick(chat, ["ref", "id", "title", "kind", "last_message_at"]))),
|
|
18
21
|
/** `contacts show --with-notes`: the owner's private notes about them. */
|
package/dist/entities/index.d.ts
CHANGED
|
@@ -86,6 +86,140 @@ import { topic } from "./topic.js";
|
|
|
86
86
|
*/
|
|
87
87
|
export { account, accountChange, accountPrivacy, accountPrivacyChange, accountProfile, accountSession, adminReport, agenda, analysisConsent, analysisConsentRevocation, attachment, attachmentBytes, attachmentExtraction, attachmentTextChange, automaticTags, cachedChatMetadata, chart, chat, chatAdminChange, chatArchive, chatEvent, chatFolderChange, chatFolderOrder, chatFolderRemoval, chatGroupChange, chatInspection, chatInvite, chatInviteChange, chatMembersChange, chatMembersFetch, chatMetadata, chatMetadataRefresh, chatModeration, chatMuting, chatPin, chatRead, chatRemoval, chatRequestChange, chatRules, chatSender, chatStats, chatTracking, chatUnread, contact, contactActivity, contactAlias, contactCheck, contactContext, contactImport, contactLookup, contactNote, contactNoteRemoval, contactPreparation, contactProfile, contactStateChange, contactSync, contactUpdate, conversation, conversationBatch, conversationBatchStatus, conversationBuildResult, conversationChange, conversationDetails, conversationEmbedding, conversationEmbeddingStatus, conversationHit, conversationPreparation, conversationReadiness, counterRefresh, counters, document, documentLink, endedAccountSessions, evidence, evidencePacket, fact, folder, hit, identity, imageEmbedding, inviteLink, job, joinRequest, linkedPerson, mediaArchive, mediaArchiveCheck, mediaArchiveMove, mediaArchiveTimer, meeting, meetingProjectCandidates, meetingSeriesInventory, member, memory, mention, mentionDecision, mentionDetails, mentionDomain, mentionRebuild, message, messageContext, messageCounts, messageDeletion, messageDownload, messageEvent, messageLink, messageLinks, messagePin, messageStar, messageSync, messageTranscript, messageWrite, model, modelKey, note, officialStats, person, place, poll, pollChange, pollVote, ranking, reactionChange, recipient, recipientAdded, recipientChange, recipientOff, recipientRemoved, recordedRun, reference, relationship, removedModelKey, retention, runDetails, runHit, runLocation, savedSearch, searchHistoryClear, sendAttempt, serveSummary, storeBackup, storeChatStatus, storeCheck, storeClear, storeCopyRemoval, storeDecrypt, storedModelKey, storeExport, storeGapPlan, storeGapRepair, storeInfo, storeJobCancel, storeJobClear, storeJobDetails, storeJobRetry, storeMigration, storeReindex, storeRepair, storeReset, storeRestore, tagChange, tagging, task, taskCard, taskCategories, taskClosed, taskCreated, taskLinks, taskMerge, taskPair, taskScan, taskSimilar, taskStats, taskUnmerge, topic, trackedChat, trackedChatHistory, watchedMessage, watchItem, };
|
|
88
88
|
export declare const ENTITIES: {
|
|
89
|
+
readonly meeting_ingestion: v.StrictObjectSchema<{
|
|
90
|
+
readonly meetings: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
91
|
+
readonly participants: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
92
|
+
readonly transcript_rows: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
93
|
+
readonly summaries: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
94
|
+
readonly warnings: v.ArraySchema<v.StrictObjectSchema<{
|
|
95
|
+
readonly external_id: v.StringSchema<undefined>;
|
|
96
|
+
readonly message: v.StringSchema<undefined>;
|
|
97
|
+
}, undefined>, undefined>;
|
|
98
|
+
readonly timezone: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
99
|
+
}, undefined>;
|
|
100
|
+
readonly meeting_export: v.UnionSchema<[v.StrictObjectSchema<{
|
|
101
|
+
readonly meeting_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
102
|
+
readonly format: v.PicklistSchema<["markdown", "vtt"], undefined>;
|
|
103
|
+
readonly filename: v.StringSchema<undefined>;
|
|
104
|
+
readonly content: v.StringSchema<undefined>;
|
|
105
|
+
}, undefined>, v.StrictObjectSchema<{
|
|
106
|
+
readonly meeting_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
107
|
+
readonly format: v.PicklistSchema<["markdown", "vtt"], undefined>;
|
|
108
|
+
readonly output: v.StringSchema<undefined>;
|
|
109
|
+
}, undefined>], undefined>;
|
|
110
|
+
readonly meeting_association: v.StrictObjectSchema<{
|
|
111
|
+
readonly scope: v.StrictObjectSchema<{
|
|
112
|
+
readonly provider: v.StringSchema<undefined>;
|
|
113
|
+
readonly account: v.StringSchema<undefined>;
|
|
114
|
+
}, undefined>;
|
|
115
|
+
readonly account_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
116
|
+
readonly meeting_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
117
|
+
readonly change: v.UnionSchema<[v.StrictObjectSchema<{
|
|
118
|
+
readonly action: v.LiteralSchema<"event.link", undefined>;
|
|
119
|
+
readonly event_id: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
120
|
+
readonly expected_event_id: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>, undefined>;
|
|
121
|
+
}, undefined>, v.StrictObjectSchema<{
|
|
122
|
+
readonly action: v.LiteralSchema<"person.link", undefined>;
|
|
123
|
+
readonly participant_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
124
|
+
readonly person_uid: v.StringSchema<undefined>;
|
|
125
|
+
readonly expected_person_uid: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
126
|
+
readonly target_account_ids: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>, undefined>;
|
|
127
|
+
}, undefined>], undefined>;
|
|
128
|
+
readonly applied: v.BooleanSchema<undefined>;
|
|
129
|
+
readonly result: v.OptionalSchema<v.UnionSchema<[v.StrictObjectSchema<{
|
|
130
|
+
readonly meeting_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
131
|
+
readonly event_id: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
132
|
+
readonly previous_event_id: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
133
|
+
readonly changed: v.BooleanSchema<undefined>;
|
|
134
|
+
}, undefined>, v.StrictObjectSchema<{
|
|
135
|
+
readonly meeting_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
136
|
+
readonly participant_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
137
|
+
readonly person_uid: v.StringSchema<undefined>;
|
|
138
|
+
readonly previous_person_uid: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
139
|
+
readonly changed: v.BooleanSchema<undefined>;
|
|
140
|
+
}, undefined>], undefined>, undefined>;
|
|
141
|
+
}, undefined>;
|
|
142
|
+
readonly meeting_transcription: v.UnionSchema<[v.StrictObjectSchema<{
|
|
143
|
+
readonly applied: v.LiteralSchema<false, undefined>;
|
|
144
|
+
readonly account_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
145
|
+
readonly external_id: v.StringSchema<undefined>;
|
|
146
|
+
readonly segments: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
147
|
+
readonly media: v.StrictObjectSchema<{
|
|
148
|
+
readonly id: v.StringSchema<undefined>;
|
|
149
|
+
readonly content_hash: v.StringSchema<undefined>;
|
|
150
|
+
readonly size: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
151
|
+
readonly duration_ms: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
152
|
+
readonly format: v.StringSchema<undefined>;
|
|
153
|
+
readonly sample_rate: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
154
|
+
readonly channels: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
155
|
+
readonly recognition: v.StrictObjectSchema<{
|
|
156
|
+
readonly engine: v.StringSchema<undefined>;
|
|
157
|
+
readonly model: v.StringSchema<undefined>;
|
|
158
|
+
readonly version: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
159
|
+
readonly timing: v.OptionalSchema<v.PicklistSchema<["fixed-windows", "recognition-segments"], undefined>, undefined>;
|
|
160
|
+
}, undefined>;
|
|
161
|
+
}, undefined>;
|
|
162
|
+
}, undefined>, v.StrictObjectSchema<{
|
|
163
|
+
readonly applied: v.LiteralSchema<true, undefined>;
|
|
164
|
+
readonly account_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
165
|
+
readonly external_id: v.StringSchema<undefined>;
|
|
166
|
+
readonly meeting_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
167
|
+
readonly created: v.BooleanSchema<undefined>;
|
|
168
|
+
readonly inserted_transcripts: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
169
|
+
readonly replayed_transcripts: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
170
|
+
readonly superseded_transcripts: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
171
|
+
readonly segments: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
172
|
+
readonly media_sha256: v.StringSchema<undefined>;
|
|
173
|
+
readonly engine: v.StringSchema<undefined>;
|
|
174
|
+
readonly model: v.StringSchema<undefined>;
|
|
175
|
+
readonly model_version: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
176
|
+
readonly timing: v.PicklistSchema<["fixed-windows", "recognition-segments"], undefined>;
|
|
177
|
+
}, undefined>], undefined>;
|
|
178
|
+
readonly meeting_embedding: v.UnionSchema<[v.StrictObjectSchema<{
|
|
179
|
+
readonly account_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
180
|
+
readonly model: v.StrictObjectSchema<{
|
|
181
|
+
readonly key: v.StringSchema<undefined>;
|
|
182
|
+
readonly dims: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
183
|
+
readonly kind: v.PicklistSchema<["local", "remote"], undefined>;
|
|
184
|
+
readonly model: v.StringSchema<undefined>;
|
|
185
|
+
}, undefined>;
|
|
186
|
+
readonly status: v.StrictObjectSchema<{
|
|
187
|
+
readonly chunks: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
188
|
+
readonly embedded: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
189
|
+
}, undefined>;
|
|
190
|
+
readonly applied: v.LiteralSchema<false, undefined>;
|
|
191
|
+
readonly scope: v.LiteralSchema<"existing-current-chunks", undefined>;
|
|
192
|
+
readonly rebuild_required: v.LiteralSchema<"explicit", undefined>;
|
|
193
|
+
}, undefined>, v.StrictObjectSchema<{
|
|
194
|
+
readonly account_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
195
|
+
readonly model: v.StrictObjectSchema<{
|
|
196
|
+
readonly key: v.StringSchema<undefined>;
|
|
197
|
+
readonly dims: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
198
|
+
readonly kind: v.PicklistSchema<["local", "remote"], undefined>;
|
|
199
|
+
readonly model: v.StringSchema<undefined>;
|
|
200
|
+
}, undefined>;
|
|
201
|
+
readonly saved: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
202
|
+
readonly skipped: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
203
|
+
readonly has_more: v.BooleanSchema<undefined>;
|
|
204
|
+
readonly next_hash: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
205
|
+
readonly applied: v.LiteralSchema<true, undefined>;
|
|
206
|
+
readonly rebuild: v.StrictObjectSchema<{
|
|
207
|
+
readonly transcripts: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
208
|
+
readonly chunks: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
209
|
+
readonly has_more: v.BooleanSchema<undefined>;
|
|
210
|
+
readonly next_transcript_id: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
211
|
+
}, undefined>;
|
|
212
|
+
}, undefined>], undefined>;
|
|
213
|
+
readonly sync_progress: v.StrictObjectSchema<{
|
|
214
|
+
readonly job: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
215
|
+
readonly profile: v.StringSchema<undefined>;
|
|
216
|
+
readonly done: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
217
|
+
readonly total: v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
|
|
218
|
+
readonly remaining: v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
|
|
219
|
+
readonly state: v.PicklistSchema<["partial", "complete"], undefined>;
|
|
220
|
+
readonly updated_at: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time in UTC">, v.EndsWithAction<string, "Z", "an ISO 8601 time in UTC, ending in `Z`">]>, undefined>;
|
|
221
|
+
readonly cursor_age_ms: v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
|
|
222
|
+
}, undefined>;
|
|
89
223
|
readonly message: v.StrictObjectSchema<{
|
|
90
224
|
readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
|
|
91
225
|
readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
@@ -4190,6 +4324,11 @@ export declare const ENTITIES: {
|
|
|
4190
4324
|
readonly display_name: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
4191
4325
|
readonly description: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
4192
4326
|
readonly last_messaged_at: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time in UTC">, v.EndsWithAction<string, "Z", "an ISO 8601 time in UTC, ending in `Z`">]>, undefined>;
|
|
4327
|
+
readonly email: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
4328
|
+
readonly phones: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
|
|
4329
|
+
readonly number: v.StringSchema<undefined>;
|
|
4330
|
+
readonly label: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
4331
|
+
}, undefined>, undefined>, undefined>;
|
|
4193
4332
|
readonly chats: v.OptionalSchema<v.ArraySchema<Omit<v.StrictObjectSchema<{
|
|
4194
4333
|
readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
|
|
4195
4334
|
readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
package/dist/entities/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsonSchemaOf } from "@wirecat/cli-base/standards";
|
|
2
2
|
import * as v from "valibot";
|
|
3
|
+
import { MEETING_RESULT_ENTITIES } from "../meetings/index.js";
|
|
3
4
|
import { account } from "./account.js";
|
|
4
5
|
import { accountChange, accountPrivacy, accountPrivacyChange, endedAccountSessions } from "./account-change.js";
|
|
5
6
|
import { accountProfile } from "./account-profile.js";
|
|
@@ -77,7 +78,7 @@ import { retention } from "./retention.js";
|
|
|
77
78
|
import { savedSearch, searchHistoryClear } from "./saved-search.js";
|
|
78
79
|
import { sendAttempt } from "./send-attempt.js";
|
|
79
80
|
import { storeBackup, storeCheck, storeCopyRemoval, storeDecrypt, storeInfo, storeMigration, storeReindex, storeRepair, storeReset, storeRestore, } from "./store-maintenance.js";
|
|
80
|
-
import { storeChatStatus, storeClear, storeExport, storeGapPlan, storeGapRepair, storeJobCancel, storeJobClear, storeJobDetails, storeJobRetry, } from "./store-records.js";
|
|
81
|
+
import { storeChatStatus, storeClear, storeExport, storeGapPlan, storeGapRepair, storeJobCancel, storeJobClear, storeJobDetails, storeJobRetry, syncProgress, } from "./store-records.js";
|
|
81
82
|
import { automaticTags, tagChange } from "./tag-change.js";
|
|
82
83
|
import { tagging } from "./tagging.js";
|
|
83
84
|
import { task } from "./task.js";
|
|
@@ -91,6 +92,8 @@ import { topic } from "./topic.js";
|
|
|
91
92
|
*/
|
|
92
93
|
export { account, accountChange, accountPrivacy, accountPrivacyChange, accountProfile, accountSession, adminReport, agenda, analysisConsent, analysisConsentRevocation, attachment, attachmentBytes, attachmentExtraction, attachmentTextChange, automaticTags, cachedChatMetadata, chart, chat, chatAdminChange, chatArchive, chatEvent, chatFolderChange, chatFolderOrder, chatFolderRemoval, chatGroupChange, chatInspection, chatInvite, chatInviteChange, chatMembersChange, chatMembersFetch, chatMetadata, chatMetadataRefresh, chatModeration, chatMuting, chatPin, chatRead, chatRemoval, chatRequestChange, chatRules, chatSender, chatStats, chatTracking, chatUnread, contact, contactActivity, contactAlias, contactCheck, contactContext, contactImport, contactLookup, contactNote, contactNoteRemoval, contactPreparation, contactProfile, contactStateChange, contactSync, contactUpdate, conversation, conversationBatch, conversationBatchStatus, conversationBuildResult, conversationChange, conversationDetails, conversationEmbedding, conversationEmbeddingStatus, conversationHit, conversationPreparation, conversationReadiness, counterRefresh, counters, document, documentLink, endedAccountSessions, evidence, evidencePacket, fact, folder, hit, identity, imageEmbedding, inviteLink, job, joinRequest, linkedPerson, mediaArchive, mediaArchiveCheck, mediaArchiveMove, mediaArchiveTimer, meeting, meetingProjectCandidates, meetingSeriesInventory, member, memory, mention, mentionDecision, mentionDetails, mentionDomain, mentionRebuild, message, messageContext, messageCounts, messageDeletion, messageDownload, messageEvent, messageLink, messageLinks, messagePin, messageStar, messageSync, messageTranscript, messageWrite, model, modelKey, note, officialStats, person, place, poll, pollChange, pollVote, ranking, reactionChange, recipient, recipientAdded, recipientChange, recipientOff, recipientRemoved, recordedRun, reference, relationship, removedModelKey, retention, runDetails, runHit, runLocation, savedSearch, searchHistoryClear, sendAttempt, serveSummary, storeBackup, storeChatStatus, storeCheck, storeClear, storeCopyRemoval, storeDecrypt, storedModelKey, storeExport, storeGapPlan, storeGapRepair, storeInfo, storeJobCancel, storeJobClear, storeJobDetails, storeJobRetry, storeMigration, storeReindex, storeRepair, storeReset, storeRestore, tagChange, tagging, task, taskCard, taskCategories, taskClosed, taskCreated, taskLinks, taskMerge, taskPair, taskScan, taskSimilar, taskStats, taskUnmerge, topic, trackedChat, trackedChatHistory, watchedMessage, watchItem, };
|
|
93
94
|
export const ENTITIES = {
|
|
95
|
+
sync_progress: syncProgress,
|
|
96
|
+
...MEETING_RESULT_ENTITIES,
|
|
94
97
|
message,
|
|
95
98
|
message_context: messageContext,
|
|
96
99
|
message_download: messageDownload,
|
|
@@ -356,6 +356,16 @@ export declare const storeGapRepair: v.UnionSchema<[v.StrictObjectSchema<{
|
|
|
356
356
|
}, undefined>, undefined>;
|
|
357
357
|
readonly stopped: v.OptionalSchema<v.PicklistSchema<["bound", "partial_or_inaccessible", "fetch_failed"], undefined>, undefined>;
|
|
358
358
|
}, undefined>], undefined>;
|
|
359
|
+
declare const progress: v.StrictObjectSchema<{
|
|
360
|
+
readonly job: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
361
|
+
readonly profile: v.StringSchema<undefined>;
|
|
362
|
+
readonly done: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
|
|
363
|
+
readonly total: v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
|
|
364
|
+
readonly remaining: v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
|
|
365
|
+
readonly state: v.PicklistSchema<["partial", "complete"], undefined>;
|
|
366
|
+
readonly updated_at: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time in UTC">, v.EndsWithAction<string, "Z", "an ISO 8601 time in UTC, ending in `Z`">]>, undefined>;
|
|
367
|
+
readonly cursor_age_ms: v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
|
|
368
|
+
}, undefined>;
|
|
359
369
|
export declare const storeJobDetails: v.StrictObjectSchema<{
|
|
360
370
|
readonly chat: v.StringSchema<undefined>;
|
|
361
371
|
readonly state: v.PicklistSchema<readonly ["running", "done", "partial", "failed", "cancelled", "died"], undefined>;
|
|
@@ -440,3 +450,4 @@ export declare const storeJobRetry: v.UnionSchema<[v.StrictObjectSchema<{
|
|
|
440
450
|
export declare const storeJobClear: v.StrictObjectSchema<{
|
|
441
451
|
readonly cleared: v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
|
|
442
452
|
}, undefined>;
|
|
453
|
+
export { progress as syncProgress };
|
|
@@ -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";
|
|
@@ -38,6 +38,7 @@ export declare const meetingTools: ({
|
|
|
38
38
|
max_read_bytes?: undefined;
|
|
39
39
|
cursor?: undefined;
|
|
40
40
|
} | {
|
|
41
|
+
limit?: undefined;
|
|
41
42
|
event_id?: undefined;
|
|
42
43
|
series_id?: undefined;
|
|
43
44
|
page?: undefined;
|
|
@@ -53,11 +54,11 @@ export declare const meetingTools: ({
|
|
|
53
54
|
format?: undefined;
|
|
54
55
|
transcript_id?: undefined;
|
|
55
56
|
query?: undefined;
|
|
56
|
-
limit?: undefined;
|
|
57
57
|
scan_limit?: undefined;
|
|
58
58
|
max_read_bytes?: undefined;
|
|
59
59
|
cursor?: undefined;
|
|
60
60
|
} | {
|
|
61
|
+
limit?: undefined;
|
|
61
62
|
event_id?: undefined;
|
|
62
63
|
series_id?: undefined;
|
|
63
64
|
page?: undefined;
|
|
@@ -75,11 +76,11 @@ export declare const meetingTools: ({
|
|
|
75
76
|
format?: undefined;
|
|
76
77
|
transcript_id?: undefined;
|
|
77
78
|
query?: undefined;
|
|
78
|
-
limit?: undefined;
|
|
79
79
|
scan_limit?: undefined;
|
|
80
80
|
max_read_bytes?: undefined;
|
|
81
81
|
cursor?: undefined;
|
|
82
82
|
} | {
|
|
83
|
+
limit?: undefined;
|
|
83
84
|
event_id?: undefined;
|
|
84
85
|
series_id?: undefined;
|
|
85
86
|
page?: undefined;
|
|
@@ -101,7 +102,6 @@ export declare const meetingTools: ({
|
|
|
101
102
|
minimum: number;
|
|
102
103
|
};
|
|
103
104
|
query?: undefined;
|
|
104
|
-
limit?: undefined;
|
|
105
105
|
scan_limit?: undefined;
|
|
106
106
|
max_read_bytes?: undefined;
|
|
107
107
|
cursor?: undefined;
|
|
@@ -188,6 +188,7 @@ export declare const meetingTools: ({
|
|
|
188
188
|
max_read_bytes?: undefined;
|
|
189
189
|
cursor?: undefined;
|
|
190
190
|
} | {
|
|
191
|
+
limit?: undefined;
|
|
191
192
|
event_id?: undefined;
|
|
192
193
|
series_id?: undefined;
|
|
193
194
|
page?: undefined;
|
|
@@ -203,11 +204,11 @@ export declare const meetingTools: ({
|
|
|
203
204
|
format?: undefined;
|
|
204
205
|
transcript_id?: undefined;
|
|
205
206
|
query?: undefined;
|
|
206
|
-
limit?: undefined;
|
|
207
207
|
scan_limit?: undefined;
|
|
208
208
|
max_read_bytes?: undefined;
|
|
209
209
|
cursor?: undefined;
|
|
210
210
|
} | {
|
|
211
|
+
limit?: undefined;
|
|
211
212
|
event_id?: undefined;
|
|
212
213
|
series_id?: undefined;
|
|
213
214
|
page?: undefined;
|
|
@@ -225,11 +226,11 @@ export declare const meetingTools: ({
|
|
|
225
226
|
format?: undefined;
|
|
226
227
|
transcript_id?: undefined;
|
|
227
228
|
query?: undefined;
|
|
228
|
-
limit?: undefined;
|
|
229
229
|
scan_limit?: undefined;
|
|
230
230
|
max_read_bytes?: undefined;
|
|
231
231
|
cursor?: undefined;
|
|
232
232
|
} | {
|
|
233
|
+
limit?: undefined;
|
|
233
234
|
event_id?: undefined;
|
|
234
235
|
series_id?: undefined;
|
|
235
236
|
page?: undefined;
|
|
@@ -251,7 +252,6 @@ export declare const meetingTools: ({
|
|
|
251
252
|
minimum: number;
|
|
252
253
|
};
|
|
253
254
|
query?: undefined;
|
|
254
|
-
limit?: undefined;
|
|
255
255
|
scan_limit?: undefined;
|
|
256
256
|
max_read_bytes?: undefined;
|
|
257
257
|
cursor?: undefined;
|
|
@@ -338,6 +338,7 @@ export declare const meetingTools: ({
|
|
|
338
338
|
max_read_bytes?: undefined;
|
|
339
339
|
cursor?: undefined;
|
|
340
340
|
} | {
|
|
341
|
+
limit?: undefined;
|
|
341
342
|
event_id?: undefined;
|
|
342
343
|
series_id?: undefined;
|
|
343
344
|
page?: undefined;
|
|
@@ -353,11 +354,11 @@ export declare const meetingTools: ({
|
|
|
353
354
|
format?: undefined;
|
|
354
355
|
transcript_id?: undefined;
|
|
355
356
|
query?: undefined;
|
|
356
|
-
limit?: undefined;
|
|
357
357
|
scan_limit?: undefined;
|
|
358
358
|
max_read_bytes?: undefined;
|
|
359
359
|
cursor?: undefined;
|
|
360
360
|
} | {
|
|
361
|
+
limit?: undefined;
|
|
361
362
|
event_id?: undefined;
|
|
362
363
|
series_id?: undefined;
|
|
363
364
|
page?: undefined;
|
|
@@ -375,11 +376,11 @@ export declare const meetingTools: ({
|
|
|
375
376
|
format?: undefined;
|
|
376
377
|
transcript_id?: undefined;
|
|
377
378
|
query?: undefined;
|
|
378
|
-
limit?: undefined;
|
|
379
379
|
scan_limit?: undefined;
|
|
380
380
|
max_read_bytes?: undefined;
|
|
381
381
|
cursor?: undefined;
|
|
382
382
|
} | {
|
|
383
|
+
limit?: undefined;
|
|
383
384
|
event_id?: undefined;
|
|
384
385
|
series_id?: undefined;
|
|
385
386
|
page?: undefined;
|
|
@@ -401,7 +402,6 @@ export declare const meetingTools: ({
|
|
|
401
402
|
minimum: number;
|
|
402
403
|
};
|
|
403
404
|
query?: undefined;
|
|
404
|
-
limit?: undefined;
|
|
405
405
|
scan_limit?: undefined;
|
|
406
406
|
max_read_bytes?: undefined;
|
|
407
407
|
cursor?: undefined;
|
|
@@ -488,6 +488,7 @@ export declare const meetingTools: ({
|
|
|
488
488
|
max_read_bytes?: undefined;
|
|
489
489
|
cursor?: undefined;
|
|
490
490
|
} | {
|
|
491
|
+
limit?: undefined;
|
|
491
492
|
event_id?: undefined;
|
|
492
493
|
series_id?: undefined;
|
|
493
494
|
page?: undefined;
|
|
@@ -503,11 +504,11 @@ export declare const meetingTools: ({
|
|
|
503
504
|
format?: undefined;
|
|
504
505
|
transcript_id?: undefined;
|
|
505
506
|
query?: undefined;
|
|
506
|
-
limit?: undefined;
|
|
507
507
|
scan_limit?: undefined;
|
|
508
508
|
max_read_bytes?: undefined;
|
|
509
509
|
cursor?: undefined;
|
|
510
510
|
} | {
|
|
511
|
+
limit?: undefined;
|
|
511
512
|
event_id?: undefined;
|
|
512
513
|
series_id?: undefined;
|
|
513
514
|
page?: undefined;
|
|
@@ -525,11 +526,11 @@ export declare const meetingTools: ({
|
|
|
525
526
|
format?: undefined;
|
|
526
527
|
transcript_id?: undefined;
|
|
527
528
|
query?: undefined;
|
|
528
|
-
limit?: undefined;
|
|
529
529
|
scan_limit?: undefined;
|
|
530
530
|
max_read_bytes?: undefined;
|
|
531
531
|
cursor?: undefined;
|
|
532
532
|
} | {
|
|
533
|
+
limit?: undefined;
|
|
533
534
|
event_id?: undefined;
|
|
534
535
|
series_id?: undefined;
|
|
535
536
|
page?: undefined;
|
|
@@ -551,7 +552,6 @@ export declare const meetingTools: ({
|
|
|
551
552
|
minimum: number;
|
|
552
553
|
};
|
|
553
554
|
query?: undefined;
|
|
554
|
-
limit?: undefined;
|
|
555
555
|
scan_limit?: undefined;
|
|
556
556
|
max_read_bytes?: undefined;
|
|
557
557
|
cursor?: undefined;
|
|
@@ -638,6 +638,7 @@ export declare const meetingTools: ({
|
|
|
638
638
|
max_read_bytes?: undefined;
|
|
639
639
|
cursor?: undefined;
|
|
640
640
|
} | {
|
|
641
|
+
limit?: undefined;
|
|
641
642
|
event_id?: undefined;
|
|
642
643
|
series_id?: undefined;
|
|
643
644
|
page?: undefined;
|
|
@@ -653,11 +654,11 @@ export declare const meetingTools: ({
|
|
|
653
654
|
format?: undefined;
|
|
654
655
|
transcript_id?: undefined;
|
|
655
656
|
query?: undefined;
|
|
656
|
-
limit?: undefined;
|
|
657
657
|
scan_limit?: undefined;
|
|
658
658
|
max_read_bytes?: undefined;
|
|
659
659
|
cursor?: undefined;
|
|
660
660
|
} | {
|
|
661
|
+
limit?: undefined;
|
|
661
662
|
event_id?: undefined;
|
|
662
663
|
series_id?: undefined;
|
|
663
664
|
page?: undefined;
|
|
@@ -675,11 +676,11 @@ export declare const meetingTools: ({
|
|
|
675
676
|
format?: undefined;
|
|
676
677
|
transcript_id?: undefined;
|
|
677
678
|
query?: undefined;
|
|
678
|
-
limit?: undefined;
|
|
679
679
|
scan_limit?: undefined;
|
|
680
680
|
max_read_bytes?: undefined;
|
|
681
681
|
cursor?: undefined;
|
|
682
682
|
} | {
|
|
683
|
+
limit?: undefined;
|
|
683
684
|
event_id?: undefined;
|
|
684
685
|
series_id?: undefined;
|
|
685
686
|
page?: undefined;
|
|
@@ -701,7 +702,6 @@ export declare const meetingTools: ({
|
|
|
701
702
|
minimum: number;
|
|
702
703
|
};
|
|
703
704
|
query?: undefined;
|
|
704
|
-
limit?: undefined;
|
|
705
705
|
scan_limit?: undefined;
|
|
706
706
|
max_read_bytes?: undefined;
|
|
707
707
|
cursor?: undefined;
|
|
@@ -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.407.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",
|