@wirecat/cli-core 0.452.0 → 0.454.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/dist/cli/mcp-server-command.js +5 -1
  3. package/dist/cli/messenger/search-answers.d.ts +1 -1
  4. package/dist/cli/messenger/search-answers.js +1 -1
  5. package/dist/cli/messenger/search-command.js +6 -3
  6. package/dist/entities/contact-context.d.ts +42 -0
  7. package/dist/entities/contact-context.js +11 -0
  8. package/dist/entities/hit.d.ts +3 -3
  9. package/dist/entities/hit.js +3 -3
  10. package/dist/entities/index.d.ts +61 -21
  11. package/dist/entities/task-results.d.ts +20 -20
  12. package/dist/entities/task-results.js +3 -15
  13. package/dist/mcp/http/activity.d.ts +24 -0
  14. package/dist/mcp/http/activity.js +86 -0
  15. package/dist/mcp/http/serve.js +14 -0
  16. package/dist/mcp/http/state.d.ts +5 -0
  17. package/dist/mcp/http/state.js +14 -4
  18. package/dist/meetings/event-store.d.ts +23 -0
  19. package/dist/meetings/index.d.ts +1 -1
  20. package/dist/search/query.js +1 -3
  21. package/dist/services/events-search.d.ts +67 -0
  22. package/dist/services/events-search.js +131 -0
  23. package/dist/services/index.d.ts +3 -2
  24. package/dist/services/index.js +2 -1
  25. package/dist/services/notes-search.d.ts +25 -1
  26. package/dist/services/notes-search.js +24 -11
  27. package/dist/services/person-context.d.ts +20 -1
  28. package/dist/services/person-context.js +46 -1
  29. package/dist/services/search-all-meetings.d.ts +1 -1
  30. package/dist/services/search-all-meetings.js +7 -2
  31. package/dist/services/search-all.d.ts +12 -7
  32. package/dist/services/search-all.js +39 -4
  33. package/dist/store/index.d.ts +1 -0
  34. package/dist/store/index.js +1 -0
  35. package/dist/store/project-transfer/request.d.ts +1 -1
  36. package/dist/store/project-transfer/schema.d.ts +2 -2
  37. package/dist/store/project-transfer/snapshot-model.d.ts +2 -2
  38. package/dist/store/sqlite/calendar.js +85 -11
  39. package/dist/store/sqlite/event-search.d.ts +66 -0
  40. package/dist/store/sqlite/event-search.js +163 -0
  41. package/dist/store/sqlite/files.d.ts +4 -0
  42. package/dist/store/sqlite/files.js +28 -0
  43. package/dist/store/sqlite/link-kinds.d.ts +5 -1
  44. package/dist/store/sqlite/link-kinds.js +5 -0
  45. package/dist/store/sqlite/note-index.d.ts +17 -1
  46. package/dist/store/sqlite/note-index.js +32 -8
  47. package/dist/store/sqlite/note-search.d.ts +43 -0
  48. package/dist/store/sqlite/note-search.js +24 -24
  49. package/dist/store/sqlite/notes.d.ts +4 -5
  50. package/dist/store/sqlite/notes.js +2 -2
  51. package/dist/store/sqlite/project-transfer/snapshot.d.ts +1 -1
  52. package/dist/store/store.d.ts +2 -1
  53. package/dist/store/store.js +2 -1
  54. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,77 @@ shape of this file.
7
7
 
8
8
  ## Unreleased
9
9
 
10
+ ## 0.454.0 — 27.10.2026
11
+
12
+ ### Added
13
+
14
+ - **`mcp server status` says what each logged-in browser app last did.** Each client in `clients` carries
15
+ `last_request_at` (its last MCP request of any kind, so an app that logged in has also reached the server),
16
+ `last_tool` and `last_tool_at` (its last `tools/call`) and `tool_calls_today` (calls since local midnight); `null`
17
+ and `0` for an app that has done nothing yet. The running server keeps them in `<token file>.activity.json`, mode
18
+ 600, beside the token file: tool names and times only, never arguments or results, and a name that does not look
19
+ like a tool's is not kept. WireCat Desktop shows them as "last call 2 min ago · tg_read".
20
+
21
+ ## 0.453.0 — 27.10.2026
22
+
23
+ ### Added
24
+
25
+ - **A calendar entry links the Drive files attached to it.** `EntryInput.attachments` takes Google's
26
+ `attachments[].fileId` (and its title). `saveEntries` links the entry to the document of that Drive file
27
+ (`links` of the new kind `attached`, source `calendar`). When Drive has not stored the file yet, the link waits,
28
+ named `google-drive:<file id>`, and is made when Drive stores it, in whichever order the two sync. When two Drive
29
+ accounts hold the file, no link is made until one of them no longer does. A list replaces the entry's links, a file
30
+ named twice is linked once, and an entry saved without `attachments` keeps them: Google leaves the field out of an
31
+ event with no attachments, so a provider sending a whole event sends `attachments: []` then.
32
+ `store.calendar.event(id)` answers them as `attachments`, each with its `documentId`, which is `null` while the
33
+ document is deleted.
34
+ - **Calendar events are found by words.** `searchEvents(store, query, options)` and `store.calendar.search(query)`
35
+ find events by their title, cleaned description, place and attendees' names, in the query language messages use;
36
+ `date:` reads the event's start. The occurrences of one series are one hit, showing the matching occurrence
37
+ nearest now, with `occurrences` counting them. A hit's reference is `event:<id>`, a new kind of reference. An event
38
+ is searched while it is not cancelled and either no calendar holds it (a Zoom meeting's own) or one of its copies
39
+ is of a searchable type and not a busy-only slot: working location, focus time, out of office and birthdays
40
+ (`UNSEARCHED_EVENT_TYPES`), and private or confidential copies with no text, are never found. `--source` reads an
41
+ event only through such a copy in the accounts it names. Past 50,000 matching events a search stops and says so
42
+ (`truncated`). Indexing an event also writes its pieces for search by meaning (`chunks` of type `event`); the
43
+ occurrences of a series hold the same text, so they share one vector once embedded.
44
+ - **`ContextOptions.now`** sets what counts as an upcoming event, and **`EventFilter.newest`** lists events latest
45
+ first.
46
+
47
+ - **Calendar events are found by meaning too.** `embedEvents(store, options)` embeds the events' pieces with the
48
+ default text model, as `embedNotes` does; a calendar CLI calls it after a sync. The occurrences of a series share one
49
+ text and so one vector: a weekly meeting held a year is embedded once. `searchEvents` then ranks words and meaning
50
+ together by reciprocal rank, each hit saying which found it (`found_by`), and answers `by` and, when meaning was
51
+ left out, `meaning_skipped`: no model, no vectors yet, `--exact`, or a query with fields or operators. Meaning
52
+ follows `--source` as words do: an event is found through any account holding a searchable copy of it.
53
+ `store.calendar` gains `chunksToEmbed`, `embedded` and `nearest`; `search all` answers `events.by` and prints
54
+ `events by words only: …` when meaning was left out.
55
+
56
+ ### Changed — may break callers
57
+
58
+ - **`EventDetails.attachments` is required.** Code that builds an `EventDetails`, such as a fake calendar store, adds
59
+ `attachments: []`.
60
+ - **Links have a new kind, `attached`, and a new origin, `calendar`.** `Link.kind` gains `attached` and
61
+ `Link.origin` gains `calendar`, which only the store writes: `LinkInput.origin` is unchanged. The `task_card`
62
+ entity's links take both. A caller that switches over every kind or origin adds them.
63
+ - **`search all` reads calendar events** when the store holds a calendar (an account whose provider is of the
64
+ `events` kind, as gcal registers `google-calendar`). Hits of kind `event` join the merged list, `searched` and
65
+ `accounts` name `events`, `--only` takes `events`, and `--source` takes a calendar account, `gcal` or `events`. A
66
+ store with no calendar answers as before. `RESOURCES_SEARCHED` and `SOURCE_SEARCHED` gain `events`, the `hit`
67
+ entity's `kind` gains `event`, and `in:events` in a message search now points to `search all --source events`.
68
+ A caller that lists every resource or every hit kind adds the new one.
69
+ - **`MessageStore.calendar` is `EventStore & EventSearch`.** It gains `search` and `eventIndexState`; a fake store or
70
+ a test double that builds `calendar` adds them.
71
+ - **`PersonContext.events` is required.** `personContext` (`contacts context`) answers `events.upcoming` and
72
+ `events.recent`: the events any contact linked to the person is invited to, one occurrence per series, none
73
+ cancelled. Code that builds a `PersonContext` adds `events: { upcoming: [], recent: [] }`; the `contact_context`
74
+ entity takes it as optional, so older answers still validate.
75
+ - **An event takes its fields from a copy with text first.** When a busy-only copy of an event changed last, the
76
+ event keeps the title, description and place of a copy that has them, instead of losing them.
77
+ - **An event deleted in Google before its time is cancelled.** When `markUnseen` leaves an event no live calendar
78
+ copy, a future event becomes `cancelled` and drops out of search, `search all` and a person's upcoming events; a
79
+ past one keeps its status and gets `source_deleted_at`, as history.
80
+
10
81
  ## 0.452.0 — 27.10.2026
11
82
 
12
83
  ### Added
@@ -36,7 +36,7 @@ const clientLines = (clients) => clients.length === 0
36
36
  ? ["No browser app is logged in."]
37
37
  : [
38
38
  `Logged-in apps (names are what each app calls itself): ${clients
39
- .map((one) => `${one.claimedName === null ? "no name" : JSON.stringify(one.claimedName)} (${clock(one.lastLoginAt)})`)
39
+ .map((one) => `${one.claimedName === null ? "no name" : JSON.stringify(one.claimedName)} (${clock(one.lastLoginAt)}${one.lastTool && one.lastToolAt ? `; last call ${one.lastTool} at ${clock(one.lastToolAt)}, ${one.toolCallsToday} today` : ""})`)
40
40
  .join(", ")}.`,
41
41
  ];
42
42
  /**
@@ -155,6 +155,10 @@ export const mcpServerCommand = ({ example, defaultPort = MCP_HTTP_DEFAULT_PORT,
155
155
  clients: clients.map((client) => ({
156
156
  claimed_name: client.claimedName,
157
157
  last_login_at: client.lastLoginAt,
158
+ last_request_at: client.lastRequestAt,
159
+ last_tool: client.lastTool,
160
+ last_tool_at: client.lastToolAt,
161
+ tool_calls_today: client.toolCallsToday,
158
162
  })),
159
163
  log: httpLogFile(one.tokenFile),
160
164
  }, [
@@ -8,7 +8,7 @@ import type { SearchAllItem } from "../../services/search-all.js";
8
8
  import type { MeetingSearchItem, SearchAllIncludingMeetingsFound } from "../../services/search-all-meetings.js";
9
9
  import { type ListBody } from "../envelope.js";
10
10
  /** What a source tool's `search all` reads: never mail, which is memo's (docs/dev/TOOL-BOUNDARIES.md). */
11
- export declare const SOURCE_SEARCHED: readonly ["messages", "notes", "meetings"];
11
+ export declare const SOURCE_SEARCHED: readonly ["messages", "notes", "events", "meetings"];
12
12
  export type SourceSearched = (typeof SOURCE_SEARCHED)[number];
13
13
  export type MessageHitItem = InferOutput<(typeof ENTITIES)["message.hit"]>;
14
14
  export type NoteHitItem = InferOutput<(typeof ENTITIES)["note.hit"]>;
@@ -6,7 +6,7 @@ import { listOf } from "../envelope.js";
6
6
  import { nextStep } from "../steps.js";
7
7
  import { archiveSummary } from "./archive-summary.js";
8
8
  /** What a source tool's `search all` reads: never mail, which is memo's (docs/dev/TOOL-BOUNDARIES.md). */
9
- export const SOURCE_SEARCHED = ["messages", "notes", "meetings"];
9
+ export const SOURCE_SEARCHED = ["messages", "notes", "events", "meetings"];
10
10
  const defined = (value) => Object.fromEntries(Object.entries(value).filter(([, one]) => one !== undefined));
11
11
  /** The page a `--page` asks for, as the offset the search services take. */
12
12
  export const offsetOf = (page, limit) => page === undefined || page <= 1 ? undefined : (page - 1) * limit;
@@ -35,11 +35,12 @@ const maxMeetingsOf = (value) => {
35
35
  };
36
36
  const allCommand = (messenger) => {
37
37
  const command = annotate(new Command("all"), { effects: REMOTE_READ, partial: true })
38
- .summary("search stored messages, notes and selected meeting transcripts")
38
+ .summary("search stored messages, notes, calendar events and selected meeting transcripts")
39
39
  .description((messenger.serverSearch
40
40
  ? "search messenger messages and notes in the local store, and by default the messenger's server for " +
41
- "messages too (notes are local only; --backend archive or --offline keeps it to the local store)"
41
+ "messages too (notes and events are local only; --backend archive or --offline keeps it to the local store)"
42
42
  : "search messenger messages and notes in the local store") +
43
+ ", calendar events when the store holds a calendar" +
43
44
  ", and a meeting account's transcripts when --source names one — best match first; not mail (the separate memo CLI searches it: memo search mail), " +
44
45
  "tasks, people, memories or projects. Use it when you do not know where something was written; search messages " +
45
46
  "or notes reads one kind with all its fields")
@@ -47,7 +48,7 @@ const allCommand = (messenger) => {
47
48
  .addHelpText("after", SAVE_HELP)
48
49
  .addHelpText("after", `transcript: narrows a message search to voice transcripts, content: to the text of files, filename: to their names — \`${messenger.app.command} search all 'content:invoice'\`.
49
50
  --json: the list is items; each result's reference is ref, with its kind.`)
50
- .option("--only <resources>", "only these resources, separated by commas: messages, notes; meetings when --source names a meeting account", onlyOf)
51
+ .option("--only <resources>", "only these resources, separated by commas: messages, notes, events; meetings when --source names a meeting account", onlyOf)
51
52
  .option("--source <accounts>", "only these accounts, separated by commas: provider:account as a hit shows it, a provider, a kind or " +
52
53
  "group:<name>; each resource reads the ones of its kind, and meetings only when it names one")
53
54
  .option("--max-meetings <n>", "how many of the meeting account's meetings to look through, newest first, or all for every one (default 100)", maxMeetingsOf)
@@ -79,6 +80,8 @@ const allCommand = (messenger) => {
79
80
  context.renderer.note(`${resource ?? source} not searched: ${reason}`);
80
81
  if (found.notes?.meaningSkipped)
81
82
  context.renderer.note(`notes by words only: ${found.notes.meaningSkipped}`);
83
+ if (found.events?.meaningSkipped)
84
+ context.renderer.note(`events by words only: ${found.events.meaningSkipped}`);
82
85
  if (found.messages?.meaningSkipped)
83
86
  context.renderer.note(`messages: ${meaningNote(found.messages.meaningSkipped, messenger.app.command)}`);
84
87
  const again = {
@@ -717,6 +717,27 @@ export declare const contactContext: v.UnionSchema<[v.StrictObjectSchema<{
717
717
  readonly outgoing: v.NullableSchema<v.BooleanSchema<undefined>, undefined>;
718
718
  readonly text: v.StringSchema<undefined>;
719
719
  }, undefined>, undefined>;
720
+ /** Calendar events they are invited to, one occurrence per series. */
721
+ readonly events: v.OptionalSchema<v.StrictObjectSchema<{
722
+ readonly upcoming: v.ArraySchema<v.StrictObjectSchema<{
723
+ readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
724
+ readonly title: v.NullableSchema<v.StringSchema<undefined>, undefined>;
725
+ readonly starts_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>;
726
+ readonly ends_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>;
727
+ readonly all_day: v.BooleanSchema<undefined>;
728
+ readonly location: v.NullableSchema<v.StringSchema<undefined>, undefined>;
729
+ readonly status: v.NullableSchema<v.StringSchema<undefined>, undefined>;
730
+ }, undefined>, undefined>;
731
+ readonly recent: v.ArraySchema<v.StrictObjectSchema<{
732
+ readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
733
+ readonly title: v.NullableSchema<v.StringSchema<undefined>, undefined>;
734
+ readonly starts_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>;
735
+ readonly ends_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>;
736
+ readonly all_day: v.BooleanSchema<undefined>;
737
+ readonly location: v.NullableSchema<v.StringSchema<undefined>, undefined>;
738
+ readonly status: v.NullableSchema<v.StringSchema<undefined>, undefined>;
739
+ }, undefined>, undefined>;
740
+ }, undefined>, undefined>;
720
741
  readonly limits: v.StrictObjectSchema<{
721
742
  readonly messages: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
722
743
  readonly bytes: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
@@ -1446,6 +1467,27 @@ export declare const contactPreparation: v.StrictObjectSchema<{
1446
1467
  readonly outgoing: v.NullableSchema<v.BooleanSchema<undefined>, undefined>;
1447
1468
  readonly text: v.StringSchema<undefined>;
1448
1469
  }, undefined>, undefined>;
1470
+ /** Calendar events they are invited to, one occurrence per series. */
1471
+ readonly events: v.OptionalSchema<v.StrictObjectSchema<{
1472
+ readonly upcoming: v.ArraySchema<v.StrictObjectSchema<{
1473
+ readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
1474
+ readonly title: v.NullableSchema<v.StringSchema<undefined>, undefined>;
1475
+ readonly starts_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>;
1476
+ readonly ends_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>;
1477
+ readonly all_day: v.BooleanSchema<undefined>;
1478
+ readonly location: v.NullableSchema<v.StringSchema<undefined>, undefined>;
1479
+ readonly status: v.NullableSchema<v.StringSchema<undefined>, undefined>;
1480
+ }, undefined>, undefined>;
1481
+ readonly recent: v.ArraySchema<v.StrictObjectSchema<{
1482
+ readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
1483
+ readonly title: v.NullableSchema<v.StringSchema<undefined>, undefined>;
1484
+ readonly starts_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>;
1485
+ readonly ends_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>;
1486
+ readonly all_day: v.BooleanSchema<undefined>;
1487
+ readonly location: v.NullableSchema<v.StringSchema<undefined>, undefined>;
1488
+ readonly status: v.NullableSchema<v.StringSchema<undefined>, undefined>;
1489
+ }, undefined>, undefined>;
1490
+ }, undefined>, undefined>;
1449
1491
  readonly limits: v.StrictObjectSchema<{
1450
1492
  readonly messages: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
1451
1493
  readonly bytes: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
@@ -25,6 +25,15 @@ const sharedChat = v.strictObject({
25
25
  kind: chat.entries.kind,
26
26
  last_message_at: v.nullable(time),
27
27
  });
28
+ const contextEvent = v.strictObject({
29
+ ref: reference,
30
+ title: v.nullable(text),
31
+ starts_at: v.nullable(time),
32
+ ends_at: v.nullable(time),
33
+ all_day: v.boolean(),
34
+ location: v.nullable(text),
35
+ status: v.nullable(text),
36
+ });
28
37
  const context = v.strictObject({
29
38
  person: contextPerson,
30
39
  shared: v.array(sharedChat),
@@ -35,6 +44,8 @@ const context = v.strictObject({
35
44
  }),
36
45
  recent: v.strictObject({ direct: v.array(contextMessage), groups: v.array(contextMessage) }),
37
46
  mentions: v.array(contextMessage),
47
+ /** Calendar events they are invited to, one occurrence per series. */
48
+ events: v.optional(v.strictObject({ upcoming: v.array(contextEvent), recent: v.array(contextEvent) })),
38
49
  limits: v.strictObject({ messages: count, bytes: count }),
39
50
  complete: v.boolean(),
40
51
  not_read: v.array(v.strictObject({
@@ -1,13 +1,13 @@
1
1
  import * as v from "valibot";
2
- /** One result of `search all`: a message, a mail, a note or a meeting passage, best first. */
2
+ /** One result of `search all`: a message, a mail, a note, a calendar event or a meeting passage, best first. */
3
3
  export declare const hit: v.StrictObjectSchema<{
4
- readonly kind: v.PicklistSchema<["message", "mail", "note", "document", "meeting"], undefined>;
4
+ readonly kind: v.PicklistSchema<["message", "mail", "note", "document", "event", "meeting"], undefined>;
5
5
  readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
6
6
  readonly provider: v.StringSchema<undefined>;
7
7
  readonly url: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
8
8
  /** The account it was found in; a note's folder id, or `internal` for a note written in memo. */
9
9
  readonly account: v.StringSchema<undefined>;
10
- /** The chat, the mail thread's subject, the note's or the meeting's title. */
10
+ /** The chat, the mail thread's subject, the note's, the event's or the meeting's title. */
11
11
  readonly title: v.NullableSchema<v.StringSchema<undefined>, undefined>;
12
12
  /** Null for a meeting whose start is unknown. */
13
13
  readonly timestamp: 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>;
@@ -1,14 +1,14 @@
1
1
  import * as v from "valibot";
2
2
  import { count, reference, text, time } from "./fields.js";
3
- /** One result of `search all`: a message, a mail, a note or a meeting passage, best first. */
3
+ /** One result of `search all`: a message, a mail, a note, a calendar event or a meeting passage, best first. */
4
4
  export const hit = v.strictObject({
5
- kind: v.picklist(["message", "mail", "note", "document", "meeting"]),
5
+ kind: v.picklist(["message", "mail", "note", "document", "event", "meeting"]),
6
6
  ref: reference,
7
7
  provider: text,
8
8
  url: v.optional(text),
9
9
  /** The account it was found in; a note's folder id, or `internal` for a note written in memo. */
10
10
  account: text,
11
- /** The chat, the mail thread's subject, the note's or the meeting's title. */
11
+ /** The chat, the mail thread's subject, the note's, the event's or the meeting's title. */
12
12
  title: v.nullable(text),
13
13
  /** Null for a meeting whose start is unknown. */
14
14
  timestamp: v.nullable(time),
@@ -3454,6 +3454,26 @@ export declare const ENTITIES: {
3454
3454
  readonly outgoing: v.NullableSchema<v.BooleanSchema<undefined>, undefined>;
3455
3455
  readonly text: v.StringSchema<undefined>;
3456
3456
  }, undefined>, undefined>;
3457
+ readonly events: v.OptionalSchema<v.StrictObjectSchema<{
3458
+ readonly upcoming: v.ArraySchema<v.StrictObjectSchema<{
3459
+ readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
3460
+ readonly title: v.NullableSchema<v.StringSchema<undefined>, undefined>;
3461
+ readonly starts_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>;
3462
+ readonly ends_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>;
3463
+ readonly all_day: v.BooleanSchema<undefined>;
3464
+ readonly location: v.NullableSchema<v.StringSchema<undefined>, undefined>;
3465
+ readonly status: v.NullableSchema<v.StringSchema<undefined>, undefined>;
3466
+ }, undefined>, undefined>;
3467
+ readonly recent: v.ArraySchema<v.StrictObjectSchema<{
3468
+ readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
3469
+ readonly title: v.NullableSchema<v.StringSchema<undefined>, undefined>;
3470
+ readonly starts_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>;
3471
+ readonly ends_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>;
3472
+ readonly all_day: v.BooleanSchema<undefined>;
3473
+ readonly location: v.NullableSchema<v.StringSchema<undefined>, undefined>;
3474
+ readonly status: v.NullableSchema<v.StringSchema<undefined>, undefined>;
3475
+ }, undefined>, undefined>;
3476
+ }, undefined>, undefined>;
3457
3477
  readonly limits: v.StrictObjectSchema<{
3458
3478
  readonly messages: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
3459
3479
  readonly bytes: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
@@ -4183,6 +4203,26 @@ export declare const ENTITIES: {
4183
4203
  readonly outgoing: v.NullableSchema<v.BooleanSchema<undefined>, undefined>;
4184
4204
  readonly text: v.StringSchema<undefined>;
4185
4205
  }, undefined>, undefined>;
4206
+ readonly events: v.OptionalSchema<v.StrictObjectSchema<{
4207
+ readonly upcoming: v.ArraySchema<v.StrictObjectSchema<{
4208
+ readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
4209
+ readonly title: v.NullableSchema<v.StringSchema<undefined>, undefined>;
4210
+ readonly starts_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>;
4211
+ readonly ends_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>;
4212
+ readonly all_day: v.BooleanSchema<undefined>;
4213
+ readonly location: v.NullableSchema<v.StringSchema<undefined>, undefined>;
4214
+ readonly status: v.NullableSchema<v.StringSchema<undefined>, undefined>;
4215
+ }, undefined>, undefined>;
4216
+ readonly recent: v.ArraySchema<v.StrictObjectSchema<{
4217
+ readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
4218
+ readonly title: v.NullableSchema<v.StringSchema<undefined>, undefined>;
4219
+ readonly starts_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>;
4220
+ readonly ends_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>;
4221
+ readonly all_day: v.BooleanSchema<undefined>;
4222
+ readonly location: v.NullableSchema<v.StringSchema<undefined>, undefined>;
4223
+ readonly status: v.NullableSchema<v.StringSchema<undefined>, undefined>;
4224
+ }, undefined>, undefined>;
4225
+ }, undefined>, undefined>;
4186
4226
  readonly limits: v.StrictObjectSchema<{
4187
4227
  readonly messages: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
4188
4228
  readonly bytes: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
@@ -5098,7 +5138,7 @@ export declare const ENTITIES: {
5098
5138
  } | undefined;
5099
5139
  };
5100
5140
  readonly hit: v.StrictObjectSchema<{
5101
- readonly kind: v.PicklistSchema<["message", "mail", "note", "document", "meeting"], undefined>;
5141
+ readonly kind: v.PicklistSchema<["message", "mail", "note", "document", "event", "meeting"], undefined>;
5102
5142
  readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
5103
5143
  readonly provider: v.StringSchema<undefined>;
5104
5144
  readonly url: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
@@ -5403,9 +5443,9 @@ export declare const ENTITIES: {
5403
5443
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5404
5444
  readonly from: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
5405
5445
  readonly to: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>, undefined>;
5406
- readonly kind: v.PicklistSchema<["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to"], undefined>;
5446
+ readonly kind: v.PicklistSchema<readonly ["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to", "attached"], undefined>;
5407
5447
  readonly anchor: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5408
- readonly origin: v.PicklistSchema<["file", "owner", "suggested", "message"], undefined>;
5448
+ readonly origin: v.PicklistSchema<readonly ["file", "owner", "suggested", "message", "calendar"], undefined>;
5409
5449
  readonly target_text: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5410
5450
  readonly role: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5411
5451
  readonly evidence: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -5417,9 +5457,9 @@ export declare const ENTITIES: {
5417
5457
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5418
5458
  readonly from: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
5419
5459
  readonly to: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>, undefined>;
5420
- readonly kind: v.PicklistSchema<["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to"], undefined>;
5460
+ readonly kind: v.PicklistSchema<readonly ["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to", "attached"], undefined>;
5421
5461
  readonly anchor: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5422
- readonly origin: v.PicklistSchema<["file", "owner", "suggested", "message"], undefined>;
5462
+ readonly origin: v.PicklistSchema<readonly ["file", "owner", "suggested", "message", "calendar"], undefined>;
5423
5463
  readonly target_text: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5424
5464
  readonly role: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5425
5465
  readonly evidence: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -5504,9 +5544,9 @@ export declare const ENTITIES: {
5504
5544
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5505
5545
  readonly from: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
5506
5546
  readonly to: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>, undefined>;
5507
- readonly kind: v.PicklistSchema<["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to"], undefined>;
5547
+ readonly kind: v.PicklistSchema<readonly ["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to", "attached"], undefined>;
5508
5548
  readonly anchor: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5509
- readonly origin: v.PicklistSchema<["file", "owner", "suggested", "message"], undefined>;
5549
+ readonly origin: v.PicklistSchema<readonly ["file", "owner", "suggested", "message", "calendar"], undefined>;
5510
5550
  readonly target_text: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5511
5551
  readonly role: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5512
5552
  readonly evidence: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -5518,9 +5558,9 @@ export declare const ENTITIES: {
5518
5558
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5519
5559
  readonly from: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
5520
5560
  readonly to: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>, undefined>;
5521
- readonly kind: v.PicklistSchema<["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to"], undefined>;
5561
+ readonly kind: v.PicklistSchema<readonly ["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to", "attached"], undefined>;
5522
5562
  readonly anchor: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5523
- readonly origin: v.PicklistSchema<["file", "owner", "suggested", "message"], undefined>;
5563
+ readonly origin: v.PicklistSchema<readonly ["file", "owner", "suggested", "message", "calendar"], undefined>;
5524
5564
  readonly target_text: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5525
5565
  readonly role: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5526
5566
  readonly evidence: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -5606,9 +5646,9 @@ export declare const ENTITIES: {
5606
5646
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5607
5647
  readonly from: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
5608
5648
  readonly to: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>, undefined>;
5609
- readonly kind: v.PicklistSchema<["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to"], undefined>;
5649
+ readonly kind: v.PicklistSchema<readonly ["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to", "attached"], undefined>;
5610
5650
  readonly anchor: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5611
- readonly origin: v.PicklistSchema<["file", "owner", "suggested", "message"], undefined>;
5651
+ readonly origin: v.PicklistSchema<readonly ["file", "owner", "suggested", "message", "calendar"], undefined>;
5612
5652
  readonly target_text: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5613
5653
  readonly role: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5614
5654
  readonly evidence: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -5620,9 +5660,9 @@ export declare const ENTITIES: {
5620
5660
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5621
5661
  readonly from: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
5622
5662
  readonly to: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>, undefined>;
5623
- readonly kind: v.PicklistSchema<["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to"], undefined>;
5663
+ readonly kind: v.PicklistSchema<readonly ["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to", "attached"], undefined>;
5624
5664
  readonly anchor: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5625
- readonly origin: v.PicklistSchema<["file", "owner", "suggested", "message"], undefined>;
5665
+ readonly origin: v.PicklistSchema<readonly ["file", "owner", "suggested", "message", "calendar"], undefined>;
5626
5666
  readonly target_text: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5627
5667
  readonly role: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5628
5668
  readonly evidence: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -5736,9 +5776,9 @@ export declare const ENTITIES: {
5736
5776
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5737
5777
  readonly from: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
5738
5778
  readonly to: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>, undefined>;
5739
- readonly kind: v.PicklistSchema<["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to"], undefined>;
5779
+ readonly kind: v.PicklistSchema<readonly ["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to", "attached"], undefined>;
5740
5780
  readonly anchor: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5741
- readonly origin: v.PicklistSchema<["file", "owner", "suggested", "message"], undefined>;
5781
+ readonly origin: v.PicklistSchema<readonly ["file", "owner", "suggested", "message", "calendar"], undefined>;
5742
5782
  readonly target_text: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5743
5783
  readonly role: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5744
5784
  readonly evidence: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -5750,9 +5790,9 @@ export declare const ENTITIES: {
5750
5790
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5751
5791
  readonly from: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
5752
5792
  readonly to: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>, undefined>;
5753
- readonly kind: v.PicklistSchema<["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to"], undefined>;
5793
+ readonly kind: v.PicklistSchema<readonly ["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to", "attached"], undefined>;
5754
5794
  readonly anchor: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5755
- readonly origin: v.PicklistSchema<["file", "owner", "suggested", "message"], undefined>;
5795
+ readonly origin: v.PicklistSchema<readonly ["file", "owner", "suggested", "message", "calendar"], undefined>;
5756
5796
  readonly target_text: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5757
5797
  readonly role: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5758
5798
  readonly evidence: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -5831,9 +5871,9 @@ export declare const ENTITIES: {
5831
5871
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5832
5872
  readonly from: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
5833
5873
  readonly to: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>, undefined>;
5834
- readonly kind: v.PicklistSchema<["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to"], undefined>;
5874
+ readonly kind: v.PicklistSchema<readonly ["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to", "attached"], undefined>;
5835
5875
  readonly anchor: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5836
- readonly origin: v.PicklistSchema<["file", "owner", "suggested", "message"], undefined>;
5876
+ readonly origin: v.PicklistSchema<readonly ["file", "owner", "suggested", "message", "calendar"], undefined>;
5837
5877
  readonly target_text: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5838
5878
  readonly role: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5839
5879
  readonly evidence: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -5845,9 +5885,9 @@ export declare const ENTITIES: {
5845
5885
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5846
5886
  readonly from: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
5847
5887
  readonly to: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>, undefined>;
5848
- readonly kind: v.PicklistSchema<["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to"], undefined>;
5888
+ readonly kind: v.PicklistSchema<readonly ["links-to", "blocked-by", "follow-up-of", "about", "member-of", "labelled", "answered-by", "evidence", "created-from", "duplicate-of", "related-to", "assigned-to", "attached"], undefined>;
5849
5889
  readonly anchor: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5850
- readonly origin: v.PicklistSchema<["file", "owner", "suggested", "message"], undefined>;
5890
+ readonly origin: v.PicklistSchema<readonly ["file", "owner", "suggested", "message", "calendar"], undefined>;
5851
5891
  readonly target_text: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5852
5892
  readonly role: v.NullableSchema<v.StringSchema<undefined>, undefined>;
5853
5893
  readonly evidence: v.NullableSchema<v.StringSchema<undefined>, undefined>;