@objectstack/runtime 4.0.0 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -287,6 +287,10 @@ declare class HttpDispatcher {
287
287
  constructor(kernel: ObjectKernel);
288
288
  private success;
289
289
  private error;
290
+ /**
291
+ * 404 Route Not Found — no route is registered for this path.
292
+ */
293
+ private routeNotFound;
290
294
  private ensureBroker;
291
295
  /**
292
296
  * Generates the discovery JSON response for the API root.
@@ -346,6 +350,7 @@ declare class HttpDispatcher {
346
350
  metadata: {
347
351
  enabled: boolean;
348
352
  status: "degraded";
353
+ handlerReady: boolean;
349
354
  route: string;
350
355
  provider: string;
351
356
  message: string;
@@ -353,157 +358,188 @@ declare class HttpDispatcher {
353
358
  data: {
354
359
  enabled: boolean;
355
360
  status: "available";
361
+ handlerReady: boolean;
356
362
  route: string | undefined;
357
363
  provider: string | undefined;
358
364
  };
359
365
  auth: {
360
366
  enabled: boolean;
361
367
  status: "available";
368
+ handlerReady: boolean;
362
369
  route: string | undefined;
363
370
  provider: string | undefined;
364
371
  } | {
365
372
  enabled: boolean;
366
373
  status: "unavailable";
374
+ handlerReady: boolean;
367
375
  message: string;
368
376
  };
369
377
  automation: {
370
378
  enabled: boolean;
371
379
  status: "available";
380
+ handlerReady: boolean;
372
381
  route: string | undefined;
373
382
  provider: string | undefined;
374
383
  } | {
375
384
  enabled: boolean;
376
385
  status: "unavailable";
386
+ handlerReady: boolean;
377
387
  message: string;
378
388
  };
379
389
  analytics: {
380
390
  enabled: boolean;
381
391
  status: "available";
392
+ handlerReady: boolean;
382
393
  route: string | undefined;
383
394
  provider: string | undefined;
384
395
  } | {
385
396
  enabled: boolean;
386
397
  status: "unavailable";
398
+ handlerReady: boolean;
387
399
  message: string;
388
400
  };
389
401
  cache: {
390
402
  enabled: boolean;
391
403
  status: "available";
404
+ handlerReady: boolean;
392
405
  route: string | undefined;
393
406
  provider: string | undefined;
394
407
  } | {
395
408
  enabled: boolean;
396
409
  status: "unavailable";
410
+ handlerReady: boolean;
397
411
  message: string;
398
412
  };
399
413
  queue: {
400
414
  enabled: boolean;
401
415
  status: "available";
416
+ handlerReady: boolean;
402
417
  route: string | undefined;
403
418
  provider: string | undefined;
404
419
  } | {
405
420
  enabled: boolean;
406
421
  status: "unavailable";
422
+ handlerReady: boolean;
407
423
  message: string;
408
424
  };
409
425
  job: {
410
426
  enabled: boolean;
411
427
  status: "available";
428
+ handlerReady: boolean;
412
429
  route: string | undefined;
413
430
  provider: string | undefined;
414
431
  } | {
415
432
  enabled: boolean;
416
433
  status: "unavailable";
434
+ handlerReady: boolean;
417
435
  message: string;
418
436
  };
419
437
  ui: {
420
438
  enabled: boolean;
421
439
  status: "available";
440
+ handlerReady: boolean;
422
441
  route: string | undefined;
423
442
  provider: string | undefined;
424
443
  } | {
425
444
  enabled: boolean;
426
445
  status: "unavailable";
446
+ handlerReady: boolean;
427
447
  message: string;
428
448
  };
429
449
  workflow: {
430
450
  enabled: boolean;
431
451
  status: "available";
452
+ handlerReady: boolean;
432
453
  route: string | undefined;
433
454
  provider: string | undefined;
434
455
  } | {
435
456
  enabled: boolean;
436
457
  status: "unavailable";
458
+ handlerReady: boolean;
437
459
  message: string;
438
460
  };
439
461
  realtime: {
440
462
  enabled: boolean;
441
463
  status: "available";
464
+ handlerReady: boolean;
442
465
  route: string | undefined;
443
466
  provider: string | undefined;
444
467
  } | {
445
468
  enabled: boolean;
446
469
  status: "unavailable";
470
+ handlerReady: boolean;
447
471
  message: string;
448
472
  };
449
473
  notification: {
450
474
  enabled: boolean;
451
475
  status: "available";
476
+ handlerReady: boolean;
452
477
  route: string | undefined;
453
478
  provider: string | undefined;
454
479
  } | {
455
480
  enabled: boolean;
456
481
  status: "unavailable";
482
+ handlerReady: boolean;
457
483
  message: string;
458
484
  };
459
485
  ai: {
460
486
  enabled: boolean;
461
487
  status: "available";
488
+ handlerReady: boolean;
462
489
  route: string | undefined;
463
490
  provider: string | undefined;
464
491
  } | {
465
492
  enabled: boolean;
466
493
  status: "unavailable";
494
+ handlerReady: boolean;
467
495
  message: string;
468
496
  };
469
497
  i18n: {
470
498
  enabled: boolean;
471
499
  status: "available";
500
+ handlerReady: boolean;
472
501
  route: string | undefined;
473
502
  provider: string | undefined;
474
503
  } | {
475
504
  enabled: boolean;
476
505
  status: "unavailable";
506
+ handlerReady: boolean;
477
507
  message: string;
478
508
  };
479
509
  graphql: {
480
510
  enabled: boolean;
481
511
  status: "available";
512
+ handlerReady: boolean;
482
513
  route: string | undefined;
483
514
  provider: string | undefined;
484
515
  } | {
485
516
  enabled: boolean;
486
517
  status: "unavailable";
518
+ handlerReady: boolean;
487
519
  message: string;
488
520
  };
489
521
  'file-storage': {
490
522
  enabled: boolean;
491
523
  status: "available";
524
+ handlerReady: boolean;
492
525
  route: string | undefined;
493
526
  provider: string | undefined;
494
527
  } | {
495
528
  enabled: boolean;
496
529
  status: "unavailable";
530
+ handlerReady: boolean;
497
531
  message: string;
498
532
  };
499
533
  search: {
500
534
  enabled: boolean;
501
535
  status: "available";
536
+ handlerReady: boolean;
502
537
  route: string | undefined;
503
538
  provider: string | undefined;
504
539
  } | {
505
540
  enabled: boolean;
506
541
  status: "unavailable";
542
+ handlerReady: boolean;
507
543
  message: string;
508
544
  };
509
545
  };
@@ -620,11 +656,16 @@ declare class HttpDispatcher {
620
656
  */
621
657
  private getObjectQLService;
622
658
  private capitalize;
659
+ /**
660
+ * Handle AI service routes (/ai/chat, /ai/models, /ai/conversations, etc.)
661
+ * Resolves the AI service and its built-in route handlers, then dispatches.
662
+ */
663
+ handleAI(subPath: string, method: string, body: any, query: any, _context: HttpProtocolContext): Promise<HttpDispatcherResult>;
623
664
  /**
624
665
  * Main Dispatcher Entry Point
625
666
  * Routes the request to the appropriate handler based on path and precedence
626
667
  */
627
- dispatch(method: string, path: string, body: any, query: any, context: HttpProtocolContext): Promise<HttpDispatcherResult>;
668
+ dispatch(method: string, path: string, body: any, query: any, context: HttpProtocolContext, prefix?: string): Promise<HttpDispatcherResult>;
628
669
  /**
629
670
  * Handles Custom API Endpoints defined in metadata
630
671
  */
package/dist/index.d.ts CHANGED
@@ -287,6 +287,10 @@ declare class HttpDispatcher {
287
287
  constructor(kernel: ObjectKernel);
288
288
  private success;
289
289
  private error;
290
+ /**
291
+ * 404 Route Not Found — no route is registered for this path.
292
+ */
293
+ private routeNotFound;
290
294
  private ensureBroker;
291
295
  /**
292
296
  * Generates the discovery JSON response for the API root.
@@ -346,6 +350,7 @@ declare class HttpDispatcher {
346
350
  metadata: {
347
351
  enabled: boolean;
348
352
  status: "degraded";
353
+ handlerReady: boolean;
349
354
  route: string;
350
355
  provider: string;
351
356
  message: string;
@@ -353,157 +358,188 @@ declare class HttpDispatcher {
353
358
  data: {
354
359
  enabled: boolean;
355
360
  status: "available";
361
+ handlerReady: boolean;
356
362
  route: string | undefined;
357
363
  provider: string | undefined;
358
364
  };
359
365
  auth: {
360
366
  enabled: boolean;
361
367
  status: "available";
368
+ handlerReady: boolean;
362
369
  route: string | undefined;
363
370
  provider: string | undefined;
364
371
  } | {
365
372
  enabled: boolean;
366
373
  status: "unavailable";
374
+ handlerReady: boolean;
367
375
  message: string;
368
376
  };
369
377
  automation: {
370
378
  enabled: boolean;
371
379
  status: "available";
380
+ handlerReady: boolean;
372
381
  route: string | undefined;
373
382
  provider: string | undefined;
374
383
  } | {
375
384
  enabled: boolean;
376
385
  status: "unavailable";
386
+ handlerReady: boolean;
377
387
  message: string;
378
388
  };
379
389
  analytics: {
380
390
  enabled: boolean;
381
391
  status: "available";
392
+ handlerReady: boolean;
382
393
  route: string | undefined;
383
394
  provider: string | undefined;
384
395
  } | {
385
396
  enabled: boolean;
386
397
  status: "unavailable";
398
+ handlerReady: boolean;
387
399
  message: string;
388
400
  };
389
401
  cache: {
390
402
  enabled: boolean;
391
403
  status: "available";
404
+ handlerReady: boolean;
392
405
  route: string | undefined;
393
406
  provider: string | undefined;
394
407
  } | {
395
408
  enabled: boolean;
396
409
  status: "unavailable";
410
+ handlerReady: boolean;
397
411
  message: string;
398
412
  };
399
413
  queue: {
400
414
  enabled: boolean;
401
415
  status: "available";
416
+ handlerReady: boolean;
402
417
  route: string | undefined;
403
418
  provider: string | undefined;
404
419
  } | {
405
420
  enabled: boolean;
406
421
  status: "unavailable";
422
+ handlerReady: boolean;
407
423
  message: string;
408
424
  };
409
425
  job: {
410
426
  enabled: boolean;
411
427
  status: "available";
428
+ handlerReady: boolean;
412
429
  route: string | undefined;
413
430
  provider: string | undefined;
414
431
  } | {
415
432
  enabled: boolean;
416
433
  status: "unavailable";
434
+ handlerReady: boolean;
417
435
  message: string;
418
436
  };
419
437
  ui: {
420
438
  enabled: boolean;
421
439
  status: "available";
440
+ handlerReady: boolean;
422
441
  route: string | undefined;
423
442
  provider: string | undefined;
424
443
  } | {
425
444
  enabled: boolean;
426
445
  status: "unavailable";
446
+ handlerReady: boolean;
427
447
  message: string;
428
448
  };
429
449
  workflow: {
430
450
  enabled: boolean;
431
451
  status: "available";
452
+ handlerReady: boolean;
432
453
  route: string | undefined;
433
454
  provider: string | undefined;
434
455
  } | {
435
456
  enabled: boolean;
436
457
  status: "unavailable";
458
+ handlerReady: boolean;
437
459
  message: string;
438
460
  };
439
461
  realtime: {
440
462
  enabled: boolean;
441
463
  status: "available";
464
+ handlerReady: boolean;
442
465
  route: string | undefined;
443
466
  provider: string | undefined;
444
467
  } | {
445
468
  enabled: boolean;
446
469
  status: "unavailable";
470
+ handlerReady: boolean;
447
471
  message: string;
448
472
  };
449
473
  notification: {
450
474
  enabled: boolean;
451
475
  status: "available";
476
+ handlerReady: boolean;
452
477
  route: string | undefined;
453
478
  provider: string | undefined;
454
479
  } | {
455
480
  enabled: boolean;
456
481
  status: "unavailable";
482
+ handlerReady: boolean;
457
483
  message: string;
458
484
  };
459
485
  ai: {
460
486
  enabled: boolean;
461
487
  status: "available";
488
+ handlerReady: boolean;
462
489
  route: string | undefined;
463
490
  provider: string | undefined;
464
491
  } | {
465
492
  enabled: boolean;
466
493
  status: "unavailable";
494
+ handlerReady: boolean;
467
495
  message: string;
468
496
  };
469
497
  i18n: {
470
498
  enabled: boolean;
471
499
  status: "available";
500
+ handlerReady: boolean;
472
501
  route: string | undefined;
473
502
  provider: string | undefined;
474
503
  } | {
475
504
  enabled: boolean;
476
505
  status: "unavailable";
506
+ handlerReady: boolean;
477
507
  message: string;
478
508
  };
479
509
  graphql: {
480
510
  enabled: boolean;
481
511
  status: "available";
512
+ handlerReady: boolean;
482
513
  route: string | undefined;
483
514
  provider: string | undefined;
484
515
  } | {
485
516
  enabled: boolean;
486
517
  status: "unavailable";
518
+ handlerReady: boolean;
487
519
  message: string;
488
520
  };
489
521
  'file-storage': {
490
522
  enabled: boolean;
491
523
  status: "available";
524
+ handlerReady: boolean;
492
525
  route: string | undefined;
493
526
  provider: string | undefined;
494
527
  } | {
495
528
  enabled: boolean;
496
529
  status: "unavailable";
530
+ handlerReady: boolean;
497
531
  message: string;
498
532
  };
499
533
  search: {
500
534
  enabled: boolean;
501
535
  status: "available";
536
+ handlerReady: boolean;
502
537
  route: string | undefined;
503
538
  provider: string | undefined;
504
539
  } | {
505
540
  enabled: boolean;
506
541
  status: "unavailable";
542
+ handlerReady: boolean;
507
543
  message: string;
508
544
  };
509
545
  };
@@ -620,11 +656,16 @@ declare class HttpDispatcher {
620
656
  */
621
657
  private getObjectQLService;
622
658
  private capitalize;
659
+ /**
660
+ * Handle AI service routes (/ai/chat, /ai/models, /ai/conversations, etc.)
661
+ * Resolves the AI service and its built-in route handlers, then dispatches.
662
+ */
663
+ handleAI(subPath: string, method: string, body: any, query: any, _context: HttpProtocolContext): Promise<HttpDispatcherResult>;
623
664
  /**
624
665
  * Main Dispatcher Entry Point
625
666
  * Routes the request to the appropriate handler based on path and precedence
626
667
  */
627
- dispatch(method: string, path: string, body: any, query: any, context: HttpProtocolContext): Promise<HttpDispatcherResult>;
668
+ dispatch(method: string, path: string, body: any, query: any, context: HttpProtocolContext, prefix?: string): Promise<HttpDispatcherResult>;
628
669
  /**
629
670
  * Handles Custom API Endpoints defined in metadata
630
671
  */