@wirecat/cli-core 0.410.0 → 0.411.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 (67) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/cli/bot/command.js +1 -0
  3. package/dist/cli/bot/port.d.ts +1 -1
  4. package/dist/cli/bot/setup.js +11 -5
  5. package/dist/cli/commands-command.js +18 -12
  6. package/dist/cli/contract-evidence.d.ts +26 -0
  7. package/dist/cli/contract-evidence.js +58 -0
  8. package/dist/cli/contract-templates.d.ts +4 -0
  9. package/dist/cli/contract-templates.js +83 -0
  10. package/dist/cli/discovery-descriptions.d.ts +4 -0
  11. package/dist/cli/discovery-descriptions.js +4 -0
  12. package/dist/cli/index.d.ts +21 -55
  13. package/dist/cli/index.js +18 -55
  14. package/dist/cli/messenger/chat-answers.d.ts +1 -1
  15. package/dist/cli/messenger/chat-answers.js +1 -1
  16. package/dist/cli/messenger/chat-lists.d.ts +1 -1
  17. package/dist/cli/messenger/chats-command.js +3 -0
  18. package/dist/cli/messenger/contacts-command.js +23 -15
  19. package/dist/cli/messenger/guard-commands.d.ts +5 -1
  20. package/dist/cli/messenger/guard-commands.js +5 -3
  21. package/dist/cli/messenger/messages-press-command.js +4 -1
  22. package/dist/cli/messenger/models-command.js +3 -11
  23. package/dist/cli/messenger/records-command.js +1 -1
  24. package/dist/cli/messenger/tasks-command.js +14 -4
  25. package/dist/cli/model-catalogue-command.d.ts +15 -0
  26. package/dist/cli/model-catalogue-command.js +110 -0
  27. package/dist/cli/program.js +2 -0
  28. package/dist/cli/runs/search-command.js +2 -3
  29. package/dist/cli/runs/search-query.d.ts +1 -1
  30. package/dist/cli/runs/search-query.js +18 -2
  31. package/dist/cli/runs/search.d.ts +2 -1
  32. package/dist/cli/runs/search.js +4 -3
  33. package/dist/cli/shared-command-exports.d.ts +644 -0
  34. package/dist/cli/shared-command-exports.js +114 -0
  35. package/dist/cli/shared-contracts.d.ts +1 -0
  36. package/dist/cli/shared-contracts.js +1 -0
  37. package/dist/entities/chat.d.ts +3 -3
  38. package/dist/entities/chat.js +2 -2
  39. package/dist/entities/contact-context.d.ts +8 -8
  40. package/dist/entities/contact.d.ts +4 -4
  41. package/dist/entities/index.d.ts +11 -12
  42. package/dist/entities/list-results.d.ts +1 -1
  43. package/dist/entities/list-results.js +1 -1
  44. package/dist/entities/send-attempt.d.ts +0 -1
  45. package/dist/entities/send-attempt.js +0 -1
  46. package/dist/errors/reasons.d.ts +1 -1
  47. package/dist/errors/reasons.js +7 -0
  48. package/dist/meetings/cli/index.d.ts +1 -1
  49. package/dist/meetings/cli/index.js +25 -9
  50. package/dist/meetings/cli/passage.d.ts +0 -1
  51. package/dist/meetings/cli/passage.js +5 -3
  52. package/dist/meetings/cli/project-evidence.js +3 -2
  53. package/dist/meetings/cli/search.d.ts +2 -2
  54. package/dist/meetings/cli/search.js +9 -7
  55. package/dist/meetings/event-query.d.ts +1 -0
  56. package/dist/meetings/event-query.js +15 -0
  57. package/dist/meetings/index.d.ts +1 -0
  58. package/dist/meetings/index.js +1 -0
  59. package/dist/meetings/store.d.ts +2 -0
  60. package/dist/meetings/testing/memory.js +5 -0
  61. package/dist/services/tasks.d.ts +2 -0
  62. package/dist/services/tasks.js +6 -4
  63. package/dist/store/sqlite/events.d.ts +2 -1
  64. package/dist/store/sqlite/events.js +16 -1
  65. package/dist/store/sqlite/meetings.js +3 -0
  66. package/package.json +3 -3
  67. package/parity.json +61 -76
@@ -0,0 +1,114 @@
1
+ import { botAdminsCommand as botAdminsCommandDefinition, botMembersCommand as botMembersCommandDefinition, } from "./bot/admins.js";
2
+ import { generatedApiCommand as generatedApiCommandDefinition } from "./bot/api.js";
3
+ import { botCommand as botCommandDefinition } from "./bot/command.js";
4
+ import { botMcpCommand as botMcpCommandDefinition } from "./bot/mcp.js";
5
+ import { botMessagesCommand as botMessagesCommandDefinition } from "./bot/messages.js";
6
+ import { commandsCommand as commandsCommandDefinition } from "./commands-command.js";
7
+ import { configCommand as configCommandDefinition } from "./config-command.js";
8
+ import { guideCommand as guideCommandDefinition } from "./guide.js";
9
+ import { addMeetingBatchCommand as addMeetingBatchCommandDefinition } from "./meeting-batch.js";
10
+ import { addMeetingPreparationCommand as addMeetingPreparationCommandDefinition } from "./meeting-preparation-command.js";
11
+ import { addMeetingProjectCandidatesCommand as addMeetingProjectCandidatesCommandDefinition } from "./meeting-project-candidates-command.js";
12
+ import { addMeetingSeriesInventoryCommand as addMeetingSeriesInventoryCommandDefinition } from "./meeting-series-inventory-command.js";
13
+ import { accountCommand as accountCommandDefinition } from "./messenger/account-command.js";
14
+ import { storeCommand as storeCommandDefinition } from "./messenger/archive-commands.js";
15
+ import { attachmentsCommand as attachmentsCommandDefinition } from "./messenger/attachments-command.js";
16
+ import { chatsCommand as chatsCommandDefinition } from "./messenger/chats-command.js";
17
+ import { markReadCommand as markReadCommandDefinition } from "./messenger/chats-read-command.js";
18
+ import { completeCommand as completeCommandDefinition } from "./messenger/complete-command.js";
19
+ import { contactsCommand as contactsCommandDefinition } from "./messenger/contacts-command.js";
20
+ import { conversationsCommand as conversationsCommandDefinition } from "./messenger/conversations-command.js";
21
+ import { doctorCommand as doctorCommandDefinition } from "./messenger/doctor-command.js";
22
+ import { floodCommand as floodCommandDefinition } from "./messenger/flood-command.js";
23
+ import { recipientsCommand as recipientsCommandDefinition, sendsCommand as sendsCommandDefinition, } from "./messenger/guard-commands.js";
24
+ import { imagesCommand as imagesCommandDefinition } from "./messenger/images-command.js";
25
+ import { inboxCommand as inboxCommandDefinition } from "./messenger/inbox.js";
26
+ import { mcpCommand as mcpCommandDefinition } from "./messenger/mcp-command.js";
27
+ import { mentionsCommand as mentionsCommandDefinition } from "./messenger/mentions-command.js";
28
+ import { messagesCommand as messagesCommandDefinition, sendCommand as sendCommandDefinition, } from "./messenger/messages-command.js";
29
+ import { deleteCommand as deleteCommandDefinition } from "./messenger/messages-delete-command.js";
30
+ import { editCommand as editCommandDefinition } from "./messenger/messages-edit-command.js";
31
+ import { forwardCommand as forwardCommandDefinition } from "./messenger/messages-forward-command.js";
32
+ import { pinCommand as pinCommandDefinition, starCommands as starCommandsDefinition, unpinCommand as unpinCommandDefinition, } from "./messenger/messages-pin-command.js";
33
+ import { metadataCommand as metadataCommandDefinition } from "./messenger/metadata-command.js";
34
+ import { modelsCommand as modelsCommandDefinition } from "./messenger/models-command.js";
35
+ import { pollsCommand as pollsCommandDefinition } from "./messenger/polls-command.js";
36
+ import { reactionsCommand as reactionsCommandDefinition } from "./messenger/reactions-command.js";
37
+ import { callsCommand as callsCommandDefinition, stickersCommand as stickersCommandDefinition, } from "./messenger/records-command.js";
38
+ import { repliesCommand as repliesCommandDefinition } from "./messenger/replies-command.js";
39
+ import { reviewCommand as reviewCommandDefinition } from "./messenger/review.js";
40
+ import { scheduleCommand as scheduleCommandDefinition } from "./messenger/schedule-command.js";
41
+ import { searchCommand as searchCommandDefinition } from "./messenger/search-command.js";
42
+ import { searchesCommand as searchesCommandDefinition } from "./messenger/searches-command.js";
43
+ import { serveCommand as serveCommandDefinition } from "./messenger/serve-command.js";
44
+ import { serverCommand as serverCommandDefinition } from "./messenger/server-command.js";
45
+ import { statsCommand as statsCommandDefinition } from "./messenger/stats-command.js";
46
+ import { tagsCommand as tagsCommandDefinition } from "./messenger/tags-command.js";
47
+ import { tasksCommand as tasksCommandDefinition, tasksStatsCommand as tasksStatsCommandDefinition, } from "./messenger/tasks-command.js";
48
+ import { topicsCommand as topicsCommandDefinition } from "./messenger/topics-command.js";
49
+ import { watchCommand as watchCommandDefinition } from "./messenger/watch-command.js";
50
+ import { runsCommand as runsCommandDefinition } from "./runs/command.js";
51
+ import { sharedCommand } from "./shared-contracts.js";
52
+ import { skillCommand as skillCommandDefinition } from "./skill-command.js";
53
+ import { upgradeCommand as upgradeCommandDefinition } from "./upgrade-command.js";
54
+ export const botAdminsCommand = sharedCommand(botAdminsCommandDefinition);
55
+ export const botMembersCommand = sharedCommand(botMembersCommandDefinition);
56
+ export const generatedApiCommand = sharedCommand(generatedApiCommandDefinition);
57
+ export const botCommand = sharedCommand(botCommandDefinition);
58
+ export const botMcpCommand = sharedCommand(botMcpCommandDefinition);
59
+ export const botMessagesCommand = sharedCommand(botMessagesCommandDefinition);
60
+ export const commandsCommand = sharedCommand(commandsCommandDefinition);
61
+ export const configCommand = sharedCommand(configCommandDefinition);
62
+ export const guideCommand = sharedCommand(guideCommandDefinition);
63
+ export const addMeetingBatchCommand = sharedCommand(addMeetingBatchCommandDefinition);
64
+ export const addMeetingPreparationCommand = sharedCommand(addMeetingPreparationCommandDefinition);
65
+ export const addMeetingProjectCandidatesCommand = sharedCommand(addMeetingProjectCandidatesCommandDefinition);
66
+ export const addMeetingSeriesInventoryCommand = sharedCommand(addMeetingSeriesInventoryCommandDefinition);
67
+ export const accountCommand = sharedCommand(accountCommandDefinition);
68
+ export const storeCommand = sharedCommand(storeCommandDefinition);
69
+ export const attachmentsCommand = sharedCommand(attachmentsCommandDefinition);
70
+ export const chatsCommand = sharedCommand(chatsCommandDefinition);
71
+ export const markReadCommand = sharedCommand(markReadCommandDefinition);
72
+ export const completeCommand = sharedCommand(completeCommandDefinition);
73
+ export const contactsCommand = sharedCommand(contactsCommandDefinition);
74
+ export const conversationsCommand = sharedCommand(conversationsCommandDefinition);
75
+ export const doctorCommand = sharedCommand(doctorCommandDefinition);
76
+ export const floodCommand = sharedCommand(floodCommandDefinition);
77
+ export const recipientsCommand = sharedCommand(recipientsCommandDefinition);
78
+ export const sendsCommand = sharedCommand(sendsCommandDefinition);
79
+ export const imagesCommand = sharedCommand(imagesCommandDefinition);
80
+ export const inboxCommand = sharedCommand(inboxCommandDefinition);
81
+ export const mcpCommand = sharedCommand(mcpCommandDefinition);
82
+ export const mentionsCommand = sharedCommand(mentionsCommandDefinition);
83
+ export const messagesCommand = sharedCommand(messagesCommandDefinition);
84
+ export const sendCommand = sharedCommand(sendCommandDefinition);
85
+ export const deleteCommand = sharedCommand(deleteCommandDefinition);
86
+ export const editCommand = sharedCommand(editCommandDefinition);
87
+ export const forwardCommand = sharedCommand(forwardCommandDefinition);
88
+ export const pinCommand = sharedCommand(pinCommandDefinition);
89
+ export const starCommands = sharedCommand(starCommandsDefinition);
90
+ export const unpinCommand = sharedCommand(unpinCommandDefinition);
91
+ export const metadataCommand = sharedCommand(metadataCommandDefinition);
92
+ export const modelsCommand = sharedCommand(modelsCommandDefinition);
93
+ export const pollsCommand = sharedCommand(pollsCommandDefinition);
94
+ export const reactionsCommand = sharedCommand(reactionsCommandDefinition);
95
+ export const callsCommand = sharedCommand(callsCommandDefinition);
96
+ export const stickersCommand = sharedCommand(stickersCommandDefinition);
97
+ export const repliesCommand = sharedCommand(repliesCommandDefinition);
98
+ export const reviewCommand = sharedCommand(reviewCommandDefinition);
99
+ export const scheduleCommand = sharedCommand(scheduleCommandDefinition);
100
+ export const searchCommand = sharedCommand(searchCommandDefinition);
101
+ export const searchesCommand = sharedCommand(searchesCommandDefinition);
102
+ export const serveCommand = sharedCommand(serveCommandDefinition);
103
+ export const serverCommand = sharedCommand(serverCommandDefinition);
104
+ export const statsCommand = sharedCommand(statsCommandDefinition);
105
+ export const tagsCommand = sharedCommand(tagsCommandDefinition);
106
+ export const tasksCommand = sharedCommand(tasksCommandDefinition);
107
+ export const tasksStatsCommand = sharedCommand(tasksStatsCommandDefinition);
108
+ export const topicsCommand = sharedCommand(topicsCommandDefinition);
109
+ export const watchCommand = sharedCommand(watchCommandDefinition);
110
+ export const runsCommand = sharedCommand(runsCommandDefinition);
111
+ export const skillCommand = sharedCommand(skillCommandDefinition);
112
+ export const upgradeCommand = sharedCommand(upgradeCommandDefinition);
113
+ import { modelCatalogueCommand as modelCatalogueDefinition } from "./model-catalogue-command.js";
114
+ export const modelCatalogueCommand = sharedCommand(modelCatalogueDefinition);
@@ -0,0 +1 @@
1
+ export { assertSharedContracts, customizeSharedCommand, hasSharedContract, overrideSharedContract, type SharedContractOverride, sharedCommand, sharedContractOverrides, sharedContracts, } from "@wirecat/cli-base/commands";
@@ -0,0 +1 @@
1
+ export { assertSharedContracts, customizeSharedCommand, hasSharedContract, overrideSharedContract, sharedCommand, sharedContractOverrides, sharedContracts, } from "@wirecat/cli-base/commands";
@@ -34,8 +34,8 @@ export declare const chat: v.StrictObjectSchema<{
34
34
  readonly only_admins_edit_info: v.OptionalSchema<v.NullableSchema<v.BooleanSchema<undefined>, undefined>, undefined>;
35
35
  readonly disappearing_seconds: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>, undefined>;
36
36
  }, undefined>, undefined>;
37
- /** `chats show`: who is in it, as far as anyone recorded; `null` when nobody did — a channel, always. */
38
- readonly members: v.OptionalSchema<v.NullableSchema<v.ArraySchema<v.StrictObjectSchema<{
37
+ /** `chats show`: absent when no roster is known; an empty list is a known empty roster. */
38
+ readonly members: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
39
39
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
40
40
  readonly name: v.NullableSchema<v.StringSchema<undefined>, undefined>;
41
41
  readonly username: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -51,5 +51,5 @@ export declare const chat: v.StrictObjectSchema<{
51
51
  readonly score: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
52
52
  readonly reasons: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
53
53
  readonly check: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
54
- }, undefined>, undefined>, undefined>, undefined>;
54
+ }, undefined>, undefined>, undefined>;
55
55
  }, undefined>;
@@ -37,6 +37,6 @@ export const chat = v.strictObject({
37
37
  only_admins_edit_info: setting,
38
38
  disappearing_seconds: v.optional(v.nullable(count)),
39
39
  })),
40
- /** `chats show`: who is in it, as far as anyone recorded; `null` when nobody did — a channel, always. */
41
- members: v.optional(v.nullable(v.array(member))),
40
+ /** `chats show`: absent when no roster is known; an empty list is a known empty roster. */
41
+ members: v.optional(v.array(member)),
42
42
  });
@@ -39,7 +39,7 @@ export declare const contactMessages: v.StrictObjectSchema<{
39
39
  readonly only_admins_edit_info: v.OptionalSchema<v.NullableSchema<v.BooleanSchema<undefined>, undefined>, undefined>;
40
40
  readonly disappearing_seconds: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>, undefined>;
41
41
  }, undefined>, undefined>;
42
- readonly members: v.OptionalSchema<v.NullableSchema<v.ArraySchema<v.StrictObjectSchema<{
42
+ readonly members: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
43
43
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
44
44
  readonly name: v.NullableSchema<v.StringSchema<undefined>, undefined>;
45
45
  readonly username: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -55,7 +55,7 @@ export declare const contactMessages: v.StrictObjectSchema<{
55
55
  readonly score: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
56
56
  readonly reasons: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
57
57
  readonly check: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
58
- }, undefined>, undefined>, undefined>, undefined>;
58
+ }, undefined>, undefined>, undefined>;
59
59
  }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
60
60
  readonly entries: Pick<{
61
61
  readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
@@ -89,7 +89,7 @@ export declare const contactMessages: v.StrictObjectSchema<{
89
89
  readonly only_admins_edit_info: v.OptionalSchema<v.NullableSchema<v.BooleanSchema<undefined>, undefined>, undefined>;
90
90
  readonly disappearing_seconds: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>, undefined>;
91
91
  }, undefined>, undefined>;
92
- readonly members: v.OptionalSchema<v.NullableSchema<v.ArraySchema<v.StrictObjectSchema<{
92
+ readonly members: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
93
93
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
94
94
  readonly name: v.NullableSchema<v.StringSchema<undefined>, undefined>;
95
95
  readonly username: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -105,7 +105,7 @@ export declare const contactMessages: v.StrictObjectSchema<{
105
105
  readonly score: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
106
106
  readonly reasons: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
107
107
  readonly check: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
108
- }, undefined>, undefined>, undefined>, undefined>;
108
+ }, undefined>, undefined>, undefined>;
109
109
  }, "id" | "kind" | "title">;
110
110
  readonly "~standard": v.StandardProps<{
111
111
  id: string;
@@ -769,7 +769,7 @@ export declare const contactContext: v.UnionSchema<[v.StrictObjectSchema<{
769
769
  readonly only_admins_edit_info: v.OptionalSchema<v.NullableSchema<v.BooleanSchema<undefined>, undefined>, undefined>;
770
770
  readonly disappearing_seconds: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>, undefined>;
771
771
  }, undefined>, undefined>;
772
- readonly members: v.OptionalSchema<v.NullableSchema<v.ArraySchema<v.StrictObjectSchema<{
772
+ readonly members: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
773
773
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
774
774
  readonly name: v.NullableSchema<v.StringSchema<undefined>, undefined>;
775
775
  readonly username: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -785,7 +785,7 @@ export declare const contactContext: v.UnionSchema<[v.StrictObjectSchema<{
785
785
  readonly score: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
786
786
  readonly reasons: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
787
787
  readonly check: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
788
- }, undefined>, undefined>, undefined>, undefined>;
788
+ }, undefined>, undefined>, undefined>;
789
789
  }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
790
790
  readonly entries: Pick<{
791
791
  readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
@@ -819,7 +819,7 @@ export declare const contactContext: v.UnionSchema<[v.StrictObjectSchema<{
819
819
  readonly only_admins_edit_info: v.OptionalSchema<v.NullableSchema<v.BooleanSchema<undefined>, undefined>, undefined>;
820
820
  readonly disappearing_seconds: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>, undefined>;
821
821
  }, undefined>, undefined>;
822
- readonly members: v.OptionalSchema<v.NullableSchema<v.ArraySchema<v.StrictObjectSchema<{
822
+ readonly members: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
823
823
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
824
824
  readonly name: v.NullableSchema<v.StringSchema<undefined>, undefined>;
825
825
  readonly username: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -835,7 +835,7 @@ export declare const contactContext: v.UnionSchema<[v.StrictObjectSchema<{
835
835
  readonly score: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
836
836
  readonly reasons: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
837
837
  readonly check: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
838
- }, undefined>, undefined>, undefined>, undefined>;
838
+ }, undefined>, undefined>, undefined>;
839
839
  }, "id" | "kind" | "title">;
840
840
  readonly "~standard": v.StandardProps<{
841
841
  id: string;
@@ -50,7 +50,7 @@ export declare const contact: v.StrictObjectSchema<{
50
50
  readonly only_admins_edit_info: v.OptionalSchema<v.NullableSchema<v.BooleanSchema<undefined>, undefined>, undefined>;
51
51
  readonly disappearing_seconds: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>, undefined>;
52
52
  }, undefined>, undefined>;
53
- readonly members: v.OptionalSchema<v.NullableSchema<v.ArraySchema<v.StrictObjectSchema<{
53
+ readonly members: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
54
54
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
55
55
  readonly name: v.NullableSchema<v.StringSchema<undefined>, undefined>;
56
56
  readonly username: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -66,7 +66,7 @@ export declare const contact: v.StrictObjectSchema<{
66
66
  readonly score: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
67
67
  readonly reasons: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
68
68
  readonly check: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
69
- }, undefined>, undefined>, undefined>, undefined>;
69
+ }, undefined>, undefined>, undefined>;
70
70
  }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
71
71
  readonly entries: Pick<{
72
72
  readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
@@ -100,7 +100,7 @@ export declare const contact: v.StrictObjectSchema<{
100
100
  readonly only_admins_edit_info: v.OptionalSchema<v.NullableSchema<v.BooleanSchema<undefined>, undefined>, undefined>;
101
101
  readonly disappearing_seconds: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>, undefined>;
102
102
  }, undefined>, undefined>;
103
- readonly members: v.OptionalSchema<v.NullableSchema<v.ArraySchema<v.StrictObjectSchema<{
103
+ readonly members: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
104
104
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
105
105
  readonly name: v.NullableSchema<v.StringSchema<undefined>, undefined>;
106
106
  readonly username: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -116,7 +116,7 @@ export declare const contact: v.StrictObjectSchema<{
116
116
  readonly score: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
117
117
  readonly reasons: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
118
118
  readonly check: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
119
- }, undefined>, undefined>, undefined>, undefined>;
119
+ }, undefined>, undefined>, undefined>;
120
120
  }, "id" | "kind" | "last_message_at" | "ref" | "title">;
121
121
  readonly "~standard": v.StandardProps<{
122
122
  ref: string;
@@ -3207,7 +3207,7 @@ export declare const ENTITIES: {
3207
3207
  readonly only_admins_edit_info: v.OptionalSchema<v.NullableSchema<v.BooleanSchema<undefined>, undefined>, undefined>;
3208
3208
  readonly disappearing_seconds: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>, undefined>;
3209
3209
  }, undefined>, undefined>;
3210
- readonly members: v.OptionalSchema<v.NullableSchema<v.ArraySchema<v.StrictObjectSchema<{
3210
+ readonly members: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
3211
3211
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
3212
3212
  readonly name: v.NullableSchema<v.StringSchema<undefined>, undefined>;
3213
3213
  readonly username: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -3223,7 +3223,7 @@ export declare const ENTITIES: {
3223
3223
  readonly score: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
3224
3224
  readonly reasons: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
3225
3225
  readonly check: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
3226
- }, undefined>, undefined>, undefined>, undefined>;
3226
+ }, undefined>, undefined>, undefined>;
3227
3227
  }, undefined>;
3228
3228
  readonly mention: v.StrictObjectSchema<{
3229
3229
  readonly id: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
@@ -3468,7 +3468,7 @@ export declare const ENTITIES: {
3468
3468
  readonly only_admins_edit_info: v.OptionalSchema<v.NullableSchema<v.BooleanSchema<undefined>, undefined>, undefined>;
3469
3469
  readonly disappearing_seconds: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>, undefined>;
3470
3470
  }, undefined>, undefined>;
3471
- readonly members: v.OptionalSchema<v.NullableSchema<v.ArraySchema<v.StrictObjectSchema<{
3471
+ readonly members: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
3472
3472
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
3473
3473
  readonly name: v.NullableSchema<v.StringSchema<undefined>, undefined>;
3474
3474
  readonly username: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -3484,7 +3484,7 @@ export declare const ENTITIES: {
3484
3484
  readonly score: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
3485
3485
  readonly reasons: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
3486
3486
  readonly check: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
3487
- }, undefined>, undefined>, undefined>, undefined>;
3487
+ }, undefined>, undefined>, undefined>;
3488
3488
  }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
3489
3489
  readonly entries: Pick<{
3490
3490
  readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
@@ -3518,7 +3518,7 @@ export declare const ENTITIES: {
3518
3518
  readonly only_admins_edit_info: v.OptionalSchema<v.NullableSchema<v.BooleanSchema<undefined>, undefined>, undefined>;
3519
3519
  readonly disappearing_seconds: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>, undefined>;
3520
3520
  }, undefined>, undefined>;
3521
- readonly members: v.OptionalSchema<v.NullableSchema<v.ArraySchema<v.StrictObjectSchema<{
3521
+ readonly members: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
3522
3522
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
3523
3523
  readonly name: v.NullableSchema<v.StringSchema<undefined>, undefined>;
3524
3524
  readonly username: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -3534,7 +3534,7 @@ export declare const ENTITIES: {
3534
3534
  readonly score: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
3535
3535
  readonly reasons: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
3536
3536
  readonly check: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
3537
- }, undefined>, undefined>, undefined>, undefined>;
3537
+ }, undefined>, undefined>, undefined>;
3538
3538
  }, "id" | "kind" | "title">;
3539
3539
  readonly "~standard": v.StandardProps<{
3540
3540
  id: string;
@@ -4362,7 +4362,7 @@ export declare const ENTITIES: {
4362
4362
  readonly only_admins_edit_info: v.OptionalSchema<v.NullableSchema<v.BooleanSchema<undefined>, undefined>, undefined>;
4363
4363
  readonly disappearing_seconds: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>, undefined>;
4364
4364
  }, undefined>, undefined>;
4365
- readonly members: v.OptionalSchema<v.NullableSchema<v.ArraySchema<v.StrictObjectSchema<{
4365
+ readonly members: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
4366
4366
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
4367
4367
  readonly name: v.NullableSchema<v.StringSchema<undefined>, undefined>;
4368
4368
  readonly username: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -4378,7 +4378,7 @@ export declare const ENTITIES: {
4378
4378
  readonly score: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
4379
4379
  readonly reasons: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
4380
4380
  readonly check: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
4381
- }, undefined>, undefined>, undefined>, undefined>;
4381
+ }, undefined>, undefined>, undefined>;
4382
4382
  }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
4383
4383
  readonly entries: Pick<{
4384
4384
  readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
@@ -4412,7 +4412,7 @@ export declare const ENTITIES: {
4412
4412
  readonly only_admins_edit_info: v.OptionalSchema<v.NullableSchema<v.BooleanSchema<undefined>, undefined>, undefined>;
4413
4413
  readonly disappearing_seconds: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>, undefined>;
4414
4414
  }, undefined>, undefined>;
4415
- readonly members: v.OptionalSchema<v.NullableSchema<v.ArraySchema<v.StrictObjectSchema<{
4415
+ readonly members: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
4416
4416
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
4417
4417
  readonly name: v.NullableSchema<v.StringSchema<undefined>, undefined>;
4418
4418
  readonly username: v.NullableSchema<v.StringSchema<undefined>, undefined>;
@@ -4428,7 +4428,7 @@ export declare const ENTITIES: {
4428
4428
  readonly score: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
4429
4429
  readonly reasons: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
4430
4430
  readonly check: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
4431
- }, undefined>, undefined>, undefined>, undefined>;
4431
+ }, undefined>, undefined>, undefined>;
4432
4432
  }, "id" | "kind" | "last_message_at" | "ref" | "title">;
4433
4433
  readonly "~standard": v.StandardProps<{
4434
4434
  ref: string;
@@ -4788,7 +4788,7 @@ export declare const ENTITIES: {
4788
4788
  }, undefined>;
4789
4789
  readonly bot_webhook: v.StrictObjectSchema<{
4790
4790
  readonly url: v.StringSchema<undefined>;
4791
- readonly types: v.NullableSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
4791
+ readonly types: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
4792
4792
  }, undefined>;
4793
4793
  readonly scheduled_job: v.StrictObjectSchema<{
4794
4794
  readonly name: v.StringSchema<undefined>;
@@ -7128,7 +7128,6 @@ export declare const ENTITIES: {
7128
7128
  readonly key: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
7129
7129
  readonly count: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
7130
7130
  readonly for_everyone: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
7131
- readonly send_id: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
7132
7131
  readonly operation_id: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
7133
7132
  readonly parent_operation_id: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
7134
7133
  readonly reply_to: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
@@ -39,7 +39,7 @@ export declare const botMenuEntry: v.StrictObjectSchema<{
39
39
  }, undefined>;
40
40
  export declare const botWebhook: v.StrictObjectSchema<{
41
41
  readonly url: v.StringSchema<undefined>;
42
- readonly types: v.NullableSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
42
+ readonly types: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
43
43
  }, undefined>;
44
44
  export declare const scheduledJob: v.StrictObjectSchema<{
45
45
  readonly name: v.StringSchema<undefined>;
@@ -26,7 +26,7 @@ export const botAdmin = v.strictObject({
26
26
  title: v.nullable(text),
27
27
  });
28
28
  export const botMenuEntry = v.strictObject({ name: text, description: v.nullable(text) });
29
- export const botWebhook = v.strictObject({ url: text, types: v.nullable(v.array(text)) });
29
+ export const botWebhook = v.strictObject({ url: text, types: v.optional(v.array(text)) });
30
30
  export const scheduledJob = v.strictObject({
31
31
  name: text,
32
32
  kind: v.picklist(["command", "agent"]),
@@ -11,7 +11,6 @@ export declare const sendAttempt: v.StrictObjectSchema<{
11
11
  readonly key: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
12
12
  readonly count: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
13
13
  readonly for_everyone: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
14
- readonly send_id: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
15
14
  readonly operation_id: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
16
15
  readonly parent_operation_id: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
17
16
  readonly reply_to: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
@@ -12,7 +12,6 @@ export const sendAttempt = v.strictObject({
12
12
  key: v.optional(text),
13
13
  count: v.optional(count),
14
14
  for_everyone: v.optional(v.boolean()),
15
- send_id: v.optional(id),
16
15
  operation_id: v.optional(id),
17
16
  parent_operation_id: v.optional(id),
18
17
  reply_to: v.optional(id),
@@ -7,7 +7,7 @@ export declare const REASONS: ErrorReason[];
7
7
  * Detail keys an error from this package may carry, until each is registered on its own reason. Not `cause`:
8
8
  * that can hold a provider's or SQLite's raw text.
9
9
  */
10
- export declare const DETAILS: readonly ["allowed", "alternative", "arguments", "at", "available", "batch", "budget", "built", "candidates", "chat", "chat_id", "cli", "complete", "emitted_bytes", "exact", "forum", "guide", "hint", "id", "index", "kind", "limit", "limit_source", "max_bytes", "model", "name", "operation_id", "operation_ids", "text_limit", "store_refused_in", "partial_output", "path", "permission", "person_ids", "previous_chat_id", "profiles", "provider_error", "provider", "recovery", "reference", "remembered", "retry_at", "runtime", "saved", "scheduled_for", "script", "sent", "sent_count", "settlement_failed", "span", "sqlite", "stage", "standing", "state", "stderr", "term", "total", "upgraded", "wanted"];
10
+ export declare const DETAILS: readonly ["contracts", "allowed", "alternative", "arguments", "at", "available", "batch", "budget", "built", "candidates", "chat", "chat_id", "cli", "complete", "emitted_bytes", "exact", "forum", "guide", "hint", "id", "index", "kind", "limit", "limit_source", "max_bytes", "model", "name", "operation_id", "operation_ids", "text_limit", "store_refused_in", "partial_output", "path", "permission", "person_ids", "previous_chat_id", "profiles", "provider_error", "provider", "recovery", "reference", "remembered", "retry_at", "runtime", "saved", "scheduled_for", "script", "sent", "sent_count", "settlement_failed", "span", "sqlite", "stage", "standing", "state", "stderr", "term", "total", "upgraded", "wanted"];
11
11
  /** What a CLI adds to the shared registry: its own reasons, and the detail keys its adapters raise. */
12
12
  export interface AppErrors {
13
13
  reasons?: readonly ErrorReason[];
@@ -16,6 +16,12 @@ const QUERY = [
16
16
  ["query.topic-scope", "a topic needs its chat in the query"],
17
17
  ].map(([reason, message]) => validation(reason, message));
18
18
  const OTHERS = [
19
+ ["model.offline", "permission_error", "downloading a model needs the network; --offline was requested"],
20
+ [
21
+ "contract.unacknowledged-override",
22
+ "configuration_error",
23
+ "a shared command contract changed without an explicit override",
24
+ ],
19
25
  validation("context.read-budget", "the selected context reads exceed their text or request allowance"),
20
26
  validation("meeting-findings.stale", "meeting findings changed since they were read; stage a new batch"),
21
27
  validation("meeting-findings.dedicated-review", "review meeting findings through the dedicated findings command"),
@@ -111,6 +117,7 @@ export const REASONS = defineReasons([
111
117
  * that can hold a provider's or SQLite's raw text.
112
118
  */
113
119
  export const DETAILS = [
120
+ "contracts",
114
121
  "allowed",
115
122
  "alternative",
116
123
  "arguments",
@@ -13,8 +13,8 @@ export interface MeetingCommandDeps {
13
13
  write: (value: unknown, format: "json" | "jsonl" | "text") => void;
14
14
  now?: () => number;
15
15
  }
16
- export declare const addMeetingCommands: (program: Command, deps: MeetingCommandDeps) => void;
17
16
  export { addMeetingPassageCommand, createMeetingPassageCommand, type MeetingPassageFlags, meetingPassageRequest, } from "./passage.js";
18
17
  export { addMeetingProjectEvidenceCommand } from "./project-evidence.js";
19
18
  export { queryWordsAfterOptions } from "./query-options.js";
20
19
  export { addMeetingSearchCommand, createMeetingSearchCommand, type MeetingHitSearch, type MeetingHitSearchOptions, type MeetingSearchFlags, meetingHitSearchRequest, meetingSearchArguments, meetingSearchMeta, validateMeetingHitSearch, } from "./search.js";
20
+ export declare const addMeetingCommands: (program: Command, deps: MeetingCommandDeps) => void;
@@ -1,6 +1,7 @@
1
- import { annotate } from "@wirecat/cli-base/commands";
2
- import { defineQuery, fieldsHelp, timezoneOf, zonedMoment } from "@wirecat/cli-base/query";
1
+ import { annotate, sharedCommand } from "@wirecat/cli-base/commands";
2
+ import { defineQuery, fieldsHelp, parseLucene, timezoneOf, validateQuery, zonedMoment } from "@wirecat/cli-base/query";
3
3
  import { InvalidArgumentError, Option } from "commander";
4
+ import { EVENT_QUERY } from "../event-query.js";
4
5
  import { exportMeeting } from "../export.js";
5
6
  import { importFiles } from "../import.js";
6
7
  import { MEETING_QUERY } from "../item.js";
@@ -30,8 +31,10 @@ const date = (text) => {
30
31
  const LOCAL_READ = { remote: "none", local: "read" };
31
32
  const LOCAL_WRITE = { remote: "none", local: "write" };
32
33
  const FETCH = { remote: "read", local: "write" };
33
- export const addMeetingCommands = (program, deps) => {
34
- const group = program.command("meetings").description("stored meetings and their records");
34
+ const addMeetingCommandsDefinition = (program, deps) => {
35
+ const group = annotate(program.command("meetings").description("stored meetings and their records"), {
36
+ effects: { remote: "none", local: "none" },
37
+ });
35
38
  const output = (command) => command
36
39
  .option("--json", "one JSON value")
37
40
  .option("--jsonl", "one JSON object per item")
@@ -143,14 +146,27 @@ export const addMeetingCommands = (program, deps) => {
143
146
  throw new MeetingError("validation_error", "file account differs from selected account");
144
147
  print(await importFiles(files, deps.store, deps.now?.()), command);
145
148
  });
146
- output(annotate(program.command("events").description("the owner's stored events").command("list"), {
147
- effects: LOCAL_READ,
148
- output: { entity: "event" },
149
- }).description("list stored events")).action(async (_opts, command) => {
150
- print(listed((await deps.store.events()).map(eventItem)), command);
149
+ const eventList = queryWordsAfterOptions(annotate(program.command("events").description("the owner's stored events"), {
150
+ effects: { remote: "none", local: "none" },
151
+ }).command("list"))
152
+ .description("list stored events")
153
+ .argument("[query...]", "event id, origin or time fields that narrow the list")
154
+ .addHelpText("after", `\n${fieldsHelp(EVENT_QUERY, MEETING_QUERY_GUIDE)}`);
155
+ annotate(eventList, { effects: LOCAL_READ, output: { entity: "event" }, query: EVENT_QUERY });
156
+ output(eventList).action(async (words, _opts, command) => {
157
+ const query = words.length
158
+ ? parseLucene(words.join(" "), { defaultField: "none", command: "events list" })
159
+ : undefined;
160
+ if (query)
161
+ validateQuery(query, EVENT_QUERY, { command: "events list" });
162
+ if (query && !deps.store.queryEvents)
163
+ throw new MeetingError("validation_error", "this store cannot filter events");
164
+ const events = query ? await deps.store.queryEvents?.(query) : await deps.store.events();
165
+ print(listed((events ?? []).map(eventItem)), command);
151
166
  });
152
167
  };
153
168
  export { addMeetingPassageCommand, createMeetingPassageCommand, meetingPassageRequest, } from "./passage.js";
154
169
  export { addMeetingProjectEvidenceCommand } from "./project-evidence.js";
155
170
  export { queryWordsAfterOptions } from "./query-options.js";
156
171
  export { addMeetingSearchCommand, createMeetingSearchCommand, meetingHitSearchRequest, meetingSearchArguments, meetingSearchMeta, validateMeetingHitSearch, } from "./search.js";
172
+ export const addMeetingCommands = sharedCommand(addMeetingCommandsDefinition);
@@ -10,7 +10,6 @@ export interface MeetingPassageFlags {
10
10
  }
11
11
  export declare const meetingPassageRequest: (reference: string, options: MeetingPassageFlags, signal?: AbortSignal) => MeetingPassageRequest;
12
12
  export declare const createMeetingPassageCommand: (program: Command) => Command;
13
- /** The host fixes account scope, connection lifetime and final rendering/output limits. */
14
13
  export declare const addMeetingPassageCommand: (program: Command, deps: {
15
14
  read: MeetingPassageReader;
16
15
  signal: () => AbortSignal | undefined;
@@ -1,5 +1,5 @@
1
1
  import { CliError } from "@wirecat/cli-base";
2
- import { annotate } from "@wirecat/cli-base/commands";
2
+ import { annotate, sharedCommand } from "@wirecat/cli-base/commands";
3
3
  import { Option } from "commander";
4
4
  import { validateMeetingPassage, } from "../passage.js";
5
5
  const count = (value) => {
@@ -21,7 +21,7 @@ export const meetingPassageRequest = (reference, options, signal) => {
21
21
  signal?.throwIfAborted();
22
22
  return input;
23
23
  };
24
- export const createMeetingPassageCommand = (program) => {
24
+ const createMeetingPassageCommandDefinition = (program) => {
25
25
  const meetings = program.commands.find((command) => command.name() === "meetings");
26
26
  if (!meetings)
27
27
  throw new CliError("configuration_error", "meeting command group is unavailable");
@@ -44,7 +44,7 @@ export const createMeetingPassageCommand = (program) => {
44
44
  });
45
45
  };
46
46
  /** The host fixes account scope, connection lifetime and final rendering/output limits. */
47
- export const addMeetingPassageCommand = (program, deps) => createMeetingPassageCommand(program).action(async (reference, options, command) => {
47
+ const addMeetingPassageCommandDefinition = (program, deps) => createMeetingPassageCommand(program).action(async (reference, options, command) => {
48
48
  const globals = command.optsWithGlobals();
49
49
  const format = globals.json || globals.jsonl ? "json" : (options.format ?? "text");
50
50
  const input = meetingPassageRequest(reference, { ...options, format }, deps.signal());
@@ -52,3 +52,5 @@ export const addMeetingPassageCommand = (program, deps) => createMeetingPassageC
52
52
  input.signal?.throwIfAborted();
53
53
  deps.output(result, format);
54
54
  });
55
+ export const createMeetingPassageCommand = sharedCommand(createMeetingPassageCommandDefinition);
56
+ export const addMeetingPassageCommand = sharedCommand(addMeetingPassageCommandDefinition);
@@ -1,5 +1,5 @@
1
1
  import { CliError } from "@wirecat/cli-base";
2
- import { annotate } from "@wirecat/cli-base/commands";
2
+ import { annotate, sharedCommand } from "@wirecat/cli-base/commands";
3
3
  import { fieldsHelp } from "@wirecat/cli-base/query";
4
4
  import { readMeetingProjectEvidence } from "../project-evidence.js";
5
5
  import { MEETING_PROJECT_EVIDENCE_QUERY } from "../project-evidence-query.js";
@@ -9,7 +9,7 @@ const integer = (value) => {
9
9
  throw new CliError("validation_error", "expected a positive safe integer");
10
10
  return Number(value);
11
11
  };
12
- export const addMeetingProjectEvidenceCommand = (program, deps) => {
12
+ const addMeetingProjectEvidenceCommandDefinition = (program, deps) => {
13
13
  const group = program.commands.find((command) => command.name() === "meetings");
14
14
  if (!group)
15
15
  throw new CliError("configuration_error", "meeting command group is unavailable");
@@ -33,3 +33,4 @@ export const addMeetingProjectEvidenceCommand = (program, deps) => {
33
33
  output: { entity: "meeting_project_evidence" },
34
34
  });
35
35
  };
36
+ export const addMeetingProjectEvidenceCommand = sharedCommand(addMeetingProjectEvidenceCommandDefinition);
@@ -12,6 +12,7 @@ export interface MeetingSearchFlags {
12
12
  project?: string;
13
13
  tag?: string;
14
14
  topic?: string;
15
+ topicName?: string;
15
16
  sinceTime?: number;
16
17
  untilTime?: number;
17
18
  /** The zone a date or time without one was read in; the parser sets it, since the typed text is gone after. */
@@ -20,14 +21,13 @@ export interface MeetingSearchFlags {
20
21
  cursor?: string;
21
22
  maxReadBytes?: number;
22
23
  }
23
- /** Shared grammar without an action: a host with other source reports supplies their transport routing. */
24
- export declare const createMeetingSearchCommand: (program: Command) => Command;
25
24
  /** Transport fields become one validated word request before a host opens its selected source. */
26
25
  export declare const meetingHitSearchRequest: (query: string, options: MeetingSearchFlags, signal?: AbortSignal) => MeetingHitSearchOptions;
27
26
  /** Parsed dates must become ISO values again so the CLI can replay its own continuation. */
28
27
  export declare const meetingSearchArguments: (query: string, options: MeetingSearchFlags) => Record<string, unknown>;
29
28
  /** What `meta` says about the dates: the zone one without its own was read in, and the window in UTC. */
30
29
  export declare const meetingSearchMeta: (options: MeetingSearchFlags) => Pick<Meta, "timezone" | "window">;
30
+ export declare const createMeetingSearchCommand: (program: Command) => Command;
31
31
  export declare const addMeetingSearchCommand: (program: Command, deps: {
32
32
  search: (query: string, request: MeetingHitSearchOptions, options: MeetingSearchFlags & Record<string, unknown>) => Promise<MeetingSearchPage>;
33
33
  signal: () => AbortSignal | undefined;