@tangle-network/agent-runtime 0.273.5 → 0.277.0

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 (57) hide show
  1. package/dist/{activation-Cx2dKA_l.js → activation-CbxhVtVV.js} +2 -2
  2. package/dist/{activation-Cx2dKA_l.js.map → activation-CbxhVtVV.js.map} +1 -1
  3. package/dist/{activation-IfDlhR3J.d.ts → activation-puw9_ahP.d.ts} +2 -2
  4. package/dist/agent.d.ts +2 -2
  5. package/dist/agent.js +2 -2
  6. package/dist/{coordination-driver-CkcW4dxU.js → coordination-driver-ZfUf-H4H.js} +95 -28
  7. package/dist/coordination-driver-ZfUf-H4H.js.map +1 -0
  8. package/dist/{delegate-Dvb1-mE-.js → delegate-DXOyzIq0.js} +2 -2
  9. package/dist/{delegate-Dvb1-mE-.js.map → delegate-DXOyzIq0.js.map} +1 -1
  10. package/dist/durable.d.ts +2 -2
  11. package/dist/durable.js +2 -2
  12. package/dist/{graph-C69Uxtzt.js → graph-sGWwXC6E.js} +4 -4
  13. package/dist/{graph-C69Uxtzt.js.map → graph-sGWwXC6E.js.map} +1 -1
  14. package/dist/{improvement-cycle-CO2HRCQq.js → improvement-cycle-DQyN0__A.js} +3 -3
  15. package/dist/{improvement-cycle-CO2HRCQq.js.map → improvement-cycle-DQyN0__A.js.map} +1 -1
  16. package/dist/{index-D2ipSqkP.d.ts → index-CmAFFnsd.d.ts} +46 -14
  17. package/dist/index.d.ts +6 -6
  18. package/dist/index.js +7 -7
  19. package/dist/intelligence.d.ts +3 -3
  20. package/dist/intelligence.js +4 -4
  21. package/dist/intelligence.js.map +1 -1
  22. package/dist/kernel.d.ts +4 -4
  23. package/dist/kernel.js +8 -8
  24. package/dist/{loop-runner-bin-B9MIq9O7.js → loop-runner-bin-BTnEDWj3.js} +3 -3
  25. package/dist/{loop-runner-bin-B9MIq9O7.js.map → loop-runner-bin-BTnEDWj3.js.map} +1 -1
  26. package/dist/{loop-runner-bin-ThlwVkvo.d.ts → loop-runner-bin-DGUASE9O.d.ts} +3 -3
  27. package/dist/loop-runner-bin.d.ts +1 -1
  28. package/dist/loop-runner-bin.js +1 -1
  29. package/dist/mcp/bin.js +3 -3
  30. package/dist/mcp/index.d.ts +5 -5
  31. package/dist/mcp/index.js +4 -4
  32. package/dist/{openai-tools-Bb0mAr5z.d.ts → openai-tools-Gc8p4PBq.d.ts} +2 -2
  33. package/dist/profiles.d.ts +2 -2
  34. package/dist/{provision-supervisor-BKAvsDtP.js → provision-supervisor-BgjtrTlv.js} +3 -3
  35. package/dist/{provision-supervisor-BKAvsDtP.js.map → provision-supervisor-BgjtrTlv.js.map} +1 -1
  36. package/dist/{runtime-CHxXrUeZ.js → runtime-DoFvrisL.js} +73 -26
  37. package/dist/runtime-DoFvrisL.js.map +1 -0
  38. package/dist/{server-2OeFrEVG.js → server-D2d83_iS.js} +3 -3
  39. package/dist/{server-2OeFrEVG.js.map → server-D2d83_iS.js.map} +1 -1
  40. package/dist/{stream-agent-turn-ewm3BZAp.d.ts → stream-agent-turn-BqU5Sfbw.d.ts} +2 -2
  41. package/dist/{structural-rollout-DCUprNpH.js → structural-rollout-VR-j5t9d.js} +2 -2
  42. package/dist/{structural-rollout-DCUprNpH.js.map → structural-rollout-VR-j5t9d.js.map} +1 -1
  43. package/dist/{substrate-VKjmrksz.d.ts → substrate-CfE3oUB9.d.ts} +2 -2
  44. package/dist/{supervise-Dej5aSDa.js → supervise-BoCOUAmr.js} +149 -5
  45. package/dist/supervise-BoCOUAmr.js.map +1 -0
  46. package/dist/{supervisor-DdKPGluv.js → supervisor-CjNbOcLO.js} +49 -14
  47. package/dist/supervisor-CjNbOcLO.js.map +1 -0
  48. package/dist/testing.d.ts +2 -2
  49. package/dist/testing.js +60 -60
  50. package/dist/tui/index.d.ts +1 -1
  51. package/dist/tui/index.js +1 -1
  52. package/dist/{types-DMRc3jru.d.ts → types-CI7ve2sA.d.ts} +25 -10
  53. package/package.json +5 -5
  54. package/dist/coordination-driver-CkcW4dxU.js.map +0 -1
  55. package/dist/runtime-CHxXrUeZ.js.map +0 -1
  56. package/dist/supervise-Dej5aSDa.js.map +0 -1
  57. package/dist/supervisor-DdKPGluv.js.map +0 -1
@@ -1,16 +1,16 @@
1
- import { $i as detachedSnapshot, Ai as readCommittedJsonLines, Bn as runAgentRounds, Bt as SpawnEventIndex, Ca as stringifySafe, Ct as rollingDispatch, Gn as readPromptOptions, Hn as probeSandboxCapabilities, Ht as encodeResultBlob, Ia as armDeadlineTimer, Jn as canonicalObservedModelParts, Kn as routerBrain, M as withDriverExecutor, O as verdictFromJudgeScore, Oa as zeroSpend, Ot as createExecutor, Qi as detachedFrozen, Rn as defaultSelectWinner, Rt as InMemoryResultBlobStore, Sa as sleep, Ut as insideCursorNamespace, Vn as createSandboxLineage, Vt as assertContentAddress, W as settledToIteration, Wn as assertBoxlessPromptOptions, Xi as executableAgentProfileSnapshot, Xt as isTraceAnalysisStore, Zi as executableAgentSpecSnapshot, Zn as LEAF_CONTINUATION_TASK, _ as CheckUnavailableError, ai as harnessInvocation, ar as createPushTraceSource, ga as cloneSpend, ha as chargedTokens, ir as unavailableSignalOfFailure, ji as writeAllBytes, jt as createWorktreeCliExecutor, ki as prepareJsonlAppend, kr as contentAddress, kt as createExecutorRegistry, ma as addSpend, nr as sandboxClientAsProvider, qn as runBrainLoop, r as createSupervisor, rr as unavailablePauseMs, ua as notifySandboxEventObserver, va as hasCompleteCacheBreakdown, xa as randomSuffix, ya as isAbortError, zt as InMemorySpawnJournal } from "./supervisor-DdKPGluv.js";
1
+ import { $i as detachedSnapshot, Ai as readCommittedJsonLines, Bn as runAgentRounds, Bt as SpawnEventIndex, Ca as stringifySafe, Ct as rollingDispatch, Gn as readPromptOptions, Hn as probeSandboxCapabilities, Ht as encodeResultBlob, Ia as armDeadlineTimer, Jn as canonicalObservedModelParts, Kn as routerBrain, M as withDriverExecutor, O as verdictFromJudgeScore, Oa as zeroSpend, Ot as createExecutor, Qi as detachedFrozen, Rn as defaultSelectWinner, Rt as InMemoryResultBlobStore, Sa as sleep, Ut as insideCursorNamespace, Vn as createSandboxLineage, Vt as assertContentAddress, W as settledToIteration, Wn as assertBoxlessPromptOptions, Xi as executableAgentProfileSnapshot, Xt as isTraceAnalysisStore, Zi as executableAgentSpecSnapshot, Zn as LEAF_CONTINUATION_TASK, _ as CheckUnavailableError, ai as harnessInvocation, ar as createPushTraceSource, ga as cloneSpend, ha as chargedTokens, ir as unavailableSignalOfFailure, ji as writeAllBytes, jt as createWorktreeCliExecutor, ki as prepareJsonlAppend, kr as contentAddress, kt as createExecutorRegistry, ma as addSpend, nr as sandboxClientAsProvider, qn as runBrainLoop, r as createSupervisor, rr as unavailablePauseMs, ua as notifySandboxEventObserver, va as hasCompleteCacheBreakdown, xa as randomSuffix, ya as isAbortError, zt as InMemorySpawnJournal } from "./supervisor-CjNbOcLO.js";
2
2
  import { m as ValidationError, n as AnalystError, s as PlannerError } from "./errors-DodWX-cb.js";
3
- import { E as profileChatClient, S as ObservationError, T as renderReport, b as sample, k as strategyAuthorMethod, v as refine, w as observe, x as sampleThenRefine, y as runAgentic } from "./structural-rollout-DCUprNpH.js";
3
+ import { E as profileChatClient, S as ObservationError, T as renderReport, b as sample, k as strategyAuthorMethod, v as refine, w as observe, x as sampleThenRefine, y as runAgentic } from "./structural-rollout-VR-j5t9d.js";
4
4
  import { a as concreteProfileModel, c as profileModelExecutionSettings, i as concreteModelId, l as profileProviderModel, o as enforceTokenLimits, t as assertExecutableAgentProfile } from "./model-policy-BbSCSak0.js";
5
5
  import { C as canonicalCandidateDigest$1, D as immutableCandidateValue, k as sha256Bytes$1, m as captureMaterializedWorkspace } from "./workspace-archive-C9lgf77y.js";
6
6
  import { i as notifyRuntimeHookEvent } from "./runtime-hooks-tXpAarhW.js";
7
7
  import { i as redactProtectedValue, r as redactProtectedReason } from "./protected-redaction-DylCC_ot.js";
8
- import { S as foldCoordinationRecords, y as createInMemoryRunContext } from "./coordination-driver-CkcW4dxU.js";
9
- import { C as gateOnDeliverable, r as supervise, w as mapExecutorResult } from "./supervise-Dej5aSDa.js";
8
+ import { S as foldCoordinationRecords, y as createInMemoryRunContext } from "./coordination-driver-ZfUf-H4H.js";
9
+ import { C as gateOnDeliverable, r as supervise, w as mapExecutorResult } from "./supervise-BoCOUAmr.js";
10
10
  import "./run-layout-vwd4SwX_.js";
11
- import "./provision-supervisor-BKAvsDtP.js";
12
- import "./delegate-Dvb1-mE-.js";
13
- import "./graph-C69Uxtzt.js";
11
+ import "./provision-supervisor-BgjtrTlv.js";
12
+ import "./delegate-DXOyzIq0.js";
13
+ import "./graph-sGWwXC6E.js";
14
14
  import { agentProfileSchema, canonicalAgentProfileDigest, canonicalCandidateDigest, sha256Bytes, validateAgentProfileSecurity } from "@tangle-network/agent-interface";
15
15
  import { CODING_HARNESSES, DEFAULT_TRACE_ANALYST_KINDS, InMemoryTraceStore, OUTPUT_VALUE, benjaminiHochberg, buildTrajectory, computeFindingId as computeFindingId$1, confidenceInterval, createTraceAnalyst, expandProfileAxes, makeFinding as makeFinding$1, pairedBootstrap, paretoFrontier, wilcoxonSignedRank, wilson } from "@tangle-network/agent-eval";
16
16
  import { createAgentRunOutcomeTracker } from "@tangle-network/sandbox/runtime";
@@ -1957,9 +1957,9 @@ async function runInBox(options, placement) {
1957
1957
  options.signal?.throwIfAborted();
1958
1958
  box = await placement.client.createIsolated({
1959
1959
  environment: placement.environment,
1960
- agent: false,
1960
+ agent: placement.containers === true,
1961
1961
  bare: false,
1962
- ephemeral: true,
1962
+ ephemeral: placement.containers !== true,
1963
1963
  egressPolicy: egressFor(placement),
1964
1964
  ...placement.resources ? { resources: placement.resources } : {},
1965
1965
  maxLifetimeSeconds: Math.ceil(timeoutMs / 1e3) + BOX_SETUP_SECONDS,
@@ -2273,12 +2273,19 @@ async function removeScratch(path) {
2273
2273
  * pauses instead of blaming the director.
2274
2274
  *
2275
2275
  * The box receives the program's files at its working directory, the submitted result at
2276
- * `_input/result.json` when there is one, and the sealed cases at `_sealed/` only when the read
2277
- * scores a run or a version. `CHECK_SET` is `development` or `sealed`; `CHECK_RESULT` names the
2278
- * result file when present. Sealed cases never reach an in-run read, so their lines never reach
2279
- * the director.
2276
+ * `_input/result.json` when there is one, the run's state at `_input/state/` when the host
2277
+ * captures it, and the sealed cases at `_sealed/` only when the read scores a run or a version.
2278
+ * `CHECK_SET` is `development` or `sealed`; `CHECK_RESULT` names the result file and
2279
+ * `CHECK_STATE` the state directory when present. Sealed cases never reach an in-run read, so
2280
+ * their lines never reach the director.
2281
+ *
2282
+ * The state is what a check reads when the work is not in the submitted value. A Terminal-Bench
2283
+ * task is done when its container holds the right files, and the box that holds that container is
2284
+ * the run's, which the check box cannot reach. So the host copies the declared paths out before
2285
+ * each read ({@link DeclaredCheckStateCapture}), and the check reads those bytes.
2280
2286
  */
2281
2287
  const INPUT_DIR = "_input";
2288
+ const STATE_DIR = "state";
2282
2289
  const SEALED_DIR = "_sealed";
2283
2290
  const DEFAULT_TIMEOUT_MS = 15 * 6e4;
2284
2291
  /** Refuse a malformed declaration before any compute. */
@@ -2295,6 +2302,7 @@ function assertDeclaredCheck(check, context) {
2295
2302
  if (check.feedback !== "verbatim" && check.feedback !== "pass-only") fail("feedback must be 'verbatim' or 'pass-only'");
2296
2303
  if (check.sealed !== void 0 && !/^sha256:[0-9a-f]{64}$/u.test(check.sealed.digest ?? "")) fail("sealed.digest must be a sha256 digest");
2297
2304
  for (const name of check.secrets ?? []) if (!/^[A-Z_][A-Z0-9_]*$/u.test(name)) fail(`secret name ${JSON.stringify(name)} is not an env name`);
2305
+ if (check.containers !== void 0 && typeof check.containers !== "boolean") fail("containers must be a boolean");
2298
2306
  }
2299
2307
  /** The canonical digest of a directory's files: the digest a record names a program by. */
2300
2308
  async function checkProgramDigest(dir) {
@@ -2307,13 +2315,15 @@ function declaredCheckDigest(check) {
2307
2315
  sealed: check.sealed?.digest ?? null,
2308
2316
  command: check.command,
2309
2317
  environment: check.environment,
2310
- pass: check.pass
2318
+ pass: check.pass,
2319
+ ...check.containers === true ? { containers: true } : {}
2311
2320
  })));
2312
2321
  }
2313
2322
  /**
2314
2323
  * Read the check once. `result` is the submitted result, absent for a read of the run's state.
2315
- * `set: 'sealed'` adds the sealed cases. Throws {@link CheckUnavailableError} when the program
2316
- * could not run or printed no score.
2324
+ * `state` is a local directory of the run's state; the box receives a copy of its files at
2325
+ * `_input/state/`. `set: 'sealed'` adds the sealed cases. Throws {@link CheckUnavailableError} when
2326
+ * the program could not run or printed no score.
2317
2327
  */
2318
2328
  async function readDeclaredCheck(check, placement, read) {
2319
2329
  if (read.set === "sealed" && check.sealed === void 0) throw new ValidationError("readDeclaredCheck: a sealed read needs check.sealed");
@@ -2335,10 +2345,15 @@ async function readDeclaredCheck(check, placement, read) {
2335
2345
  CHECK_SET: read.set
2336
2346
  };
2337
2347
  if (read.result !== void 0) {
2338
- await mkdir(join(tree, INPUT_DIR));
2348
+ await mkdir(join(tree, INPUT_DIR), { recursive: true });
2339
2349
  await writeFile(join(tree, INPUT_DIR, "result.json"), `${JSON.stringify(read.result)}\n`);
2340
2350
  env.CHECK_RESULT = `${INPUT_DIR}/result.json`;
2341
2351
  }
2352
+ if (read.state !== void 0) {
2353
+ await mkdir(join(tree, INPUT_DIR, STATE_DIR), { recursive: true });
2354
+ await writeFiles((await captureMaterializedWorkspace(read.state)).files, join(tree, INPUT_DIR, STATE_DIR));
2355
+ env.CHECK_STATE = `${INPUT_DIR}/${STATE_DIR}`;
2356
+ }
2342
2357
  if (read.set === "sealed" && check.sealed !== void 0) await copyVerified(check.sealed.dir, check.sealed.digest, join(tree, SEALED_DIR), "sealed cases");
2343
2358
  return verdictOf(await runIsolatedCheck({
2344
2359
  workspaceRoot: workspace,
@@ -2352,7 +2367,8 @@ async function readDeclaredCheck(check, placement, read) {
2352
2367
  builderAccounts: placement.builderAccounts,
2353
2368
  environment: check.environment,
2354
2369
  ...check.egress === void 0 ? {} : { egress: check.egress },
2355
- ...check.resources === void 0 ? {} : { resources: check.resources }
2370
+ ...check.resources === void 0 ? {} : { resources: check.resources },
2371
+ ...check.containers === true ? { containers: true } : {}
2356
2372
  }
2357
2373
  }), check.pass);
2358
2374
  } finally {
@@ -2362,15 +2378,42 @@ async function readDeclaredCheck(check, placement, read) {
2362
2378
  });
2363
2379
  }
2364
2380
  }
2365
- /** The declared check as a manager's completion check: every in-run read uses development cases. */
2366
- function declaredCheckDeliverable(check, placement) {
2381
+ /**
2382
+ * The declared check as a manager's completion check: every in-run read uses development cases.
2383
+ * With `state`, each read first captures the run's state and the check reads it beside the
2384
+ * submitted result, on `submit_result` and at a turn end alike.
2385
+ */
2386
+ function declaredCheckDeliverable(check, placement, options = {}) {
2367
2387
  assertDeclaredCheck(check, "declaredCheckDeliverable");
2368
- return {
2369
- check: (result) => readDeclaredCheck(check, placement, {
2388
+ const { state } = options;
2389
+ if (state !== void 0 && typeof state !== "function") throw new ValidationError("declaredCheckDeliverable: state must be a capture function");
2390
+ const read = async (result) => {
2391
+ if (state === void 0) return readDeclaredCheck(check, placement, {
2370
2392
  result,
2371
2393
  set: "development"
2372
- }),
2373
- checkState: () => readDeclaredCheck(check, placement, { set: "development" }),
2394
+ });
2395
+ const into = await mkdtemp(join(tmpdir(), "declared-check-state-"));
2396
+ try {
2397
+ try {
2398
+ await state(into);
2399
+ } catch (error) {
2400
+ throw new CheckUnavailableError(`the run's state could not be captured: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
2401
+ }
2402
+ return await readDeclaredCheck(check, placement, {
2403
+ result,
2404
+ state: into,
2405
+ set: "development"
2406
+ });
2407
+ } finally {
2408
+ await rm(into, {
2409
+ recursive: true,
2410
+ force: true
2411
+ });
2412
+ }
2413
+ };
2414
+ return {
2415
+ check: (result) => read(result),
2416
+ checkState: () => read(),
2374
2417
  feedback: check.feedback,
2375
2418
  ...check.sealed === void 0 ? {} : { sealed: true },
2376
2419
  ...check.describe === void 0 ? {} : { describe: check.describe }
@@ -2434,7 +2477,10 @@ async function copyVerified(from, digest, to, label) {
2434
2477
  const captured = await captureMaterializedWorkspace(from);
2435
2478
  const actual = canonicalCandidateDigest(captured.manifest);
2436
2479
  if (actual !== digest) throw new ValidationError(`readDeclaredCheck: the ${label} at ${from} is ${actual}; the record names ${digest}`);
2437
- for (const file of captured.files) {
2480
+ await writeFiles(captured.files, to);
2481
+ }
2482
+ async function writeFiles(files, to) {
2483
+ for (const file of files) {
2438
2484
  const path = join(to, file.path);
2439
2485
  await mkdir(dirname(path), { recursive: true });
2440
2486
  await writeFile(path, file.bytes, { mode: file.mode });
@@ -2894,6 +2940,7 @@ function localSandboxClient(opts) {
2894
2940
  type: "llm_call",
2895
2941
  data: {
2896
2942
  model,
2943
+ tools: mcp.tools.map((t) => t.function.name),
2897
2944
  ...r.tokensKnown === false ? { tokensKnown: false } : {
2898
2945
  tokensIn: r.usage.input,
2899
2946
  tokensOut: r.usage.output
@@ -9146,4 +9193,4 @@ function tail(s) {
9146
9193
  //#endregion
9147
9194
  export { equalKOnCost as $, SqlResultBlobStore as $t, unsafeInProcessRunner as A, loopDispatch as At, strategyAuthorContract as B, deterministicCompletion as Bt, withUntrackedArtifacts as C, HarvestError as Ct, patchDelivered as D, localSandboxClient as Dt, createSqlRunContext as E, resolveSandboxClient as Et, pickChampion as F, declaredCheckDigest as Ft, sharedBoxPlacement as G, renderLeaderboardHtml as Gt, DEFAULT_SHARED_BOX_RESOURCES as H, stopSentinel as Ht, runStrategyEvolution as I, declaredCheckJudge as It, SandboxRunAbortError as J, renderPairwiseMarkdown as Jt, sharedBoxRefusal as K, renderLeaderboardMarkdown as Kt, selectChampion as L, readDeclaredCheck as Lt, chatWorkerSeam as M, assertDeclaredCheck as Mt, createChatSessionStore as N, checkProgramDigest as Nt, runCoderChecks as O, inlineSandboxClient as Ot, discriminatingMeans as P, declaredCheckDeliverable as Pt, promotionGate as Q, openSqlRunStore as Qt, assertStrategyContract as R, runIsolatedCheck as Rt, copyUntrackedIntoClone as S, inProcessSandboxClient as St, createFencedSqlRunContext as T, defineLeaderboard as Tt, DEFAULT_SHARED_BOX_WORKERS as U, leaderboard as Ut, strategyAuthorSystemPrompt as V, sentinelCompletion as Vt, ROUTER_CLIENT_HEADER as W, pairwiseSignificance as Wt, printBenchmarkReport as X, defaultAuditorInstruction as Xt, openSandboxRun as Y, auditIntent as Yt, runBenchmark as Z, SqlRunOwnershipError as Zt, NOTE_MAX_CHARS as _, assertTraceDerivedFindings as _t, localShell as a, sanitizeMcpToolSchema as an, registerShape as at, composeWorkerEvidence as b, registryScopeAnalyst as bt, createVerifierEnvironment as c, resolveMcpServerLaunch as cn, renderCorpusToInstructions as ct, harvestSurfaceDiffs as d, createTangleSandboxExactProcessProvider as dn, loopUntil as dt, SqlSpawnJournal as en, trajectoryReport as et, analystsFromRegistry as f, panel as ft, EVIDENCE_MAX_CHARS as g, widen as gt, worktreeFanout as h, verify as ht, jjWorkspace as i, createMcpEnvironment as in, createShapeRegistry as it, chatTransportExecutor as j, superviseDispatch as jt, codeModeSupervisorTools as k, loopCampaignDispatch as kt, boxSurfaceReader as l, resolveSecretEnv as ln, fanout as lt, superviseSurface as m, selectValidWinner as mt, makeFinding$1 as n, connectStdioMcp as nn, runPersonified as nt, runInWorkspace as o, envKeyProvider as on, FileCorpus as ot, failuresAnalyst as p, pipeline as pt, sharedWorkerClientName as q, renderLeaderboardSvg as qt, gitWorkspace as r, materializeLocalMcp as rn, builtinShapes as rt, createWaterfallCollector as s, mcpSecretEnvMetadataKey as sn, InMemoryCorpus as st, computeFindingId$1 as t, McpSpawnFault as tn, definePersona as tt, fsSurfaceReader as u, secretEnvOfMcpServer as un, flatWidenGate as ut, VERIFY_TAIL_CHARS as v, buildSteerContext as vt, analyzeTrace as w, harvestCorpus as wt, settledWorkerOut as x, observationFromRegistry as xt, closingWorkerNote as y, createScopeAnalyst as yt, authorStrategy as z, completionAuthorizes as zt };
9148
9195
 
9149
- //# sourceMappingURL=runtime-CHxXrUeZ.js.map
9196
+ //# sourceMappingURL=runtime-DoFvrisL.js.map