@zonease/happy 0.6.38 → 0.6.39

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 (109) hide show
  1. package/dist/{types-BWpRU1VN.mjs → api-CIZKyfSn.mjs} +136 -1725
  2. package/dist/{types-DvTsFaqR.cjs → api-CwOCQeLH.cjs} +317 -1961
  3. package/dist/auth-0VnlXT9f.mjs +181 -0
  4. package/dist/auth-BE8dD20T.mjs +270 -0
  5. package/dist/auth-BIleVCw0.cjs +274 -0
  6. package/dist/auth-Cas9DR3b.cjs +183 -0
  7. package/dist/browser-Cc08m7of.cjs +22 -0
  8. package/dist/browser-Dll5hxOV.mjs +20 -0
  9. package/dist/claudeLocal-CPT3zcIU.mjs +344 -0
  10. package/dist/claudeLocal-WkgLbl1a.cjs +352 -0
  11. package/dist/codex/happyMcpStdioBridge.cjs +4 -1
  12. package/dist/codex/happyMcpStdioBridge.mjs +4 -1
  13. package/dist/common-BdNgghUJ.mjs +75 -0
  14. package/dist/common-CZvSRU4p.cjs +83 -0
  15. package/dist/{config-0Xnc8ARM.cjs → config-Draa-5XC.cjs} +21 -34
  16. package/dist/{config-_GW4YBCP.mjs → config-rTT4qTU5.mjs} +7 -20
  17. package/dist/connect-BfC1tYP_.mjs +679 -0
  18. package/dist/connect-CJZ73syK.cjs +681 -0
  19. package/dist/{constants-B4x1K7by.cjs → constants-E_UWYTo3.cjs} +2 -2
  20. package/dist/{constants-BO9OAFOT.mjs → constants-pmXZGibX.mjs} +1 -1
  21. package/dist/controlClient-CM_QcJnB.mjs +159 -0
  22. package/dist/controlClient-DZMIsKsT.cjs +168 -0
  23. package/dist/deviceExec-CU1R9CRb.cjs +84 -0
  24. package/dist/deviceExec-D93AOVV4.mjs +81 -0
  25. package/dist/diagnose-B3D1a_v0.cjs +60 -0
  26. package/dist/diagnose-CuRKXxt1.mjs +58 -0
  27. package/dist/doctor-C08m5Z9f.cjs +78 -0
  28. package/dist/doctor-Cya9YSA0.cjs +214 -0
  29. package/dist/doctor-DZYB6IVc.mjs +211 -0
  30. package/dist/doctor-ON7pN5G5.mjs +74 -0
  31. package/dist/downloadImage-DfSFLb-h.mjs +887 -0
  32. package/dist/downloadImage-MQMrUUxS.cjs +897 -0
  33. package/dist/enroll-BxlbVftP.cjs +115 -0
  34. package/dist/enroll-C52x8oly.mjs +113 -0
  35. package/dist/evidence-Ccd9iYcj.mjs +127 -0
  36. package/dist/evidence-CjWBG5rX.cjs +129 -0
  37. package/dist/formatImageMessage-B4lSxlk2.mjs +43 -0
  38. package/dist/formatImageMessage-DbyG8c2j.cjs +46 -0
  39. package/dist/github-DKcyF1zp.mjs +57 -0
  40. package/dist/github-h9GhJJ_C.cjs +59 -0
  41. package/dist/index-CDTNgfUf.cjs +578 -0
  42. package/dist/index-CPKdvi7J.mjs +554 -0
  43. package/dist/index.cjs +812 -40
  44. package/dist/index.mjs +813 -40
  45. package/dist/install-BokHRgFW.cjs +98 -0
  46. package/dist/install-C_cp8b2-.cjs +96 -0
  47. package/dist/install-DAeCn8ae.mjs +94 -0
  48. package/dist/install-oRAjVLjP.mjs +95 -0
  49. package/dist/lib.cjs +18 -12
  50. package/dist/lib.mjs +13 -7
  51. package/dist/{loadableToolOutput-va3RLplh.mjs → loadableToolOutput-Cuygmd4K.mjs} +4 -2
  52. package/dist/{loadableToolOutput-5vdQB98M.cjs → loadableToolOutput-DDCJjywt.cjs} +63 -61
  53. package/dist/mcpToolSchemas-CjeTfrAs.mjs +62 -0
  54. package/dist/mcpToolSchemas-DK42yoZ_.cjs +64 -0
  55. package/dist/persistence-BFjvtUad.mjs +944 -0
  56. package/dist/persistence-JLUn_Nou.cjs +996 -0
  57. package/dist/projectPath-BTBIMB57.mjs +10 -0
  58. package/dist/projectPath-ChLhdOyt.cjs +13 -0
  59. package/dist/prompt-BTWDZZO0.cjs +25 -0
  60. package/dist/prompt-BsAZsPbo.mjs +22 -0
  61. package/dist/release-BMEzNONE.mjs +168 -0
  62. package/dist/release-EhOJeAZe.cjs +171 -0
  63. package/dist/run-BDn2aE3Q.cjs +2152 -0
  64. package/dist/run-DBZqN6Kn.mjs +2128 -0
  65. package/dist/runClaude-DNHvERX0.mjs +3763 -0
  66. package/dist/runClaude-uaKxPZPm.cjs +3766 -0
  67. package/dist/{runCodex-skq0j05d.cjs → runCodex-82UrZLme.cjs} +169 -153
  68. package/dist/{runCodex-DiKzBf9q.mjs → runCodex-C-RTM0wA.mjs} +36 -20
  69. package/dist/{runGemini-BeqrVq8R.mjs → runGemini-Bm6-4Xm2.mjs} +34 -17
  70. package/dist/{runGemini-CVp-CEIh.cjs → runGemini-CXMr4Jwb.cjs} +212 -195
  71. package/dist/{runOneShot-BQNkNW61.cjs → runOneShot-1B6RMYT7.cjs} +31 -55
  72. package/dist/{runOneShot-ltCpHbBB.mjs → runOneShot-ioARRHrx.mjs} +14 -38
  73. package/dist/{serve-BECdtivY.cjs → serve-BtdAhkIE.cjs} +35 -58
  74. package/dist/{serve-BNdoEDVx.mjs → serve-CwibwU6N.mjs} +12 -35
  75. package/dist/session-2sU4Bu1R.mjs +108 -0
  76. package/dist/session-D--F87zL.cjs +110 -0
  77. package/dist/sessionKeyCache-4Tp8pJ3N.cjs +36 -0
  78. package/dist/sessionKeyCache-D2BwO91C.mjs +33 -0
  79. package/dist/sessionList-BCSw3qYt.mjs +51 -0
  80. package/dist/sessionList-ICJsjNtJ.cjs +54 -0
  81. package/dist/sessionSummary-Bkz52BPh.cjs +393 -0
  82. package/dist/sessionSummary-lHGBWQSb.mjs +387 -0
  83. package/dist/spawnHappyCLI-CoORX0YW.mjs +66 -0
  84. package/dist/spawnHappyCLI-D_V-AAoP.cjs +70 -0
  85. package/dist/ssh-BTOlhhxi.cjs +333 -0
  86. package/dist/ssh-DL_AkRAD.mjs +328 -0
  87. package/dist/systemdScope-BeOtAkhk.mjs +25 -0
  88. package/dist/systemdScope-DW3-UoKB.cjs +29 -0
  89. package/dist/task-CQzrHRZe.mjs +165 -0
  90. package/dist/task-CSpaC9HX.cjs +167 -0
  91. package/dist/time-Bj2HRkKH.cjs +33 -0
  92. package/dist/time-DgsBLJA_.mjs +29 -0
  93. package/dist/trimIdent-4gvk9Wk6.cjs +22 -0
  94. package/dist/trimIdent-BAjmv_TG.mjs +20 -0
  95. package/dist/types-BoJh4Qfv.mjs +57 -0
  96. package/dist/types-DWeB7aqh.cjs +59 -0
  97. package/dist/uninstall-BiKyRAb1.cjs +77 -0
  98. package/dist/uninstall-nFMFGUVM.mjs +75 -0
  99. package/dist/update-BcqRHXf2.mjs +109 -0
  100. package/dist/update-Dw8pgsAT.cjs +111 -0
  101. package/dist/workflowCommon-B0d01Y_a.mjs +56 -0
  102. package/dist/workflowCommon-Bl568-rt.cjs +62 -0
  103. package/dist/workflowReports-BEWuQesA.cjs +113 -0
  104. package/dist/workflowReports-Dd8-4-8f.mjs +108 -0
  105. package/package.json +1 -1
  106. package/dist/index-BbCDDvoB.cjs +0 -11376
  107. package/dist/index-vvZXdswy.mjs +0 -11336
  108. package/dist/mcpToolSchemas-CdPXJQmb.mjs +0 -175
  109. package/dist/mcpToolSchemas-f-kttjFw.cjs +0 -186
@@ -0,0 +1,554 @@
1
+ import * as z from 'zod';
2
+ import { z as z$1 } from 'zod';
3
+ import { isCuid } from '@paralleldrive/cuid2';
4
+
5
+ const sessionRoleSchema = z.enum(["user", "agent"]);
6
+ const sessionTextEventSchema = z.object({
7
+ t: z.literal("text"),
8
+ text: z.string(),
9
+ thinking: z.boolean().optional()
10
+ });
11
+ const sessionServiceMessageEventSchema = z.object({
12
+ t: z.literal("service"),
13
+ text: z.string()
14
+ });
15
+ const sessionToolCallStartEventSchema = z.object({
16
+ t: z.literal("tool-call-start"),
17
+ call: z.string(),
18
+ name: z.string(),
19
+ title: z.string(),
20
+ description: z.string(),
21
+ args: z.record(z.string(), z.unknown())
22
+ });
23
+ const sessionToolCallEndEventSchema = z.object({
24
+ t: z.literal("tool-call-end"),
25
+ call: z.string()
26
+ });
27
+ const sessionFileEventSchema = z.object({
28
+ t: z.literal("file"),
29
+ ref: z.string(),
30
+ name: z.string(),
31
+ size: z.number(),
32
+ image: z.object({
33
+ width: z.number(),
34
+ height: z.number(),
35
+ thumbhash: z.string()
36
+ }).optional()
37
+ });
38
+ const sessionTurnStartEventSchema = z.object({
39
+ t: z.literal("turn-start")
40
+ });
41
+ const sessionStartEventSchema = z.object({
42
+ t: z.literal("start"),
43
+ title: z.string().optional()
44
+ });
45
+ const sessionTurnEndStatusSchema = z.enum(["completed", "failed", "cancelled"]);
46
+ const sessionTurnEndEventSchema = z.object({
47
+ t: z.literal("turn-end"),
48
+ status: sessionTurnEndStatusSchema
49
+ });
50
+ const sessionStopEventSchema = z.object({
51
+ t: z.literal("stop")
52
+ });
53
+ const sessionEventSchema = z.discriminatedUnion("t", [
54
+ sessionTextEventSchema,
55
+ sessionServiceMessageEventSchema,
56
+ sessionToolCallStartEventSchema,
57
+ sessionToolCallEndEventSchema,
58
+ sessionFileEventSchema,
59
+ sessionTurnStartEventSchema,
60
+ sessionStartEventSchema,
61
+ sessionTurnEndEventSchema,
62
+ sessionStopEventSchema
63
+ ]);
64
+ const sessionEnvelopeSchema = z.object({
65
+ id: z.string(),
66
+ time: z.number(),
67
+ role: sessionRoleSchema,
68
+ turn: z.string().optional(),
69
+ subagent: z.string().refine((value) => isCuid(value), {
70
+ message: "subagent must be a cuid2 value"
71
+ }).optional(),
72
+ ev: sessionEventSchema
73
+ }).superRefine((envelope, ctx) => {
74
+ if (envelope.ev.t === "service" && envelope.role !== "agent") {
75
+ ctx.addIssue({
76
+ code: z.ZodIssueCode.custom,
77
+ message: 'service events must use role "agent"',
78
+ path: ["role"]
79
+ });
80
+ }
81
+ if ((envelope.ev.t === "start" || envelope.ev.t === "stop") && envelope.role !== "agent") {
82
+ ctx.addIssue({
83
+ code: z.ZodIssueCode.custom,
84
+ message: `${envelope.ev.t} events must use role "agent"`,
85
+ path: ["role"]
86
+ });
87
+ }
88
+ });
89
+ const MessageMetaSchema = z.object({
90
+ sentFrom: z.string().optional(),
91
+ permissionMode: z.enum(["default", "acceptEdits", "bypassPermissions", "plan", "read-only", "safe-yolo", "yolo"]).optional(),
92
+ model: z.string().nullable().optional(),
93
+ fallbackModel: z.string().nullable().optional(),
94
+ reasoningEffort: z.string().nullable().optional(),
95
+ customSystemPrompt: z.string().nullable().optional(),
96
+ appendSystemPrompt: z.string().nullable().optional(),
97
+ allowedTools: z.array(z.string()).nullable().optional(),
98
+ disallowedTools: z.array(z.string()).nullable().optional(),
99
+ displayText: z.string().optional()
100
+ });
101
+ const UserMessageSchema = z.object({
102
+ role: z.literal("user"),
103
+ content: z.object({
104
+ type: z.literal("text"),
105
+ text: z.string()
106
+ }),
107
+ localKey: z.string().optional(),
108
+ meta: MessageMetaSchema.optional()
109
+ });
110
+ const AgentMessageSchema = z.object({
111
+ role: z.literal("agent"),
112
+ content: z.object({
113
+ type: z.string()
114
+ }).passthrough(),
115
+ meta: MessageMetaSchema.optional()
116
+ });
117
+ z.discriminatedUnion("role", [UserMessageSchema, AgentMessageSchema]);
118
+ const SessionMessageContentSchema = z.object({
119
+ c: z.string(),
120
+ t: z.literal("encrypted")
121
+ });
122
+ const SessionMessageSchema = z.object({
123
+ id: z.string(),
124
+ seq: z.number(),
125
+ localId: z.string().nullish(),
126
+ content: SessionMessageContentSchema,
127
+ createdAt: z.number(),
128
+ updatedAt: z.number()
129
+ });
130
+ const SessionProtocolMessageSchema = z.object({
131
+ role: z.literal("session"),
132
+ content: sessionEnvelopeSchema,
133
+ meta: MessageMetaSchema.optional()
134
+ });
135
+ z.discriminatedUnion("role", [
136
+ UserMessageSchema,
137
+ AgentMessageSchema,
138
+ SessionProtocolMessageSchema
139
+ ]);
140
+ const VersionedEncryptedValueSchema = z.object({
141
+ version: z.number(),
142
+ value: z.string()
143
+ });
144
+ const VersionedNullableEncryptedValueSchema = z.object({
145
+ version: z.number(),
146
+ value: z.string().nullable()
147
+ });
148
+ const UpdateNewMessageBodySchema = z.object({
149
+ t: z.literal("new-message"),
150
+ sid: z.string(),
151
+ message: SessionMessageSchema
152
+ });
153
+ const UpdateSessionBodySchema = z.object({
154
+ t: z.literal("update-session"),
155
+ id: z.string(),
156
+ metadata: VersionedEncryptedValueSchema.nullish(),
157
+ agentState: VersionedNullableEncryptedValueSchema.nullish()
158
+ });
159
+ const VersionedMachineEncryptedValueSchema = z.object({
160
+ version: z.number(),
161
+ value: z.string()
162
+ });
163
+ const UpdateMachineBodySchema = z.object({
164
+ t: z.literal("update-machine"),
165
+ machineId: z.string(),
166
+ metadata: VersionedMachineEncryptedValueSchema.nullish(),
167
+ daemonState: VersionedMachineEncryptedValueSchema.nullish(),
168
+ active: z.boolean().optional(),
169
+ activeAt: z.number().optional()
170
+ });
171
+ const CoreUpdateBodySchema = z.discriminatedUnion("t", [
172
+ UpdateNewMessageBodySchema,
173
+ UpdateSessionBodySchema,
174
+ UpdateMachineBodySchema
175
+ ]);
176
+ z.object({
177
+ id: z.string(),
178
+ seq: z.number(),
179
+ body: CoreUpdateBodySchema,
180
+ createdAt: z.number()
181
+ });
182
+ const MODEL_MODE_DEFAULT = "default";
183
+ const MODEL_MODES = [
184
+ MODEL_MODE_DEFAULT,
185
+ "claude-fable-5",
186
+ "claude-fable-5[1m]",
187
+ "claude-opus-5",
188
+ "claude-opus-5[1m]",
189
+ "claude-opus-4-8",
190
+ "claude-opus-4-8[1m]",
191
+ "claude-opus-4-6",
192
+ "claude-opus-4-6[1m]",
193
+ "claude-sonnet-4-6",
194
+ "claude-sonnet-4-6[1m]",
195
+ "claude-haiku-4-5",
196
+ "claude-fable-5-low",
197
+ "claude-fable-5-medium",
198
+ "claude-fable-5-high",
199
+ "claude-fable-5-xhigh",
200
+ "claude-fable-5-max",
201
+ "claude-fable-5[1m]-low",
202
+ "claude-fable-5[1m]-medium",
203
+ "claude-fable-5[1m]-high",
204
+ "claude-fable-5[1m]-xhigh",
205
+ "claude-fable-5[1m]-max",
206
+ "claude-opus-5-low",
207
+ "claude-opus-5-medium",
208
+ "claude-opus-5-high",
209
+ "claude-opus-5-xhigh",
210
+ "claude-opus-5-max",
211
+ "claude-opus-5[1m]-low",
212
+ "claude-opus-5[1m]-medium",
213
+ "claude-opus-5[1m]-high",
214
+ "claude-opus-5[1m]-xhigh",
215
+ "claude-opus-5[1m]-max",
216
+ "claude-opus-4-8-low",
217
+ "claude-opus-4-8-medium",
218
+ "claude-opus-4-8-high",
219
+ "claude-opus-4-8-xhigh",
220
+ "claude-opus-4-8-max",
221
+ "claude-opus-4-8[1m]-low",
222
+ "claude-opus-4-8[1m]-medium",
223
+ "claude-opus-4-8[1m]-high",
224
+ "claude-opus-4-8[1m]-xhigh",
225
+ "claude-opus-4-8[1m]-max",
226
+ "claude-opus-4-6-low",
227
+ "claude-opus-4-6-medium",
228
+ "claude-opus-4-6-high",
229
+ "claude-opus-4-6-max",
230
+ "claude-opus-4-6[1m]-low",
231
+ "claude-opus-4-6[1m]-medium",
232
+ "claude-opus-4-6[1m]-high",
233
+ "claude-opus-4-6[1m]-max",
234
+ "claude-sonnet-4-6-low",
235
+ "claude-sonnet-4-6-medium",
236
+ "claude-sonnet-4-6-high",
237
+ "claude-sonnet-4-6[1m]-low",
238
+ "claude-sonnet-4-6[1m]-medium",
239
+ "claude-sonnet-4-6[1m]-high",
240
+ "claude-haiku-4-5-low",
241
+ "claude-haiku-4-5-medium",
242
+ "claude-haiku-4-5-high",
243
+ "gpt-5.6-sol-low",
244
+ "gpt-5.6-sol-medium",
245
+ "gpt-5.6-sol-high",
246
+ "gpt-5.6-sol-xhigh",
247
+ "gpt-5.6-sol-max",
248
+ "gpt-5.6-terra-low",
249
+ "gpt-5.6-terra-medium",
250
+ "gpt-5.6-terra-high",
251
+ "gpt-5.6-terra-xhigh",
252
+ "gpt-5.6-luna-low",
253
+ "gpt-5.6-luna-medium",
254
+ "gpt-5.6-luna-high",
255
+ "gpt-5.6-luna-xhigh",
256
+ "gpt-5.5-low",
257
+ "gpt-5.5-medium",
258
+ "gpt-5.5-high",
259
+ "gpt-5.5-xhigh",
260
+ "gpt-5.4-low",
261
+ "gpt-5.4-medium",
262
+ "gpt-5.4-high",
263
+ "gpt-5.4-xhigh",
264
+ "gpt-5.3-codex-low",
265
+ "gpt-5.3-codex-medium",
266
+ "gpt-5.3-codex-high",
267
+ "gpt-5.3-codex-xhigh",
268
+ "gpt-5.2-codex-low",
269
+ "gpt-5.2-codex-medium",
270
+ "gpt-5.2-codex-high",
271
+ "gpt-5.2-codex-xhigh",
272
+ "gpt-5.2-low",
273
+ "gpt-5.2-medium",
274
+ "gpt-5.2-high",
275
+ "gpt-5.2-xhigh",
276
+ "gpt-5.1-codex-max-low",
277
+ "gpt-5.1-codex-max-medium",
278
+ "gpt-5.1-codex-max-high",
279
+ "gpt-5.1-codex-max-xhigh",
280
+ "gpt-5.1-codex-mini-medium",
281
+ "gpt-5.1-codex-mini-high",
282
+ "gemini-3-pro-preview",
283
+ "gemini-3-flash-preview",
284
+ "gemini-2.5-pro"
285
+ ];
286
+ const CLAUDE_MODEL_MODES = [
287
+ MODEL_MODE_DEFAULT,
288
+ "claude-fable-5",
289
+ "claude-fable-5[1m]",
290
+ "claude-opus-5",
291
+ "claude-opus-5[1m]",
292
+ "claude-opus-4-8",
293
+ "claude-opus-4-8[1m]",
294
+ "claude-opus-4-6",
295
+ "claude-opus-4-6[1m]",
296
+ "claude-sonnet-4-6",
297
+ "claude-sonnet-4-6[1m]",
298
+ "claude-haiku-4-5",
299
+ "claude-fable-5-low",
300
+ "claude-fable-5-medium",
301
+ "claude-fable-5-high",
302
+ "claude-fable-5-xhigh",
303
+ "claude-fable-5-max",
304
+ "claude-fable-5[1m]-low",
305
+ "claude-fable-5[1m]-medium",
306
+ "claude-fable-5[1m]-high",
307
+ "claude-fable-5[1m]-xhigh",
308
+ "claude-fable-5[1m]-max",
309
+ "claude-opus-5-low",
310
+ "claude-opus-5-medium",
311
+ "claude-opus-5-high",
312
+ "claude-opus-5-xhigh",
313
+ "claude-opus-5-max",
314
+ "claude-opus-5[1m]-low",
315
+ "claude-opus-5[1m]-medium",
316
+ "claude-opus-5[1m]-high",
317
+ "claude-opus-5[1m]-xhigh",
318
+ "claude-opus-5[1m]-max",
319
+ "claude-opus-4-8-low",
320
+ "claude-opus-4-8-medium",
321
+ "claude-opus-4-8-high",
322
+ "claude-opus-4-8-xhigh",
323
+ "claude-opus-4-8-max",
324
+ "claude-opus-4-8[1m]-low",
325
+ "claude-opus-4-8[1m]-medium",
326
+ "claude-opus-4-8[1m]-high",
327
+ "claude-opus-4-8[1m]-xhigh",
328
+ "claude-opus-4-8[1m]-max",
329
+ "claude-opus-4-6-low",
330
+ "claude-opus-4-6-medium",
331
+ "claude-opus-4-6-high",
332
+ "claude-opus-4-6-max",
333
+ "claude-opus-4-6[1m]-low",
334
+ "claude-opus-4-6[1m]-medium",
335
+ "claude-opus-4-6[1m]-high",
336
+ "claude-opus-4-6[1m]-max",
337
+ "claude-sonnet-4-6-low",
338
+ "claude-sonnet-4-6-medium",
339
+ "claude-sonnet-4-6-high",
340
+ "claude-sonnet-4-6[1m]-low",
341
+ "claude-sonnet-4-6[1m]-medium",
342
+ "claude-sonnet-4-6[1m]-high",
343
+ "claude-haiku-4-5-low",
344
+ "claude-haiku-4-5-medium",
345
+ "claude-haiku-4-5-high"
346
+ ];
347
+ const GEMINI_MODEL_MODES = [
348
+ MODEL_MODE_DEFAULT,
349
+ "gemini-3-pro-preview",
350
+ "gemini-3-flash-preview",
351
+ "gemini-2.5-pro"
352
+ ];
353
+ const CODEX_MODEL_MODES = [
354
+ MODEL_MODE_DEFAULT,
355
+ "gpt-5.6-sol-low",
356
+ "gpt-5.6-sol-medium",
357
+ "gpt-5.6-sol-high",
358
+ "gpt-5.6-sol-xhigh",
359
+ "gpt-5.6-sol-max",
360
+ "gpt-5.6-terra-low",
361
+ "gpt-5.6-terra-medium",
362
+ "gpt-5.6-terra-high",
363
+ "gpt-5.6-terra-xhigh",
364
+ "gpt-5.6-luna-low",
365
+ "gpt-5.6-luna-medium",
366
+ "gpt-5.6-luna-high",
367
+ "gpt-5.6-luna-xhigh",
368
+ "gpt-5.5-low",
369
+ "gpt-5.5-medium",
370
+ "gpt-5.5-high",
371
+ "gpt-5.5-xhigh",
372
+ "gpt-5.4-low",
373
+ "gpt-5.4-medium",
374
+ "gpt-5.4-high",
375
+ "gpt-5.4-xhigh",
376
+ "gpt-5.3-codex-low",
377
+ "gpt-5.3-codex-medium",
378
+ "gpt-5.3-codex-high",
379
+ "gpt-5.3-codex-xhigh",
380
+ "gpt-5.2-codex-low",
381
+ "gpt-5.2-codex-medium",
382
+ "gpt-5.2-codex-high",
383
+ "gpt-5.2-codex-xhigh",
384
+ "gpt-5.2-low",
385
+ "gpt-5.2-medium",
386
+ "gpt-5.2-high",
387
+ "gpt-5.2-xhigh",
388
+ "gpt-5.1-codex-max-low",
389
+ "gpt-5.1-codex-max-medium",
390
+ "gpt-5.1-codex-max-high",
391
+ "gpt-5.1-codex-max-xhigh",
392
+ "gpt-5.1-codex-mini-medium",
393
+ "gpt-5.1-codex-mini-high"
394
+ ];
395
+ const MODEL_MODE_SET = new Set(MODEL_MODES);
396
+ const CLAUDE_MODEL_MODE_SET = new Set(CLAUDE_MODEL_MODES);
397
+ const GEMINI_MODEL_MODE_SET = new Set(GEMINI_MODEL_MODES);
398
+ const CODEX_MODEL_MODE_SET = new Set(CODEX_MODEL_MODES);
399
+ function isModelMode(value) {
400
+ return MODEL_MODE_SET.has(value);
401
+ }
402
+ function isModelModeForAgent(agent, mode) {
403
+ if (!isModelMode(mode)) return false;
404
+ if (agent === "claude") return CLAUDE_MODEL_MODE_SET.has(mode);
405
+ if (agent === "gemini") return GEMINI_MODEL_MODE_SET.has(mode);
406
+ return CODEX_MODEL_MODE_SET.has(mode);
407
+ }
408
+ const CLAUDE_MODE_TO_SELECTION = {
409
+ "claude-fable-5-low": { family: "claude-fable-5", effort: "low" },
410
+ "claude-fable-5-medium": { family: "claude-fable-5", effort: "medium" },
411
+ "claude-fable-5-high": { family: "claude-fable-5", effort: "high" },
412
+ "claude-fable-5-xhigh": { family: "claude-fable-5", effort: "xhigh" },
413
+ "claude-fable-5-max": { family: "claude-fable-5", effort: "max" },
414
+ "claude-fable-5[1m]-low": { family: "claude-fable-5[1m]", effort: "low" },
415
+ "claude-fable-5[1m]-medium": { family: "claude-fable-5[1m]", effort: "medium" },
416
+ "claude-fable-5[1m]-high": { family: "claude-fable-5[1m]", effort: "high" },
417
+ "claude-fable-5[1m]-xhigh": { family: "claude-fable-5[1m]", effort: "xhigh" },
418
+ "claude-fable-5[1m]-max": { family: "claude-fable-5[1m]", effort: "max" },
419
+ "claude-opus-5-low": { family: "claude-opus-5", effort: "low" },
420
+ "claude-opus-5-medium": { family: "claude-opus-5", effort: "medium" },
421
+ "claude-opus-5-high": { family: "claude-opus-5", effort: "high" },
422
+ "claude-opus-5-xhigh": { family: "claude-opus-5", effort: "xhigh" },
423
+ "claude-opus-5-max": { family: "claude-opus-5", effort: "max" },
424
+ "claude-opus-5[1m]-low": { family: "claude-opus-5[1m]", effort: "low" },
425
+ "claude-opus-5[1m]-medium": { family: "claude-opus-5[1m]", effort: "medium" },
426
+ "claude-opus-5[1m]-high": { family: "claude-opus-5[1m]", effort: "high" },
427
+ "claude-opus-5[1m]-xhigh": { family: "claude-opus-5[1m]", effort: "xhigh" },
428
+ "claude-opus-5[1m]-max": { family: "claude-opus-5[1m]", effort: "max" },
429
+ "claude-opus-4-8-low": { family: "claude-opus-4-8", effort: "low" },
430
+ "claude-opus-4-8-medium": { family: "claude-opus-4-8", effort: "medium" },
431
+ "claude-opus-4-8-high": { family: "claude-opus-4-8", effort: "high" },
432
+ "claude-opus-4-8-xhigh": { family: "claude-opus-4-8", effort: "xhigh" },
433
+ "claude-opus-4-8-max": { family: "claude-opus-4-8", effort: "max" },
434
+ "claude-opus-4-8[1m]-low": { family: "claude-opus-4-8[1m]", effort: "low" },
435
+ "claude-opus-4-8[1m]-medium": { family: "claude-opus-4-8[1m]", effort: "medium" },
436
+ "claude-opus-4-8[1m]-high": { family: "claude-opus-4-8[1m]", effort: "high" },
437
+ "claude-opus-4-8[1m]-xhigh": { family: "claude-opus-4-8[1m]", effort: "xhigh" },
438
+ "claude-opus-4-8[1m]-max": { family: "claude-opus-4-8[1m]", effort: "max" },
439
+ "claude-opus-4-6-low": { family: "claude-opus-4-6", effort: "low" },
440
+ "claude-opus-4-6-medium": { family: "claude-opus-4-6", effort: "medium" },
441
+ "claude-opus-4-6-high": { family: "claude-opus-4-6", effort: "high" },
442
+ "claude-opus-4-6-max": { family: "claude-opus-4-6", effort: "max" },
443
+ "claude-opus-4-6[1m]-low": { family: "claude-opus-4-6[1m]", effort: "low" },
444
+ "claude-opus-4-6[1m]-medium": { family: "claude-opus-4-6[1m]", effort: "medium" },
445
+ "claude-opus-4-6[1m]-high": { family: "claude-opus-4-6[1m]", effort: "high" },
446
+ "claude-opus-4-6[1m]-max": { family: "claude-opus-4-6[1m]", effort: "max" },
447
+ "claude-sonnet-4-6-low": { family: "claude-sonnet-4-6", effort: "low" },
448
+ "claude-sonnet-4-6-medium": { family: "claude-sonnet-4-6", effort: "medium" },
449
+ "claude-sonnet-4-6-high": { family: "claude-sonnet-4-6", effort: "high" },
450
+ "claude-sonnet-4-6[1m]-low": { family: "claude-sonnet-4-6[1m]", effort: "low" },
451
+ "claude-sonnet-4-6[1m]-medium": { family: "claude-sonnet-4-6[1m]", effort: "medium" },
452
+ "claude-sonnet-4-6[1m]-high": { family: "claude-sonnet-4-6[1m]", effort: "high" },
453
+ "claude-haiku-4-5-low": { family: "claude-haiku-4-5", effort: "low" },
454
+ "claude-haiku-4-5-medium": { family: "claude-haiku-4-5", effort: "medium" },
455
+ "claude-haiku-4-5-high": { family: "claude-haiku-4-5", effort: "high" }
456
+ };
457
+ const CODEX_MODE_TO_SELECTION = {
458
+ "gpt-5.6-sol-low": { family: "gpt-5.6-sol", effort: "low" },
459
+ "gpt-5.6-sol-medium": { family: "gpt-5.6-sol", effort: "medium" },
460
+ "gpt-5.6-sol-high": { family: "gpt-5.6-sol", effort: "high" },
461
+ "gpt-5.6-sol-xhigh": { family: "gpt-5.6-sol", effort: "xhigh" },
462
+ "gpt-5.6-sol-max": { family: "gpt-5.6-sol", effort: "max" },
463
+ "gpt-5.6-terra-low": { family: "gpt-5.6-terra", effort: "low" },
464
+ "gpt-5.6-terra-medium": { family: "gpt-5.6-terra", effort: "medium" },
465
+ "gpt-5.6-terra-high": { family: "gpt-5.6-terra", effort: "high" },
466
+ "gpt-5.6-terra-xhigh": { family: "gpt-5.6-terra", effort: "xhigh" },
467
+ "gpt-5.6-luna-low": { family: "gpt-5.6-luna", effort: "low" },
468
+ "gpt-5.6-luna-medium": { family: "gpt-5.6-luna", effort: "medium" },
469
+ "gpt-5.6-luna-high": { family: "gpt-5.6-luna", effort: "high" },
470
+ "gpt-5.6-luna-xhigh": { family: "gpt-5.6-luna", effort: "xhigh" },
471
+ "gpt-5.5-low": { family: "gpt-5.5", effort: "low" },
472
+ "gpt-5.5-medium": { family: "gpt-5.5", effort: "medium" },
473
+ "gpt-5.5-high": { family: "gpt-5.5", effort: "high" },
474
+ "gpt-5.5-xhigh": { family: "gpt-5.5", effort: "xhigh" },
475
+ "gpt-5.4-low": { family: "gpt-5.4", effort: "low" },
476
+ "gpt-5.4-medium": { family: "gpt-5.4", effort: "medium" },
477
+ "gpt-5.4-high": { family: "gpt-5.4", effort: "high" },
478
+ "gpt-5.4-xhigh": { family: "gpt-5.4", effort: "xhigh" },
479
+ "gpt-5.3-codex-low": { family: "gpt-5.3-codex", effort: "low" },
480
+ "gpt-5.3-codex-medium": { family: "gpt-5.3-codex", effort: "medium" },
481
+ "gpt-5.3-codex-high": { family: "gpt-5.3-codex", effort: "high" },
482
+ "gpt-5.3-codex-xhigh": { family: "gpt-5.3-codex", effort: "xhigh" },
483
+ "gpt-5.2-codex-low": { family: "gpt-5.2-codex", effort: "low" },
484
+ "gpt-5.2-codex-medium": { family: "gpt-5.2-codex", effort: "medium" },
485
+ "gpt-5.2-codex-high": { family: "gpt-5.2-codex", effort: "high" },
486
+ "gpt-5.2-codex-xhigh": { family: "gpt-5.2-codex", effort: "xhigh" },
487
+ "gpt-5.2-low": { family: "gpt-5.2", effort: "low" },
488
+ "gpt-5.2-medium": { family: "gpt-5.2", effort: "medium" },
489
+ "gpt-5.2-high": { family: "gpt-5.2", effort: "high" },
490
+ "gpt-5.2-xhigh": { family: "gpt-5.2", effort: "xhigh" },
491
+ "gpt-5.1-codex-max-low": { family: "gpt-5.1-codex-max", effort: "low" },
492
+ "gpt-5.1-codex-max-medium": { family: "gpt-5.1-codex-max", effort: "medium" },
493
+ "gpt-5.1-codex-max-high": { family: "gpt-5.1-codex-max", effort: "high" },
494
+ "gpt-5.1-codex-max-xhigh": { family: "gpt-5.1-codex-max", effort: "xhigh" },
495
+ "gpt-5.1-codex-mini-medium": { family: "gpt-5.1-codex-mini", effort: "medium" },
496
+ "gpt-5.1-codex-mini-high": { family: "gpt-5.1-codex-mini", effort: "high" }
497
+ };
498
+ function parseClaudeModelMode(mode) {
499
+ const entry = CLAUDE_MODE_TO_SELECTION[mode];
500
+ if (entry) return entry;
501
+ if (mode === MODEL_MODE_DEFAULT) return { family: MODEL_MODE_DEFAULT, effort: null };
502
+ return { family: mode, effort: null };
503
+ }
504
+ function parseCodexModelMode(mode) {
505
+ return CODEX_MODE_TO_SELECTION[mode] ?? { family: MODEL_MODE_DEFAULT, effort: "medium" };
506
+ }
507
+ const FeishuWebhookConfigSchema = z$1.object({
508
+ url: z$1.string().url(),
509
+ secret: z$1.string().optional(),
510
+ enabled: z$1.boolean()
511
+ });
512
+ z$1.object({
513
+ url: z$1.string().nullable(),
514
+ secret_set: z$1.boolean(),
515
+ enabled: z$1.boolean(),
516
+ lastTestedAt: z$1.number().nullable()
517
+ });
518
+ z$1.object({
519
+ feishu: FeishuWebhookConfigSchema.extend({
520
+ lastTestedAt: z$1.number().optional()
521
+ }).optional(),
522
+ feishuMention: FeishuWebhookConfigSchema.extend({
523
+ lastTestedAt: z$1.number().optional()
524
+ }).optional(),
525
+ /**
526
+ * The account owner's own Feishu identity (open_id `ou_…` or tenant
527
+ * user_id). When set, collaboration @ notifications sent to any owner's
528
+ * mention webhook render this user as a real `<at>` ping instead of
529
+ * plain text. The ping only fires if the user is in the bot's group.
530
+ */
531
+ feishuUserId: z$1.string().optional()
532
+ });
533
+ const MemorySourceSchema = z$1.enum(["manual", "message-pin"]);
534
+ z$1.object({
535
+ id: z$1.string(),
536
+ content: z$1.string().min(1).max(8e3),
537
+ source: MemorySourceSchema,
538
+ sourceSessionId: z$1.string().nullable(),
539
+ sourceMessageId: z$1.string().nullable(),
540
+ archivedAt: z$1.number().nullable(),
541
+ createdAt: z$1.number(),
542
+ updatedAt: z$1.number()
543
+ });
544
+ z$1.object({
545
+ content: z$1.string().min(1).max(8e3),
546
+ source: MemorySourceSchema.optional().default("manual"),
547
+ sourceSessionId: z$1.string().optional(),
548
+ sourceMessageId: z$1.string().optional()
549
+ });
550
+ z$1.object({
551
+ content: z$1.string().min(1).max(8e3)
552
+ });
553
+
554
+ export { GEMINI_MODEL_MODES as G, MODEL_MODE_DEFAULT as M, parseClaudeModelMode as a, isModelModeForAgent as i, parseCodexModelMode as p };