niceeval 0.13.2 → 0.13.3-canary.37

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 (129) hide show
  1. package/dist/agents/claude-code-native.cjs +213 -0
  2. package/dist/agents/claude-code-native.cjs.map +1 -0
  3. package/dist/agents/claude-code-native.d.cts +5 -0
  4. package/dist/agents/claude-code-native.d.mts +5 -0
  5. package/dist/agents/claude-code-native.d.ts +5 -0
  6. package/dist/agents/claude-code-native.js +6 -0
  7. package/dist/agents/claude-code-native.js.map +1 -0
  8. package/dist/agents/claude-code.cjs +26 -80
  9. package/dist/agents/claude-code.cjs.map +1 -1
  10. package/dist/agents/codex-app-server.cjs +315 -0
  11. package/dist/agents/codex-app-server.cjs.map +1 -0
  12. package/dist/agents/codex-app-server.d.cts +9 -0
  13. package/dist/agents/codex-app-server.d.mts +9 -0
  14. package/dist/agents/codex-app-server.d.ts +9 -0
  15. package/dist/agents/codex-app-server.js +6 -0
  16. package/dist/agents/codex-app-server.js.map +1 -0
  17. package/dist/agents/codex.cjs +16 -65
  18. package/dist/agents/codex.cjs.map +1 -1
  19. package/dist/agents/index.cjs +3 -1
  20. package/dist/agents/index.cjs.map +1 -1
  21. package/dist/agents/index.d.cts +1 -0
  22. package/dist/agents/index.d.mts +1 -0
  23. package/dist/agents/index.d.ts +1 -0
  24. package/dist/agents/index.js +84 -82
  25. package/dist/agents/index.mjs +84 -82
  26. package/dist/agents/managed-jsonl.cjs +207 -0
  27. package/dist/agents/managed-jsonl.cjs.map +1 -0
  28. package/dist/agents/managed-jsonl.d.cts +39 -0
  29. package/dist/agents/managed-jsonl.d.mts +39 -0
  30. package/dist/agents/managed-jsonl.d.ts +39 -0
  31. package/dist/agents/managed-jsonl.js +6 -0
  32. package/dist/agents/managed-jsonl.js.map +1 -0
  33. package/dist/agents/managed-process.cjs +31 -0
  34. package/dist/agents/managed-process.cjs.map +1 -0
  35. package/dist/agents/managed-process.d.cts +3 -0
  36. package/dist/agents/managed-process.d.mts +3 -0
  37. package/dist/agents/managed-process.d.ts +3 -0
  38. package/dist/agents/managed-process.js +6 -0
  39. package/dist/agents/managed-process.js.map +1 -0
  40. package/dist/agents/omp.cjs +18 -1
  41. package/dist/agents/omp.cjs.map +1 -1
  42. package/dist/agents/types.cjs.map +1 -1
  43. package/dist/agents/types.d.cts +8 -0
  44. package/dist/agents/types.d.mts +8 -0
  45. package/dist/agents/types.d.ts +8 -0
  46. package/dist/context/assert-first.cjs +1 -0
  47. package/dist/context/assert-first.cjs.map +1 -1
  48. package/dist/context/assert-first.d.cts +1 -0
  49. package/dist/context/assert-first.d.mts +1 -0
  50. package/dist/context/assert-first.d.ts +1 -0
  51. package/dist/context/attempt-resources.cjs +13 -0
  52. package/dist/context/attempt-resources.cjs.map +1 -0
  53. package/dist/context/attempt-resources.d.cts +3 -0
  54. package/dist/context/attempt-resources.d.mts +3 -0
  55. package/dist/context/attempt-resources.d.ts +3 -0
  56. package/dist/context/attempt-resources.js +8 -0
  57. package/dist/context/attempt-resources.js.map +1 -0
  58. package/dist/context/session.cjs +4 -3
  59. package/dist/context/session.cjs.map +1 -1
  60. package/dist/context/session.d.cts +1 -0
  61. package/dist/context/session.d.mts +1 -0
  62. package/dist/context/session.d.ts +1 -0
  63. package/dist/report/assets/styles.css +4 -0
  64. package/dist/report/components/attempt-detail/compute.cjs +4 -2
  65. package/dist/report/components/attempt-detail/compute.cjs.map +1 -1
  66. package/dist/report/components/attempt-detail/compute.d.cts +2 -2
  67. package/dist/report/components/attempt-detail/compute.d.mts +2 -2
  68. package/dist/report/components/attempt-detail/compute.d.ts +2 -2
  69. package/dist/report/components/attempt-detail/content.cjs +1 -0
  70. package/dist/report/components/attempt-detail/content.cjs.map +1 -1
  71. package/dist/report/components/attempt-detail/validate.cjs +3 -2
  72. package/dist/report/components/attempt-detail/validate.cjs.map +1 -1
  73. package/dist/report/components/summaries/index.cjs +5 -1
  74. package/dist/report/components/summaries/index.cjs.map +1 -1
  75. package/dist/report/definition/primitives/conversation.cjs +7 -0
  76. package/dist/report/definition/primitives/conversation.cjs.map +1 -1
  77. package/dist/report/definition/primitives/conversation.d.cts +2 -0
  78. package/dist/report/definition/primitives/conversation.d.mts +2 -0
  79. package/dist/report/definition/primitives/conversation.d.ts +2 -0
  80. package/dist/report/definition/primitives/turn-trace.cjs +53 -3
  81. package/dist/report/definition/primitives/turn-trace.cjs.map +1 -1
  82. package/dist/report/react/styles.css +4 -0
  83. package/dist/runner/attempt-resources.cjs +60 -0
  84. package/dist/runner/attempt-resources.cjs.map +1 -0
  85. package/dist/runner/attempt-resources.d.cts +13 -0
  86. package/dist/runner/attempt-resources.d.mts +13 -0
  87. package/dist/runner/attempt-resources.d.ts +13 -0
  88. package/dist/runner/attempt-resources.js +6 -0
  89. package/dist/runner/attempt-resources.js.map +1 -0
  90. package/dist/runner/attempt.cjs +37 -3
  91. package/dist/runner/attempt.cjs.map +1 -1
  92. package/dist/sandbox/backend.cjs +32 -2
  93. package/dist/sandbox/backend.cjs.map +1 -1
  94. package/dist/sandbox/backend.d.cts +12 -1
  95. package/dist/sandbox/backend.d.mts +12 -1
  96. package/dist/sandbox/backend.d.ts +12 -1
  97. package/dist/sandbox/backend.js +28 -22
  98. package/dist/sandbox/docker.cjs +140 -0
  99. package/dist/sandbox/docker.cjs.map +1 -1
  100. package/dist/sandbox/docker.d.cts +3 -1
  101. package/dist/sandbox/docker.d.mts +3 -1
  102. package/dist/sandbox/docker.d.ts +3 -1
  103. package/dist/sandbox/e2b.cjs +42 -0
  104. package/dist/sandbox/e2b.cjs.map +1 -1
  105. package/dist/sandbox/e2b.d.cts +2 -0
  106. package/dist/sandbox/e2b.d.mts +2 -0
  107. package/dist/sandbox/e2b.d.ts +2 -0
  108. package/dist/sandbox/local.cjs +64 -0
  109. package/dist/sandbox/local.cjs.map +1 -1
  110. package/dist/sandbox/local.d.cts +3 -1
  111. package/dist/sandbox/local.d.mts +3 -1
  112. package/dist/sandbox/local.d.ts +3 -1
  113. package/dist/sandbox/managed-process.cjs +49 -0
  114. package/dist/sandbox/managed-process.cjs.map +1 -0
  115. package/dist/sandbox/managed-process.d.cts +11 -0
  116. package/dist/sandbox/managed-process.d.mts +11 -0
  117. package/dist/sandbox/managed-process.d.ts +11 -0
  118. package/dist/sandbox/managed-process.js +6 -0
  119. package/dist/sandbox/managed-process.js.map +1 -0
  120. package/dist/sandbox/types.cjs.map +1 -1
  121. package/dist/sandbox/types.d.cts +24 -0
  122. package/dist/sandbox/types.d.mts +24 -0
  123. package/dist/sandbox/types.d.ts +24 -0
  124. package/dist/sandbox/vercel.cjs +1 -0
  125. package/dist/sandbox/vercel.cjs.map +1 -1
  126. package/dist/sandbox/vercel.d.cts +1 -0
  127. package/dist/sandbox/vercel.d.mts +1 -0
  128. package/dist/sandbox/vercel.d.ts +1 -0
  129. package/package.json +1 -1
@@ -0,0 +1,13 @@
1
+ import type { AttemptResourceRegistry } from "../types.js";
2
+ export declare class ManagedAttemptResources implements AttemptResourceRegistry {
3
+ private readonly entries;
4
+ private closing;
5
+ private releaseReceipt?;
6
+ acquire<T>(acquire: () => Promise<T>, lifecycle: {
7
+ shutdown: (resource: T, signal: AbortSignal) => Promise<void>;
8
+ release: (resource: T, signal: AbortSignal) => Promise<void>;
9
+ }): Promise<T>;
10
+ shutdownAll(signal: AbortSignal): Promise<void>;
11
+ releaseAll(signal: AbortSignal): Promise<void>;
12
+ private releaseEntries;
13
+ }
@@ -0,0 +1,6 @@
1
+ import { createRequire as __niceevalCreateRequire } from "node:module";
2
+ const __niceevalRequire = __niceevalCreateRequire(import.meta.url);
3
+ const __niceevalCanonical = __niceevalRequire("./attempt-resources.cjs");
4
+ const __niceevalExport0 = __niceevalCanonical["ManagedAttemptResources"];
5
+ export { __niceevalExport0 as ManagedAttemptResources };
6
+ //# sourceMappingURL=attempt-resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attempt-resources.js","sources":[],"names":[],"mappings":""}
@@ -15,6 +15,8 @@ const registry_ts_1 = require("../sandbox/registry.cjs");
15
15
  const paths_ts_1 = require("../sandbox/paths.cjs");
16
16
  const request_executor_ts_1 = require("../sandbox/request-executor.cjs");
17
17
  const cleanup_timeout_ts_1 = require("./cleanup-timeout.cjs");
18
+ const attempt_resources_ts_1 = require("./attempt-resources.cjs");
19
+ const attempt_resources_ts_2 = require("../context/attempt-resources.cjs");
18
20
  const timeout_ts_1 = require("./timeout.cjs");
19
21
  const deadline_ts_1 = require("../sandbox/deadline.cjs");
20
22
  const failure_class_ts_1 = require("../shared/failure-class.cjs");
@@ -83,6 +85,15 @@ function runAttemptEffect(a, opts, sandboxSem, { buildLocators, runTiming, paren
83
85
  // an internal capability until the Record producer seals its own Attachments.
84
86
  const sourceRegistry = (0, source_loc_ts_1.createSourceRegistry)(process.cwd());
85
87
  const sourceCapture = (0, source_producer_ts_1.createRunnerAttemptSourceCapture)(sourceRegistry);
88
+ const attemptResources = new attempt_resources_ts_1.ManagedAttemptResources();
89
+ let attemptResourceReleaseFailureReported = false;
90
+ const reportAttemptResourceReleaseFailure = (error) => {
91
+ if (attemptResourceReleaseFailureReported)
92
+ return;
93
+ attemptResourceReleaseFailureReported = true;
94
+ declareFailure("agent.teardown", error);
95
+ diagnostics.push(teardownDiagnostic("agent.teardown", error));
96
+ };
86
97
  const base = {
87
98
  id: evalDef.id,
88
99
  description: evalDef.description,
@@ -767,6 +778,13 @@ function runAttemptEffect(a, opts, sandboxSem, { buildLocators, runTiming, paren
767
778
  .catch(() => { });
768
779
  }));
769
780
  }
781
+ // Cross-send adapter processes belong to the Attempt Scope, not to the
782
+ // Promise-shaped body. On timeout the bridge is intentionally sealed
783
+ // before that Promise's finally continuation can submit more work, so a
784
+ // scope finalizer must remain the unconditional release owner.
785
+ yield* effect_1.Effect.addFinalizer(() => (0, cleanup_timeout_ts_1.cleanupCallback)((cleanupSignal) => attemptResources.releaseAll(cleanupSignal)).pipe(effect_1.Effect.catchAll((error) => effect_1.Effect.sync(() => {
786
+ reportAttemptResourceReleaseFailure(error);
787
+ }))));
770
788
  // The legacy setup/diff body remains Promise-shaped, while OTLP waits,
771
789
  // author execution, and sealing run in this Attempt's Effect scope. No
772
790
  // nested runtime is introduced.
@@ -797,6 +815,8 @@ function runAttemptEffect(a, opts, sandboxSem, { buildLocators, runTiming, paren
797
815
  declareFailure,
798
816
  isDeadlineTimedOut: () => timedOut,
799
817
  layerCleanups,
818
+ attemptResources,
819
+ reportAttemptResourceReleaseFailure,
800
820
  registerEvidence: (getEvents, getUsage, getRetryAttempts) => {
801
821
  liveEvents = getEvents;
802
822
  liveUsage = getUsage;
@@ -1210,8 +1230,9 @@ async function runAttemptBody(a, config, t0, base, res, parentSignal) {
1210
1230
  const sandbox = usesSandbox
1211
1231
  ? withCommandTiming(rawSandbox, recorder, getPhase, commands, sensitiveValues, res.deadlineAt, observabilityRuntime, signal)
1212
1232
  : rawSandbox;
1233
+ const { attemptResources, reportAttemptResourceReleaseFailure } = res;
1213
1234
  // Direct Agent 只拿基础 ctx;Sandbox Agent 才拿带真实 Sandbox 的扩展 ctx。
1214
- const attemptCtx = {
1235
+ const attemptCtx = (0, attempt_resources_ts_2.bindAttemptResources)({
1215
1236
  signal,
1216
1237
  evalId: evalDef.id,
1217
1238
  attempt: { id: evalDef.id, index: attempt },
@@ -1229,8 +1250,8 @@ async function runAttemptBody(a, config, t0, base, res, parentSignal) {
1229
1250
  diagnostic: feedback.diagnostic,
1230
1251
  // log 是 progress({ message }) 的别名,不是第二条通道(见 AgentContext.log 注释)。
1231
1252
  log,
1232
- };
1233
- const sandboxAttemptCtx = { ...attemptCtx, sandbox };
1253
+ }, attemptResources);
1254
+ const sandboxAttemptCtx = (0, attempt_resources_ts_2.bindAttemptResources)({ ...attemptCtx, sandbox }, attemptResources);
1234
1255
  const commandTarget = (0, operations_ts_1.createSandboxCommandTarget)(sandbox);
1235
1256
  /** agent.setup 时点已走到(未声明 setup 也置位)——agent.teardown 的触发条件(成对触发规则)。 */
1236
1257
  let agentSetupReached = false;
@@ -1428,6 +1449,7 @@ async function runAttemptBody(a, config, t0, base, res, parentSignal) {
1428
1449
  // 走的生命周期链是同一个函数,两条链的决议序各自单源在 send-failures.ts / failure-class.ts。
1429
1450
  experimentClassifier: run.classifyFailure,
1430
1451
  sourceRegistry,
1452
+ resources: attemptResources,
1431
1453
  nextSourceOrder: sourceCapture.nextSourceOrder,
1432
1454
  // Pass / Score share the same Assert-first entry runtime. Their
1433
1455
  // independent folds are both derived only after this Attempt seals.
@@ -1847,6 +1869,18 @@ async function runAttemptBody(a, config, t0, base, res, parentSignal) {
1847
1869
  })
1848
1870
  .catch(() => { });
1849
1871
  }
1872
+ try {
1873
+ await assertFirst.requestEffect((0, cleanup_timeout_ts_1.cleanupCallback)((cleanupSignal) => attemptResources.releaseAll(cleanupSignal)));
1874
+ }
1875
+ catch (error) {
1876
+ // An interrupted body can resume its Promise finally only after the
1877
+ // Effect bridge has closed. The Scope finalizer above still performs the
1878
+ // release; this named closure is therefore lifecycle control, not a
1879
+ // second teardown failure.
1880
+ if (!(error instanceof api_ts_1.AssertionAuthoringClosedError && error.reason === "attempt-interrupted")) {
1881
+ reportAttemptResourceReleaseFailure(error);
1882
+ }
1883
+ }
1850
1884
  for (const lifecycle of evalPluginLifecycles.slice(0, activatedEvalPlugins).reverse()) {
1851
1885
  if (lifecycle.teardown === undefined)
1852
1886
  continue;