@bike4mind/cli 0.2.30 → 0.2.31-b4m-cli-undo-command.19534

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 (26) hide show
  1. package/bin/bike4mind-cli.mjs +48 -0
  2. package/dist/{HydrationEngine-WGYKF46H.js → HydrationEngine-YL2HWJ3V.js} +1 -1
  3. package/dist/{artifactExtractor-JQMWU272.js → artifactExtractor-T6NJ7V7P.js} +1 -1
  4. package/dist/{chunk-LBTTUQJM.js → chunk-32PKF3N7.js} +16 -15
  5. package/dist/{chunk-BQAPZP5Y.js → chunk-3SPW5FYJ.js} +236 -18
  6. package/dist/{chunk-U63VANTQ.js → chunk-ERV5G6MX.js} +3 -3
  7. package/dist/{chunk-LLA44SW7.js → chunk-F4PXVLZX.js} +2 -2
  8. package/dist/{chunk-RUI6HNLO.js → chunk-GQGOWACU.js} +8 -4
  9. package/dist/{chunk-WIB75EEX.js → chunk-JWJF6O4L.js} +3 -3
  10. package/dist/{chunk-T4VPCTBM.js → chunk-NI22LIK3.js} +998 -167
  11. package/dist/{chunk-OCYRD7D6.js → chunk-PFBYGCOW.js} +109 -31
  12. package/dist/chunk-WVFOWKNW.js +244 -0
  13. package/dist/commands/doctorCommand.js +87 -0
  14. package/dist/commands/mcpCommand.js +1 -1
  15. package/dist/commands/updateCommand.js +42 -0
  16. package/dist/create-XOEMSBER.js +12 -0
  17. package/dist/index.js +3373 -669
  18. package/dist/{llmMarkdownGenerator-2O24TMGD.js → llmMarkdownGenerator-NPX7ULSW.js} +1 -1
  19. package/dist/{markdownGenerator-6LAK3FQM.js → markdownGenerator-TVJ2RQXC.js} +1 -1
  20. package/dist/{mementoService-NRR7NQ4C.js → mementoService-HGH2XVLM.js} +4 -4
  21. package/dist/{notificationDeduplicator-UTHJHMSZ.js → notificationDeduplicator-HUC53NEW.js} +1 -1
  22. package/dist/{src-VMQ5TKYR.js → src-2BRBILH7.js} +27 -1
  23. package/dist/{src-3FQBHGOM.js → src-JZ6OHGTX.js} +13 -3
  24. package/dist/{subtractCredits-HK72MSDY.js → subtractCredits-4VIHTUR4.js} +4 -4
  25. package/package.json +9 -9
  26. package/dist/create-4WOBQ5JM.js +0 -12
@@ -46,7 +46,7 @@ var ImageModels;
46
46
  ImageModels2["GEMINI_3_PRO_IMAGE_PREVIEW"] = "gemini-3-pro-image-preview";
47
47
  })(ImageModels || (ImageModels = {}));
48
48
  var IMAGE_MODELS = Object.values(ImageModels);
49
- var supportedImageModels = z.nativeEnum(ImageModels);
49
+ var supportedImageModels = z.enum(ImageModels);
50
50
  var IMAGE_SIZE_CONSTRAINTS = {
51
51
  BFL: {
52
52
  minWidth: 256,
@@ -170,7 +170,7 @@ var ChatModels;
170
170
  ChatModels2["GROK_VISION_BETA"] = "grok-vision-beta";
171
171
  })(ChatModels || (ChatModels = {}));
172
172
  var CHAT_MODELS = Object.values(ChatModels);
173
- var supportedChatModels = z.nativeEnum(ChatModels);
173
+ var supportedChatModels = z.enum(ChatModels);
174
174
  var REASONING_SUPPORTED_MODELS = /* @__PURE__ */ new Set([
175
175
  ChatModels.O1,
176
176
  ChatModels.O3_MINI,
@@ -191,14 +191,14 @@ var SpeechToTextModels;
191
191
  SpeechToTextModels2["AWS_TRANSCRIBE"] = "transcribe";
192
192
  })(SpeechToTextModels || (SpeechToTextModels = {}));
193
193
  var SPEECH_TO_TEXT_MODELS = Object.values(SpeechToTextModels);
194
- var supportedSpeechToTextModels = z.nativeEnum(SpeechToTextModels);
194
+ var supportedSpeechToTextModels = z.enum(SpeechToTextModels);
195
195
  var VideoModels;
196
196
  (function(VideoModels2) {
197
197
  VideoModels2["SORA_2"] = "sora-2";
198
198
  VideoModels2["SORA_2_PRO"] = "sora-2-pro";
199
199
  })(VideoModels || (VideoModels = {}));
200
200
  var VIDEO_MODELS = Object.values(VideoModels);
201
- var supportedVideoModels = z.nativeEnum(VideoModels);
201
+ var supportedVideoModels = z.enum(VideoModels);
202
202
  var VIDEO_SIZE_CONSTRAINTS = {
203
203
  SORA: {
204
204
  durations: [4, 8, 12],
@@ -207,7 +207,7 @@ var VIDEO_SIZE_CONSTRAINTS = {
207
207
  defaultSize: "720x1280"
208
208
  }
209
209
  };
210
- var supportedModels = z.nativeEnum({
210
+ var supportedModels = z.enum({
211
211
  ...ChatModels,
212
212
  ...ImageModels,
213
213
  ...SpeechToTextModels,
@@ -247,11 +247,11 @@ var SoraVideoInputSchema = z4.object({
247
247
  /** Text description of the video to generate */
248
248
  prompt: z4.string().min(1).max(1e4),
249
249
  /** Model to use for generation */
250
- model: z4.nativeEnum(VideoModels).default(VideoModels.SORA_2),
250
+ model: z4.enum(VideoModels).prefault(VideoModels.SORA_2),
251
251
  /** Video duration in seconds: 4, 8, or 12 */
252
- seconds: z4.union([z4.literal(4), z4.literal(8), z4.literal(12)]).default(4),
252
+ seconds: z4.union([z4.literal(4), z4.literal(8), z4.literal(12)]).prefault(4),
253
253
  /** Video resolution */
254
- size: z4.enum(["720x1280", "1280x720", "1024x1792", "1792x1024"]).default(VIDEO_SIZE_CONSTRAINTS.SORA.defaultSize),
254
+ size: z4.enum(["720x1280", "1280x720", "1024x1792", "1792x1024"]).prefault(VIDEO_SIZE_CONSTRAINTS.SORA.defaultSize),
255
255
  /** Optional user identifier for abuse tracking */
256
256
  user: z4.string().optional()
257
257
  });
@@ -274,7 +274,7 @@ var SoraVideoResultSchema = z4.object({
274
274
  /** Status should be 'completed' */
275
275
  status: z4.literal("completed"),
276
276
  /** URL to download the video (temporary, expires after a period) */
277
- video_url: z4.string().url().optional(),
277
+ video_url: z4.url().optional(),
278
278
  /** Video duration in seconds */
279
279
  duration: z4.number().optional(),
280
280
  /** Video resolution */
@@ -282,9 +282,9 @@ var SoraVideoResultSchema = z4.object({
282
282
  });
283
283
  var GenerateVideoRequestBodySchema = z4.object({
284
284
  prompt: z4.string().min(1),
285
- model: z4.nativeEnum(VideoModels).optional().default(VideoModels.SORA_2),
286
- seconds: z4.union([z4.literal(4), z4.literal(8), z4.literal(12)]).optional().default(4),
287
- size: z4.enum(["720x1280", "1280x720", "1024x1792", "1792x1024"]).optional().default(VIDEO_SIZE_CONSTRAINTS.SORA.defaultSize),
285
+ model: z4.enum(VideoModels).optional().prefault(VideoModels.SORA_2),
286
+ seconds: z4.union([z4.literal(4), z4.literal(8), z4.literal(12)]).optional().prefault(4),
287
+ size: z4.enum(["720x1280", "1280x720", "1024x1792", "1792x1024"]).optional().prefault(VIDEO_SIZE_CONSTRAINTS.SORA.defaultSize),
288
288
  sessionId: z4.string().optional(),
289
289
  sessionName: z4.string().optional(),
290
290
  questId: z4.string().optional(),
@@ -324,7 +324,15 @@ var b4mLLMTools = z5.enum([
324
324
  "iss_tracker",
325
325
  "planet_visibility",
326
326
  // Knowledge base search
327
- "search_knowledge_base"
327
+ "search_knowledge_base",
328
+ "retrieve_knowledge_content",
329
+ // Agent delegation
330
+ "delegate_to_agent",
331
+ // Quantum optimization tools
332
+ "quantum_schedule",
333
+ "quantum_formulate",
334
+ // Navigation tool
335
+ "navigate_view"
328
336
  ]);
329
337
  var B4MLLMToolsList = b4mLLMTools.options.map((tool) => tool);
330
338
  var RechartsChartTypeSchema = z5.enum([
@@ -368,7 +376,7 @@ import { z as z6 } from "zod";
368
376
  var ArtifactMetadataSchema = z6.object({
369
377
  language: z6.string().optional(),
370
378
  dependencies: z6.array(z6.string()).optional(),
371
- settings: z6.record(z6.unknown()).optional()
379
+ settings: z6.record(z6.string(), z6.unknown()).optional()
372
380
  });
373
381
  var ArtifactTypeSchema = z6.enum([
374
382
  "mermaid",
@@ -391,7 +399,7 @@ var ArtifactSchema = z6.object({
391
399
  content: z6.string(),
392
400
  preview: z6.string().optional(),
393
401
  metadata: ArtifactMetadataSchema.optional(),
394
- version: z6.number().int().positive().default(1).optional(),
402
+ version: z6.int().positive().prefault(1).optional(),
395
403
  createdAt: z6.date(),
396
404
  updatedAt: z6.date()
397
405
  });
@@ -410,18 +418,18 @@ var QuestMasterArtifactSchema = ArtifactSchema.extend({
410
418
  var ReactArtifactSchema = ArtifactSchema.extend({
411
419
  type: z6.literal("react"),
412
420
  metadata: ArtifactMetadataSchema.extend({
413
- dependencies: z6.array(z6.string()).default([]),
414
- props: z6.record(z6.unknown()).optional(),
415
- hasDefaultExport: z6.boolean().default(true),
416
- errorBoundary: z6.boolean().default(true)
421
+ dependencies: z6.array(z6.string()).prefault([]),
422
+ props: z6.record(z6.string(), z6.unknown()).optional(),
423
+ hasDefaultExport: z6.boolean().prefault(true),
424
+ errorBoundary: z6.boolean().prefault(true)
417
425
  })
418
426
  });
419
427
  var HtmlArtifactSchema = ArtifactSchema.extend({
420
428
  type: z6.literal("html"),
421
429
  metadata: ArtifactMetadataSchema.extend({
422
- allowedScripts: z6.array(z6.string()).default([]),
430
+ allowedScripts: z6.array(z6.string()).prefault([]),
423
431
  cspPolicy: z6.string().optional(),
424
- sanitized: z6.boolean().default(true)
432
+ sanitized: z6.boolean().prefault(true)
425
433
  })
426
434
  });
427
435
  var SvgArtifactSchema = ArtifactSchema.extend({
@@ -430,7 +438,7 @@ var SvgArtifactSchema = ArtifactSchema.extend({
430
438
  viewBox: z6.string().optional(),
431
439
  width: z6.number().optional(),
432
440
  height: z6.number().optional(),
433
- sanitized: z6.boolean().default(true)
441
+ sanitized: z6.boolean().prefault(true)
434
442
  })
435
443
  });
436
444
  var MermaidArtifactSchema = ArtifactSchema.extend({
@@ -467,9 +475,9 @@ var LatticeArtifactSchema = ArtifactSchema.extend({
467
475
  metadata: ArtifactMetadataSchema.extend({
468
476
  modelType: z6.enum(["income_statement", "balance_sheet", "cashflow", "saas_metrics", "custom"]).optional(),
469
477
  periodGrain: z6.enum(["month", "quarter", "year"]).optional(),
470
- currency: z6.string().default("USD"),
471
- entityCount: z6.number().int().nonnegative().optional(),
472
- ruleCount: z6.number().int().nonnegative().optional(),
478
+ currency: z6.string().prefault("USD"),
479
+ entityCount: z6.int().nonnegative().optional(),
480
+ ruleCount: z6.int().nonnegative().optional(),
473
481
  lastComputedAt: z6.date().optional()
474
482
  })
475
483
  });
@@ -573,11 +581,11 @@ var InvitePermission;
573
581
  })(InvitePermission || (InvitePermission = {}));
574
582
  var groupShareSchema = z8.object({
575
583
  groupId: z8.string(),
576
- permissions: z8.array(z8.nativeEnum(Permission))
584
+ permissions: z8.array(z8.enum(Permission))
577
585
  });
578
586
  var userShareSchema = z8.object({
579
587
  userId: z8.string(),
580
- permissions: z8.array(z8.nativeEnum(Permission)),
588
+ permissions: z8.array(z8.enum(Permission)),
581
589
  /** The project ID if the user is shared from a project */
582
590
  projectId: z8.string().optional(),
583
591
  extraData: z8.object({
@@ -701,13 +709,13 @@ var BaseCreditTransaction = z9.object({
701
709
  id: z9.string().optional(),
702
710
  // MongoDB ObjectId
703
711
  ownerId: z9.string(),
704
- ownerType: z9.nativeEnum(CreditHolderType),
712
+ ownerType: z9.enum(CreditHolderType),
705
713
  /**
706
714
  * Credits used or added
707
715
  */
708
716
  credits: z9.number(),
709
717
  description: z9.string().optional(),
710
- metadata: z9.record(z9.any()).optional(),
718
+ metadata: z9.record(z9.string(), z9.any()).optional(),
711
719
  // For additional context
712
720
  createdAt: z9.date(),
713
721
  updatedAt: z9.date()
@@ -718,7 +726,7 @@ var PurchaseTransaction = BaseCreditTransaction.extend({
718
726
  * @deprecated Use ownerId and ownerType instead
719
727
  */
720
728
  userId: z9.string().optional(),
721
- status: z9.nativeEnum(CreditPurchaseStatus),
729
+ status: z9.enum(CreditPurchaseStatus),
722
730
  stripePaymentIntentId: z9.string(),
723
731
  packageId: z9.string().optional(),
724
732
  amount: z9.number()
@@ -729,7 +737,7 @@ var SubscriptionCreditTransaction = BaseCreditTransaction.extend({
729
737
  var ReceivedCreditTransaction = BaseCreditTransaction.extend({
730
738
  type: z9.literal("received_credit"),
731
739
  senderId: z9.string(),
732
- senderType: z9.nativeEnum(CreditHolderType)
740
+ senderType: z9.enum(CreditHolderType)
733
741
  });
734
742
  var GenericCreditAddTransaction = BaseCreditTransaction.extend({
735
743
  type: z9.literal("generic_add"),
@@ -795,7 +803,7 @@ var CompletionApiUsageTransaction = BaseCreditTransaction.extend({
795
803
  var TransferCreditTransaction = BaseCreditTransaction.extend({
796
804
  type: z9.literal("transfer_credit"),
797
805
  recipientId: z9.string(),
798
- recipientType: z9.nativeEnum(CreditHolderType)
806
+ recipientType: z9.enum(CreditHolderType)
799
807
  });
800
808
  var CreditTransaction = z9.discriminatedUnion("type", [
801
809
  PurchaseTransaction,
@@ -1075,6 +1083,15 @@ var WebhookDeliveryStatus;
1075
1083
  WebhookDeliveryStatus2["Pending"] = "pending";
1076
1084
  })(WebhookDeliveryStatus || (WebhookDeliveryStatus = {}));
1077
1085
 
1086
+ // ../../b4m-core/packages/common/dist/src/types/entities/WebhookAuditLogTypes.js
1087
+ var WebhookAuditStatus;
1088
+ (function(WebhookAuditStatus2) {
1089
+ WebhookAuditStatus2["Received"] = "received";
1090
+ WebhookAuditStatus2["Processing"] = "processing";
1091
+ WebhookAuditStatus2["Completed"] = "completed";
1092
+ WebhookAuditStatus2["Failed"] = "failed";
1093
+ })(WebhookAuditStatus || (WebhookAuditStatus = {}));
1094
+
1078
1095
  // ../../b4m-core/packages/common/dist/src/types/entities/JiraWebhookConfigTypes.js
1079
1096
  var COMMON_JIRA_WEBHOOK_EVENTS = [
1080
1097
  "jira:issue_created",
@@ -1178,9 +1195,9 @@ var DataSubscribeRequestAction = z10.object({
1178
1195
  accessToken: z10.string().optional(),
1179
1196
  subscriptionId: z10.string(),
1180
1197
  collectionName: z10.string(),
1181
- query: z10.object({}).passthrough(),
1182
- fields: z10.object({}).passthrough(),
1183
- fetchInitialData: z10.boolean().default(true).optional(),
1198
+ query: z10.looseObject({}),
1199
+ fields: z10.looseObject({}),
1200
+ fetchInitialData: z10.boolean().prefault(true).optional(),
1184
1201
  clientId: z10.string().optional()
1185
1202
  });
1186
1203
  var DataUnsubscribeRequestAction = z10.object({
@@ -1200,6 +1217,29 @@ var VoiceSessionSendTranscriptAction = z10.object({
1200
1217
  conversationItemId: z10.string(),
1201
1218
  timestamp: z10.coerce.date().optional()
1202
1219
  });
1220
+ var CliCompletionRequestAction = z10.object({
1221
+ action: z10.literal("cli_completion_request"),
1222
+ accessToken: z10.string(),
1223
+ requestId: z10.uuid(),
1224
+ model: z10.string(),
1225
+ messages: z10.array(z10.object({
1226
+ role: z10.enum(["user", "assistant", "system"]),
1227
+ content: z10.union([z10.string(), z10.array(z10.unknown())])
1228
+ })),
1229
+ options: z10.object({
1230
+ temperature: z10.number().optional(),
1231
+ maxTokens: z10.number().optional(),
1232
+ stream: z10.boolean().optional(),
1233
+ tools: z10.array(z10.unknown()).optional()
1234
+ }).optional()
1235
+ });
1236
+ var CliToolRequestAction = z10.object({
1237
+ action: z10.literal("cli_tool_request"),
1238
+ accessToken: z10.string(),
1239
+ requestId: z10.uuid(),
1240
+ toolName: z10.string(),
1241
+ input: z10.record(z10.string(), z10.unknown())
1242
+ });
1203
1243
  var VoiceSessionEndedAction = z10.object({
1204
1244
  action: z10.literal("voice_session_ended"),
1205
1245
  userId: z10.string(),
@@ -1220,10 +1260,10 @@ var DataSubscriptionUpdateAction = z10.object({
1220
1260
  collectionName: z10.string(),
1221
1261
  operationType: z10.string(),
1222
1262
  clientId: z10.string().optional(),
1223
- data: z10.object({
1263
+ data: z10.looseObject({
1224
1264
  _id: z10.string(),
1225
1265
  id: z10.string()
1226
- }).passthrough()
1266
+ })
1227
1267
  });
1228
1268
  var LLMStatusUpdateAction = z10.object({
1229
1269
  action: z10.literal("llm_status_update"),
@@ -1488,6 +1528,36 @@ var VoiceCreditsExhaustedAction = z10.object({
1488
1528
  creditsUsed: z10.number(),
1489
1529
  clientId: z10.string().optional()
1490
1530
  });
1531
+ var CliCompletionChunkAction = z10.object({
1532
+ action: z10.literal("cli_completion_chunk"),
1533
+ requestId: z10.string(),
1534
+ chunk: z10.object({
1535
+ type: z10.enum(["content", "tool_use"]),
1536
+ text: z10.string(),
1537
+ tools: z10.array(z10.unknown()).optional(),
1538
+ usage: z10.object({
1539
+ inputTokens: z10.number().optional(),
1540
+ outputTokens: z10.number().optional()
1541
+ }).optional(),
1542
+ thinking: z10.array(z10.unknown()).optional()
1543
+ })
1544
+ });
1545
+ var CliCompletionDoneAction = z10.object({
1546
+ action: z10.literal("cli_completion_done"),
1547
+ requestId: z10.string()
1548
+ });
1549
+ var CliCompletionErrorAction = z10.object({
1550
+ action: z10.literal("cli_completion_error"),
1551
+ requestId: z10.string(),
1552
+ error: z10.string()
1553
+ });
1554
+ var CliToolResponseAction = z10.object({
1555
+ action: z10.literal("cli_tool_response"),
1556
+ requestId: z10.string(),
1557
+ success: z10.boolean(),
1558
+ content: z10.unknown().optional(),
1559
+ error: z10.string().optional()
1560
+ });
1491
1561
  var SessionCreatedAction = shareableDocumentSchema.extend({
1492
1562
  action: z10.literal("session.created"),
1493
1563
  id: z10.string(),
@@ -1522,7 +1592,9 @@ var MessageDataToServer = z10.discriminatedUnion("action", [
1522
1592
  DataUnsubscribeRequestAction,
1523
1593
  HeartbeatAction,
1524
1594
  VoiceSessionSendTranscriptAction,
1525
- VoiceSessionEndedAction
1595
+ VoiceSessionEndedAction,
1596
+ CliCompletionRequestAction,
1597
+ CliToolRequestAction
1526
1598
  ]);
1527
1599
  var MessageDataToClient = z10.discriminatedUnion("action", [
1528
1600
  DataSubscriptionUpdateAction,
@@ -1548,7 +1620,11 @@ var MessageDataToClient = z10.discriminatedUnion("action", [
1548
1620
  PiHistoryCompleteAction,
1549
1621
  PiHistoryErrorAction,
1550
1622
  SessionCreatedAction,
1551
- VoiceCreditsExhaustedAction
1623
+ VoiceCreditsExhaustedAction,
1624
+ CliCompletionChunkAction,
1625
+ CliCompletionDoneAction,
1626
+ CliCompletionErrorAction,
1627
+ CliToolResponseAction
1552
1628
  ]);
1553
1629
 
1554
1630
  // ../../b4m-core/packages/common/dist/src/schemas/cliCompletions.js
@@ -2112,32 +2188,32 @@ var BFL_IMAGE_MODELS = [
2112
2188
  ];
2113
2189
  var CommonBFLParams = z14.object({
2114
2190
  prompt: z14.string().nullable().optional(),
2115
- safety_tolerance: z14.number().min(BFL_SAFETY_TOLERANCE.MIN).max(BFL_SAFETY_TOLERANCE.MAX).optional().default(BFL_SAFETY_TOLERANCE.DEFAULT),
2116
- output_format: z14.enum(["jpeg", "png"]).nullable().optional().default("jpeg"),
2191
+ safety_tolerance: z14.number().min(BFL_SAFETY_TOLERANCE.MIN).max(BFL_SAFETY_TOLERANCE.MAX).optional().prefault(BFL_SAFETY_TOLERANCE.DEFAULT),
2192
+ output_format: z14.enum(["jpeg", "png"]).nullable().optional().prefault("jpeg"),
2117
2193
  image_prompt: z14.string().nullable().optional(),
2118
2194
  webhook_url: z14.string().min(1).max(2083).nullable().optional(),
2119
2195
  webhook_secret: z14.string().nullable().optional()
2120
2196
  });
2121
2197
  var FluxProInputSchema = CommonBFLParams.extend({
2122
- width: z14.number().min(256).max(1440).default(1024),
2123
- height: z14.number().min(256).max(1440).default(768),
2124
- steps: z14.number().min(1).max(50).default(40).nullable().optional(),
2125
- prompt_upsampling: z14.boolean().default(false),
2198
+ width: z14.number().min(256).max(1440).prefault(1024),
2199
+ height: z14.number().min(256).max(1440).prefault(768),
2200
+ steps: z14.number().min(1).max(50).prefault(40).nullable().optional(),
2201
+ prompt_upsampling: z14.boolean().prefault(false),
2126
2202
  seed: z14.number().nullable().optional(),
2127
- guidance: z14.number().min(1.5).max(5).default(2.5).nullable().optional(),
2128
- interval: z14.number().min(1).max(4).default(2).nullable().optional()
2203
+ guidance: z14.number().min(1.5).max(5).prefault(2.5).nullable().optional(),
2204
+ interval: z14.number().min(1).max(4).prefault(2).nullable().optional()
2129
2205
  });
2130
2206
  var FluxUltraInputSchema = CommonBFLParams.extend({
2131
- prompt_upsampling: z14.boolean().default(false),
2207
+ prompt_upsampling: z14.boolean().prefault(false),
2132
2208
  seed: z14.number().nullable().optional(),
2133
- aspect_ratio: z14.string().default("16:9"),
2134
- raw: z14.boolean().default(false),
2135
- image_prompt_strength: z14.number().min(0).max(1).default(0.1)
2209
+ aspect_ratio: z14.string().prefault("16:9"),
2210
+ raw: z14.boolean().prefault(false),
2211
+ image_prompt_strength: z14.number().min(0).max(1).prefault(0.1)
2136
2212
  });
2137
2213
  var FluxKontextInputSchema = CommonBFLParams.extend({
2138
2214
  input_image: z14.string().min(1),
2139
2215
  // Required base64 encoded input image
2140
- prompt_upsampling: z14.boolean().default(false),
2216
+ prompt_upsampling: z14.boolean().prefault(false),
2141
2217
  seed: z14.number().nullable().optional(),
2142
2218
  aspect_ratio: z14.string().optional()
2143
2219
  // Optional aspect ratio override
@@ -2154,12 +2230,12 @@ var GEMINI_IMAGE_MODELS = [
2154
2230
  ];
2155
2231
  var GeminiImageGenerationInputSchema = z15.object({
2156
2232
  prompt: z15.string().min(1),
2157
- n: z15.number().min(1).max(8).default(1).optional(),
2233
+ n: z15.number().min(1).max(8).prefault(1).optional(),
2158
2234
  // Generate up to 8 images
2159
2235
  aspect_ratio: z15.string().optional(),
2160
2236
  // e.g., "16:9", "1:1", "9:16"
2161
- output_format: z15.enum(["jpeg", "png"]).default("png").optional(),
2162
- safety_tolerance: z15.number().min(0).max(1).default(0.5).optional()
2237
+ output_format: z15.enum(["jpeg", "png"]).prefault("png").optional(),
2238
+ safety_tolerance: z15.number().min(0).max(1).prefault(0.5).optional()
2163
2239
  // 0 = strict, 1 = permissive
2164
2240
  });
2165
2241
  var GeminiImageEditingInputSchema = z15.object({
@@ -2167,8 +2243,8 @@ var GeminiImageEditingInputSchema = z15.object({
2167
2243
  // Base64 encoded image or data URL
2168
2244
  prompt: z15.string().min(1),
2169
2245
  aspect_ratio: z15.string().optional(),
2170
- output_format: z15.enum(["jpeg", "png"]).default("png").optional(),
2171
- safety_tolerance: z15.number().min(0).max(1).default(0.5).optional()
2246
+ output_format: z15.enum(["jpeg", "png"]).prefault("png").optional(),
2247
+ safety_tolerance: z15.number().min(0).max(1).prefault(0.5).optional()
2172
2248
  });
2173
2249
 
2174
2250
  // ../../b4m-core/packages/common/dist/src/schemas/openai.js
@@ -2182,7 +2258,7 @@ var ChatCompletionCreateInputSchema = z16.object({
2182
2258
  max_tokens: z16.number(),
2183
2259
  presence_penalty: z16.number().min(-2).max(2).optional(),
2184
2260
  frequency_penalty: z16.number().min(-2).max(2).optional(),
2185
- logit_bias: z16.record(z16.number()).nullable().optional(),
2261
+ logit_bias: z16.record(z16.string(), z16.number()).nullable().optional(),
2186
2262
  stream: z16.boolean().optional(),
2187
2263
  thinking: z16.object({
2188
2264
  enabled: z16.boolean(),
@@ -2211,7 +2287,9 @@ var ALL_IMAGE_SIZES = [...OPENAI_IMAGE_SIZES, ...BFL_IMAGE_SIZES];
2211
2287
  var OpenAIImageSizeSchema = z16.enum(OPENAI_IMAGE_SIZES);
2212
2288
  var ImageSizeSchema = z16.union([
2213
2289
  z16.enum(ALL_IMAGE_SIZES),
2214
- z16.string().regex(/^\d+x\d+$/, { message: "Size must be in format 'widthxheight'" })
2290
+ z16.string().regex(/^\d+x\d+$/, {
2291
+ error: "Size must be in format 'widthxheight'"
2292
+ })
2215
2293
  ]);
2216
2294
  var OPENAI_IMAGE_QUALITIES = ["standard", "hd", "low", "medium", "high"];
2217
2295
  var OpenAIImageQualitySchema = z16.enum(OPENAI_IMAGE_QUALITIES);
@@ -2279,8 +2357,8 @@ function validatePasswordServer(password, BadRequestError) {
2279
2357
  // ../../b4m-core/packages/common/dist/src/schemas/query.js
2280
2358
  import { z as z18 } from "zod";
2281
2359
  var QueryPaginate = z18.object({
2282
- pageSize: z18.coerce.number().int().positive().default(5),
2283
- pageNumber: z18.coerce.number().int().positive().default(1),
2360
+ pageSize: z18.coerce.number().int().positive().prefault(5),
2361
+ pageNumber: z18.coerce.number().int().positive().prefault(1),
2284
2362
  orgId: z18.string().nullable().optional()
2285
2363
  });
2286
2364
  var QueryFilters = z18.object({
@@ -2358,9 +2436,9 @@ var BedrockEmbeddingModel;
2358
2436
  BedrockEmbeddingModel2["TITAN_TEXT_EMBEDDINGS_V2"] = "amazon.titan-embed-text-v2:0";
2359
2437
  })(BedrockEmbeddingModel || (BedrockEmbeddingModel = {}));
2360
2438
  var SupportedEmbeddingModelSchema = z20.union([
2361
- z20.nativeEnum(OpenAIEmbeddingModel),
2362
- z20.nativeEnum(VoyageAIEmbeddingModel),
2363
- z20.nativeEnum(BedrockEmbeddingModel)
2439
+ z20.enum(OpenAIEmbeddingModel),
2440
+ z20.enum(VoyageAIEmbeddingModel),
2441
+ z20.enum(BedrockEmbeddingModel)
2364
2442
  ]);
2365
2443
  function isSupportedEmbeddingModel(model) {
2366
2444
  return SupportedEmbeddingModelSchema.safeParse(model).success;
@@ -2432,6 +2510,8 @@ var SettingKeySchema = z21.enum([
2432
2510
  "githubMcpClientSecret",
2433
2511
  "atlassianClientId",
2434
2512
  "atlassianClientSecret",
2513
+ "qWorkUrl",
2514
+ "qWorkToken",
2435
2515
  // BRANDING RELATED SETTINGS
2436
2516
  "FacebookLink",
2437
2517
  "RedditLink",
@@ -2498,7 +2578,11 @@ var SettingKeySchema = z21.enum([
2498
2578
  // LIVEOPS TRIAGE AUTOMATION SETTINGS
2499
2579
  "liveopsTriageConfig",
2500
2580
  // HELP CENTER SETTINGS
2501
- "EnableHelpChat"
2581
+ "EnableHelpChat",
2582
+ // B4M PI SETTINGS
2583
+ "EnableBmPi",
2584
+ // QUANTUM CANVASSER SETTINGS
2585
+ "EnableQuantumCanvasser"
2502
2586
  ]);
2503
2587
  var CategoryOrder = [
2504
2588
  "AI",
@@ -2604,7 +2688,7 @@ function makeNumberSetting(config) {
2604
2688
  return {
2605
2689
  ...config,
2606
2690
  type: "number",
2607
- schema: z21.coerce.number().default(config.defaultValue ?? 0)
2691
+ schema: z21.coerce.number().prefault(config.defaultValue ?? 0)
2608
2692
  };
2609
2693
  }
2610
2694
  function makeBooleanSetting(config) {
@@ -2619,7 +2703,7 @@ function makeBooleanSetting(config) {
2619
2703
  return false;
2620
2704
  }
2621
2705
  return val;
2622
- }, z21.boolean()).default(config.defaultValue ?? false)
2706
+ }, z21.boolean()).prefault(config.defaultValue ?? false)
2623
2707
  };
2624
2708
  }
2625
2709
  function makeObjectSetting(config) {
@@ -2636,27 +2720,27 @@ var ServerStatusEnum;
2636
2720
  ServerStatusEnum2["Offline"] = "offline";
2637
2721
  })(ServerStatusEnum || (ServerStatusEnum = {}));
2638
2722
  var LogoSettingsSchema = z21.object({
2639
- customLogoUrl: z21.string().optional().default(""),
2640
- customDarkLogoUrl: z21.string().optional().default(""),
2641
- useBothLogos: z21.boolean().optional().default(false)
2723
+ customLogoUrl: z21.string().optional().prefault(""),
2724
+ customDarkLogoUrl: z21.string().optional().prefault(""),
2725
+ useBothLogos: z21.boolean().optional().prefault(false)
2642
2726
  });
2643
2727
  var RapidReplySettingsSchema = z21.object({
2644
- enabled: z21.boolean().default(false),
2645
- allowedUserTags: z21.array(z21.string()).default([]),
2646
- defaultMaxTokens: z21.number().default(150),
2647
- defaultResponseStyle: z21.enum(["auto", "casual", "professional", "code"]).default("auto"),
2648
- maxAcceptableLatency: z21.number().default(2e3),
2649
- minSuccessRate: z21.number().default(90),
2650
- transitionMode: z21.enum(["replace", "append", "enhance"]).default("replace"),
2651
- showIndicator: z21.boolean().default(true),
2652
- indicatorText: z21.string().default("Thinking..."),
2653
- fallbackBehavior: z21.enum(["disable", "continue", "notify"]).default("continue"),
2728
+ enabled: z21.boolean().prefault(false),
2729
+ allowedUserTags: z21.array(z21.string()).prefault([]),
2730
+ defaultMaxTokens: z21.number().prefault(150),
2731
+ defaultResponseStyle: z21.enum(["auto", "casual", "professional", "code"]).prefault("auto"),
2732
+ maxAcceptableLatency: z21.number().prefault(2e3),
2733
+ minSuccessRate: z21.number().prefault(90),
2734
+ transitionMode: z21.enum(["replace", "append", "enhance"]).prefault("replace"),
2735
+ showIndicator: z21.boolean().prefault(true),
2736
+ indicatorText: z21.string().prefault("Thinking..."),
2737
+ fallbackBehavior: z21.enum(["disable", "continue", "notify"]).prefault("continue"),
2654
2738
  metrics: z21.object({
2655
- totalRequests: z21.number().default(0),
2656
- successfulRequests: z21.number().default(0),
2657
- averageLatency: z21.number().default(0),
2658
- lastUpdated: z21.date().default(() => /* @__PURE__ */ new Date())
2659
- }).default({
2739
+ totalRequests: z21.number().prefault(0),
2740
+ successfulRequests: z21.number().prefault(0),
2741
+ averageLatency: z21.number().prefault(0),
2742
+ lastUpdated: z21.date().prefault(() => /* @__PURE__ */ new Date())
2743
+ }).prefault({
2660
2744
  totalRequests: 0,
2661
2745
  successfulRequests: 0,
2662
2746
  averageLatency: 0,
@@ -2717,7 +2801,7 @@ var WhatsNewConfigSchema = z21.object({
2717
2801
  });
2718
2802
  var WhatsNewSyncConfigSchema = z21.object({
2719
2803
  autoSyncEnabled: z21.boolean().default(true),
2720
- lastSyncAt: z21.string().datetime().optional(),
2804
+ lastSyncAt: z21.iso.datetime().optional(),
2721
2805
  lastSyncResult: z21.enum(["success", "skipped", "failed"]).optional(),
2722
2806
  lastSyncModalId: z21.string().optional(),
2723
2807
  /** Error message from last sync attempt (only populated when lastSyncResult is 'failed') */
@@ -2727,7 +2811,7 @@ var WhatsNewSyncConfigSchema = z21.object({
2727
2811
  * Must be validated against domain allowlist (CloudFront/S3 only) before saving.
2728
2812
  * Takes precedence over SST secret when set.
2729
2813
  */
2730
- distributionUrlOverride: z21.string().url().nullable().optional()
2814
+ distributionUrlOverride: z21.url().nullable().optional()
2731
2815
  });
2732
2816
  var LIVEOPS_TRIAGE_VALIDATION_LIMITS = {
2733
2817
  // Model configuration
@@ -2759,7 +2843,7 @@ var LiveopsTriageConfigSchema = z21.object({
2759
2843
  // Custom prompt template (optional)
2760
2844
  promptTemplate: z21.string().min(LT.promptTemplate.min, `Prompt template must be at least ${LT.promptTemplate.min} characters`).max(LT.promptTemplate.max, `Prompt template cannot exceed ${LT.promptTemplate.max.toLocaleString()} characters`).trim().optional(),
2761
2845
  // Run tracking (for idempotency)
2762
- lastRunAt: z21.string().datetime().optional(),
2846
+ lastRunAt: z21.iso.datetime().optional(),
2763
2847
  lastRunDate: z21.string().optional(),
2764
2848
  // YYYY-MM-DD for idempotency
2765
2849
  lastRunResult: z21.object({
@@ -2856,6 +2940,16 @@ var API_SERVICE_GROUPS = {
2856
2940
  { key: "atlassianClientSecret", order: 5 }
2857
2941
  ]
2858
2942
  },
2943
+ Q_WORK: {
2944
+ id: "qWorkAPIService",
2945
+ name: "Q/Work",
2946
+ description: "Q/Work integration settings",
2947
+ icon: "Handyman",
2948
+ settings: [
2949
+ { key: "qWorkUrl", order: 1 },
2950
+ { key: "qWorkToken", order: 2 }
2951
+ ]
2952
+ },
2859
2953
  SEARCH: {
2860
2954
  id: "searchAPIService",
2861
2955
  name: "Search Service",
@@ -2919,7 +3013,9 @@ var API_SERVICE_GROUPS = {
2919
3013
  { key: "EnableMcpToolFiltering", order: 15 },
2920
3014
  { key: "McpToolFilteringMaxTools", order: 16 },
2921
3015
  { key: "EnableParallelToolExecution", order: 17 },
2922
- { key: "EnableHelpChat", order: 18 }
3016
+ { key: "EnableHelpChat", order: 18 },
3017
+ { key: "EnableBmPi", order: 19 },
3018
+ { key: "EnableQuantumCanvasser", order: 20 }
2923
3019
  ]
2924
3020
  },
2925
3021
  NOTEBOOK: {
@@ -3737,6 +3833,25 @@ var settingsMap = {
3737
3833
  order: 5,
3738
3834
  isSensitive: true
3739
3835
  }),
3836
+ qWorkUrl: makeStringSetting({
3837
+ key: "qWorkUrl",
3838
+ name: "Q/Work URL",
3839
+ defaultValue: "",
3840
+ description: "The base URL for the Q/Work API (for example: https://q.bike4mind.com).",
3841
+ category: "Tools",
3842
+ group: API_SERVICE_GROUPS.Q_WORK.id,
3843
+ order: 1
3844
+ }),
3845
+ qWorkToken: makeStringSetting({
3846
+ key: "qWorkToken",
3847
+ name: "Q/Work Token",
3848
+ defaultValue: "",
3849
+ description: "The bearer token used to authenticate requests to Q/Work.",
3850
+ category: "Tools",
3851
+ group: API_SERVICE_GROUPS.Q_WORK.id,
3852
+ order: 2,
3853
+ isSensitive: true
3854
+ }),
3740
3855
  EnableOllama: makeBooleanSetting({
3741
3856
  key: "EnableOllama",
3742
3857
  name: "Enable Ollama",
@@ -4109,6 +4224,26 @@ var settingsMap = {
4109
4224
  category: "Experimental",
4110
4225
  group: API_SERVICE_GROUPS.EXPERIMENTAL.id,
4111
4226
  order: 17
4227
+ }),
4228
+ // B4M Pi (Project Intelligence) Settings
4229
+ EnableBmPi: makeBooleanSetting({
4230
+ key: "EnableBmPi",
4231
+ name: "Enable B4M Pi",
4232
+ defaultValue: true,
4233
+ description: "Enable the B4M Pi (Project Intelligence) module for repository analysis, task scheduling, and team activity dashboards.",
4234
+ category: "Experimental",
4235
+ group: API_SERVICE_GROUPS.EXPERIMENTAL.id,
4236
+ order: 18
4237
+ }),
4238
+ // OptiHashi Settings
4239
+ EnableQuantumCanvasser: makeBooleanSetting({
4240
+ key: "EnableQuantumCanvasser",
4241
+ name: "Enable OptiHashi",
4242
+ defaultValue: false,
4243
+ description: "Enable OptiHashi, the quantum optimizer module for AI-driven optimization across classical and quantum solvers.",
4244
+ category: "Experimental",
4245
+ group: API_SERVICE_GROUPS.EXPERIMENTAL.id,
4246
+ order: 18
4112
4247
  })
4113
4248
  // Add more settings as needed
4114
4249
  };
@@ -4337,7 +4472,7 @@ var CitableSourceSchema = z23.object({
4337
4472
  /** Processing status for real-time updates */
4338
4473
  status: z23.enum(["pending", "processing", "complete", "error"]).optional(),
4339
4474
  /** Extensibility metadata */
4340
- metadata: z23.object({
4475
+ metadata: z23.looseObject({
4341
4476
  sourceSystem: z23.string().optional(),
4342
4477
  icon: z23.string().optional(),
4343
4478
  tags: z23.array(z23.string()).optional(),
@@ -4346,7 +4481,7 @@ var CitableSourceSchema = z23.object({
4346
4481
  chunkId: z23.string().optional(),
4347
4482
  relevanceScore: z23.number().optional(),
4348
4483
  fullContext: z23.string().optional()
4349
- }).passthrough().optional()
4484
+ }).optional()
4350
4485
  });
4351
4486
  var PromptMetaZodSchema = z23.object({
4352
4487
  model: PromptMetaModelSchema.optional(),
@@ -4631,12 +4766,22 @@ var SlackEvents;
4631
4766
  SlackEvents2["CHANNEL_EXPORT_FAILED"] = "Slack Channel Export Failed";
4632
4767
  })(SlackEvents || (SlackEvents = {}));
4633
4768
 
4769
+ // ../../b4m-core/packages/common/dist/src/schemas/analytics/events/help.js
4770
+ var HelpEvents;
4771
+ (function(HelpEvents2) {
4772
+ HelpEvents2["HELP_ARTICLE_VIEW"] = "Help Article Viewed";
4773
+ HelpEvents2["HELP_SEARCH"] = "Help Search";
4774
+ HelpEvents2["HELP_ARTICLE_FEEDBACK"] = "Help Article Feedback";
4775
+ HelpEvents2["HELP_CHAT_QUERY"] = "Help Chat Query";
4776
+ HelpEvents2["HELP_CHAT_FEEDBACK"] = "Help Chat Feedback";
4777
+ })(HelpEvents || (HelpEvents = {}));
4778
+
4634
4779
  // ../../b4m-core/packages/common/dist/src/schemas/team.js
4635
4780
  import { z as z24 } from "zod";
4636
4781
  var InternalTeamMemberSchema = z24.object({
4637
4782
  name: z24.string().min(1, "Name is required"),
4638
4783
  phone: z24.string().min(1, "Phone is required"),
4639
- email: z24.string().email("Must be a valid email").optional(),
4784
+ email: z24.email("Must be a valid email").optional(),
4640
4785
  role: z24.string().optional(),
4641
4786
  department: z24.string().optional(),
4642
4787
  isActive: z24.boolean().optional()
@@ -4771,18 +4916,18 @@ var LatticeAttributeSchema = z25.object({
4771
4916
  key: z25.string().min(1).max(100),
4772
4917
  value: LatticePrimitiveValueSchema,
4773
4918
  dataType: LatticeDataTypeSchema,
4774
- isComputed: z25.boolean().default(false),
4919
+ isComputed: z25.boolean().prefault(false),
4775
4920
  computedByRuleId: z25.string().optional(),
4776
4921
  timestamp: z25.number().optional(),
4777
- metadata: z25.record(z25.unknown()).optional()
4922
+ metadata: z25.record(z25.string(), z25.unknown()).optional()
4778
4923
  });
4779
4924
  var LatticeEntitySchema = z25.object({
4780
4925
  id: z25.string().min(1).max(100),
4781
4926
  type: LatticeEntityTypeSchema,
4782
4927
  name: z25.string().min(1).max(255),
4783
4928
  displayName: z25.string().max(255).optional(),
4784
- attributes: z25.array(LatticeAttributeSchema).default([]),
4785
- metadata: z25.record(z25.unknown()).default({}),
4929
+ attributes: z25.array(LatticeAttributeSchema).prefault([]),
4930
+ metadata: z25.record(z25.string(), z25.unknown()).prefault({}),
4786
4931
  createdAt: z25.date(),
4787
4932
  updatedAt: z25.date()
4788
4933
  });
@@ -4791,11 +4936,11 @@ var LatticeRelationshipSchema = z25.object({
4791
4936
  type: LatticeRelationshipTypeSchema,
4792
4937
  fromEntityId: z25.string(),
4793
4938
  toEntityId: z25.string(),
4794
- metadata: z25.record(z25.unknown()).optional()
4939
+ metadata: z25.record(z25.string(), z25.unknown()).optional()
4795
4940
  });
4796
4941
  var LatticeDataStoreSchema = z25.object({
4797
- entities: z25.array(LatticeEntitySchema).default([]),
4798
- relationships: z25.array(LatticeRelationshipSchema).default([])
4942
+ entities: z25.array(LatticeEntitySchema).prefault([]),
4943
+ relationships: z25.array(LatticeRelationshipSchema).prefault([])
4799
4944
  });
4800
4945
  var LatticeInputSchema = z25.object({
4801
4946
  type: z25.enum(["entity", "attribute", "rule", "literal", "range"]),
@@ -4825,27 +4970,27 @@ var LatticeRuleSchema = z25.object({
4825
4970
  description: z25.string().max(1e3).optional(),
4826
4971
  type: LatticeRuleTypeSchema,
4827
4972
  definition: LatticeRuleDefinitionSchema,
4828
- dependencies: z25.array(z25.string()).default([]),
4829
- priority: z25.number().int().default(0),
4830
- enabled: z25.boolean().default(true),
4973
+ dependencies: z25.array(z25.string()).prefault([]),
4974
+ priority: z25.int().prefault(0),
4975
+ enabled: z25.boolean().prefault(true),
4831
4976
  createdAt: z25.date(),
4832
4977
  updatedAt: z25.date()
4833
4978
  });
4834
4979
  var LatticeRulesetSchema = z25.object({
4835
4980
  id: z25.string().min(1).max(100),
4836
4981
  name: z25.string().min(1).max(255),
4837
- ruleIds: z25.array(z25.string()).default([]),
4982
+ ruleIds: z25.array(z25.string()).prefault([]),
4838
4983
  description: z25.string().max(1e3).optional()
4839
4984
  });
4840
4985
  var LatticeRulesStoreSchema = z25.object({
4841
- rules: z25.array(LatticeRuleSchema).default([]),
4842
- rulesets: z25.array(LatticeRulesetSchema).default([])
4986
+ rules: z25.array(LatticeRuleSchema).prefault([]),
4987
+ rulesets: z25.array(LatticeRulesetSchema).prefault([])
4843
4988
  });
4844
4989
  var LatticeRowConfigSchema = z25.object({
4845
4990
  source: z25.enum(["entity", "rule", "category"]),
4846
4991
  ref: z25.string(),
4847
4992
  label: z25.string().optional(),
4848
- indent: z25.number().int().min(0).max(10).optional(),
4993
+ indent: z25.int().min(0).max(10).optional(),
4849
4994
  isSummary: z25.boolean().optional()
4850
4995
  });
4851
4996
  var LatticeColumnConfigSchema = z25.object({
@@ -4870,7 +5015,7 @@ var LatticeGroupConfigSchema = z25.object({
4870
5015
  var LatticeFormatConfigSchema = z25.object({
4871
5016
  numberFormat: z25.string().optional(),
4872
5017
  currencySymbol: z25.string().max(10).optional(),
4873
- percentageDecimals: z25.number().int().min(0).max(10).optional(),
5018
+ percentageDecimals: z25.int().min(0).max(10).optional(),
4874
5019
  negativeFormat: LatticeNegativeFormatSchema.optional(),
4875
5020
  showGridLines: z25.boolean().optional(),
4876
5021
  zebra: z25.boolean().optional(),
@@ -4893,22 +5038,22 @@ var LatticeViewSchema = z25.object({
4893
5038
  updatedAt: z25.date()
4894
5039
  });
4895
5040
  var LatticeViewStoreSchema = z25.object({
4896
- views: z25.array(LatticeViewSchema).default([]),
5041
+ views: z25.array(LatticeViewSchema).prefault([]),
4897
5042
  activeViewId: z25.string().optional()
4898
5043
  });
4899
5044
  var LatticeModelSettingsSchema = z25.object({
4900
- currency: z25.string().min(1).max(10).default("USD"),
4901
- fiscalYearStart: z25.string().regex(/^\d{2}-\d{2}$/).default("01-01"),
4902
- periodGrain: LatticePeriodGrainSchema.default("quarter"),
4903
- defaultDecimalPlaces: z25.number().int().min(0).max(10).default(2),
4904
- negativeFormat: LatticeNegativeFormatSchema.default("parentheses")
5045
+ currency: z25.string().min(1).max(10).prefault("USD"),
5046
+ fiscalYearStart: z25.string().regex(/^\d{2}-\d{2}$/).prefault("01-01"),
5047
+ periodGrain: LatticePeriodGrainSchema.prefault("quarter"),
5048
+ defaultDecimalPlaces: z25.int().min(0).max(10).prefault(2),
5049
+ negativeFormat: LatticeNegativeFormatSchema.prefault("parentheses")
4905
5050
  });
4906
5051
  var LatticeHistoryOperationSchema = z25.object({
4907
5052
  id: z25.string(),
4908
5053
  type: LatticeOperationTypeSchema,
4909
5054
  timestamp: z25.date(),
4910
- data: z25.record(z25.unknown()),
4911
- inverse: z25.record(z25.unknown()),
5055
+ data: z25.record(z25.string(), z25.unknown()),
5056
+ inverse: z25.record(z25.string(), z25.unknown()),
4912
5057
  description: z25.string(),
4913
5058
  messageId: z25.string().optional()
4914
5059
  });
@@ -4921,7 +5066,7 @@ var LatticeScenarioSchema = z25.object({
4921
5066
  id: z25.string().min(1).max(100),
4922
5067
  name: z25.string().min(1).max(255),
4923
5068
  description: z25.string().max(1e3).optional(),
4924
- overrides: z25.array(LatticeScenarioOverrideSchema).default([]),
5069
+ overrides: z25.array(LatticeScenarioOverrideSchema).prefault([]),
4925
5070
  createdAt: z25.date(),
4926
5071
  updatedAt: z25.date()
4927
5072
  });
@@ -4930,7 +5075,7 @@ var LatticeComputedValueSchema = z25.object({
4930
5075
  computedByRuleId: z25.string(),
4931
5076
  computedAt: z25.date()
4932
5077
  });
4933
- var LatticeComputedValuesSchema = z25.record(z25.record(LatticeComputedValueSchema));
5078
+ var LatticeComputedValuesSchema = z25.record(z25.string(), z25.record(z25.string(), LatticeComputedValueSchema));
4934
5079
  var LatticeCalculationStepSchema = z25.object({
4935
5080
  ruleId: z25.string(),
4936
5081
  ruleName: z25.string(),
@@ -4952,26 +5097,26 @@ var LatticeModelSchema = z25.object({
4952
5097
  id: z25.string().min(1).max(100),
4953
5098
  name: z25.string().min(1).max(255),
4954
5099
  description: z25.string().max(2e3).optional(),
4955
- modelType: LatticeModelTypeSchema.default("custom"),
5100
+ modelType: LatticeModelTypeSchema.prefault("custom"),
4956
5101
  // Ownership
4957
5102
  userId: z25.string(),
4958
5103
  sessionId: z25.string().optional(),
4959
5104
  projectId: z25.string().optional(),
4960
5105
  organizationId: z25.string().optional(),
4961
5106
  // Core Data Layers
4962
- data: LatticeDataStoreSchema.default({ entities: [], relationships: [] }),
4963
- rules: LatticeRulesStoreSchema.default({ rules: [], rulesets: [] }),
4964
- views: LatticeViewStoreSchema.default({ views: [] }),
5107
+ data: LatticeDataStoreSchema.prefault({ entities: [], relationships: [] }),
5108
+ rules: LatticeRulesStoreSchema.prefault({ rules: [], rulesets: [] }),
5109
+ views: LatticeViewStoreSchema.prefault({ views: [] }),
4965
5110
  // Settings
4966
- settings: LatticeModelSettingsSchema.default({}),
5111
+ settings: LatticeModelSettingsSchema.prefault({}),
4967
5112
  // Scenarios
4968
- scenarios: z25.array(LatticeScenarioSchema).default([]),
5113
+ scenarios: z25.array(LatticeScenarioSchema).prefault([]),
4969
5114
  activeScenarioId: z25.string().optional(),
4970
5115
  // History
4971
- operations: z25.array(LatticeHistoryOperationSchema).default([]),
4972
- operationIndex: z25.number().int().min(-1).default(-1),
5116
+ operations: z25.array(LatticeHistoryOperationSchema).prefault([]),
5117
+ operationIndex: z25.int().min(-1).prefault(-1),
4973
5118
  // Versioning
4974
- version: z25.number().int().positive().default(1),
5119
+ version: z25.int().positive().prefault(1),
4975
5120
  contentHash: z25.string().optional(),
4976
5121
  // Timestamps
4977
5122
  createdAt: z25.date(),
@@ -4995,8 +5140,8 @@ var LatticeExtractedEntitySchema = z25.object({
4995
5140
  value: z25.string(),
4996
5141
  normalizedValue: z25.union([z25.string(), z25.number()]).optional(),
4997
5142
  position: z25.object({
4998
- start: z25.number().int().min(0),
4999
- end: z25.number().int().min(0)
5143
+ start: z25.int().min(0),
5144
+ end: z25.int().min(0)
5000
5145
  }),
5001
5146
  confidence: z25.number().min(0).max(1)
5002
5147
  });
@@ -5129,7 +5274,7 @@ var GenerateImageIvokeParamsSchema = OpenAIImageGenerationInput.extend({
5129
5274
  width: z26.number().optional(),
5130
5275
  height: z26.number().optional(),
5131
5276
  aspect_ratio: z26.string().optional(),
5132
- fabFileIds: z26.array(z26.string()).default([]),
5277
+ fabFileIds: z26.array(z26.string()).prefault([]),
5133
5278
  tools: z26.array(z26.union([b4mLLMTools, z26.string()])).optional(),
5134
5279
  promptEnhancement: z26.object({
5135
5280
  originalPrompt: z26.string(),
@@ -5157,7 +5302,7 @@ var EditImageRequestBodySchema = OpenAIImageGenerationInput.extend({
5157
5302
  questId: z26.string().optional(),
5158
5303
  organizationId: z26.string().nullable().optional(),
5159
5304
  aspect_ratio: z26.string().optional(),
5160
- fabFileIds: z26.array(z26.string()).default([]),
5305
+ fabFileIds: z26.array(z26.string()).prefault([]),
5161
5306
  image: z26.string()
5162
5307
  });
5163
5308
  var ChatCompletionInvokeParamsSchema = z26.object({
@@ -5174,7 +5319,7 @@ var ChatCompletionInvokeParamsSchema = z26.object({
5174
5319
  fabFileIds: z26.array(z26.string()),
5175
5320
  /** Prompt message */
5176
5321
  message: z26.string(),
5177
- messageFileIds: z26.array(z26.string()).default([]),
5322
+ messageFileIds: z26.array(z26.string()).prefault([]),
5178
5323
  questId: z26.string().optional(),
5179
5324
  /** Extra context messages to include in the conversation from external sources */
5180
5325
  extraContextMessages: z26.array(z26.object({
@@ -8874,19 +9019,19 @@ var ArtifactPermissionsSchema = z28.object({
8874
9019
  canRead: z28.array(z28.string()),
8875
9020
  canWrite: z28.array(z28.string()),
8876
9021
  canDelete: z28.array(z28.string()),
8877
- isPublic: z28.boolean().default(false),
8878
- inheritFromProject: z28.boolean().default(true)
9022
+ isPublic: z28.boolean().prefault(false),
9023
+ inheritFromProject: z28.boolean().prefault(true)
8879
9024
  });
8880
9025
  var BaseArtifactSchema = z28.object({
8881
- id: z28.string().uuid(),
9026
+ id: z28.uuid(),
8882
9027
  type: ArtifactTypeSchema,
8883
9028
  title: z28.string().min(1).max(255),
8884
9029
  description: z28.string().max(1e3).optional(),
8885
9030
  // Versioning
8886
- version: z28.number().int().positive().default(1),
9031
+ version: z28.int().positive().prefault(1),
8887
9032
  versionTag: z28.string().max(100).optional(),
8888
- currentVersionId: z28.string().uuid().optional(),
8889
- parentVersionId: z28.string().uuid().optional(),
9033
+ currentVersionId: z28.uuid().optional(),
9034
+ parentVersionId: z28.uuid().optional(),
8890
9035
  // Timestamps
8891
9036
  createdAt: z28.date(),
8892
9037
  updatedAt: z28.date(),
@@ -8896,43 +9041,43 @@ var BaseArtifactSchema = z28.object({
8896
9041
  userId: z28.string(),
8897
9042
  projectId: z28.string().optional(),
8898
9043
  organizationId: z28.string().optional(),
8899
- visibility: VisibilitySchema.default("private"),
9044
+ visibility: VisibilitySchema.prefault("private"),
8900
9045
  permissions: ArtifactPermissionsSchema,
8901
9046
  // Relationships
8902
9047
  sourceQuestId: z28.string().optional(),
8903
9048
  sessionId: z28.string().optional(),
8904
- parentArtifactId: z28.string().uuid().optional(),
9049
+ parentArtifactId: z28.uuid().optional(),
8905
9050
  // Status
8906
- status: ArtifactStatusSchema.default("draft"),
8907
- tags: z28.array(z28.string().max(50)).max(20).default([]),
9051
+ status: ArtifactStatusSchema.prefault("draft"),
9052
+ tags: z28.array(z28.string().max(50)).max(20).prefault([]),
8908
9053
  // Content
8909
9054
  contentHash: z28.string(),
8910
- contentSize: z28.number().int().nonnegative(),
9055
+ contentSize: z28.int().nonnegative(),
8911
9056
  // Metadata
8912
- metadata: z28.record(z28.unknown()).optional()
9057
+ metadata: z28.record(z28.string(), z28.unknown()).optional()
8913
9058
  });
8914
9059
  var EnhancedArtifactMetadataSchema = z28.object({
8915
9060
  language: z28.string().optional(),
8916
9061
  dependencies: z28.array(z28.string()).optional(),
8917
- settings: z28.record(z28.unknown()).optional()
9062
+ settings: z28.record(z28.string(), z28.unknown()).optional()
8918
9063
  });
8919
9064
  var ReactArtifactV2Schema = BaseArtifactSchema.extend({
8920
9065
  type: z28.literal("react"),
8921
9066
  content: z28.string(),
8922
9067
  metadata: EnhancedArtifactMetadataSchema.extend({
8923
9068
  dependencies: z28.array(z28.string()),
8924
- props: z28.record(z28.unknown()).optional(),
9069
+ props: z28.record(z28.string(), z28.unknown()).optional(),
8925
9070
  hasDefaultExport: z28.boolean(),
8926
- errorBoundary: z28.boolean().default(true)
9071
+ errorBoundary: z28.boolean().prefault(true)
8927
9072
  })
8928
9073
  });
8929
9074
  var HtmlArtifactV2Schema = BaseArtifactSchema.extend({
8930
9075
  type: z28.literal("html"),
8931
9076
  content: z28.string(),
8932
9077
  metadata: EnhancedArtifactMetadataSchema.extend({
8933
- allowedScripts: z28.array(z28.string()).default([]),
9078
+ allowedScripts: z28.array(z28.string()).prefault([]),
8934
9079
  cspPolicy: z28.string().optional(),
8935
- sanitized: z28.boolean().default(false)
9080
+ sanitized: z28.boolean().prefault(false)
8936
9081
  })
8937
9082
  });
8938
9083
  var SvgArtifactV2Schema = BaseArtifactSchema.extend({
@@ -8942,7 +9087,7 @@ var SvgArtifactV2Schema = BaseArtifactSchema.extend({
8942
9087
  viewBox: z28.string().optional(),
8943
9088
  width: z28.number().positive().optional(),
8944
9089
  height: z28.number().positive().optional(),
8945
- sanitized: z28.boolean().default(false)
9090
+ sanitized: z28.boolean().prefault(false)
8946
9091
  })
8947
9092
  });
8948
9093
  var MermaidArtifactV2Schema = BaseArtifactSchema.extend({
@@ -8990,28 +9135,28 @@ var validateMermaidArtifactV2 = (data) => {
8990
9135
  import { z as z29 } from "zod";
8991
9136
  var QuestStatusSchema = z29.enum(["pending", "in-progress", "completed", "skipped"]);
8992
9137
  var QuestSchema = z29.object({
8993
- id: z29.string().uuid(),
9138
+ id: z29.uuid(),
8994
9139
  title: z29.string().min(1).max(255),
8995
9140
  description: z29.string().max(1e3),
8996
- status: QuestStatusSchema.default("pending"),
8997
- order: z29.number().int().nonnegative(),
8998
- dependencies: z29.array(z29.string().uuid()).optional(),
8999
- estimatedMinutes: z29.number().int().positive().optional(),
9141
+ status: QuestStatusSchema.prefault("pending"),
9142
+ order: z29.int().nonnegative(),
9143
+ dependencies: z29.array(z29.uuid()).optional(),
9144
+ estimatedMinutes: z29.int().positive().optional(),
9000
9145
  completedAt: z29.date().optional(),
9001
9146
  completedBy: z29.string().optional(),
9002
- metadata: z29.record(z29.unknown()).optional()
9147
+ metadata: z29.record(z29.string(), z29.unknown()).optional()
9003
9148
  });
9004
9149
  var QuestResourceSchema = z29.object({
9005
9150
  type: z29.enum(["documentation", "tutorial", "example", "tool"]),
9006
9151
  title: z29.string().min(1).max(255),
9007
- url: z29.string().url(),
9152
+ url: z29.url(),
9008
9153
  description: z29.string().max(500).optional()
9009
9154
  });
9010
9155
  var QuestMasterContentSchema = z29.object({
9011
9156
  goal: z29.string().min(1).max(500),
9012
9157
  quests: z29.array(QuestSchema).min(1),
9013
- totalSteps: z29.number().int().positive(),
9014
- estimatedDuration: z29.number().int().positive().optional(),
9158
+ totalSteps: z29.int().positive(),
9159
+ estimatedDuration: z29.int().positive().optional(),
9015
9160
  complexity: z29.enum(["low", "medium", "high"]),
9016
9161
  category: z29.string().max(100).optional(),
9017
9162
  prerequisites: z29.array(z29.string().max(255)).optional(),
@@ -9042,7 +9187,7 @@ var CurationType;
9042
9187
  CurationType2["TRANSCRIPT"] = "transcript";
9043
9188
  CurationType2["EXECUTIVE_SUMMARY"] = "executive_summary";
9044
9189
  })(CurationType || (CurationType = {}));
9045
- var CurationTypeSchema = z30.nativeEnum(CurationType);
9190
+ var CurationTypeSchema = z30.enum(CurationType);
9046
9191
  var CurationArtifactType;
9047
9192
  (function(CurationArtifactType2) {
9048
9193
  CurationArtifactType2["CODE"] = "code";
@@ -9069,23 +9214,23 @@ var CurationArtifactTypeSchema = z30.enum([
9069
9214
  var ExportFormatSchema = z30.enum(["markdown", "txt", "html"]);
9070
9215
  var CurationOptionsSchema = z30.object({
9071
9216
  /** Curation type: transcript (Option 1) or executive_summary (Option 2) */
9072
- curationType: CurationTypeSchema.default(CurationType.TRANSCRIPT),
9217
+ curationType: CurationTypeSchema.prefault(CurationType.TRANSCRIPT),
9073
9218
  /** Include code artifacts in the curated notebook */
9074
- includeCode: z30.boolean().default(true),
9219
+ includeCode: z30.boolean().prefault(true),
9075
9220
  /** Include diagrams (Mermaid, SVG) in the curated notebook */
9076
- includeDiagrams: z30.boolean().default(true),
9221
+ includeDiagrams: z30.boolean().prefault(true),
9077
9222
  /** Include data visualizations (Recharts) in the curated notebook */
9078
- includeDataViz: z30.boolean().default(true),
9223
+ includeDataViz: z30.boolean().prefault(true),
9079
9224
  /** Include QuestMaster plans in the curated notebook */
9080
- includeQuestMaster: z30.boolean().default(true),
9225
+ includeQuestMaster: z30.boolean().prefault(true),
9081
9226
  /** Include Deep Research findings in the curated notebook */
9082
- includeResearch: z30.boolean().default(true),
9227
+ includeResearch: z30.boolean().prefault(true),
9083
9228
  /** Include images in the curated notebook */
9084
- includeImages: z30.boolean().default(true),
9229
+ includeImages: z30.boolean().prefault(true),
9085
9230
  /** Token budget for processing (varies by curation type) */
9086
9231
  tokenBudget: z30.number().optional(),
9087
9232
  /** Export format for the curated notebook */
9088
- exportFormat: ExportFormatSchema.default("markdown"),
9233
+ exportFormat: ExportFormatSchema.prefault("markdown"),
9089
9234
  /** Custom notebook name (optional, defaults to curated-notebook-{sessionId}) */
9090
9235
  customNotebookName: z30.string().optional()
9091
9236
  });
@@ -9295,6 +9440,679 @@ function serializeSSEEvent(event) {
9295
9440
  }
9296
9441
  var SSE_DONE_SIGNAL = "data: [DONE]\n\n";
9297
9442
 
9443
+ // ../../b4m-core/packages/common/dist/src/navigation/viewRegistry.js
9444
+ var VIEW_REGISTRY = [
9445
+ // ── OptiHashi (Quantum Optimizer) ──────────────────────────────────────
9446
+ {
9447
+ id: "opti.root",
9448
+ section: "opti",
9449
+ label: "OptiHashi Home",
9450
+ description: "The OptiHashi Quantum Optimizer landing page showing all 8 pattern family cards",
9451
+ navigationType: "route",
9452
+ target: "/opti",
9453
+ keywords: ["optimization", "canvasser", "home", "patterns", "families"]
9454
+ },
9455
+ {
9456
+ id: "opti.scheduling",
9457
+ section: "opti",
9458
+ label: "Scheduling",
9459
+ description: "Scheduling optimization: job-shop, flow-shop, shift scheduling, makespan minimization",
9460
+ navigationType: "action",
9461
+ target: "scheduling",
9462
+ keywords: ["scheduling", "job-shop", "flow-shop", "shifts", "makespan", "calendar"]
9463
+ },
9464
+ {
9465
+ id: "opti.scheduling.problem",
9466
+ section: "opti",
9467
+ label: "Problem Editor",
9468
+ description: "Define and preview scheduling problems \u2014 job-shop matrix, QUBO encoding",
9469
+ navigationType: "action",
9470
+ target: "scheduling.problem",
9471
+ keywords: ["problem", "editor", "QUBO", "matrix", "jobs", "machines", "operations", "custom problem"]
9472
+ },
9473
+ {
9474
+ id: "opti.scheduling.solvers",
9475
+ section: "opti",
9476
+ label: "Solver Selection",
9477
+ description: "Configure which solvers to race \u2014 greedy, simulated annealing, tabu search, genetic algorithm, ant colony",
9478
+ navigationType: "action",
9479
+ target: "scheduling.solvers",
9480
+ keywords: [
9481
+ "solvers",
9482
+ "tabu",
9483
+ "simulated annealing",
9484
+ "genetic algorithm",
9485
+ "ant colony",
9486
+ "greedy",
9487
+ "solver race",
9488
+ "configure solvers"
9489
+ ]
9490
+ },
9491
+ {
9492
+ id: "opti.scheduling.results",
9493
+ section: "opti",
9494
+ label: "Race Results",
9495
+ description: "View solver race results \u2014 progress, best schedule, makespan comparison, utilization",
9496
+ navigationType: "action",
9497
+ target: "scheduling.results",
9498
+ keywords: [
9499
+ "results",
9500
+ "race results",
9501
+ "makespan",
9502
+ "comparison",
9503
+ "best schedule",
9504
+ "utilization",
9505
+ "solver comparison"
9506
+ ]
9507
+ },
9508
+ {
9509
+ id: "opti.scheduling.gantt",
9510
+ section: "opti",
9511
+ label: "Gantt Chart",
9512
+ description: "Gantt chart visualization of the best scheduling solution",
9513
+ navigationType: "action",
9514
+ target: "scheduling.gantt",
9515
+ keywords: ["gantt", "chart", "visualization", "timeline", "schedule view"]
9516
+ },
9517
+ {
9518
+ id: "opti.scheduling.qwork",
9519
+ section: "opti",
9520
+ label: "Q/Work",
9521
+ description: "View quantum job history and status from Q/Work",
9522
+ navigationType: "action",
9523
+ target: "scheduling.qwork",
9524
+ keywords: ["quantum", "q/work", "qwork", "hardware", "quantum computer", "jobs", "status", "history"]
9525
+ },
9526
+ {
9527
+ id: "opti.routing",
9528
+ section: "opti",
9529
+ label: "Routing",
9530
+ description: "Vehicle routing, TSP, logistics, delivery routes, fleet management",
9531
+ navigationType: "action",
9532
+ target: "routing",
9533
+ keywords: ["routing", "TSP", "vehicle", "logistics", "delivery", "fleet", "path"]
9534
+ },
9535
+ {
9536
+ id: "opti.packing",
9537
+ section: "opti",
9538
+ label: "Packing",
9539
+ description: "Bin packing, knapsack, container loading, space optimization",
9540
+ navigationType: "action",
9541
+ target: "packing",
9542
+ keywords: ["packing", "bin", "knapsack", "container", "loading", "space"]
9543
+ },
9544
+ {
9545
+ id: "opti.network",
9546
+ section: "opti",
9547
+ label: "Network Design",
9548
+ description: "Network flow, facility location, supply chain network design",
9549
+ navigationType: "action",
9550
+ target: "network",
9551
+ keywords: ["network", "flow", "facility", "location", "supply chain", "graph"]
9552
+ },
9553
+ {
9554
+ id: "opti.selection",
9555
+ section: "opti",
9556
+ label: "Selection",
9557
+ description: "Portfolio selection, feature selection, subset optimization",
9558
+ navigationType: "action",
9559
+ target: "selection",
9560
+ keywords: ["selection", "portfolio", "feature", "subset", "pick", "choose"]
9561
+ },
9562
+ {
9563
+ id: "opti.economic",
9564
+ section: "opti",
9565
+ label: "Economic",
9566
+ description: "Resource allocation, pricing, budgeting, economic optimization",
9567
+ navigationType: "action",
9568
+ target: "economic",
9569
+ keywords: ["economic", "resource", "allocation", "pricing", "budget", "cost"]
9570
+ },
9571
+ {
9572
+ id: "opti.assignment",
9573
+ section: "opti",
9574
+ label: "Assignment",
9575
+ description: "Task assignment, matching, workforce allocation, team formation",
9576
+ navigationType: "action",
9577
+ target: "assignment",
9578
+ keywords: ["assignment", "matching", "workforce", "team", "allocate", "assign"]
9579
+ },
9580
+ {
9581
+ id: "opti.partitioning",
9582
+ section: "opti",
9583
+ label: "Partitioning",
9584
+ description: "Graph partitioning, clustering, load balancing, data partitioning",
9585
+ navigationType: "action",
9586
+ target: "partitioning",
9587
+ keywords: ["partitioning", "clustering", "balancing", "partition", "divide", "split"]
9588
+ },
9589
+ // ── Admin ──────────────────────────────────────────────────────────────
9590
+ {
9591
+ id: "admin.users",
9592
+ section: "admin",
9593
+ label: "User Management",
9594
+ description: "View and manage user accounts, roles, and permissions",
9595
+ navigationType: "tab",
9596
+ target: "0",
9597
+ // AdminTab.Users
9598
+ keywords: ["users", "accounts", "roles", "permissions", "manage users"],
9599
+ requiresAdmin: true
9600
+ },
9601
+ {
9602
+ id: "admin.credit_analytics",
9603
+ section: "admin",
9604
+ label: "Credit Analytics",
9605
+ description: "View credit usage, add credits to users, billing analytics",
9606
+ navigationType: "tab",
9607
+ target: "15",
9608
+ // AdminTab.CreditAnalytics
9609
+ keywords: ["credits", "billing", "usage", "add credits", "balance", "cost"],
9610
+ requiresAdmin: true
9611
+ },
9612
+ {
9613
+ id: "admin.settings",
9614
+ section: "admin",
9615
+ label: "Admin Settings",
9616
+ description: "System-wide administration settings and configuration",
9617
+ navigationType: "tab",
9618
+ target: "1",
9619
+ // AdminTab.AdminSettings
9620
+ keywords: ["settings", "configuration", "admin", "system settings"],
9621
+ requiresAdmin: true
9622
+ },
9623
+ {
9624
+ id: "admin.system_health",
9625
+ section: "admin",
9626
+ label: "System Health",
9627
+ description: "Monitor system health, uptime, and performance metrics",
9628
+ navigationType: "tab",
9629
+ target: "29",
9630
+ // AdminTab.SystemHealth
9631
+ keywords: ["health", "uptime", "monitoring", "performance", "status"],
9632
+ requiresAdmin: true
9633
+ },
9634
+ {
9635
+ id: "admin.llm_dashboard",
9636
+ section: "admin",
9637
+ label: "LLM Dashboard",
9638
+ description: "LLM model usage, costs, and performance monitoring",
9639
+ navigationType: "tab",
9640
+ target: "24",
9641
+ // AdminTab.LLMDashboard
9642
+ keywords: ["llm", "model", "ai", "costs", "tokens", "dashboard"],
9643
+ requiresAdmin: true
9644
+ },
9645
+ {
9646
+ id: "admin.tool_definitions",
9647
+ section: "admin",
9648
+ label: "Tool Definitions",
9649
+ description: "Manage LLM tool definitions and configurations",
9650
+ navigationType: "tab",
9651
+ target: "31",
9652
+ // AdminTab.ToolDefinitions
9653
+ keywords: ["tools", "tool definitions", "functions", "capabilities"],
9654
+ requiresAdmin: true
9655
+ },
9656
+ {
9657
+ id: "admin.organizations",
9658
+ section: "admin",
9659
+ label: "Organizations",
9660
+ description: "Manage organizations, teams, and multi-tenant settings",
9661
+ navigationType: "tab",
9662
+ target: "14",
9663
+ // AdminTab.Organizations
9664
+ keywords: ["organizations", "teams", "tenants", "companies"],
9665
+ requiresAdmin: true
9666
+ },
9667
+ {
9668
+ id: "admin.analytics",
9669
+ section: "admin",
9670
+ label: "Analytics",
9671
+ description: "User activity analytics, engagement metrics, and reports",
9672
+ navigationType: "tab",
9673
+ target: "3",
9674
+ // AdminTab.Analytics
9675
+ keywords: ["analytics", "metrics", "reports", "engagement", "activity"],
9676
+ requiresAdmin: true
9677
+ },
9678
+ {
9679
+ id: "admin.subscribers",
9680
+ section: "admin",
9681
+ label: "Subscribers",
9682
+ description: "Manage subscriber waitlist and access approvals",
9683
+ navigationType: "tab",
9684
+ target: "12",
9685
+ // AdminTab.Subscribers
9686
+ keywords: ["subscribers", "waitlist", "approvals", "signups"],
9687
+ requiresAdmin: true
9688
+ },
9689
+ {
9690
+ id: "admin.subscriptions",
9691
+ section: "admin",
9692
+ label: "Subscriptions",
9693
+ description: "Manage subscription plans, tiers, and billing",
9694
+ navigationType: "tab",
9695
+ target: "13",
9696
+ // AdminTab.Subscriptions
9697
+ keywords: ["subscriptions", "plans", "tiers", "billing", "pricing"],
9698
+ requiresAdmin: true
9699
+ },
9700
+ {
9701
+ id: "admin.invite_codes",
9702
+ section: "admin",
9703
+ label: "Invite Codes",
9704
+ description: "Create and manage registration invite codes",
9705
+ navigationType: "tab",
9706
+ target: "5",
9707
+ // AdminTab.RegistrationInvites
9708
+ keywords: ["invite", "codes", "registration", "invitations"],
9709
+ requiresAdmin: true
9710
+ },
9711
+ {
9712
+ id: "admin.agent_ops",
9713
+ section: "admin",
9714
+ label: "Agent Operations",
9715
+ description: "Monitor and manage AI agent operations and tasks",
9716
+ navigationType: "tab",
9717
+ target: "23",
9718
+ // AdminTab.AgentOps
9719
+ keywords: ["agents", "operations", "tasks", "agent ops"],
9720
+ requiresAdmin: true
9721
+ },
9722
+ {
9723
+ id: "admin.security_dashboard",
9724
+ section: "admin",
9725
+ label: "Security Dashboard",
9726
+ description: "Security monitoring, threat detection, and audit logs",
9727
+ navigationType: "tab",
9728
+ target: "26",
9729
+ // AdminTab.SecurityDashboard
9730
+ keywords: ["security", "threats", "audit", "logs", "vulnerabilities"],
9731
+ requiresAdmin: true
9732
+ },
9733
+ {
9734
+ id: "admin.system_prompts",
9735
+ section: "admin",
9736
+ label: "System Prompts",
9737
+ description: "Edit and manage system prompts for AI models",
9738
+ navigationType: "tab",
9739
+ target: "21",
9740
+ // AdminTab.SystemPrompts
9741
+ keywords: ["prompts", "system prompts", "instructions", "AI prompts"],
9742
+ requiresAdmin: true
9743
+ },
9744
+ {
9745
+ id: "admin.modals",
9746
+ section: "admin",
9747
+ label: "Modals",
9748
+ description: "Manage modal dialogs and popup configurations",
9749
+ navigationType: "tab",
9750
+ target: "7",
9751
+ // AdminTab.Modals
9752
+ keywords: ["modals", "dialogs", "popups", "announcements"],
9753
+ requiresAdmin: true
9754
+ },
9755
+ {
9756
+ id: "admin.whats_new",
9757
+ section: "admin",
9758
+ label: "What's New",
9759
+ description: "Manage What's New release notes and changelogs",
9760
+ navigationType: "tab",
9761
+ target: "32",
9762
+ // AdminTab.WhatsNewModals
9763
+ keywords: ["whats new", "release notes", "changelog", "updates"],
9764
+ requiresAdmin: true
9765
+ },
9766
+ {
9767
+ id: "admin.rapid_reply",
9768
+ section: "admin",
9769
+ label: "Rapid Reply",
9770
+ description: "Configure rapid reply templates and shortcuts",
9771
+ navigationType: "tab",
9772
+ target: "25",
9773
+ // AdminTab.RapidReply
9774
+ keywords: ["rapid reply", "templates", "shortcuts", "quick responses"],
9775
+ requiresAdmin: true
9776
+ },
9777
+ {
9778
+ id: "admin.slack_workspaces",
9779
+ section: "admin",
9780
+ label: "Slack Workspaces",
9781
+ description: "Manage connected Slack workspace integrations",
9782
+ navigationType: "tab",
9783
+ target: "30",
9784
+ // AdminTab.SlackWorkspaces
9785
+ keywords: ["slack", "workspaces", "integrations", "messaging"],
9786
+ requiresAdmin: true
9787
+ },
9788
+ {
9789
+ id: "admin.secrets_rotation",
9790
+ section: "admin",
9791
+ label: "Secrets Rotation",
9792
+ description: "Manage API key rotation and secret lifecycle",
9793
+ navigationType: "tab",
9794
+ target: "16",
9795
+ // AdminTab.SecretsRotation
9796
+ keywords: ["secrets", "rotation", "API keys", "credentials"],
9797
+ requiresAdmin: true
9798
+ },
9799
+ {
9800
+ id: "admin.bulk_import",
9801
+ section: "admin",
9802
+ label: "Bulk Import",
9803
+ description: "Bulk import users and data from CSV or other formats",
9804
+ navigationType: "tab",
9805
+ target: "17",
9806
+ // AdminTab.BulkImport
9807
+ keywords: ["bulk", "import", "CSV", "migration", "data import"],
9808
+ requiresAdmin: true
9809
+ },
9810
+ {
9811
+ id: "admin.feedbacks",
9812
+ section: "admin",
9813
+ label: "Feedbacks",
9814
+ description: "View and manage user feedback, bug reports, and feature requests",
9815
+ navigationType: "tab",
9816
+ target: "2",
9817
+ // AdminTab.Feedbacks
9818
+ keywords: ["feedback", "bug reports", "feature requests", "user feedback", "complaints"],
9819
+ requiresAdmin: true
9820
+ },
9821
+ {
9822
+ id: "admin.files",
9823
+ section: "admin",
9824
+ label: "Files",
9825
+ description: "Manage uploaded files across all users, storage analytics",
9826
+ navigationType: "tab",
9827
+ target: "8",
9828
+ // AdminTab.Files
9829
+ keywords: ["files", "uploads", "storage", "documents", "file management"],
9830
+ requiresAdmin: true
9831
+ },
9832
+ {
9833
+ id: "admin.documentation",
9834
+ section: "admin",
9835
+ label: "Documentation",
9836
+ description: "System documentation and internal reference guides",
9837
+ navigationType: "tab",
9838
+ target: "9",
9839
+ // AdminTab.Documentation
9840
+ keywords: ["documentation", "docs", "guides", "reference", "help docs"],
9841
+ requiresAdmin: true
9842
+ },
9843
+ {
9844
+ id: "admin.world_time",
9845
+ section: "admin",
9846
+ label: "World Time",
9847
+ description: "View current time across multiple time zones",
9848
+ navigationType: "tab",
9849
+ target: "10",
9850
+ // AdminTab.WorldTime
9851
+ keywords: ["world time", "time zones", "clocks", "UTC", "international time"],
9852
+ requiresAdmin: true
9853
+ },
9854
+ {
9855
+ id: "admin.model_logs",
9856
+ section: "admin",
9857
+ label: "Model Logs",
9858
+ description: "View LLM model request/response logs and debugging information",
9859
+ navigationType: "tab",
9860
+ target: "18",
9861
+ // AdminTab.ModelLogs
9862
+ keywords: ["model logs", "LLM logs", "request logs", "debugging", "API logs"],
9863
+ requiresAdmin: true
9864
+ },
9865
+ {
9866
+ id: "admin.model_metrics",
9867
+ section: "admin",
9868
+ label: "Model Metrics",
9869
+ description: "LLM model performance metrics, latency, and usage statistics",
9870
+ navigationType: "tab",
9871
+ target: "19",
9872
+ // AdminTab.ModelMetrics
9873
+ keywords: ["model metrics", "performance", "latency", "tokens", "model usage"],
9874
+ requiresAdmin: true
9875
+ },
9876
+ {
9877
+ id: "admin.event_metrics",
9878
+ section: "admin",
9879
+ label: "Event Metrics",
9880
+ description: "Track system events, user activity events, and event analytics",
9881
+ navigationType: "tab",
9882
+ target: "20",
9883
+ // AdminTab.EventMetrics
9884
+ keywords: ["event metrics", "events", "activity tracking", "event analytics"],
9885
+ requiresAdmin: true
9886
+ },
9887
+ {
9888
+ id: "admin.identity_providers",
9889
+ section: "admin",
9890
+ label: "Identity Providers",
9891
+ description: "Configure SSO, SAML, and identity provider integrations",
9892
+ navigationType: "tab",
9893
+ target: "22",
9894
+ // AdminTab.IdentityProviders
9895
+ keywords: ["identity", "SSO", "SAML", "providers", "authentication", "login providers"],
9896
+ requiresAdmin: true
9897
+ },
9898
+ {
9899
+ id: "admin.email_verification",
9900
+ section: "admin",
9901
+ label: "Email Verification",
9902
+ description: "Manage email verification status and send verification emails",
9903
+ navigationType: "tab",
9904
+ target: "27",
9905
+ // AdminTab.EmailVerification
9906
+ keywords: ["email", "verification", "verify email", "email status"],
9907
+ requiresAdmin: true
9908
+ },
9909
+ {
9910
+ id: "admin.team",
9911
+ section: "admin",
9912
+ label: "Team",
9913
+ description: "Manage team members, roles, and team settings",
9914
+ navigationType: "tab",
9915
+ target: "28",
9916
+ // AdminTab.Team
9917
+ keywords: ["team", "members", "roles", "team management", "staff"],
9918
+ requiresAdmin: true
9919
+ },
9920
+ {
9921
+ id: "admin.slack_metrics",
9922
+ section: "admin",
9923
+ label: "Slack Metrics",
9924
+ description: "Slack integration usage metrics and message analytics",
9925
+ navigationType: "tab",
9926
+ target: "33",
9927
+ // AdminTab.SlackMetrics
9928
+ keywords: ["slack metrics", "slack usage", "message analytics", "slack stats"],
9929
+ requiresAdmin: true
9930
+ },
9931
+ {
9932
+ id: "admin.system_secrets",
9933
+ section: "admin",
9934
+ label: "System Secrets",
9935
+ description: "View and manage system-level secrets and environment variables",
9936
+ navigationType: "tab",
9937
+ target: "34",
9938
+ // AdminTab.SystemSecrets
9939
+ keywords: ["system secrets", "environment variables", "env vars", "secrets", "configuration"],
9940
+ requiresAdmin: true
9941
+ },
9942
+ {
9943
+ id: "admin.liveops_triage",
9944
+ section: "admin",
9945
+ label: "LiveOps Triage",
9946
+ description: "Real-time error triage, production issue monitoring, and incident response",
9947
+ navigationType: "tab",
9948
+ target: "35",
9949
+ // AdminTab.LiveOpsTriage
9950
+ keywords: ["liveops", "triage", "errors", "incidents", "production issues", "monitoring"],
9951
+ requiresAdmin: true
9952
+ },
9953
+ // ── Global ─────────────────────────────────────────────────────────────
9954
+ {
9955
+ id: "global.chat",
9956
+ section: "global",
9957
+ label: "Chat",
9958
+ description: "Main AI chat interface for conversations",
9959
+ navigationType: "route",
9960
+ target: "/",
9961
+ keywords: ["chat", "conversation", "talk", "message", "ask"]
9962
+ },
9963
+ {
9964
+ id: "global.projects",
9965
+ section: "global",
9966
+ label: "Projects",
9967
+ description: "View and manage projects and workspaces",
9968
+ navigationType: "route",
9969
+ target: "/projects",
9970
+ keywords: ["projects", "workspaces", "organize", "folders"]
9971
+ },
9972
+ {
9973
+ id: "global.agents",
9974
+ section: "global",
9975
+ label: "Agents",
9976
+ description: "Browse and configure AI agents",
9977
+ navigationType: "route",
9978
+ target: "/agents",
9979
+ keywords: ["agents", "AI assistants", "bots", "configure agents"]
9980
+ },
9981
+ {
9982
+ id: "global.agents_create",
9983
+ section: "global",
9984
+ label: "Create Agent",
9985
+ description: "Create a new AI agent with personality, motivation, system prompt, and capabilities",
9986
+ navigationType: "route",
9987
+ target: "/agents/new",
9988
+ keywords: ["create agent", "new agent", "build agent", "agent personality", "agent motivation", "agent setup"]
9989
+ },
9990
+ {
9991
+ id: "global.profile",
9992
+ section: "global",
9993
+ label: "Profile",
9994
+ description: "User profile settings and preferences",
9995
+ navigationType: "route",
9996
+ target: "/profile",
9997
+ keywords: ["profile", "account", "preferences", "personal settings"]
9998
+ },
9999
+ {
10000
+ id: "global.profile_security",
10001
+ section: "global",
10002
+ label: "Security Settings",
10003
+ description: "MFA, password, and security settings for your account",
10004
+ navigationType: "route",
10005
+ target: "/profile/security",
10006
+ keywords: ["security", "MFA", "password", "two-factor", "2FA"]
10007
+ },
10008
+ {
10009
+ id: "global.profile_api_keys",
10010
+ section: "global",
10011
+ label: "API Keys",
10012
+ description: "Manage your personal API keys for integrations",
10013
+ navigationType: "route",
10014
+ target: "/profile/api-keys",
10015
+ keywords: ["API keys", "tokens", "integrations", "developer"]
10016
+ },
10017
+ {
10018
+ id: "global.admin",
10019
+ section: "global",
10020
+ label: "Admin Panel",
10021
+ description: "Admin dashboard for system management",
10022
+ navigationType: "route",
10023
+ target: "/admin",
10024
+ keywords: ["admin", "dashboard", "management", "administration"],
10025
+ requiresAdmin: true
10026
+ },
10027
+ {
10028
+ id: "global.help",
10029
+ section: "global",
10030
+ label: "Help",
10031
+ description: "Help documentation and support resources",
10032
+ navigationType: "route",
10033
+ target: "/help",
10034
+ keywords: ["help", "support", "documentation", "FAQ", "guide"]
10035
+ },
10036
+ {
10037
+ id: "global.knowledge_base",
10038
+ section: "global",
10039
+ label: "Knowledge Base",
10040
+ description: "Browse uploaded files and documents in your knowledge base",
10041
+ navigationType: "route",
10042
+ target: "/knowledge",
10043
+ keywords: ["knowledge", "files", "documents", "uploads", "library"]
10044
+ },
10045
+ {
10046
+ id: "global.settings",
10047
+ section: "global",
10048
+ label: "Settings",
10049
+ description: "Application settings and preferences",
10050
+ navigationType: "route",
10051
+ target: "/settings",
10052
+ keywords: ["settings", "preferences", "configuration", "options"]
10053
+ }
10054
+ ];
10055
+ function getViewById(viewId) {
10056
+ return VIEW_REGISTRY.find((v) => v.id === viewId);
10057
+ }
10058
+ function getFilteredViews(options) {
10059
+ return VIEW_REGISTRY.filter((v) => {
10060
+ if (options?.section && v.section !== options.section)
10061
+ return false;
10062
+ if (v.requiresAdmin && !options?.isAdmin)
10063
+ return false;
10064
+ return true;
10065
+ });
10066
+ }
10067
+ function getViewSummaryForLLM(options) {
10068
+ const views = getFilteredViews(options);
10069
+ const grouped = {};
10070
+ for (const v of views) {
10071
+ const key = v.section.toUpperCase();
10072
+ if (!grouped[key])
10073
+ grouped[key] = [];
10074
+ grouped[key].push(`- ${v.id}: ${v.label} \u2014 ${v.description}`);
10075
+ }
10076
+ const sections = Object.entries(grouped).map(([section, lines]) => `[${section}]
10077
+ ${lines.join("\n")}`).join("\n\n");
10078
+ return [
10079
+ "# MANDATORY: navigate_view Tool Usage",
10080
+ "",
10081
+ "You have a navigate_view tool that renders clickable navigation buttons in your response.",
10082
+ "",
10083
+ "RULE: If your response mentions or relates to ANY view listed below, you MUST call the navigate_view tool.",
10084
+ "Do NOT just mention a view in text \u2014 you MUST also call the tool so the user sees a clickable button.",
10085
+ "Call navigate_view AND write your text answer. Both. Every time.",
10086
+ "",
10087
+ "Example \u2014 if the user asks about scheduling:",
10088
+ '1. Call navigate_view with suggestions: [{viewId: "opti.scheduling", reason: "Try scheduling algorithms here"}]',
10089
+ "2. AND write your text answer about scheduling",
10090
+ "",
10091
+ "Example \u2014 if the user asks about user management:",
10092
+ '1. Call navigate_view with suggestions: [{viewId: "admin.users", reason: "Manage user accounts"}]',
10093
+ "2. AND write your text answer about user management",
10094
+ "",
10095
+ sections
10096
+ ].join("\n");
10097
+ }
10098
+ function resolveNavigationIntents(suggestions, isAdmin) {
10099
+ return suggestions.map((s) => {
10100
+ const view = getViewById(s.viewId);
10101
+ if (!view)
10102
+ return null;
10103
+ if (view.requiresAdmin && !isAdmin)
10104
+ return null;
10105
+ return {
10106
+ viewId: view.id,
10107
+ label: view.label,
10108
+ description: view.description,
10109
+ navigationType: view.navigationType,
10110
+ target: view.target,
10111
+ reason: s.reason
10112
+ };
10113
+ }).filter((intent) => intent !== null);
10114
+ }
10115
+
9298
10116
  // ../../b4m-core/packages/common/dist/src/utils/dayjsConfig.js
9299
10117
  import dayjs from "dayjs";
9300
10118
  import timezone from "dayjs/plugin/timezone.js";
@@ -9424,6 +10242,7 @@ export {
9424
10242
  isPlaceholderValue,
9425
10243
  SecretAuditEvents,
9426
10244
  WebhookDeliveryStatus,
10245
+ WebhookAuditStatus,
9427
10246
  COMMON_JIRA_WEBHOOK_EVENTS,
9428
10247
  JiraWebhookDeliveryStatus,
9429
10248
  SupportedFabFileMimeTypes,
@@ -9434,6 +10253,8 @@ export {
9434
10253
  DataUnsubscribeRequestAction,
9435
10254
  HeartbeatAction,
9436
10255
  VoiceSessionSendTranscriptAction,
10256
+ CliCompletionRequestAction,
10257
+ CliToolRequestAction,
9437
10258
  VoiceSessionEndedAction,
9438
10259
  DataSubscriptionUpdateAction,
9439
10260
  LLMStatusUpdateAction,
@@ -9458,6 +10279,10 @@ export {
9458
10279
  ImportHistoryJobProgressUpdateAction,
9459
10280
  ResearchModeStreamAction,
9460
10281
  VoiceCreditsExhaustedAction,
10282
+ CliCompletionChunkAction,
10283
+ CliCompletionDoneAction,
10284
+ CliCompletionErrorAction,
10285
+ CliToolResponseAction,
9461
10286
  SessionCreatedAction,
9462
10287
  MessageDataToServer,
9463
10288
  MessageDataToClient,
@@ -9546,6 +10371,7 @@ export {
9546
10371
  OrganizationEvents,
9547
10372
  UserApiKeyEvents,
9548
10373
  SlackEvents,
10374
+ HelpEvents,
9549
10375
  InternalTeamMemberSchema,
9550
10376
  InternalTeamMemberListSchema,
9551
10377
  LatticeDataTypeSchema,
@@ -9741,5 +10567,10 @@ export {
9741
10567
  formatSSEError,
9742
10568
  serializeSSEEvent,
9743
10569
  SSE_DONE_SIGNAL,
10570
+ VIEW_REGISTRY,
10571
+ getViewById,
10572
+ getFilteredViews,
10573
+ getViewSummaryForLLM,
10574
+ resolveNavigationIntents,
9744
10575
  dayjsConfig_default
9745
10576
  };