rivetkit 0.0.0-pr.4727.e649173 → 0.0.0-pr.4738.bcfa930

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 (93) hide show
  1. package/dist/browser/client.d.ts +16 -14
  2. package/dist/browser/client.js +66 -217
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.js +1 -1
  5. package/dist/browser/inspector/client.js.map +1 -1
  6. package/dist/tsup/agent-os/index.cjs.map +1 -1
  7. package/dist/tsup/agent-os/index.d.cts +16 -14
  8. package/dist/tsup/agent-os/index.d.ts +16 -14
  9. package/dist/tsup/agent-os/index.js.map +1 -1
  10. package/dist/tsup/{chunk-GM4KYUD2.cjs → chunk-36N4HPSL.cjs} +198 -170
  11. package/dist/tsup/chunk-36N4HPSL.cjs.map +1 -0
  12. package/dist/tsup/{chunk-7IVPUKQF.js → chunk-3EPKDATZ.js} +1 -1
  13. package/dist/tsup/chunk-3EPKDATZ.js.map +1 -0
  14. package/dist/tsup/{chunk-FKIAQKS5.cjs → chunk-4A47NQEH.cjs} +4 -4
  15. package/dist/tsup/{chunk-FKIAQKS5.cjs.map → chunk-4A47NQEH.cjs.map} +1 -1
  16. package/dist/tsup/{chunk-REXU7LMA.cjs → chunk-CLPFFUWW.cjs} +3 -3
  17. package/dist/tsup/{chunk-REXU7LMA.cjs.map → chunk-CLPFFUWW.cjs.map} +1 -1
  18. package/dist/tsup/{chunk-7P2BDAXB.js → chunk-G2Z5FGYT.js} +68 -40
  19. package/dist/tsup/chunk-G2Z5FGYT.js.map +1 -0
  20. package/dist/tsup/{chunk-ILCY4YLU.cjs → chunk-GSAIQ5SH.cjs} +8 -8
  21. package/dist/tsup/{chunk-ILCY4YLU.cjs.map → chunk-GSAIQ5SH.cjs.map} +1 -1
  22. package/dist/tsup/{chunk-7JYZ3GLJ.js → chunk-GWP4VNI7.js} +2 -2
  23. package/dist/tsup/{chunk-JUHOQM32.js → chunk-HIRLQFEA.js} +3 -181
  24. package/dist/tsup/chunk-HIRLQFEA.js.map +1 -0
  25. package/dist/tsup/{chunk-FAVGDTTJ.js → chunk-J33Q7PGH.js} +2 -2
  26. package/dist/tsup/{chunk-Q26ZBSCN.cjs → chunk-M4I2U45O.cjs} +3 -181
  27. package/dist/tsup/chunk-M4I2U45O.cjs.map +1 -0
  28. package/dist/tsup/{chunk-3E76EJFV.cjs → chunk-MUCRIHJ6.cjs} +10 -10
  29. package/dist/tsup/{chunk-3E76EJFV.cjs.map → chunk-MUCRIHJ6.cjs.map} +1 -1
  30. package/dist/tsup/{chunk-VVCPDF4Z.js → chunk-NZ5ONF6T.js} +3 -3
  31. package/dist/tsup/{chunk-SV2TCWOM.cjs → chunk-P5AHBGWA.cjs} +5 -5
  32. package/dist/tsup/{chunk-SV2TCWOM.cjs.map → chunk-P5AHBGWA.cjs.map} +1 -1
  33. package/dist/tsup/{chunk-WDIMM56P.js → chunk-QGDWYYD7.js} +2 -2
  34. package/dist/tsup/{chunk-7NUNPGPU.cjs → chunk-UAM3VUUJ.cjs} +1 -1
  35. package/dist/tsup/chunk-UAM3VUUJ.cjs.map +1 -0
  36. package/dist/tsup/{chunk-K6UFDTT6.js → chunk-WSJO4KXA.js} +4 -4
  37. package/dist/tsup/client/mod.cjs +6 -6
  38. package/dist/tsup/client/mod.d.cts +2 -2
  39. package/dist/tsup/client/mod.d.ts +2 -2
  40. package/dist/tsup/client/mod.js +5 -5
  41. package/dist/tsup/common/log.cjs +2 -2
  42. package/dist/tsup/common/log.d.cts +2 -2
  43. package/dist/tsup/common/log.d.ts +2 -2
  44. package/dist/tsup/common/log.js +1 -1
  45. package/dist/tsup/common/websocket.cjs +3 -3
  46. package/dist/tsup/common/websocket.js +2 -2
  47. package/dist/tsup/{config-Bk2lX_8n.d.ts → config-CO_YDWdW.d.ts} +19 -17
  48. package/dist/tsup/{config-D8mExVsN.d.cts → config-DXQ-Xoo_.d.cts} +19 -17
  49. package/dist/tsup/{context-DfoE2FNE.d.cts → context-BEw04_d9.d.cts} +1 -1
  50. package/dist/tsup/{context-DI_2voaq.d.ts → context-CJfCpKqk.d.ts} +1 -1
  51. package/dist/tsup/inspector/mod.cjs +5 -5
  52. package/dist/tsup/inspector/mod.js +4 -4
  53. package/dist/tsup/mod.cjs +241 -119
  54. package/dist/tsup/mod.cjs.map +1 -1
  55. package/dist/tsup/mod.d.cts +24 -4
  56. package/dist/tsup/mod.d.ts +24 -4
  57. package/dist/tsup/mod.js +191 -69
  58. package/dist/tsup/mod.js.map +1 -1
  59. package/dist/tsup/test/mod.cjs +9 -9
  60. package/dist/tsup/test/mod.d.cts +1 -1
  61. package/dist/tsup/test/mod.d.ts +1 -1
  62. package/dist/tsup/test/mod.js +5 -5
  63. package/dist/tsup/utils.cjs +2 -2
  64. package/dist/tsup/utils.js +1 -1
  65. package/dist/tsup/workflow/mod.cjs +10 -10
  66. package/dist/tsup/workflow/mod.d.cts +3 -3
  67. package/dist/tsup/workflow/mod.d.ts +3 -3
  68. package/dist/tsup/workflow/mod.js +5 -5
  69. package/package.json +7 -7
  70. package/src/actor/config.ts +0 -11
  71. package/src/actor/contexts/index.ts +292 -0
  72. package/src/actor/instance/mod.ts +2543 -0
  73. package/src/actor/mod.ts +20 -0
  74. package/src/client/actor-conn.ts +15 -7
  75. package/src/client/actor-handle.ts +68 -21
  76. package/src/client/actor-query.ts +3 -0
  77. package/src/common/log.ts +0 -110
  78. package/src/drivers/engine/actor-driver.ts +1766 -0
  79. package/src/registry/config/index.ts +34 -0
  80. package/src/registry/index.ts +196 -47
  81. package/src/registry/native.ts +17 -23
  82. package/dist/tsup/chunk-7IVPUKQF.js.map +0 -1
  83. package/dist/tsup/chunk-7NUNPGPU.cjs.map +0 -1
  84. package/dist/tsup/chunk-7P2BDAXB.js.map +0 -1
  85. package/dist/tsup/chunk-GM4KYUD2.cjs.map +0 -1
  86. package/dist/tsup/chunk-JUHOQM32.js.map +0 -1
  87. package/dist/tsup/chunk-Q26ZBSCN.cjs.map +0 -1
  88. package/src/common/logfmt.ts +0 -221
  89. /package/dist/tsup/{chunk-7JYZ3GLJ.js.map → chunk-GWP4VNI7.js.map} +0 -0
  90. /package/dist/tsup/{chunk-FAVGDTTJ.js.map → chunk-J33Q7PGH.js.map} +0 -0
  91. /package/dist/tsup/{chunk-VVCPDF4Z.js.map → chunk-NZ5ONF6T.js.map} +0 -0
  92. /package/dist/tsup/{chunk-WDIMM56P.js.map → chunk-QGDWYYD7.js.map} +0 -0
  93. /package/dist/tsup/{chunk-K6UFDTT6.js.map → chunk-WSJO4KXA.js.map} +0 -0
@@ -933,15 +933,6 @@ interface ActorKv {
933
933
  list<T extends ActorKvValueType = "text", K extends ActorKvKeyType = "text">(prefix: Uint8Array | string, options?: ActorKvListOptions<T, K>): Promise<Array<[ActorKvKeyTypeMap[K], ActorKvValueTypeMap[T]]>>;
934
934
  [key: string]: any;
935
935
  }
936
- interface ActorSql {
937
- exec(sql: string, callback?: (row: unknown[], columns: string[]) => void): Promise<void>;
938
- run(sql: string, params?: unknown[] | Record<string, unknown>): Promise<void>;
939
- query(sql: string, params?: unknown[] | Record<string, unknown>): Promise<{
940
- columns: string[];
941
- rows: unknown[][];
942
- }>;
943
- [key: string]: any;
944
- }
945
936
  interface ActorSchedule {
946
937
  after(duration: number, action: string, ...args: unknown[]): Promise<void>;
947
938
  at(timestamp: number, action: string, ...args: unknown[]): Promise<void>;
@@ -1019,7 +1010,6 @@ interface ActorContext<TState, TConnParams, TConnState, TVars, TInput, TDatabase
1019
1010
  state: TState;
1020
1011
  vars: TVars;
1021
1012
  readonly kv: ActorKv;
1022
- readonly sql: ActorSql;
1023
1013
  readonly db: InferDatabaseClient<TDatabase>;
1024
1014
  readonly schedule: ActorSchedule;
1025
1015
  readonly queue: ActorQueue<TQueues>;
@@ -1365,12 +1355,12 @@ declare const RegistryConfigSchema: z$2.ZodPipe<z$2.ZodObject<{
1365
1355
  logging: z$2.ZodDefault<z$2.ZodOptional<z$2.ZodObject<{
1366
1356
  baseLogger: z$2.ZodOptional<z$2.ZodCustom<Logger, Logger>>;
1367
1357
  level: z$2.ZodOptional<z$2.ZodEnum<{
1368
- error: "error";
1369
- trace: "trace";
1370
1358
  fatal: "fatal";
1359
+ error: "error";
1371
1360
  warn: "warn";
1372
1361
  info: "info";
1373
1362
  debug: "debug";
1363
+ trace: "trace";
1374
1364
  silent: "silent";
1375
1365
  }>>;
1376
1366
  }, z$2.core.$strip>>>;
@@ -1405,6 +1395,10 @@ declare const RegistryConfigSchema: z$2.ZodPipe<z$2.ZodObject<{
1405
1395
  totalSlots: z$2.ZodDefault<z$2.ZodNumber>;
1406
1396
  envoyKey: z$2.ZodOptional<z$2.ZodString>;
1407
1397
  }, z$2.core.$strip>>>;
1398
+ shutdown: z$2.ZodDefault<z$2.ZodOptional<z$2.ZodObject<{
1399
+ gracePeriodMs: z$2.ZodDefault<z$2.ZodOptional<z$2.ZodNumber>>;
1400
+ disableSignalHandlers: z$2.ZodDefault<z$2.ZodOptional<z$2.ZodBoolean>>;
1401
+ }, z$2.core.$strip>>>;
1408
1402
  }, z$2.core.$strip>, z$2.ZodTransform<{
1409
1403
  endpoint: string | undefined;
1410
1404
  namespace: string;
@@ -1428,7 +1422,7 @@ declare const RegistryConfigSchema: z$2.ZodPipe<z$2.ZodObject<{
1428
1422
  noWelcome: boolean;
1429
1423
  logging: {
1430
1424
  baseLogger?: Logger | undefined;
1431
- level?: "error" | "trace" | "fatal" | "warn" | "info" | "debug" | "silent" | undefined;
1425
+ level?: "fatal" | "error" | "warn" | "info" | "debug" | "trace" | "silent" | undefined;
1432
1426
  };
1433
1427
  headers: Record<string, string>;
1434
1428
  httpBasePath: string;
@@ -1441,6 +1435,10 @@ declare const RegistryConfigSchema: z$2.ZodPipe<z$2.ZodObject<{
1441
1435
  totalSlots: number;
1442
1436
  envoyKey?: string | undefined;
1443
1437
  };
1438
+ shutdown: {
1439
+ gracePeriodMs: number;
1440
+ disableSignalHandlers: boolean;
1441
+ };
1444
1442
  staticDir?: string | undefined;
1445
1443
  httpHost?: string | undefined;
1446
1444
  configurePool?: {
@@ -1462,7 +1460,7 @@ declare const RegistryConfigSchema: z$2.ZodPipe<z$2.ZodObject<{
1462
1460
  noWelcome: boolean;
1463
1461
  logging: {
1464
1462
  baseLogger?: Logger | undefined;
1465
- level?: "error" | "trace" | "fatal" | "warn" | "info" | "debug" | "silent" | undefined;
1463
+ level?: "fatal" | "error" | "warn" | "info" | "debug" | "trace" | "silent" | undefined;
1466
1464
  };
1467
1465
  endpoint: string | undefined;
1468
1466
  token: string | undefined;
@@ -1484,6 +1482,10 @@ declare const RegistryConfigSchema: z$2.ZodPipe<z$2.ZodObject<{
1484
1482
  totalSlots: number;
1485
1483
  envoyKey?: string | undefined;
1486
1484
  };
1485
+ shutdown: {
1486
+ gracePeriodMs: number;
1487
+ disableSignalHandlers: boolean;
1488
+ };
1487
1489
  staticDir?: string | undefined;
1488
1490
  httpHost?: string | undefined;
1489
1491
  configurePool?: {
@@ -225,7 +225,7 @@ function noopNext() {
225
225
  // package.json
226
226
  var package_default = {
227
227
  name: "rivetkit",
228
- version: "0.0.0-pr.4727.e649173",
228
+ version: "0.0.0-pr.4738.bcfa930",
229
229
  description: "Lightweight libraries for building stateful actors on edge platforms",
230
230
  license: "Apache-2.0",
231
231
  keywords: [
@@ -455,107 +455,6 @@ import {
455
455
  stdTimeFunctions
456
456
  } from "pino";
457
457
  import { z } from "zod/v4";
458
-
459
- // src/common/log-levels.ts
460
- var LogLevels = {
461
- TRACE: 0,
462
- DEBUG: 1,
463
- INFO: 2,
464
- WARN: 3,
465
- ERROR: 4,
466
- CRITICAL: 5
467
- };
468
-
469
- // src/common/logfmt.ts
470
- var LOG_LEVEL_COLORS = {
471
- [LogLevels.CRITICAL]: "\x1B[31m",
472
- // Red
473
- [LogLevels.ERROR]: "\x1B[31m",
474
- // Red
475
- [LogLevels.WARN]: "\x1B[33m",
476
- // Yellow
477
- [LogLevels.INFO]: "\x1B[32m",
478
- // Green
479
- [LogLevels.DEBUG]: "\x1B[36m",
480
- // Cyan
481
- [LogLevels.TRACE]: "\x1B[36m"
482
- // Cyan
483
- };
484
- var RESET_COLOR = "\x1B[0m";
485
- function stringify(data) {
486
- let line = "";
487
- const entries = Object.entries(data);
488
- for (let i = 0; i < entries.length; i++) {
489
- const [key, valueRaw] = entries[i];
490
- let isNull = false;
491
- let valueString;
492
- if (valueRaw == null) {
493
- isNull = true;
494
- valueString = "";
495
- } else {
496
- valueString = valueRaw.toString();
497
- }
498
- if (valueString.length > 512 && key !== "msg" && key !== "error")
499
- valueString = `${valueString.slice(0, 512)}...`;
500
- const needsQuoting = valueString.indexOf(" ") > -1 || valueString.indexOf("=") > -1;
501
- const needsEscaping = valueString.indexOf('"') > -1 || valueString.indexOf("\\") > -1;
502
- valueString = valueString.replace(/\n/g, "\\n");
503
- if (needsEscaping) valueString = valueString.replace(/["\\]/g, "\\$&");
504
- if (needsQuoting || needsEscaping) valueString = `"${valueString}"`;
505
- if (valueString === "" && !isNull) valueString = '""';
506
- if (LOGGER_CONFIG.enableColor) {
507
- let color = "\x1B[2m";
508
- if (key === "level") {
509
- const level = LogLevels[valueString];
510
- const levelColor = LOG_LEVEL_COLORS[level];
511
- if (levelColor) {
512
- color = levelColor;
513
- }
514
- } else if (key === "msg") {
515
- color = "\x1B[32m";
516
- } else if (key === "trace") {
517
- color = "\x1B[34m";
518
- }
519
- line += `\x1B[0m\x1B[1m${key}\x1B[0m\x1B[2m=\x1B[0m${color}${valueString}${RESET_COLOR}`;
520
- } else {
521
- line += `${key}=${valueString}`;
522
- }
523
- if (i !== entries.length - 1) {
524
- line += " ";
525
- }
526
- }
527
- return line;
528
- }
529
- function formatTimestamp(date) {
530
- const year = date.getUTCFullYear();
531
- const month = String(date.getUTCMonth() + 1).padStart(2, "0");
532
- const day = String(date.getUTCDate()).padStart(2, "0");
533
- const hours = String(date.getUTCHours()).padStart(2, "0");
534
- const minutes = String(date.getUTCMinutes()).padStart(2, "0");
535
- const seconds = String(date.getUTCSeconds()).padStart(2, "0");
536
- const milliseconds = String(date.getUTCMilliseconds()).padStart(3, "0");
537
- return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}.${milliseconds}Z`;
538
- }
539
- function castToLogValue(v) {
540
- if (typeof v === "string" || typeof v === "number" || typeof v === "bigint" || typeof v === "boolean" || v === null || v === void 0) {
541
- return v;
542
- }
543
- if (v instanceof Error) {
544
- return String(v);
545
- }
546
- try {
547
- return JSON.stringify(v);
548
- } catch {
549
- return "[cannot stringify]";
550
- }
551
- }
552
- var LOGGER_CONFIG = {
553
- enableColor: false,
554
- enableSpreadObject: false,
555
- enableErrorStack: false
556
- };
557
-
558
- // src/common/log.ts
559
458
  var baseLogger;
560
459
  var configuredLogLevel;
561
460
  var loggerCache = /* @__PURE__ */ new Map();
@@ -585,27 +484,6 @@ function getPinoLevel(logLevel) {
585
484
  function getIncludeTarget() {
586
485
  return getLogTarget();
587
486
  }
588
- function customWrite(level, o) {
589
- const entries = {};
590
- if (getLogTimestamp() && o.time) {
591
- const date = typeof o.time === "number" ? new Date(o.time) : /* @__PURE__ */ new Date();
592
- entries.ts = formatTimestamp(date);
593
- }
594
- entries.level = level.toUpperCase();
595
- if (o.target) {
596
- entries.target = o.target;
597
- }
598
- if (o.msg) {
599
- entries.msg = o.msg;
600
- }
601
- for (const [key, value] of Object.entries(o)) {
602
- if (key !== "time" && key !== "level" && key !== "target" && key !== "msg" && key !== "pid" && key !== "hostname") {
603
- entries[key] = castToLogValue(value);
604
- }
605
- }
606
- const output = stringify(entries);
607
- console.log(output);
608
- }
609
487
  function configureDefaultLogger(logLevel) {
610
488
  if (logLevel) {
611
489
  configuredLogLevel = logLevel;
@@ -621,64 +499,7 @@ function configureDefaultLogger(logLevel) {
621
499
  return { level: number };
622
500
  }
623
501
  },
624
- timestamp: getLogTimestamp() ? stdTimeFunctions.epochTime : false,
625
- browser: {
626
- write: {
627
- fatal: customWrite.bind(null, "fatal"),
628
- error: customWrite.bind(null, "error"),
629
- warn: customWrite.bind(null, "warn"),
630
- info: customWrite.bind(null, "info"),
631
- debug: customWrite.bind(null, "debug"),
632
- trace: customWrite.bind(null, "trace")
633
- }
634
- },
635
- hooks: {
636
- logMethod(inputArgs, method, level) {
637
- const levelMap = {
638
- 10: "trace",
639
- 20: "debug",
640
- 30: "info",
641
- 40: "warn",
642
- 50: "error",
643
- 60: "fatal"
644
- };
645
- const levelName = levelMap[level] || "info";
646
- const time = getLogTimestamp() ? Date.now() : void 0;
647
- const bindings = this.bindings?.() || {};
648
- if (inputArgs.length >= 2) {
649
- const [objOrMsg, msg] = inputArgs;
650
- if (typeof objOrMsg === "object" && objOrMsg !== null) {
651
- customWrite(levelName, {
652
- ...bindings,
653
- ...objOrMsg,
654
- msg,
655
- time
656
- });
657
- } else {
658
- customWrite(levelName, {
659
- ...bindings,
660
- msg: String(objOrMsg),
661
- time
662
- });
663
- }
664
- } else if (inputArgs.length === 1) {
665
- const [objOrMsg] = inputArgs;
666
- if (typeof objOrMsg === "object" && objOrMsg !== null) {
667
- customWrite(levelName, {
668
- ...bindings,
669
- ...objOrMsg,
670
- time
671
- });
672
- } else {
673
- customWrite(levelName, {
674
- ...bindings,
675
- msg: String(objOrMsg),
676
- time
677
- });
678
- }
679
- }
680
- }
681
- }
502
+ timestamp: getLogTimestamp() ? stdTimeFunctions.epochTime : false
682
503
  });
683
504
  loggerCache.clear();
684
505
  }
@@ -3878,8 +3699,8 @@ function getGatewayTarget(state) {
3878
3699
  }
3879
3700
  return state;
3880
3701
  }
3881
- function isStaleResolvedActorError(group, code) {
3882
- return group === "actor" && (code === "not_found" || code === "stopping" || code.startsWith("destroyed_"));
3702
+ function isStaleResolvedActorError(group, code, message) {
3703
+ return group === "actor" && (code === "not_found" || code === "stopping" || code === "not_configured" && message === "Actor capability 'actor event inbox' is not configured." || code.startsWith("destroyed_"));
3883
3704
  }
3884
3705
  async function checkForSchedulingError(group, code, actorId, query, driver) {
3885
3706
  const name = getActorNameFromQuery(query);
@@ -4041,15 +3862,15 @@ var ActorConnRaw = class {
4041
3862
  * re-resolves to a fresh actor. Returns true if the identity was
4042
3863
  * invalidated.
4043
3864
  */
4044
- #invalidateActorIfStale(group, code) {
4045
- if (!isDynamicActorQuery(this.#actorResolutionState) || !isStaleResolvedActorError(group, code)) {
3865
+ #invalidateActorIfStale(group, code, message) {
3866
+ if (!isDynamicActorQuery(this.#actorResolutionState) || !isStaleResolvedActorError(group, code, message)) {
4046
3867
  return false;
4047
3868
  }
4048
3869
  this.#clearResolvedActorIdentity();
4049
3870
  return true;
4050
3871
  }
4051
- #shouldReconnectForStaleActor(group, code) {
4052
- return isDynamicActorQuery(this.#actorResolutionState) && isStaleResolvedActorError(group, code) && this.#onOpenPromise !== void 0 && this.#connStatus !== "connected";
3872
+ #shouldReconnectForStaleActor(group, code, message) {
3873
+ return isDynamicActorQuery(this.#actorResolutionState) && isStaleResolvedActorError(group, code, message) && this.#onOpenPromise !== void 0 && this.#connStatus !== "connected";
4053
3874
  }
4054
3875
  send(name, body, options) {
4055
3876
  return this.#sendQueueMessage(name, body, options);
@@ -4363,7 +4184,7 @@ var ActorConnRaw = class {
4363
4184
  const { group, code, message, metadata, actionId } = response.body.val;
4364
4185
  if (actionId !== null) {
4365
4186
  const inFlight = this.#takeActionInFlight(Number(actionId));
4366
- this.#invalidateActorIfStale(group, code);
4187
+ this.#invalidateActorIfStale(group, code, message);
4367
4188
  logger2().warn({
4368
4189
  msg: "action error",
4369
4190
  actionId,
@@ -4384,7 +4205,7 @@ var ActorConnRaw = class {
4384
4205
  message,
4385
4206
  metadata
4386
4207
  });
4387
- if (this.#shouldReconnectForStaleActor(group, code)) {
4208
+ if (this.#shouldReconnectForStaleActor(group, code, message)) {
4388
4209
  this.#clearResolvedActorIdentity();
4389
4210
  this.#onOpenPromise?.reject(
4390
4211
  new RivetError(group, code, message, metadata)
@@ -4412,7 +4233,7 @@ var ActorConnRaw = class {
4412
4233
  if (this.#onOpenPromise) {
4413
4234
  this.#onOpenPromise.reject(errorToThrow);
4414
4235
  }
4415
- this.#invalidateActorIfStale(group, code);
4236
+ this.#invalidateActorIfStale(group, code, message);
4416
4237
  for (const [id, inFlight] of this.#actionsInFlight.entries()) {
4417
4238
  inFlight.reject(errorToThrow);
4418
4239
  this.#actionsInFlight.delete(id);
@@ -5115,6 +4936,9 @@ async function resolveGatewayTarget(driver, target) {
5115
4936
  }
5116
4937
 
5117
4938
  // src/client/actor-handle.ts
4939
+ var DYNAMIC_LIFECYCLE_RETRY_WINDOW_MS = 100;
4940
+ var GET_FOR_KEY_DYNAMIC_QUERY_MAX_ATTEMPTS = 24;
4941
+ var GET_OR_CREATE_DYNAMIC_QUERY_MAX_ATTEMPTS = 180;
5118
4942
  var ActorHandleRaw = class {
5119
4943
  #client;
5120
4944
  #driver;
@@ -5177,7 +5001,7 @@ var ActorHandleRaw = class {
5177
5001
  attempt,
5178
5002
  maxAttempts
5179
5003
  )) {
5180
- useQueryTarget = true;
5004
+ useQueryTarget = this.#shouldRetryViaQueryTarget();
5181
5005
  await this.#waitForRetryWindow();
5182
5006
  continue;
5183
5007
  }
@@ -5185,16 +5009,21 @@ var ActorHandleRaw = class {
5185
5009
  group,
5186
5010
  code,
5187
5011
  attempt,
5188
- maxAttempts
5012
+ maxAttempts,
5013
+ message
5189
5014
  )) {
5190
5015
  this.#clearResolvedActorId();
5191
- useQueryTarget = true;
5016
+ useQueryTarget = this.#shouldRetryViaQueryTarget();
5192
5017
  await this.#waitForRetryWindow();
5193
5018
  continue;
5194
5019
  }
5195
- const invalidated = this.#invalidateResolvedActorId(group, code);
5020
+ const invalidated = this.#invalidateResolvedActorId(
5021
+ group,
5022
+ code,
5023
+ message
5024
+ );
5196
5025
  if (invalidated && attempt < maxAttempts - 1) {
5197
- useQueryTarget = code === "stopping" || code.startsWith("destroyed_");
5026
+ useQueryTarget = this.#shouldRetryViaQueryTarget() && (code === "stopping" || code.startsWith("destroyed_"));
5198
5027
  if (useQueryTarget) {
5199
5028
  await this.#waitForRetryWindow();
5200
5029
  }
@@ -5290,7 +5119,7 @@ var ActorHandleRaw = class {
5290
5119
  attempt,
5291
5120
  maxAttempts
5292
5121
  )) {
5293
- useQueryTarget = true;
5122
+ useQueryTarget = this.#shouldRetryViaQueryTarget();
5294
5123
  await this.#waitForRetryWindow();
5295
5124
  continue;
5296
5125
  }
@@ -5298,10 +5127,11 @@ var ActorHandleRaw = class {
5298
5127
  group,
5299
5128
  code,
5300
5129
  attempt,
5301
- maxAttempts
5130
+ maxAttempts,
5131
+ message
5302
5132
  )) {
5303
5133
  this.#clearResolvedActorId();
5304
- useQueryTarget = true;
5134
+ useQueryTarget = this.#shouldRetryViaQueryTarget();
5305
5135
  await this.#waitForRetryWindow();
5306
5136
  continue;
5307
5137
  }
@@ -5313,10 +5143,14 @@ var ActorHandleRaw = class {
5313
5143
  metadata
5314
5144
  );
5315
5145
  }
5316
- const invalidated = this.#invalidateResolvedActorId(group, code);
5146
+ const invalidated = this.#invalidateResolvedActorId(
5147
+ group,
5148
+ code,
5149
+ message
5150
+ );
5317
5151
  if (invalidated && attempt < maxAttempts - 1) {
5318
5152
  if (group === "actor" && code === "stopping") {
5319
- useQueryTarget = true;
5153
+ useQueryTarget = this.#shouldRetryViaQueryTarget();
5320
5154
  await new Promise((resolve) => setTimeout(resolve, 100));
5321
5155
  }
5322
5156
  continue;
@@ -5338,19 +5172,24 @@ var ActorHandleRaw = class {
5338
5172
  }
5339
5173
  }
5340
5174
  async #waitForRetryWindow() {
5341
- await new Promise((resolve) => setTimeout(resolve, 100));
5175
+ await new Promise(
5176
+ (resolve) => setTimeout(resolve, DYNAMIC_LIFECYCLE_RETRY_WINDOW_MS)
5177
+ );
5342
5178
  }
5343
5179
  #getDynamicQueryMaxAttempts() {
5344
5180
  if (!isDynamicActorQuery(this.#actorResolutionState)) {
5345
5181
  return 1;
5346
5182
  }
5347
- return "getOrCreateForKey" in this.#actorResolutionState ? 60 : 24;
5183
+ return "getOrCreateForKey" in this.#actorResolutionState ? GET_OR_CREATE_DYNAMIC_QUERY_MAX_ATTEMPTS : GET_FOR_KEY_DYNAMIC_QUERY_MAX_ATTEMPTS;
5348
5184
  }
5349
- #shouldRetryDynamicLifecycleError(group, code, attempt, maxAttempts) {
5185
+ #shouldRetryViaQueryTarget() {
5186
+ return isDynamicActorQuery(this.#actorResolutionState);
5187
+ }
5188
+ #shouldRetryDynamicLifecycleError(group, code, attempt, maxAttempts, message) {
5350
5189
  if (!isDynamicActorQuery(this.#actorResolutionState) || attempt >= maxAttempts - 1 || group !== "actor") {
5351
5190
  return false;
5352
5191
  }
5353
- return code === "not_found" || code === "stopping" || code === "destroying" || code.startsWith("destroyed_");
5192
+ return code === "not_found" || code === "stopping" || code === "not_configured" && message === "Actor capability 'actor event inbox' is not configured." || code === "destroying" || code.startsWith("destroyed_");
5354
5193
  }
5355
5194
  #clearResolvedActorId() {
5356
5195
  this.#resolvedActorId = void 0;
@@ -5375,8 +5214,8 @@ var ActorHandleRaw = class {
5375
5214
  this.#clearResolvedActorId();
5376
5215
  return true;
5377
5216
  }
5378
- #invalidateResolvedActorId(group, code) {
5379
- if (!isDynamicActorQuery(this.#actorResolutionState) || !isStaleResolvedActorError(group, code)) {
5217
+ #invalidateResolvedActorId(group, code, message) {
5218
+ if (!isDynamicActorQuery(this.#actorResolutionState) || !isStaleResolvedActorError(group, code, message)) {
5380
5219
  return false;
5381
5220
  }
5382
5221
  this.#clearResolvedActorId();
@@ -5482,7 +5321,7 @@ var ActorHandleRaw = class {
5482
5321
  attempt,
5483
5322
  maxAttempts
5484
5323
  )) {
5485
- useQueryTarget = true;
5324
+ useQueryTarget = this.#shouldRetryViaQueryTarget();
5486
5325
  await this.#waitForRetryWindow();
5487
5326
  continue;
5488
5327
  }
@@ -5490,16 +5329,21 @@ var ActorHandleRaw = class {
5490
5329
  group,
5491
5330
  code,
5492
5331
  attempt,
5493
- maxAttempts
5332
+ maxAttempts,
5333
+ message
5494
5334
  )) {
5495
5335
  this.#clearResolvedActorId();
5496
- useQueryTarget = true;
5336
+ useQueryTarget = this.#shouldRetryViaQueryTarget();
5497
5337
  await this.#waitForRetryWindow();
5498
5338
  continue;
5499
5339
  }
5500
- const invalidated = this.#invalidateResolvedActorId(group, code);
5340
+ const invalidated = this.#invalidateResolvedActorId(
5341
+ group,
5342
+ code,
5343
+ message
5344
+ );
5501
5345
  if (invalidated && attempt < maxAttempts - 1) {
5502
- useQueryTarget = code === "stopping" || code.startsWith("destroyed_");
5346
+ useQueryTarget = this.#shouldRetryViaQueryTarget() && (code === "stopping" || code.startsWith("destroyed_"));
5503
5347
  if (useQueryTarget) {
5504
5348
  await this.#waitForRetryWindow();
5505
5349
  }
@@ -5518,7 +5362,7 @@ var ActorHandleRaw = class {
5518
5362
  if (!error) {
5519
5363
  return null;
5520
5364
  }
5521
- const { group, code } = error;
5365
+ const { group, code, message } = error;
5522
5366
  if (await this.#shouldRetrySchedulingError(
5523
5367
  group,
5524
5368
  code,
@@ -5527,7 +5371,7 @@ var ActorHandleRaw = class {
5527
5371
  maxAttempts
5528
5372
  )) {
5529
5373
  return {
5530
- useQueryTarget: true,
5374
+ useQueryTarget: this.#shouldRetryViaQueryTarget(),
5531
5375
  waitForRetryWindow: true
5532
5376
  };
5533
5377
  }
@@ -5535,17 +5379,22 @@ var ActorHandleRaw = class {
5535
5379
  group,
5536
5380
  code,
5537
5381
  attempt,
5538
- maxAttempts
5382
+ maxAttempts,
5383
+ message
5539
5384
  )) {
5540
5385
  this.#clearResolvedActorId();
5541
5386
  return {
5542
- useQueryTarget: true,
5387
+ useQueryTarget: this.#shouldRetryViaQueryTarget(),
5543
5388
  waitForRetryWindow: true
5544
5389
  };
5545
5390
  }
5546
- const invalidated = this.#invalidateResolvedActorId(group, code);
5391
+ const invalidated = this.#invalidateResolvedActorId(
5392
+ group,
5393
+ code,
5394
+ message
5395
+ );
5547
5396
  if (invalidated && attempt < maxAttempts - 1) {
5548
- const useQueryTarget = code === "stopping" || code.startsWith("destroyed_");
5397
+ const useQueryTarget = this.#shouldRetryViaQueryTarget() && (code === "stopping" || code.startsWith("destroyed_"));
5549
5398
  return {
5550
5399
  useQueryTarget,
5551
5400
  waitForRetryWindow: useQueryTarget