@nylorun/runtime 0.26.0-beta → 0.27.0-beta

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 (321) hide show
  1. package/CHANGELOG.md +130 -0
  2. package/README.md +18 -14
  3. package/dist/adapters/execution/restate.d.ts +15 -18
  4. package/dist/adapters/execution/restate.js +31 -27
  5. package/dist/adapters/replication/pgoutput.d.ts +1 -1
  6. package/dist/adapters/replication/pgoutput.js +3 -2
  7. package/dist/adapters/sandbox/local.js +8 -5
  8. package/dist/adapters/sandbox/virtual.js +2 -2
  9. package/dist/adapters/streams/s2.d.ts +1 -1
  10. package/dist/adapters/streams/s2.js +18 -14
  11. package/dist/api/a2a/card.js +1 -1
  12. package/dist/api/a2a/endpoint.js +3 -4
  13. package/dist/api/a2a/protocol.js +4 -0
  14. package/dist/api/a2a/routes.d.ts +2 -6
  15. package/dist/api/a2a/routes.js +12 -18
  16. package/dist/api/ag-ui/endpoint.js +2 -3
  17. package/dist/api/ag-ui/routes.js +4 -4
  18. package/dist/api/components.d.ts +326 -45
  19. package/dist/api/components.js +5 -1
  20. package/dist/api/gate/keys.js +7 -4
  21. package/dist/api/gate/routes.d.ts +6 -2
  22. package/dist/api/gate/routes.js +15 -11
  23. package/dist/api/http/body.d.ts +15 -3
  24. package/dist/api/http/body.js +15 -7
  25. package/dist/api/http/respond.js +6 -2
  26. package/dist/api/http/routes/access.js +5 -4
  27. package/dist/api/http/routes/artifacts.js +19 -7
  28. package/dist/api/http/routes/coverage.js +1 -1
  29. package/dist/api/http/routes/environment-manifests.js +1 -1
  30. package/dist/api/http/routes/environments.js +6 -6
  31. package/dist/api/http/routes/files.d.ts +2 -1
  32. package/dist/api/http/routes/files.js +31 -5
  33. package/dist/api/http/routes/mcp.js +1 -1
  34. package/dist/api/http/routes/reads.d.ts +35 -0
  35. package/dist/api/http/routes/reads.js +50 -22
  36. package/dist/api/http/routes/sessions.js +11 -10
  37. package/dist/api/http/routes/tenant.d.ts +2 -2
  38. package/dist/api/http/routes/tenant.js +69 -16
  39. package/dist/api/inbound-files.d.ts +3 -9
  40. package/dist/api/inbound-files.js +18 -24
  41. package/dist/api/openapi.js +6 -2
  42. package/dist/artifacts/disk.d.ts +0 -4
  43. package/dist/artifacts/disk.js +77 -73
  44. package/dist/artifacts/files.d.ts +13 -4
  45. package/dist/artifacts/files.js +27 -9
  46. package/dist/artifacts/folder-upload.d.ts +75 -0
  47. package/dist/artifacts/folder-upload.js +263 -0
  48. package/dist/artifacts/folders.d.ts +14 -8
  49. package/dist/artifacts/folders.js +19 -11
  50. package/dist/artifacts/links.js +7 -6
  51. package/dist/artifacts/parts.d.ts +9 -14
  52. package/dist/artifacts/parts.js +11 -9
  53. package/dist/artifacts/pipe.d.ts +15 -0
  54. package/dist/artifacts/pipe.js +71 -0
  55. package/dist/artifacts/quota.d.ts +36 -0
  56. package/dist/artifacts/quota.js +44 -0
  57. package/dist/artifacts/service.d.ts +25 -1
  58. package/dist/artifacts/service.js +70 -25
  59. package/dist/blob/fs.js +2 -1
  60. package/dist/blob/s3.d.ts +6 -2
  61. package/dist/blob/s3.js +9 -7
  62. package/dist/blob/types.d.ts +1 -1
  63. package/dist/blob/types.js +1 -1
  64. package/dist/core/limits.d.ts +11 -35
  65. package/dist/core/limits.js +5 -73
  66. package/dist/core/sandbox-routes.js +0 -1
  67. package/dist/core/turn-manifest.d.ts +1 -2
  68. package/dist/core/turn-manifest.js +4 -28
  69. package/dist/execution/memory.d.ts +8 -5
  70. package/dist/execution/memory.js +8 -6
  71. package/dist/execution/types.d.ts +1 -6
  72. package/dist/execution/types.js +0 -5
  73. package/dist/gates/contract.d.ts +3 -2
  74. package/dist/gates/contract.js +1 -1
  75. package/dist/gates/egress-credentials.js +4 -3
  76. package/dist/gates/egress.d.ts +9 -9
  77. package/dist/gates/egress.js +14 -16
  78. package/dist/gates/fixture-model.js +13 -2
  79. package/dist/gates/handler.d.ts +1 -3
  80. package/dist/gates/handler.js +4 -3
  81. package/dist/gates/http-client.d.ts +4 -3
  82. package/dist/gates/http-client.js +5 -7
  83. package/dist/gates/http-tool.d.ts +24 -4
  84. package/dist/gates/http-tool.js +40 -12
  85. package/dist/gates/in-process.d.ts +2 -1
  86. package/dist/gates/in-process.js +17 -9
  87. package/dist/gates/inflight.d.ts +2 -2
  88. package/dist/gates/inflight.js +3 -2
  89. package/dist/gates/journal.js +5 -7
  90. package/dist/gates/mcp-handler.d.ts +4 -3
  91. package/dist/gates/mcp-handler.js +15 -5
  92. package/dist/gates/model-gate.d.ts +11 -2
  93. package/dist/gates/policy.d.ts +28 -5
  94. package/dist/gates/policy.js +60 -17
  95. package/dist/gates/provider-gate.d.ts +22 -0
  96. package/dist/gates/provider-gate.js +30 -0
  97. package/dist/gates/tool-calls.d.ts +1 -3
  98. package/dist/gates/tool-calls.js +2 -3
  99. package/dist/gates/tool-client.d.ts +1 -1
  100. package/dist/gates/tool-client.js +5 -6
  101. package/dist/gates/tool-contract.d.ts +8 -5
  102. package/dist/gates/tool-contract.js +1 -1
  103. package/dist/gates/tool-gate.d.ts +18 -7
  104. package/dist/gates/tool-gate.js +49 -7
  105. package/dist/harness/calls.d.ts +27 -25
  106. package/dist/harness/calls.js +40 -46
  107. package/dist/harness/executors.d.ts +10 -3
  108. package/dist/harness/executors.js +53 -23
  109. package/dist/harness/main.js +2 -2
  110. package/dist/harness/pod.d.ts +0 -2
  111. package/dist/harness/pod.js +7 -6
  112. package/dist/harness/run-tokens.d.ts +4 -1
  113. package/dist/harness/run-tokens.js +6 -2
  114. package/dist/harness/service.d.ts +17 -14
  115. package/dist/harness/service.js +21 -35
  116. package/dist/harness/setup.d.ts +0 -2
  117. package/dist/harness/setup.js +4 -9
  118. package/dist/harness/ws-client.d.ts +2 -2
  119. package/dist/harness/ws-client.js +7 -5
  120. package/dist/harness/ws-port.d.ts +3 -4
  121. package/dist/harness/ws-port.js +3 -4
  122. package/dist/harness-api/artifacts.d.ts +20 -0
  123. package/dist/harness-api/artifacts.js +478 -0
  124. package/dist/harness-api/in-process.d.ts +2 -2
  125. package/dist/harness-api/in-process.js +18 -16
  126. package/dist/harness-api/record.d.ts +10 -9
  127. package/dist/harness-api/record.js +102 -157
  128. package/dist/harness-api/renew.d.ts +1 -1
  129. package/dist/harness-api/renew.js +2 -2
  130. package/dist/harness-api/server.d.ts +1 -16
  131. package/dist/harness-api/server.js +82 -73
  132. package/dist/harness-api/start.d.ts +20 -2
  133. package/dist/harness-api/start.js +57 -18
  134. package/dist/harness-api/tool-journal.d.ts +15 -10
  135. package/dist/harness-api/tool-journal.js +26 -24
  136. package/dist/harness-api/workspace.d.ts +0 -4
  137. package/dist/harness-api/workspace.js +2 -45
  138. package/dist/harness-api/ws-server.js +10 -10
  139. package/dist/host/create-host.js +2 -3
  140. package/dist/host/execution.js +2 -3
  141. package/dist/host/gates.d.ts +2 -9
  142. package/dist/host/gates.js +15 -12
  143. package/dist/host/http.d.ts +0 -2
  144. package/dist/host/http.js +0 -27
  145. package/dist/host/main.js +10 -3
  146. package/dist/host/operate.js +12 -3
  147. package/dist/host/stack-config.d.ts +11 -0
  148. package/dist/host/stack-config.js +21 -1
  149. package/dist/index.d.ts +0 -1
  150. package/dist/index.js +0 -1
  151. package/dist/infra/index.js +2 -1
  152. package/dist/infra/readiness.d.ts +0 -2
  153. package/dist/infra/readiness.js +4 -3
  154. package/dist/keys/client.d.ts +1 -0
  155. package/dist/keys/client.js +2 -3
  156. package/dist/keys/contract.d.ts +0 -2
  157. package/dist/keys/contract.js +0 -2
  158. package/dist/keys/egress-ca.d.ts +0 -2
  159. package/dist/keys/egress-ca.js +2 -3
  160. package/dist/keys/keys.js +6 -1
  161. package/dist/keys/x509.d.ts +8 -4
  162. package/dist/keys/x509.js +14 -5
  163. package/dist/management-openapi.json +1961 -994
  164. package/dist/mcp/connect.d.ts +35 -26
  165. package/dist/mcp/connect.js +112 -141
  166. package/dist/mcp/pool.d.ts +27 -22
  167. package/dist/mcp/pool.js +34 -48
  168. package/dist/mcp/preview.d.ts +12 -5
  169. package/dist/mcp/preview.js +36 -19
  170. package/dist/mcp/snapshot.d.ts +35 -86
  171. package/dist/mcp/snapshot.js +93 -135
  172. package/dist/model/auth-store.js +5 -3
  173. package/dist/model/capabilities.d.ts +1 -1
  174. package/dist/model/catalog.d.ts +9 -36
  175. package/dist/model/catalog.js +6 -33
  176. package/dist/model/descriptor.d.ts +51 -0
  177. package/dist/model/descriptor.js +83 -0
  178. package/dist/model/models.d.ts +0 -3
  179. package/dist/model/models.js +3 -5
  180. package/dist/model/native-blocks.js +1 -1
  181. package/dist/model/pi-model.d.ts +16 -5
  182. package/dist/model/pi-model.js +86 -105
  183. package/dist/openapi.json +838 -1218
  184. package/dist/reads/cursor.js +3 -1
  185. package/dist/record/append.d.ts +34 -2
  186. package/dist/record/append.js +50 -1
  187. package/dist/record/environment.d.ts +2 -0
  188. package/dist/record/environment.js +2 -0
  189. package/dist/record/index.d.ts +1 -1
  190. package/dist/record/index.js +1 -1
  191. package/dist/redact.d.ts +1 -1
  192. package/dist/redact.js +3 -2
  193. package/dist/sandbox/egress-token.d.ts +3 -3
  194. package/dist/sandbox/egress-token.js +3 -3
  195. package/dist/sandbox/join.js +3 -2
  196. package/dist/sandbox/manager.d.ts +41 -41
  197. package/dist/sandbox/manager.js +112 -44
  198. package/dist/sandbox/placement.d.ts +1 -1
  199. package/dist/sandbox/placement.js +5 -8
  200. package/dist/sandbox/pods/client.d.ts +1 -10
  201. package/dist/sandbox/pods/client.js +8 -4
  202. package/dist/sandbox/pods/lifecycle.d.ts +19 -11
  203. package/dist/sandbox/pods/lifecycle.js +45 -23
  204. package/dist/sandbox/pods/network-gate.d.ts +4 -5
  205. package/dist/sandbox/pods/network-gate.js +7 -7
  206. package/dist/sandbox/pods/reconcile.js +4 -1
  207. package/dist/sandbox/pods/spec.js +8 -5
  208. package/dist/sandbox/policy.d.ts +7 -1
  209. package/dist/sandbox/policy.js +10 -3
  210. package/dist/sandbox/resolve.d.ts +8 -3
  211. package/dist/sandbox/resolve.js +12 -2
  212. package/dist/sandbox/setup.d.ts +3 -1
  213. package/dist/sandbox/setup.js +34 -11
  214. package/dist/sandbox/share.d.ts +5 -14
  215. package/dist/sandbox/share.js +5 -34
  216. package/dist/sandbox/skills.d.ts +7 -13
  217. package/dist/sandbox/skills.js +16 -31
  218. package/dist/sandbox/tenant-config.d.ts +2 -2
  219. package/dist/sandbox/tenant-config.js +4 -3
  220. package/dist/sandbox/tools.d.ts +7 -1
  221. package/dist/sandbox/tools.js +26 -26
  222. package/dist/sandbox/types.d.ts +10 -3
  223. package/dist/sandbox/types.js +9 -0
  224. package/dist/store/postgres/connect.d.ts +6 -5
  225. package/dist/store/postgres/connect.js +14 -11
  226. package/dist/store/postgres/control.js +13 -13
  227. package/dist/store/postgres/drizzle/0028_artifact_write_keys.sql +2 -0
  228. package/dist/store/postgres/drizzle/0029_protocol_15.sql +11 -0
  229. package/dist/store/postgres/drizzle/0030_protocol_15_runtime_block.sql +11 -0
  230. package/dist/store/postgres/drizzle/0031_protocol_15_mcp_snapshot.sql +8 -0
  231. package/dist/store/postgres/drizzle/meta/_journal.json +28 -0
  232. package/dist/store/postgres/reads.js +10 -2
  233. package/dist/store/postgres/schema.d.ts +19 -0
  234. package/dist/store/postgres/schema.js +7 -0
  235. package/dist/store/postgres/store.js +55 -26
  236. package/dist/store/types.d.ts +17 -7
  237. package/dist/streams/relay/core.d.ts +3 -3
  238. package/dist/streams/relay/core.js +9 -10
  239. package/dist/tenant/advance.js +21 -31
  240. package/dist/tenant/commands.js +9 -16
  241. package/dist/tenant/context.d.ts +14 -17
  242. package/dist/tenant/definition-files.d.ts +25 -4
  243. package/dist/tenant/definition-files.js +85 -47
  244. package/dist/tenant/effects.js +9 -36
  245. package/dist/tenant/environment-manifests.js +9 -1
  246. package/dist/tenant/environments.d.ts +0 -2
  247. package/dist/tenant/environments.js +49 -28
  248. package/dist/tenant/ephemeral.js +2 -1
  249. package/dist/tenant/history.d.ts +1 -1
  250. package/dist/tenant/history.js +1 -1
  251. package/dist/tenant/host-token.d.ts +3 -3
  252. package/dist/tenant/host-token.js +11 -10
  253. package/dist/tenant/http.d.ts +5 -8
  254. package/dist/tenant/http.js +9 -0
  255. package/dist/tenant/identity-file.d.ts +23 -0
  256. package/dist/tenant/identity-file.js +34 -6
  257. package/dist/tenant/issuers.d.ts +5 -5
  258. package/dist/tenant/issuers.js +31 -23
  259. package/dist/tenant/jwt.d.ts +8 -2
  260. package/dist/tenant/jwt.js +10 -2
  261. package/dist/tenant/limits.d.ts +90 -0
  262. package/dist/tenant/limits.js +175 -0
  263. package/dist/tenant/module.d.ts +4 -1
  264. package/dist/tenant/module.js +9 -8
  265. package/dist/tenant/outbound.d.ts +11 -14
  266. package/dist/tenant/outbound.js +10 -15
  267. package/dist/tenant/run-grants.js +3 -2
  268. package/dist/tenant/run-token.d.ts +0 -4
  269. package/dist/tenant/run-token.js +6 -11
  270. package/dist/tenant/runtime-limits.d.ts +24 -0
  271. package/dist/tenant/runtime-limits.js +27 -0
  272. package/dist/tenant/runtime.js +30 -43
  273. package/dist/tenant/session-streams.js +7 -6
  274. package/dist/tenant/session.d.ts +1 -1
  275. package/dist/tenant/session.js +1 -1
  276. package/dist/tenant/sessions.js +32 -29
  277. package/dist/tenant/signing-keys.d.ts +1 -1
  278. package/dist/tenant/signing-keys.js +5 -6
  279. package/dist/tenant/status.js +4 -3
  280. package/dist/tenant/streams.js +18 -20
  281. package/dist/tenant/sweep.d.ts +1 -21
  282. package/dist/tenant/sweep.js +39 -48
  283. package/dist/tenant/transcript.d.ts +70 -23
  284. package/dist/tenant/transcript.js +28 -22
  285. package/dist/tenant/types.d.ts +9 -14
  286. package/dist/tenant/worker.d.ts +2 -10
  287. package/dist/tenant/worker.js +5 -14
  288. package/dist/traces/ids.js +5 -1
  289. package/dist/traces/map.d.ts +9 -6
  290. package/dist/traces/map.js +9 -11
  291. package/dist/traces/otlp.d.ts +3 -3
  292. package/dist/traces/otlp.js +5 -3
  293. package/dist/traces/projector.d.ts +9 -4
  294. package/dist/traces/projector.js +13 -7
  295. package/dist/traces/read.js +6 -1
  296. package/dist/tuning.d.ts +383 -0
  297. package/dist/tuning.js +658 -0
  298. package/dist/vault/headers.js +4 -2
  299. package/dist/version.d.ts +1 -1
  300. package/dist/version.js +1 -1
  301. package/package.json +3 -3
  302. package/dist/artifacts/export.d.ts +0 -8
  303. package/dist/artifacts/export.js +0 -204
  304. package/dist/artifacts/media-types.d.ts +0 -30
  305. package/dist/artifacts/media-types.js +0 -137
  306. package/dist/artifacts/workspace.d.ts +0 -60
  307. package/dist/artifacts/workspace.js +0 -45
  308. package/dist/media.d.ts +0 -10
  309. package/dist/media.js +0 -58
  310. package/dist/sandbox/runtime-tools.d.ts +0 -9
  311. package/dist/sandbox/runtime-tools.js +0 -16
  312. package/dist/sandbox/session-sandbox.d.ts +0 -16
  313. package/dist/sandbox/session-sandbox.js +0 -77
  314. package/dist/tenant/artifact-tool.d.ts +0 -13
  315. package/dist/tenant/artifact-tool.js +0 -243
  316. package/dist/tenant/skill-tool.d.ts +0 -20
  317. package/dist/tenant/skill-tool.js +0 -67
  318. package/dist/tenant/tool-results.d.ts +0 -57
  319. package/dist/tenant/tool-results.js +0 -298
  320. package/dist/tenant/tool-search.d.ts +0 -39
  321. package/dist/tenant/tool-search.js +0 -103
@@ -1,13 +1,15 @@
1
1
  import { spanOf, turnTraceOf } from "./map.js";
2
+ import { hostTuning } from "../tuning.js";
2
3
  /** The projector's replication slot. */
3
4
  export const TRACE_SLOT = "nylorun_trace_export";
4
5
  export function createTraceProjector(options) {
5
6
  const { source, post } = options;
6
7
  const log = options.log ?? (() => { });
7
- const maxBatch = options.maxBatch ?? 512;
8
- const maxDelayMs = options.maxDelayMs ?? 2000;
9
- const maxQueued = options.maxQueuedSpans ?? 8192;
10
- const cacheSize = options.turnCacheSize ?? 1024;
8
+ const tuning = hostTuning().traces;
9
+ const maxBatch = options.maxBatch ?? tuning.batchSpans;
10
+ const maxDelayMs = options.maxDelayMs ?? tuning.batchDelayMs;
11
+ const maxQueued = options.maxQueuedSpans ?? tuning.queuedSpansMax;
12
+ const cacheSize = options.turnCacheSize ?? tuning.turnCacheSize;
11
13
  const turns = new Map();
12
14
  const stopping = new AbortController();
13
15
  /** Mapped transactions not yet posted, in commit order. */
@@ -17,6 +19,8 @@ export function createTraceProjector(options) {
17
19
  let mapping = Promise.resolve();
18
20
  let mappingCount = 0;
19
21
  let posting;
22
+ /** Transactions of the batch being posted: not acknowledged until the post settles. */
23
+ let postingTxs = 0;
20
24
  let timer;
21
25
  let active = false;
22
26
  let confirmed = null;
@@ -45,7 +49,7 @@ export function createTraceProjector(options) {
45
49
  const spans = [];
46
50
  if (tx.rows.length === 0)
47
51
  return spans;
48
- const settings = { key: await options.key(), content: options.content };
52
+ const settings = { key: await options.key(), content: options.content, contentBytes: await options.contentBytes() };
49
53
  for (const record of tx.rows) {
50
54
  const row = record.body;
51
55
  if (!row || typeof row !== "object" || row.turnId == null)
@@ -72,7 +76,7 @@ export function createTraceProjector(options) {
72
76
  if (of !== activation || stopping.signal.aborted)
73
77
  return;
74
78
  log("trace_projector_retry", { message: error instanceof Error ? error.message : String(error) });
75
- await new Promise((resolve) => setTimeout(resolve, 1000));
79
+ await new Promise((resolve) => setTimeout(resolve, tuning.retryMs));
76
80
  }
77
81
  }
78
82
  if (of !== activation)
@@ -115,6 +119,7 @@ export function createTraceProjector(options) {
115
119
  const batch = waiting;
116
120
  waiting = [];
117
121
  waitingSpans = 0;
122
+ postingTxs = batch.length;
118
123
  posting = (async () => {
119
124
  const spans = batch.flatMap((tx) => tx.spans);
120
125
  // A post a shutdown cut short is not the collector's failure: those rows go again.
@@ -129,6 +134,7 @@ export function createTraceProjector(options) {
129
134
  }
130
135
  })().finally(() => {
131
136
  posting = undefined;
137
+ postingTxs = 0;
132
138
  schedule();
133
139
  settle();
134
140
  });
@@ -186,7 +192,7 @@ export function createTraceProjector(options) {
186
192
  },
187
193
  status: () => ({
188
194
  active,
189
- pendingTxs: waiting.length + mappingCount,
195
+ pendingTxs: waiting.length + mappingCount + postingTxs,
190
196
  pendingSpans: waitingSpans,
191
197
  confirmed,
192
198
  }),
@@ -1,9 +1,14 @@
1
1
  import { traceKey } from "./key.js";
2
+ import { readRuntimeLimits } from "../tenant/runtime-limits.js";
2
3
  import { spanOf, turnTraceOf } from "./map.js";
3
4
  import { DEFAULT_SERVICE_NAME, resourceSpans } from "./otlp.js";
4
5
  /** Turn `turnId`'s spans as an OTLP `ExportTraceServiceRequest`, from its rows in log order. */
5
6
  export async function turnTrace(ctx, sessionId, turnId, events) {
6
- const settings = { key: await traceKey(ctx.store), content: ctx.traces?.content ?? new Set() };
7
+ const settings = {
8
+ key: await traceKey(ctx.store),
9
+ content: ctx.traces?.content ?? new Set(),
10
+ contentBytes: (await ctx.store.tx((t) => readRuntimeLimits(t))).traceContentBytes,
11
+ };
7
12
  const message = events.find((event) => event.type === "command.message");
8
13
  const turn = turnTraceOf(settings, { tenantId: ctx.store.tenantId, sessionId, turnId }, message);
9
14
  const spans = [];
@@ -0,0 +1,383 @@
1
+ /**
2
+ * Host tuning (B15): the timings, retries, poll intervals and internal sizes of the Runtime's
3
+ * processes, one typed schema with a default each. An operator sets any of them in
4
+ * `NYLORUN_TUNING`, a JSON object of the groups below (`{"tenant":{"openTimeoutMs":60000}}`),
5
+ * read once when a process starts (`parseStackConfig`, then `useHostTuning` in `host/main.ts`).
6
+ * What is left out keeps its default, which is the value the Runtime used before it was
7
+ * configuration. An unknown key, or a value past its ceiling, stops the process naming it.
8
+ *
9
+ * Every service reads the parts it uses: the gateway (`gates`, `keys`, `egress`), core and loop
10
+ * (the rest), a harness container or a pod's engine (`harness`, `engine`). Core hands a pod
11
+ * sandbox's engine the `harness` and `engine` groups the operator set (`podTuningEnv`), so a pod
12
+ * runs with the timings of the Runtime that started it.
13
+ *
14
+ * Tenant-facing limits (sizes a client meets, request and turn deadlines) are not here: they are
15
+ * Runtime limits and Tenant settings. `engine` is our harness's own configuration: the options
16
+ * of `createHarness` in `@nylorun/harness`, whose defaults stay there.
17
+ */
18
+ import { z } from "zod";
19
+ /**
20
+ * The longest delay Node's timers take (`setTimeout`, `setInterval`): 2^31 - 1 ms, a signed
21
+ * 32-bit integer. A longer one fires at once. Fixed by the platform, so a ceiling, not a setting.
22
+ */
23
+ export declare const MAX_TIMER_MS: number;
24
+ /** S3's smallest multipart part but the last (5 MiB), and its largest part (5 GiB). */
25
+ export declare const S3_MIN_PART_BYTES: number;
26
+ export declare const S3_MAX_PART_BYTES: number;
27
+ /**
28
+ * How long a wake's dedupe key merges repeated wakes, at least (Durable Session Execution
29
+ * §12.3): a wake sent again within a day must not start a second advance. A floor of the
30
+ * design, so a setting may only raise it.
31
+ */
32
+ export declare const DEDUPE_RETENTION_MIN_MS: number;
33
+ /** The longest `?wait=` the sandboxes service takes (`MaxWait` in its API): a dependency's ceiling. */
34
+ export declare const SANDBOXES_MAX_WAIT_MS = 30000;
35
+ /**
36
+ * The most bind parameters one Postgres statement takes: the extended protocol's `Bind` message
37
+ * counts them in a 16-bit integer. A dependency's ceiling.
38
+ */
39
+ export declare const POSTGRES_MAX_PARAMETERS = 65535;
40
+ /** The most records, and bytes, one S2 append takes and one S2 read returns: S2's ceilings. */
41
+ export declare const S2_BATCH_MAX_RECORDS = 1000;
42
+ export declare const S2_BATCH_MAX_BYTES: number;
43
+ export declare const HostTuningSchema: z.ZodObject<{
44
+ keys: z.ZodPrefault<z.ZodObject<{
45
+ bodyBytes: z.ZodDefault<z.ZodNumber>;
46
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
47
+ leafBackdateMs: z.ZodDefault<z.ZodNumber>;
48
+ leafLifetimeMs: z.ZodDefault<z.ZodNumber>;
49
+ caBackdateMs: z.ZodDefault<z.ZodNumber>;
50
+ caLifetimeDays: z.ZodDefault<z.ZodNumber>;
51
+ tokenTtlMaxSeconds: z.ZodDefault<z.ZodNumber>;
52
+ runTokenTtlSeconds: z.ZodDefault<z.ZodNumber>;
53
+ runTokenRenewSeconds: z.ZodDefault<z.ZodNumber>;
54
+ hostTokenTtlSeconds: z.ZodDefault<z.ZodNumber>;
55
+ tokenLifetimeSlackSeconds: z.ZodDefault<z.ZodNumber>;
56
+ clockToleranceSeconds: z.ZodDefault<z.ZodNumber>;
57
+ }, z.core.$strict>>;
58
+ harnessApi: z.ZodPrefault<z.ZodObject<{
59
+ joinBodyBytes: z.ZodDefault<z.ZodNumber>;
60
+ reportBodyBytes: z.ZodDefault<z.ZodNumber>;
61
+ closeGraceMs: z.ZodDefault<z.ZodNumber>;
62
+ offerWaitMs: z.ZodDefault<z.ZodNumber>;
63
+ podOfferWaitMs: z.ZodDefault<z.ZodNumber>;
64
+ loopbackConnectTimeoutMs: z.ZodDefault<z.ZodNumber>;
65
+ loopbackBackoff: z.ZodPrefault<z.ZodObject<{
66
+ minMs: z.ZodDefault<z.ZodNumber>;
67
+ maxMs: z.ZodDefault<z.ZodNumber>;
68
+ }, z.core.$strict>>;
69
+ rolloverSteps: z.ZodDefault<z.ZodNumber>;
70
+ rolloverMs: z.ZodDefault<z.ZodNumber>;
71
+ }, z.core.$strict>>;
72
+ api: z.ZodPrefault<z.ZodObject<{
73
+ agUiHeartbeatMs: z.ZodDefault<z.ZodNumber>;
74
+ eventStreamKeepaliveMs: z.ZodDefault<z.ZodNumber>;
75
+ }, z.core.$strict>>;
76
+ host: z.ZodPrefault<z.ZodObject<{
77
+ shutdownGraceMs: z.ZodDefault<z.ZodNumber>;
78
+ readinessTimeoutMs: z.ZodDefault<z.ZodNumber>;
79
+ operateReadyTimeoutMs: z.ZodDefault<z.ZodNumber>;
80
+ credentialLockPollMs: z.ZodDefault<z.ZodNumber>;
81
+ credentialLockAttempts: z.ZodDefault<z.ZodNumber>;
82
+ }, z.core.$strict>>;
83
+ objectStore: z.ZodPrefault<z.ZodObject<{
84
+ partSizeBytes: z.ZodDefault<z.ZodNumber>;
85
+ attempts: z.ZodDefault<z.ZodNumber>;
86
+ retryBaseMs: z.ZodDefault<z.ZodNumber>;
87
+ bucketRetry: z.ZodPrefault<z.ZodObject<{
88
+ minMs: z.ZodDefault<z.ZodNumber>;
89
+ maxMs: z.ZodDefault<z.ZodNumber>;
90
+ }, z.core.$strict>>;
91
+ bucketAttempts: z.ZodDefault<z.ZodNumber>;
92
+ }, z.core.$strict>>;
93
+ tenant: z.ZodPrefault<z.ZodObject<{
94
+ openTimeoutMs: z.ZodDefault<z.ZodNumber>;
95
+ openRetry: z.ZodPrefault<z.ZodObject<{
96
+ minMs: z.ZodDefault<z.ZodNumber>;
97
+ maxMs: z.ZodDefault<z.ZodNumber>;
98
+ }, z.core.$strict>>;
99
+ ownerLeaseMs: z.ZodDefault<z.ZodNumber>;
100
+ busyRetryMinMs: z.ZodDefault<z.ZodNumber>;
101
+ unavailableRetryMs: z.ZodDefault<z.ZodNumber>;
102
+ drainTimeoutMs: z.ZodDefault<z.ZodNumber>;
103
+ statusTimeoutMs: z.ZodDefault<z.ZodNumber>;
104
+ signingKeyRotationGraceMs: z.ZodDefault<z.ZodNumber>;
105
+ retryAfterSeconds: z.ZodDefault<z.ZodNumber>;
106
+ seedLeaseMs: z.ZodDefault<z.ZodNumber>;
107
+ }, z.core.$strict>>;
108
+ sweep: z.ZodPrefault<z.ZodObject<{
109
+ intervalMs: z.ZodDefault<z.ZodNumber>;
110
+ batchSize: z.ZodDefault<z.ZodNumber>;
111
+ signalRetentionMs: z.ZodDefault<z.ZodNumber>;
112
+ outboxGraceMs: z.ZodDefault<z.ZodNumber>;
113
+ orphanScanMs: z.ZodDefault<z.ZodNumber>;
114
+ drainBudgetMs: z.ZodDefault<z.ZodNumber>;
115
+ armConcurrency: z.ZodDefault<z.ZodNumber>;
116
+ outboxAttempts: z.ZodDefault<z.ZodNumber>;
117
+ outboxRetry: z.ZodPrefault<z.ZodObject<{
118
+ minMs: z.ZodDefault<z.ZodNumber>;
119
+ maxMs: z.ZodDefault<z.ZodNumber>;
120
+ }, z.core.$strict>>;
121
+ stalePodMs: z.ZodDefault<z.ZodNumber>;
122
+ }, z.core.$strict>>;
123
+ execution: z.ZodPrefault<z.ZodObject<{
124
+ advanceDeadlineMs: z.ZodDefault<z.ZodNumber>;
125
+ advanceGraceMs: z.ZodDefault<z.ZodNumber>;
126
+ stopGraceMs: z.ZodDefault<z.ZodNumber>;
127
+ dedupeRetentionMs: z.ZodDefault<z.ZodNumber>;
128
+ memoryRetryMs: z.ZodDefault<z.ZodNumber>;
129
+ memoryAttempts: z.ZodDefault<z.ZodNumber>;
130
+ }, z.core.$strict>>;
131
+ restate: z.ZodPrefault<z.ZodObject<{
132
+ sendRetryMs: z.ZodDefault<z.ZodNumber>;
133
+ sendBackoff: z.ZodPrefault<z.ZodObject<{
134
+ minMs: z.ZodDefault<z.ZodNumber>;
135
+ maxMs: z.ZodDefault<z.ZodNumber>;
136
+ }, z.core.$strict>>;
137
+ sendTimeoutMs: z.ZodDefault<z.ZodNumber>;
138
+ inactivityMs: z.ZodDefault<z.ZodNumber>;
139
+ abortMs: z.ZodDefault<z.ZodNumber>;
140
+ handlerRetry: z.ZodPrefault<z.ZodObject<{
141
+ minMs: z.ZodDefault<z.ZodNumber>;
142
+ maxMs: z.ZodDefault<z.ZodNumber>;
143
+ }, z.core.$strict>>;
144
+ handlerAttempts: z.ZodDefault<z.ZodNumber>;
145
+ registrationDeadlineMs: z.ZodDefault<z.ZodNumber>;
146
+ registrationBackoff: z.ZodPrefault<z.ZodObject<{
147
+ minMs: z.ZodDefault<z.ZodNumber>;
148
+ maxMs: z.ZodDefault<z.ZodNumber>;
149
+ }, z.core.$strict>>;
150
+ registrationRequestTimeoutMs: z.ZodDefault<z.ZodNumber>;
151
+ queryTimeoutMs: z.ZodDefault<z.ZodNumber>;
152
+ closeGraceMs: z.ZodDefault<z.ZodNumber>;
153
+ staleSweepIntervals: z.ZodDefault<z.ZodNumber>;
154
+ staleSweepMinMs: z.ZodDefault<z.ZodNumber>;
155
+ stuckListDefault: z.ZodDefault<z.ZodNumber>;
156
+ stuckListMax: z.ZodDefault<z.ZodNumber>;
157
+ }, z.core.$strict>>;
158
+ postgres: z.ZodPrefault<z.ZodObject<{
159
+ poolSize: z.ZodDefault<z.ZodNumber>;
160
+ statementTimeoutMs: z.ZodDefault<z.ZodNumber>;
161
+ idleInTransactionTimeoutMs: z.ZodDefault<z.ZodNumber>;
162
+ closeTimeoutSeconds: z.ZodDefault<z.ZodNumber>;
163
+ idleTimeoutSeconds: z.ZodDefault<z.ZodNumber>;
164
+ connectTimeoutSeconds: z.ZodDefault<z.ZodNumber>;
165
+ replicationPoolSize: z.ZodDefault<z.ZodNumber>;
166
+ readPoolSize: z.ZodDefault<z.ZodNumber>;
167
+ readConnectTimeoutSeconds: z.ZodDefault<z.ZodNumber>;
168
+ readStatementTimeoutMs: z.ZodDefault<z.ZodNumber>;
169
+ readCloseTimeoutSeconds: z.ZodDefault<z.ZodNumber>;
170
+ controlPollMs: z.ZodDefault<z.ZodNumber>;
171
+ controlWindowSeconds: z.ZodDefault<z.ZodNumber>;
172
+ controlRetry: z.ZodPrefault<z.ZodObject<{
173
+ minMs: z.ZodDefault<z.ZodNumber>;
174
+ maxMs: z.ZodDefault<z.ZodNumber>;
175
+ }, z.core.$strict>>;
176
+ replicationRetryMs: z.ZodDefault<z.ZodNumber>;
177
+ contentBatchRows: z.ZodDefault<z.ZodNumber>;
178
+ }, z.core.$strict>>;
179
+ streams: z.ZodPrefault<z.ZodObject<{
180
+ retry: z.ZodPrefault<z.ZodObject<{
181
+ minMs: z.ZodDefault<z.ZodNumber>;
182
+ maxMs: z.ZodDefault<z.ZodNumber>;
183
+ }, z.core.$strict>>;
184
+ basinRetryMaxMs: z.ZodDefault<z.ZodNumber>;
185
+ basinRepairCooldownMs: z.ZodDefault<z.ZodNumber>;
186
+ basinLogEveryFailures: z.ZodDefault<z.ZodNumber>;
187
+ feedCheckMs: z.ZodDefault<z.ZodNumber>;
188
+ retireGraceMs: z.ZodDefault<z.ZodNumber>;
189
+ retireAttempts: z.ZodDefault<z.ZodNumber>;
190
+ probeTimeoutMs: z.ZodDefault<z.ZodNumber>;
191
+ relayRetry: z.ZodPrefault<z.ZodObject<{
192
+ minMs: z.ZodDefault<z.ZodNumber>;
193
+ maxMs: z.ZodDefault<z.ZodNumber>;
194
+ }, z.core.$strict>>;
195
+ relayBatchRecords: z.ZodDefault<z.ZodNumber>;
196
+ relayBatchBytes: z.ZodDefault<z.ZodNumber>;
197
+ relayReconcileConcurrency: z.ZodDefault<z.ZodNumber>;
198
+ relayHeadsPage: z.ZodDefault<z.ZodNumber>;
199
+ s2Retry: z.ZodPrefault<z.ZodObject<{
200
+ minMs: z.ZodDefault<z.ZodNumber>;
201
+ maxMs: z.ZodDefault<z.ZodNumber>;
202
+ }, z.core.$strict>>;
203
+ s2ConflictAttempts: z.ZodDefault<z.ZodNumber>;
204
+ s2ConflictRetryMs: z.ZodDefault<z.ZodNumber>;
205
+ s2BasinRetryMs: z.ZodDefault<z.ZodNumber>;
206
+ s2BasinDeletionWaitMs: z.ZodDefault<z.ZodNumber>;
207
+ }, z.core.$strict>>;
208
+ gates: z.ZodPrefault<z.ZodObject<{
209
+ clientTimeoutMs: z.ZodDefault<z.ZodNumber>;
210
+ shortTimeoutMs: z.ZodDefault<z.ZodNumber>;
211
+ keepAliveMs: z.ZodDefault<z.ZodNumber>;
212
+ requestTimeoutMs: z.ZodDefault<z.ZodNumber>;
213
+ probeTimeoutMs: z.ZodDefault<z.ZodNumber>;
214
+ mcpIdleMs: z.ZodDefault<z.ZodNumber>;
215
+ errorMessageChars: z.ZodDefault<z.ZodNumber>;
216
+ mcpSweepMinMs: z.ZodDefault<z.ZodNumber>;
217
+ mcpSweepMaxMs: z.ZodDefault<z.ZodNumber>;
218
+ toolCrossingTtlMs: z.ZodDefault<z.ZodNumber>;
219
+ toolCrossingPruneMs: z.ZodDefault<z.ZodNumber>;
220
+ drainMs: z.ZodDefault<z.ZodNumber>;
221
+ drainPollMs: z.ZodDefault<z.ZodNumber>;
222
+ inflightTtlMs: z.ZodDefault<z.ZodNumber>;
223
+ inflightMax: z.ZodDefault<z.ZodNumber>;
224
+ }, z.core.$strict>>;
225
+ egress: z.ZodPrefault<z.ZodObject<{
226
+ maxTunnelsPerSandbox: z.ZodDefault<z.ZodNumber>;
227
+ idleMs: z.ZodDefault<z.ZodNumber>;
228
+ cacheMs: z.ZodDefault<z.ZodNumber>;
229
+ cacheEntries: z.ZodDefault<z.ZodNumber>;
230
+ connectTimeoutMs: z.ZodDefault<z.ZodNumber>;
231
+ headersTimeoutMs: z.ZodDefault<z.ZodNumber>;
232
+ requestTimeoutMs: z.ZodDefault<z.ZodNumber>;
233
+ credentialsHeadersTimeoutMs: z.ZodDefault<z.ZodNumber>;
234
+ credentialsMaxSockets: z.ZodDefault<z.ZodNumber>;
235
+ }, z.core.$strict>>;
236
+ pods: z.ZodPrefault<z.ZodObject<{
237
+ readyDeadlineMs: z.ZodDefault<z.ZodNumber>;
238
+ pollMs: z.ZodDefault<z.ZodNumber>;
239
+ unreachableRetryMs: z.ZodDefault<z.ZodNumber>;
240
+ readyCacheMs: z.ZodDefault<z.ZodNumber>;
241
+ reconcileRetryMs: z.ZodDefault<z.ZodNumber>;
242
+ enginePollMs: z.ZodDefault<z.ZodNumber>;
243
+ memoryFloorMiB: z.ZodDefault<z.ZodNumber>;
244
+ requestTimeoutMs: z.ZodDefault<z.ZodNumber>;
245
+ readyProbeTimeoutMs: z.ZodDefault<z.ZodNumber>;
246
+ waitMs: z.ZodDefault<z.ZodNumber>;
247
+ waitSlackMs: z.ZodDefault<z.ZodNumber>;
248
+ }, z.core.$strict>>;
249
+ harness: z.ZodPrefault<z.ZodObject<{
250
+ pingMs: z.ZodDefault<z.ZodNumber>;
251
+ silenceMs: z.ZodDefault<z.ZodNumber>;
252
+ reconnect: z.ZodPrefault<z.ZodObject<{
253
+ minMs: z.ZodDefault<z.ZodNumber>;
254
+ maxMs: z.ZodDefault<z.ZodNumber>;
255
+ }, z.core.$strict>>;
256
+ handshakeTimeoutMs: z.ZodDefault<z.ZodNumber>;
257
+ reconnectStopMs: z.ZodDefault<z.ZodNumber>;
258
+ stopMs: z.ZodDefault<z.ZodNumber>;
259
+ podStopMs: z.ZodDefault<z.ZodNumber>;
260
+ runTokensMax: z.ZodDefault<z.ZodNumber>;
261
+ mcpSweepMs: z.ZodDefault<z.ZodNumber>;
262
+ mcpIdleMs: z.ZodDefault<z.ZodNumber>;
263
+ mcpListPages: z.ZodDefault<z.ZodNumber>;
264
+ mcpDiagnosticChars: z.ZodDefault<z.ZodNumber>;
265
+ helperCommandTimeoutMs: z.ZodDefault<z.ZodNumber>;
266
+ helperCommandExcerptChars: z.ZodDefault<z.ZodNumber>;
267
+ scrubMinChars: z.ZodDefault<z.ZodNumber>;
268
+ execCommandChars: z.ZodDefault<z.ZodNumber>;
269
+ commandStreamBytes: z.ZodDefault<z.ZodNumber>;
270
+ podRenewMs: z.ZodDefault<z.ZodNumber>;
271
+ podRenewEarlyMs: z.ZodDefault<z.ZodNumber>;
272
+ podJoinTimeoutMs: z.ZodDefault<z.ZodNumber>;
273
+ podRequestTimeoutMs: z.ZodDefault<z.ZodNumber>;
274
+ networkPolicyTimeoutMs: z.ZodDefault<z.ZodNumber>;
275
+ networkProbeMs: z.ZodDefault<z.ZodNumber>;
276
+ networkPauseMs: z.ZodDefault<z.ZodNumber>;
277
+ networkConfirmations: z.ZodDefault<z.ZodNumber>;
278
+ setupRetryPollMs: z.ZodDefault<z.ZodNumber>;
279
+ setupAfterSeedPollMs: z.ZodDefault<z.ZodNumber>;
280
+ setupReportTailChars: z.ZodDefault<z.ZodNumber>;
281
+ }, z.core.$strict>>;
282
+ traces: z.ZodPrefault<z.ZodObject<{
283
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
284
+ retries: z.ZodDefault<z.ZodNumber>;
285
+ backoffMs: z.ZodDefault<z.ZodNumber>;
286
+ batchSpans: z.ZodDefault<z.ZodNumber>;
287
+ batchDelayMs: z.ZodDefault<z.ZodNumber>;
288
+ queuedSpansMax: z.ZodDefault<z.ZodNumber>;
289
+ turnCacheSize: z.ZodDefault<z.ZodNumber>;
290
+ retryMs: z.ZodDefault<z.ZodNumber>;
291
+ }, z.core.$strict>>;
292
+ engine: z.ZodPrefault<z.ZodObject<{
293
+ transcriptCacheMb: z.ZodOptional<z.ZodNumber>;
294
+ artifactPageBytes: z.ZodOptional<z.ZodNumber>;
295
+ skillReadBytes: z.ZodOptional<z.ZodNumber>;
296
+ leaseRetryMs: z.ZodOptional<z.ZodNumber>;
297
+ resendDelaysMs: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
298
+ partialOutputChars: z.ZodOptional<z.ZodNumber>;
299
+ flowValueChars: z.ZodOptional<z.ZodNumber>;
300
+ compaction: z.ZodOptional<z.ZodObject<{
301
+ keepTokens: z.ZodOptional<z.ZodNumber>;
302
+ keepShare: z.ZodOptional<z.ZodNumber>;
303
+ reserveTokens: z.ZodOptional<z.ZodNumber>;
304
+ maxReserveTokens: z.ZodOptional<z.ZodNumber>;
305
+ maxReserveShare: z.ZodOptional<z.ZodNumber>;
306
+ clipChars: z.ZodOptional<z.ZodNumber>;
307
+ summaryOverheadTokens: z.ZodOptional<z.ZodNumber>;
308
+ imageTokens: z.ZodOptional<z.ZodNumber>;
309
+ fileTokensMax: z.ZodOptional<z.ZodNumber>;
310
+ minChunkTokens: z.ZodOptional<z.ZodNumber>;
311
+ minSummaryTokens: z.ZodOptional<z.ZodNumber>;
312
+ summaryShare: z.ZodOptional<z.ZodNumber>;
313
+ charsPerToken: z.ZodOptional<z.ZodNumber>;
314
+ }, z.core.$strict>>;
315
+ sandboxTools: z.ZodOptional<z.ZodObject<{
316
+ outputChars: z.ZodOptional<z.ZodNumber>;
317
+ defaultTimeoutS: z.ZodOptional<z.ZodNumber>;
318
+ maxTimeoutS: z.ZodOptional<z.ZodNumber>;
319
+ readLines: z.ZodOptional<z.ZodNumber>;
320
+ maxReadLines: z.ZodOptional<z.ZodNumber>;
321
+ lineChars: z.ZodOptional<z.ZodNumber>;
322
+ grepResults: z.ZodOptional<z.ZodNumber>;
323
+ maxGrepResults: z.ZodOptional<z.ZodNumber>;
324
+ globResults: z.ZodOptional<z.ZodNumber>;
325
+ globScan: z.ZodOptional<z.ZodNumber>;
326
+ }, z.core.$strict>>;
327
+ mcpTools: z.ZodOptional<z.ZodObject<{
328
+ deferShare: z.ZodOptional<z.ZodNumber>;
329
+ charsPerToken: z.ZodOptional<z.ZodNumber>;
330
+ fallbackContextWindow: z.ZodOptional<z.ZodNumber>;
331
+ serverInstructionsMaxChars: z.ZodOptional<z.ZodNumber>;
332
+ toolSearchDefaultLimit: z.ZodOptional<z.ZodNumber>;
333
+ toolSearchMaxLimit: z.ZodOptional<z.ZodNumber>;
334
+ }, z.core.$strict>>;
335
+ toolResults: z.ZodOptional<z.ZodObject<{
336
+ resultInlineBytes: z.ZodOptional<z.ZodNumber>;
337
+ previewHeadBytes: z.ZodOptional<z.ZodNumber>;
338
+ previewTailBytes: z.ZodOptional<z.ZodNumber>;
339
+ stepBudgetBytes: z.ZodOptional<z.ZodNumber>;
340
+ stubBytes: z.ZodOptional<z.ZodNumber>;
341
+ smallBytes: z.ZodOptional<z.ZodNumber>;
342
+ minPreviewBytes: z.ZodOptional<z.ZodNumber>;
343
+ entryEnvelopeBytes: z.ZodOptional<z.ZodNumber>;
344
+ }, z.core.$strict>>;
345
+ outputs: z.ZodOptional<z.ZodObject<{
346
+ dir: z.ZodOptional<z.ZodString>;
347
+ maxBytes: z.ZodOptional<z.ZodNumber>;
348
+ }, z.core.$strict>>;
349
+ }, z.core.$strict>>;
350
+ }, z.core.$strict>;
351
+ export type HostTuning = z.infer<typeof HostTuningSchema>;
352
+ /** What an operator sets: any part of the tuning. */
353
+ export type HostTuningInput = z.input<typeof HostTuningSchema>;
354
+ export type EngineTuning = HostTuning["engine"];
355
+ /** The tuning with every default: the Runtime's values when nothing is set. */
356
+ export declare const DEFAULT_HOST_TUNING: HostTuning;
357
+ export declare class HostTuningError extends Error {
358
+ constructor(message: string);
359
+ }
360
+ /** `input` over the defaults; throws `HostTuningError` naming each refused key. */
361
+ export declare function hostTuningOf(input: unknown, source?: string): HostTuning;
362
+ /** The tuning `NYLORUN_TUNING` names (JSON), and the overrides as set; the defaults when unset. */
363
+ export declare function parseHostTuning(raw: string | undefined): {
364
+ tuning: HostTuning;
365
+ overrides?: Record<string, unknown>;
366
+ };
367
+ /**
368
+ * The process's tuning: what `useHostTuning` set when the process started, or the defaults. Read
369
+ * where a value is used, never kept at module load, so what the process was started with applies.
370
+ */
371
+ export declare function hostTuning(): HostTuning;
372
+ /**
373
+ * Sets the process's tuning, once at start (`host/main.ts`); tests set and reset it. `set` is the
374
+ * overrides as the operator wrote them, which a pod's engine is handed (`podTuningEnv`).
375
+ */
376
+ export declare function useHostTuning(tuning: HostTuning, set?: Record<string, unknown>): void;
377
+ /**
378
+ * `NYLORUN_TUNING` for a pod sandbox's engine: the `harness` and `engine` groups the operator
379
+ * set, or nothing when they set neither.
380
+ */
381
+ export declare function podTuningEnv(): Record<string, string>;
382
+ /** Every setting's dotted path (`tenant.openTimeoutMs`), for the docs check. */
383
+ export declare function hostTuningPaths(): string[];