@agimon-ai/doompi-minor-mode 0.0.1-alpha.100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +3 -0
- package/dist/apiContracts.cjs +17 -0
- package/dist/apiContracts.cjs.map +1 -0
- package/dist/apiContracts.d.mts +53 -0
- package/dist/apiContracts.d.mts.map +1 -0
- package/dist/apiContracts.mjs +13 -0
- package/dist/apiContracts.mjs.map +1 -0
- package/dist/catalog-8apySKXB.mjs +222 -0
- package/dist/catalog-8apySKXB.mjs.map +1 -0
- package/dist/catalog-jTd7UXiI.cjs +227 -0
- package/dist/catalog-jTd7UXiI.cjs.map +1 -0
- package/dist/catalog.cjs +3 -0
- package/dist/catalog.d.mts +14 -0
- package/dist/catalog.d.mts.map +1 -0
- package/dist/catalog.mjs +2 -0
- package/dist/command-B5HZmmyU.cjs +11 -0
- package/dist/command-B5HZmmyU.cjs.map +1 -0
- package/dist/command-BvYpwiin.mjs +6 -0
- package/dist/command-BvYpwiin.mjs.map +1 -0
- package/dist/command-C4u3oOPT.mjs +128 -0
- package/dist/command-C4u3oOPT.mjs.map +1 -0
- package/dist/command-D9hQfJb_.cjs +151 -0
- package/dist/command-D9hQfJb_.cjs.map +1 -0
- package/dist/command.cjs +8 -0
- package/dist/command.d.mts +6 -0
- package/dist/command.d.mts.map +1 -0
- package/dist/command.mjs +3 -0
- package/dist/extensions/pi.cjs +181 -0
- package/dist/extensions/pi.cjs.map +1 -0
- package/dist/extensions/pi.d.mts +5 -0
- package/dist/extensions/pi.d.mts.map +1 -0
- package/dist/extensions/pi.mjs +176 -0
- package/dist/extensions/pi.mjs.map +1 -0
- package/dist/extensions/server.cjs +134 -0
- package/dist/extensions/server.cjs.map +1 -0
- package/dist/extensions/server.d.mts +5 -0
- package/dist/extensions/server.d.mts.map +1 -0
- package/dist/extensions/server.mjs +129 -0
- package/dist/extensions/server.mjs.map +1 -0
- package/dist/headlessCommand-BJhocUje.mjs +53 -0
- package/dist/headlessCommand-BJhocUje.mjs.map +1 -0
- package/dist/headlessCommand-CaFFcvJA.cjs +58 -0
- package/dist/headlessCommand-CaFFcvJA.cjs.map +1 -0
- package/dist/index-COS4uLcb.d.mts +24 -0
- package/dist/index-COS4uLcb.d.mts.map +1 -0
- package/dist/index-DEjyk6tg.d.mts +8 -0
- package/dist/index-DEjyk6tg.d.mts.map +1 -0
- package/dist/index-DSKnT657.d.mts +31 -0
- package/dist/index-DSKnT657.d.mts.map +1 -0
- package/dist/index.cjs +180 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.mts +53 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +136 -0
- package/dist/index.mjs.map +1 -0
- package/dist/minorModeCommand.cjs +5 -0
- package/dist/minorModeCommand.d.mts +2 -0
- package/dist/minorModeCommand.mjs +2 -0
- package/dist/mode-BwRkDqO4.mjs +241 -0
- package/dist/mode-BwRkDqO4.mjs.map +1 -0
- package/dist/mode-Dft08ke8.cjs +444 -0
- package/dist/mode-Dft08ke8.cjs.map +1 -0
- package/dist/mode-EZWqhrYy.d.mts +492 -0
- package/dist/mode-EZWqhrYy.d.mts.map +1 -0
- package/dist/mode.cjs +36 -0
- package/dist/mode.d.mts +2 -0
- package/dist/mode.mjs +2 -0
- package/dist/modeDefinition-BcqEwTzh.mjs +46 -0
- package/dist/modeDefinition-BcqEwTzh.mjs.map +1 -0
- package/dist/modeDefinition-BtgwqXMo.cjs +51 -0
- package/dist/modeDefinition-BtgwqXMo.cjs.map +1 -0
- package/dist/modeDefinition.cjs +3 -0
- package/dist/modeDefinition.d.mts +2 -0
- package/dist/modeDefinition.mjs +2 -0
- package/dist/owner-BbCQufLu.cjs +14 -0
- package/dist/owner-BbCQufLu.cjs.map +1 -0
- package/dist/owner-Bs55c_qE.mjs +9 -0
- package/dist/owner-Bs55c_qE.mjs.map +1 -0
- package/dist/owner.cjs +3 -0
- package/dist/owner.d.mts +2 -0
- package/dist/owner.mjs +2 -0
- package/dist/projection-Cy1LWVIe.mjs +47 -0
- package/dist/projection-Cy1LWVIe.mjs.map +1 -0
- package/dist/projection-DYOm9Kev.cjs +58 -0
- package/dist/projection-DYOm9Kev.cjs.map +1 -0
- package/dist/projection.cjs +4 -0
- package/dist/projection.d.mts +12 -0
- package/dist/projection.d.mts.map +1 -0
- package/dist/projection.mjs +2 -0
- package/dist/reloadHandoff-C-GaCf0F.cjs +71 -0
- package/dist/reloadHandoff-C-GaCf0F.cjs.map +1 -0
- package/dist/reloadHandoff-D1QsS9qd.mjs +54 -0
- package/dist/reloadHandoff-D1QsS9qd.mjs.map +1 -0
- package/dist/reloadHandoff.cjs +5 -0
- package/dist/reloadHandoff.d.mts +11 -0
- package/dist/reloadHandoff.d.mts.map +1 -0
- package/dist/reloadHandoff.mjs +2 -0
- package/dist/validation-BuQc8UrL.mjs +81 -0
- package/dist/validation-BuQc8UrL.mjs.map +1 -0
- package/dist/validation-DRV8Dtoc.cjs +104 -0
- package/dist/validation-DRV8Dtoc.cjs.map +1 -0
- package/package.json +157 -0
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { Type } from "typebox";
|
|
2
|
+
//#region src/schemas/mode.ts
|
|
3
|
+
const MINOR_MODE_CATALOG_SOURCE = "@agimon-ai/doompi/mode-catalog";
|
|
4
|
+
const DOOM_MINOR_MODE_CATALOG_SERVICE = "doom/minor-mode-catalog";
|
|
5
|
+
const MINOR_MODE_TOOL_NAME = "minor_mode";
|
|
6
|
+
const MINOR_MODE_ACTION_TIMEOUT_MS = 3e4;
|
|
7
|
+
const MINOR_MODE_MAX_RECORDS = 128;
|
|
8
|
+
const MINOR_MODE_MAX_ACTIONS = 16;
|
|
9
|
+
const MINOR_MODE_MAX_PARAMETERS = 16;
|
|
10
|
+
const MINOR_MODE_MAX_ENUM_CHOICES = 32;
|
|
11
|
+
const MINOR_MODE_MAX_ARGUMENT_LENGTH = 4096;
|
|
12
|
+
const MAX_SOURCE_LENGTH = 128;
|
|
13
|
+
const MAX_ID_LENGTH = 128;
|
|
14
|
+
const MAX_GENERATION_LENGTH = 256;
|
|
15
|
+
const MAX_LABEL_LENGTH = 48;
|
|
16
|
+
const MAX_DESCRIPTION_LENGTH = 240;
|
|
17
|
+
const MAX_DETAIL_LENGTH = 160;
|
|
18
|
+
const MINOR_MODE_ERROR_CODE = {
|
|
19
|
+
actionAborted: "MINOR_MODE_ACTION_ABORTED",
|
|
20
|
+
actionDisabled: "MINOR_MODE_ACTION_DISABLED",
|
|
21
|
+
actionNotFound: "MINOR_MODE_ACTION_NOT_FOUND",
|
|
22
|
+
actionTimeout: "MINOR_MODE_ACTION_TIMEOUT",
|
|
23
|
+
invalidArguments: "MINOR_MODE_INVALID_ARGUMENTS",
|
|
24
|
+
modeBusy: "MINOR_MODE_BUSY",
|
|
25
|
+
modeNotFound: "MINOR_MODE_NOT_FOUND",
|
|
26
|
+
ownerFailed: "MINOR_MODE_OWNER_FAILED",
|
|
27
|
+
registrationConflict: "MINOR_MODE_REGISTRATION_CONFLICT",
|
|
28
|
+
sessionReplaced: "MINOR_MODE_SESSION_REPLACED",
|
|
29
|
+
staleRegistration: "MINOR_MODE_STALE_REGISTRATION",
|
|
30
|
+
unsupportedContext: "MINOR_MODE_UNSUPPORTED_CONTEXT"
|
|
31
|
+
};
|
|
32
|
+
const MinorModeSourceSchema = Type.String({
|
|
33
|
+
minLength: 1,
|
|
34
|
+
maxLength: MAX_SOURCE_LENGTH,
|
|
35
|
+
pattern: "^[A-Za-z0-9@][A-Za-z0-9@/._:-]*$"
|
|
36
|
+
});
|
|
37
|
+
const MinorModeIdSchema = Type.String({
|
|
38
|
+
minLength: 1,
|
|
39
|
+
maxLength: MAX_ID_LENGTH,
|
|
40
|
+
pattern: "^[a-z0-9][a-z0-9._:-]*$"
|
|
41
|
+
});
|
|
42
|
+
const MinorModeParameterNameSchema = Type.String({
|
|
43
|
+
minLength: 1,
|
|
44
|
+
maxLength: MAX_ID_LENGTH,
|
|
45
|
+
pattern: "^[a-z][A-Za-z0-9._:-]*$"
|
|
46
|
+
});
|
|
47
|
+
const GenerationSchema = Type.String({
|
|
48
|
+
minLength: 1,
|
|
49
|
+
maxLength: MAX_GENERATION_LENGTH
|
|
50
|
+
});
|
|
51
|
+
const LabelSchema = Type.String({
|
|
52
|
+
minLength: 1,
|
|
53
|
+
maxLength: MAX_LABEL_LENGTH
|
|
54
|
+
});
|
|
55
|
+
const DescriptionSchema = Type.String({
|
|
56
|
+
minLength: 1,
|
|
57
|
+
maxLength: MAX_DESCRIPTION_LENGTH
|
|
58
|
+
});
|
|
59
|
+
const OperationIdSchema = Type.String({
|
|
60
|
+
minLength: 1,
|
|
61
|
+
maxLength: MAX_GENERATION_LENGTH
|
|
62
|
+
});
|
|
63
|
+
const ModeTextColorSchema = Type.Union([
|
|
64
|
+
Type.Literal("accent"),
|
|
65
|
+
Type.Literal("warning"),
|
|
66
|
+
Type.Literal("mdHeading"),
|
|
67
|
+
Type.Literal("muted"),
|
|
68
|
+
Type.Literal("dim")
|
|
69
|
+
]);
|
|
70
|
+
const MinorModeSessionKindSchema = Type.Union([Type.Literal("tui"), Type.Literal("headless")]);
|
|
71
|
+
const MinorModeActivationSchema = Type.Union([
|
|
72
|
+
Type.Literal("inactive"),
|
|
73
|
+
Type.Literal("activating"),
|
|
74
|
+
Type.Literal("active"),
|
|
75
|
+
Type.Literal("deactivating")
|
|
76
|
+
]);
|
|
77
|
+
const MinorModeConditionSchema = Type.Union([
|
|
78
|
+
Type.Literal("ready"),
|
|
79
|
+
Type.Literal("paused"),
|
|
80
|
+
Type.Literal("blocked"),
|
|
81
|
+
Type.Literal("limited"),
|
|
82
|
+
Type.Literal("queued"),
|
|
83
|
+
Type.Literal("degraded"),
|
|
84
|
+
Type.Literal("failed")
|
|
85
|
+
]);
|
|
86
|
+
const MinorModeScalarSchema = Type.Union([
|
|
87
|
+
Type.String({ maxLength: MINOR_MODE_MAX_ARGUMENT_LENGTH }),
|
|
88
|
+
Type.Number(),
|
|
89
|
+
Type.Boolean()
|
|
90
|
+
]);
|
|
91
|
+
const ParameterBase = {
|
|
92
|
+
name: MinorModeParameterNameSchema,
|
|
93
|
+
label: LabelSchema,
|
|
94
|
+
description: Type.Optional(DescriptionSchema),
|
|
95
|
+
required: Type.Boolean()
|
|
96
|
+
};
|
|
97
|
+
const MinorModeActionParameterSchema = Type.Union([
|
|
98
|
+
Type.Object({
|
|
99
|
+
...ParameterBase,
|
|
100
|
+
kind: Type.Literal("string"),
|
|
101
|
+
minLength: Type.Optional(Type.Integer({
|
|
102
|
+
minimum: 0,
|
|
103
|
+
maximum: MINOR_MODE_MAX_ARGUMENT_LENGTH
|
|
104
|
+
})),
|
|
105
|
+
maxLength: Type.Optional(Type.Integer({
|
|
106
|
+
minimum: 1,
|
|
107
|
+
maximum: MINOR_MODE_MAX_ARGUMENT_LENGTH
|
|
108
|
+
}))
|
|
109
|
+
}, { additionalProperties: false }),
|
|
110
|
+
Type.Object({
|
|
111
|
+
...ParameterBase,
|
|
112
|
+
kind: Type.Literal("number"),
|
|
113
|
+
integer: Type.Optional(Type.Boolean()),
|
|
114
|
+
minimum: Type.Optional(Type.Number()),
|
|
115
|
+
maximum: Type.Optional(Type.Number())
|
|
116
|
+
}, { additionalProperties: false }),
|
|
117
|
+
Type.Object({
|
|
118
|
+
...ParameterBase,
|
|
119
|
+
kind: Type.Literal("boolean")
|
|
120
|
+
}, { additionalProperties: false }),
|
|
121
|
+
Type.Object({
|
|
122
|
+
...ParameterBase,
|
|
123
|
+
kind: Type.Literal("enum"),
|
|
124
|
+
choices: Type.Array(Type.Object({
|
|
125
|
+
value: Type.String({
|
|
126
|
+
minLength: 1,
|
|
127
|
+
maxLength: MAX_ID_LENGTH
|
|
128
|
+
}),
|
|
129
|
+
label: LabelSchema
|
|
130
|
+
}, { additionalProperties: false }), {
|
|
131
|
+
minItems: 1,
|
|
132
|
+
maxItems: 32
|
|
133
|
+
})
|
|
134
|
+
}, { additionalProperties: false })
|
|
135
|
+
]);
|
|
136
|
+
const MinorModeActionDescriptorSchema = Type.Object({
|
|
137
|
+
id: MinorModeIdSchema,
|
|
138
|
+
label: LabelSchema,
|
|
139
|
+
description: DescriptionSchema,
|
|
140
|
+
contexts: Type.Array(MinorModeSessionKindSchema, {
|
|
141
|
+
minItems: 1,
|
|
142
|
+
maxItems: 2,
|
|
143
|
+
uniqueItems: true
|
|
144
|
+
}),
|
|
145
|
+
parameters: Type.Array(MinorModeActionParameterSchema, { maxItems: 16 })
|
|
146
|
+
}, { additionalProperties: false });
|
|
147
|
+
const MinorModeDescriptorSchema = Type.Object({
|
|
148
|
+
source: MinorModeSourceSchema,
|
|
149
|
+
id: MinorModeIdSchema,
|
|
150
|
+
label: LabelSchema,
|
|
151
|
+
description: DescriptionSchema,
|
|
152
|
+
order: Type.Integer({
|
|
153
|
+
minimum: 0,
|
|
154
|
+
maximum: 1e3
|
|
155
|
+
}),
|
|
156
|
+
actions: Type.Array(MinorModeActionDescriptorSchema, { maxItems: 16 })
|
|
157
|
+
}, { additionalProperties: false });
|
|
158
|
+
const MinorModeActionAvailabilitySchema = Type.Object({
|
|
159
|
+
id: MinorModeIdSchema,
|
|
160
|
+
enabled: Type.Boolean(),
|
|
161
|
+
disabledReason: Type.Optional(Type.String({
|
|
162
|
+
minLength: 1,
|
|
163
|
+
maxLength: MAX_DETAIL_LENGTH
|
|
164
|
+
}))
|
|
165
|
+
}, { additionalProperties: false });
|
|
166
|
+
const MinorModeStateSchema = Type.Object({
|
|
167
|
+
activation: MinorModeActivationSchema,
|
|
168
|
+
condition: MinorModeConditionSchema,
|
|
169
|
+
detail: Type.Optional(Type.String({
|
|
170
|
+
minLength: 1,
|
|
171
|
+
maxLength: MAX_DETAIL_LENGTH
|
|
172
|
+
})),
|
|
173
|
+
color: Type.Optional(ModeTextColorSchema),
|
|
174
|
+
modelContextVariant: Type.Optional(Type.String({
|
|
175
|
+
minLength: 1,
|
|
176
|
+
maxLength: MAX_ID_LENGTH
|
|
177
|
+
})),
|
|
178
|
+
actions: Type.Array(MinorModeActionAvailabilitySchema, { maxItems: 16 })
|
|
179
|
+
}, { additionalProperties: false });
|
|
180
|
+
const MinorModeRegistrationRefSchema = Type.Object({
|
|
181
|
+
source: MinorModeSourceSchema,
|
|
182
|
+
id: MinorModeIdSchema,
|
|
183
|
+
ownerGeneration: GenerationSchema,
|
|
184
|
+
registrationId: GenerationSchema
|
|
185
|
+
}, { additionalProperties: false });
|
|
186
|
+
const MinorModeRecordSchema = Type.Object({
|
|
187
|
+
descriptor: MinorModeDescriptorSchema,
|
|
188
|
+
state: MinorModeStateSchema,
|
|
189
|
+
ownerGeneration: GenerationSchema,
|
|
190
|
+
registrationId: GenerationSchema,
|
|
191
|
+
stateRevision: Type.Integer({ minimum: 0 })
|
|
192
|
+
}, { additionalProperties: false });
|
|
193
|
+
const MinorModeCatalogSnapshotSchema = Type.Object({
|
|
194
|
+
hostGeneration: GenerationSchema,
|
|
195
|
+
revision: Type.Integer({ minimum: 0 }),
|
|
196
|
+
modes: Type.Array(MinorModeRecordSchema, { maxItems: 128 })
|
|
197
|
+
}, { additionalProperties: false });
|
|
198
|
+
const MinorModeArgumentsSchema = Type.Record(MinorModeParameterNameSchema, MinorModeScalarSchema, { maxProperties: 16 });
|
|
199
|
+
const MinorModeToolInputSchema = Type.Object({
|
|
200
|
+
action: Type.Union([Type.Literal("list"), Type.Literal("invoke")]),
|
|
201
|
+
source: Type.Optional(MinorModeSourceSchema),
|
|
202
|
+
id: Type.Optional(MinorModeIdSchema),
|
|
203
|
+
ownerGeneration: Type.Optional(GenerationSchema),
|
|
204
|
+
registrationId: Type.Optional(GenerationSchema),
|
|
205
|
+
modeAction: Type.Optional(MinorModeIdSchema),
|
|
206
|
+
arguments: Type.Optional(MinorModeArgumentsSchema)
|
|
207
|
+
}, { additionalProperties: false });
|
|
208
|
+
const MinorModeToolResultSchema = Type.Unknown();
|
|
209
|
+
const MinorModeActionRequestSchema = Type.Object({
|
|
210
|
+
operationId: OperationIdSchema,
|
|
211
|
+
mode: MinorModeRegistrationRefSchema,
|
|
212
|
+
actionId: MinorModeIdSchema,
|
|
213
|
+
arguments: MinorModeArgumentsSchema
|
|
214
|
+
}, { additionalProperties: false });
|
|
215
|
+
const MinorModeActionResponseSchema = Type.Object({
|
|
216
|
+
operationId: OperationIdSchema,
|
|
217
|
+
catalogRevision: Type.Integer({ minimum: 0 }),
|
|
218
|
+
mode: MinorModeRecordSchema,
|
|
219
|
+
message: Type.Optional(Type.String({
|
|
220
|
+
minLength: 1,
|
|
221
|
+
maxLength: MAX_DETAIL_LENGTH
|
|
222
|
+
}))
|
|
223
|
+
}, { additionalProperties: false });
|
|
224
|
+
/**
|
|
225
|
+
* The custom session entry the catalog host journals whenever its projection
|
|
226
|
+
* changes. It rides Pi's entry_appended frames, so any RPC client (the web
|
|
227
|
+
* cockpit) sees minor-mode state live and on replay without a new protocol.
|
|
228
|
+
*/
|
|
229
|
+
const DOOM_MINOR_MODE_ENTRY_TYPE = "doom-minor-modes";
|
|
230
|
+
function readMinorModeCatalog(context) {
|
|
231
|
+
return context.get(DOOM_MINOR_MODE_CATALOG_SERVICE);
|
|
232
|
+
}
|
|
233
|
+
function requireMinorModeCatalog(context) {
|
|
234
|
+
const catalog = readMinorModeCatalog(context);
|
|
235
|
+
if (!catalog) throw new Error("Doom minor-mode catalog is unavailable.");
|
|
236
|
+
return catalog;
|
|
237
|
+
}
|
|
238
|
+
//#endregion
|
|
239
|
+
export { MinorModeToolInputSchema as A, MinorModeParameterNameSchema as C, MinorModeSessionKindSchema as D, MinorModeScalarSchema as E, ModeTextColorSchema as M, readMinorModeCatalog as N, MinorModeSourceSchema as O, requireMinorModeCatalog as P, MinorModeIdSchema as S, MinorModeRegistrationRefSchema as T, MinorModeActivationSchema as _, MINOR_MODE_ERROR_CODE as a, MinorModeConditionSchema as b, MINOR_MODE_MAX_ENUM_CHOICES as c, MINOR_MODE_TOOL_NAME as d, MinorModeActionAvailabilitySchema as f, MinorModeActionResponseSchema as g, MinorModeActionRequestSchema as h, MINOR_MODE_CATALOG_SOURCE as i, MinorModeToolResultSchema as j, MinorModeStateSchema as k, MINOR_MODE_MAX_PARAMETERS as l, MinorModeActionParameterSchema as m, DOOM_MINOR_MODE_ENTRY_TYPE as n, MINOR_MODE_MAX_ACTIONS as o, MinorModeActionDescriptorSchema as p, MINOR_MODE_ACTION_TIMEOUT_MS as r, MINOR_MODE_MAX_ARGUMENT_LENGTH as s, DOOM_MINOR_MODE_CATALOG_SERVICE as t, MINOR_MODE_MAX_RECORDS as u, MinorModeArgumentsSchema as v, MinorModeRecordSchema as w, MinorModeDescriptorSchema as x, MinorModeCatalogSnapshotSchema as y };
|
|
240
|
+
|
|
241
|
+
//# sourceMappingURL=mode-BwRkDqO4.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mode-BwRkDqO4.mjs","names":[],"sources":["../src/schemas/mode.ts"],"sourcesContent":["import type { DoomExtensionContext } from '@agimon-ai/doompi-core/runtimeConfig';\nimport type { Context } from '@deepseek-ai/cordis';\nimport { type Static, Type } from 'typebox';\n\nexport const MINOR_MODE_CATALOG_SOURCE = '@agimon-ai/doompi/mode-catalog';\nexport const DOOM_MINOR_MODE_CATALOG_SERVICE = 'doom/minor-mode-catalog';\nexport const MINOR_MODE_TOOL_NAME = 'minor_mode';\nexport const MINOR_MODE_ACTION_TIMEOUT_MS = 30_000;\nexport const MINOR_MODE_MAX_RECORDS = 128;\nexport const MINOR_MODE_MAX_ACTIONS = 16;\nexport const MINOR_MODE_MAX_PARAMETERS = 16;\nexport const MINOR_MODE_MAX_ENUM_CHOICES = 32;\nexport const MINOR_MODE_MAX_ARGUMENT_LENGTH = 4_096;\n\nconst MAX_SOURCE_LENGTH = 128;\nconst MAX_ID_LENGTH = 128;\nconst MAX_GENERATION_LENGTH = 256;\nconst MAX_LABEL_LENGTH = 48;\nconst MAX_DESCRIPTION_LENGTH = 240;\nconst MAX_DETAIL_LENGTH = 160;\n\nexport const MINOR_MODE_ERROR_CODE = {\n actionAborted: 'MINOR_MODE_ACTION_ABORTED',\n actionDisabled: 'MINOR_MODE_ACTION_DISABLED',\n actionNotFound: 'MINOR_MODE_ACTION_NOT_FOUND',\n actionTimeout: 'MINOR_MODE_ACTION_TIMEOUT',\n invalidArguments: 'MINOR_MODE_INVALID_ARGUMENTS',\n modeBusy: 'MINOR_MODE_BUSY',\n modeNotFound: 'MINOR_MODE_NOT_FOUND',\n ownerFailed: 'MINOR_MODE_OWNER_FAILED',\n registrationConflict: 'MINOR_MODE_REGISTRATION_CONFLICT',\n sessionReplaced: 'MINOR_MODE_SESSION_REPLACED',\n staleRegistration: 'MINOR_MODE_STALE_REGISTRATION',\n unsupportedContext: 'MINOR_MODE_UNSUPPORTED_CONTEXT',\n} as const;\n\nexport const MinorModeSourceSchema = Type.String({\n minLength: 1,\n maxLength: MAX_SOURCE_LENGTH,\n pattern: '^[A-Za-z0-9@][A-Za-z0-9@/._:-]*$',\n});\nexport const MinorModeIdSchema = Type.String({\n minLength: 1,\n maxLength: MAX_ID_LENGTH,\n pattern: '^[a-z0-9][a-z0-9._:-]*$',\n});\nexport const MinorModeParameterNameSchema = Type.String({\n minLength: 1,\n maxLength: MAX_ID_LENGTH,\n pattern: '^[a-z][A-Za-z0-9._:-]*$',\n});\nconst GenerationSchema = Type.String({ minLength: 1, maxLength: MAX_GENERATION_LENGTH });\nconst LabelSchema = Type.String({ minLength: 1, maxLength: MAX_LABEL_LENGTH });\nconst DescriptionSchema = Type.String({ minLength: 1, maxLength: MAX_DESCRIPTION_LENGTH });\nconst OperationIdSchema = Type.String({ minLength: 1, maxLength: MAX_GENERATION_LENGTH });\n\nexport const ModeTextColorSchema = Type.Union([\n Type.Literal('accent'),\n Type.Literal('warning'),\n Type.Literal('mdHeading'),\n Type.Literal('muted'),\n Type.Literal('dim'),\n]);\nexport type ModeTextColor = Static<typeof ModeTextColorSchema>;\n\nexport const MinorModeSessionKindSchema = Type.Union([Type.Literal('tui'), Type.Literal('headless')]);\nexport type MinorModeSessionKind = Static<typeof MinorModeSessionKindSchema>;\n\nexport const MinorModeActivationSchema = Type.Union([\n Type.Literal('inactive'),\n Type.Literal('activating'),\n Type.Literal('active'),\n Type.Literal('deactivating'),\n]);\nexport type MinorModeActivation = Static<typeof MinorModeActivationSchema>;\n\nexport const MinorModeConditionSchema = Type.Union([\n Type.Literal('ready'),\n Type.Literal('paused'),\n Type.Literal('blocked'),\n Type.Literal('limited'),\n Type.Literal('queued'),\n Type.Literal('degraded'),\n Type.Literal('failed'),\n]);\nexport type MinorModeCondition = Static<typeof MinorModeConditionSchema>;\n\nexport const MinorModeScalarSchema = Type.Union([\n Type.String({ maxLength: MINOR_MODE_MAX_ARGUMENT_LENGTH }),\n Type.Number(),\n Type.Boolean(),\n]);\nexport type MinorModeScalar = Static<typeof MinorModeScalarSchema>;\n\nconst ParameterBase = {\n name: MinorModeParameterNameSchema,\n label: LabelSchema,\n description: Type.Optional(DescriptionSchema),\n required: Type.Boolean(),\n};\n\nexport const MinorModeActionParameterSchema = Type.Union([\n Type.Object(\n {\n ...ParameterBase,\n kind: Type.Literal('string'),\n minLength: Type.Optional(Type.Integer({ minimum: 0, maximum: MINOR_MODE_MAX_ARGUMENT_LENGTH })),\n maxLength: Type.Optional(Type.Integer({ minimum: 1, maximum: MINOR_MODE_MAX_ARGUMENT_LENGTH })),\n },\n { additionalProperties: false },\n ),\n Type.Object(\n {\n ...ParameterBase,\n kind: Type.Literal('number'),\n integer: Type.Optional(Type.Boolean()),\n minimum: Type.Optional(Type.Number()),\n maximum: Type.Optional(Type.Number()),\n },\n { additionalProperties: false },\n ),\n Type.Object({ ...ParameterBase, kind: Type.Literal('boolean') }, { additionalProperties: false }),\n Type.Object(\n {\n ...ParameterBase,\n kind: Type.Literal('enum'),\n choices: Type.Array(\n Type.Object(\n {\n value: Type.String({ minLength: 1, maxLength: MAX_ID_LENGTH }),\n label: LabelSchema,\n },\n { additionalProperties: false },\n ),\n { minItems: 1, maxItems: MINOR_MODE_MAX_ENUM_CHOICES },\n ),\n },\n { additionalProperties: false },\n ),\n]);\nexport type MinorModeActionParameter = Static<typeof MinorModeActionParameterSchema>;\n\nexport const MinorModeActionDescriptorSchema = Type.Object(\n {\n id: MinorModeIdSchema,\n label: LabelSchema,\n description: DescriptionSchema,\n contexts: Type.Array(MinorModeSessionKindSchema, { minItems: 1, maxItems: 2, uniqueItems: true }),\n parameters: Type.Array(MinorModeActionParameterSchema, { maxItems: MINOR_MODE_MAX_PARAMETERS }),\n },\n { additionalProperties: false },\n);\nexport type MinorModeActionDescriptor = Static<typeof MinorModeActionDescriptorSchema>;\n\nexport const MinorModeDescriptorSchema = Type.Object(\n {\n source: MinorModeSourceSchema,\n id: MinorModeIdSchema,\n label: LabelSchema,\n description: DescriptionSchema,\n order: Type.Integer({ minimum: 0, maximum: 1_000 }),\n actions: Type.Array(MinorModeActionDescriptorSchema, { maxItems: MINOR_MODE_MAX_ACTIONS }),\n },\n { additionalProperties: false },\n);\nexport type MinorModeDescriptor = Static<typeof MinorModeDescriptorSchema>;\n\nexport const MinorModeActionAvailabilitySchema = Type.Object(\n {\n id: MinorModeIdSchema,\n enabled: Type.Boolean(),\n disabledReason: Type.Optional(Type.String({ minLength: 1, maxLength: MAX_DETAIL_LENGTH })),\n },\n { additionalProperties: false },\n);\nexport type MinorModeActionAvailability = Static<typeof MinorModeActionAvailabilitySchema>;\n\nexport const MinorModeStateSchema = Type.Object(\n {\n activation: MinorModeActivationSchema,\n condition: MinorModeConditionSchema,\n detail: Type.Optional(Type.String({ minLength: 1, maxLength: MAX_DETAIL_LENGTH })),\n color: Type.Optional(ModeTextColorSchema),\n modelContextVariant: Type.Optional(Type.String({ minLength: 1, maxLength: MAX_ID_LENGTH })),\n actions: Type.Array(MinorModeActionAvailabilitySchema, { maxItems: MINOR_MODE_MAX_ACTIONS }),\n },\n { additionalProperties: false },\n);\nexport type MinorModeState = Static<typeof MinorModeStateSchema>;\n\nexport const MinorModeRegistrationRefSchema = Type.Object(\n {\n source: MinorModeSourceSchema,\n id: MinorModeIdSchema,\n ownerGeneration: GenerationSchema,\n registrationId: GenerationSchema,\n },\n { additionalProperties: false },\n);\nexport type MinorModeRegistrationRef = Static<typeof MinorModeRegistrationRefSchema>;\n\nexport const MinorModeRecordSchema = Type.Object(\n {\n descriptor: MinorModeDescriptorSchema,\n state: MinorModeStateSchema,\n ownerGeneration: GenerationSchema,\n registrationId: GenerationSchema,\n stateRevision: Type.Integer({ minimum: 0 }),\n },\n { additionalProperties: false },\n);\nexport type MinorModeRecord = Static<typeof MinorModeRecordSchema>;\n\nexport const MinorModeCatalogSnapshotSchema = Type.Object(\n {\n hostGeneration: GenerationSchema,\n revision: Type.Integer({ minimum: 0 }),\n modes: Type.Array(MinorModeRecordSchema, { maxItems: MINOR_MODE_MAX_RECORDS }),\n },\n { additionalProperties: false },\n);\nexport type MinorModeCatalogSnapshot = Static<typeof MinorModeCatalogSnapshotSchema>;\n\nexport const MinorModeArgumentsSchema = Type.Record(MinorModeParameterNameSchema, MinorModeScalarSchema, {\n maxProperties: MINOR_MODE_MAX_PARAMETERS,\n});\nexport type MinorModeArguments = Static<typeof MinorModeArgumentsSchema>;\n\nexport const MinorModeToolInputSchema = Type.Object(\n {\n action: Type.Union([Type.Literal('list'), Type.Literal('invoke')]),\n source: Type.Optional(MinorModeSourceSchema),\n id: Type.Optional(MinorModeIdSchema),\n ownerGeneration: Type.Optional(GenerationSchema),\n registrationId: Type.Optional(GenerationSchema),\n modeAction: Type.Optional(MinorModeIdSchema),\n arguments: Type.Optional(MinorModeArgumentsSchema),\n },\n { additionalProperties: false },\n);\nexport type MinorModeToolInput = Static<typeof MinorModeToolInputSchema>;\nexport const MinorModeToolResultSchema = Type.Unknown();\n\nexport const MinorModeActionRequestSchema = Type.Object(\n {\n operationId: OperationIdSchema,\n mode: MinorModeRegistrationRefSchema,\n actionId: MinorModeIdSchema,\n arguments: MinorModeArgumentsSchema,\n },\n { additionalProperties: false },\n);\nexport type MinorModeActionRequest = Static<typeof MinorModeActionRequestSchema>;\n\nexport const MinorModeActionResponseSchema = Type.Object(\n {\n operationId: OperationIdSchema,\n catalogRevision: Type.Integer({ minimum: 0 }),\n mode: MinorModeRecordSchema,\n message: Type.Optional(Type.String({ minLength: 1, maxLength: MAX_DETAIL_LENGTH })),\n },\n { additionalProperties: false },\n);\nexport type MinorModeActionResponse = Static<typeof MinorModeActionResponseSchema>;\n\n/**\n * The custom session entry the catalog host journals whenever its projection\n * changes. It rides Pi's entry_appended frames, so any RPC client (the web\n * cockpit) sees minor-mode state live and on replay without a new protocol.\n */\nexport const DOOM_MINOR_MODE_ENTRY_TYPE = 'doom-minor-modes';\n\nexport interface MinorModeActionProjection {\n readonly id: string;\n readonly label: string;\n readonly description: string;\n readonly enabled: boolean;\n readonly disabledReason?: string;\n /** Whether invoking it needs arguments a client must ask for first. */\n readonly needsInput: boolean;\n}\n\nexport interface MinorModeRecordProjection {\n readonly id: string;\n readonly label: string;\n readonly description: string;\n readonly order: number;\n readonly activation: MinorModeActivation;\n readonly condition: MinorModeCondition;\n readonly detail?: string;\n readonly actions: readonly MinorModeActionProjection[];\n}\n\nexport interface MinorModeProjection {\n readonly version: 1;\n readonly revision: number;\n readonly modes: readonly MinorModeRecordProjection[];\n}\n\nexport interface MinorModeOwnerActionResult {\n message?: string;\n}\n\nexport interface MinorModeOwnerActionContext<ExtensionContext extends DoomExtensionContext> {\n context: ExtensionContext;\n operationId: string;\n sessionKind: MinorModeSessionKind;\n signal: AbortSignal;\n}\n\nexport interface MinorModeOwnerDefinition<ExtensionContext extends DoomExtensionContext> {\n descriptor: MinorModeDescriptor;\n initialState: MinorModeState;\n handleAction(\n actionId: string,\n argumentsValue: MinorModeArguments,\n execution: MinorModeOwnerActionContext<ExtensionContext>,\n ): MinorModeOwnerActionResult | void | Promise<MinorModeOwnerActionResult | void>;\n onError?(error: unknown): void;\n}\n\nexport interface MinorModeOwnerHandle {\n getState(): MinorModeState;\n publish(state: MinorModeState): void;\n dispose(): void;\n}\n\nexport interface MinorModeInvokeOptions {\n readonly signal?: AbortSignal;\n}\n\n/** Direct session-local catalog shared through Cordis. */\nexport interface MinorModeCatalogService {\n readonly generation: string;\n getSnapshot(): MinorModeCatalogSnapshot;\n list(): MinorModeRecord[];\n subscribe(listener: () => void): () => void;\n registerOwner<ExtensionContext extends DoomExtensionContext>(\n definition: MinorModeOwnerDefinition<ExtensionContext>,\n ): MinorModeOwnerHandle;\n invoke(\n request: MinorModeActionRequest,\n requesterSource: string,\n signal?: AbortSignal,\n ): Promise<MinorModeActionResponse>;\n dispose(): void;\n}\n\ndeclare module '@deepseek-ai/cordis' {\n interface Context {\n 'doom/minor-mode-catalog': MinorModeCatalogService;\n }\n}\n\nexport function readMinorModeCatalog(context: Context): MinorModeCatalogService | undefined {\n return context.get(DOOM_MINOR_MODE_CATALOG_SERVICE) as MinorModeCatalogService | undefined;\n}\n\nexport function requireMinorModeCatalog(context: Context): MinorModeCatalogService {\n const catalog = readMinorModeCatalog(context);\n if (!catalog) throw new Error('Doom minor-mode catalog is unavailable.');\n return catalog;\n}\n"],"mappings":"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"}
|