bitfab 0.62.3 → 0.62.5

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 (35) hide show
  1. package/cloudReplay.py +1065 -0
  2. package/dist/{chunk-E2QXILJI.js → chunk-COFCJXSZ.js} +6 -3
  3. package/dist/{chunk-E2QXILJI.js.map → chunk-COFCJXSZ.js.map} +1 -1
  4. package/dist/{chunk-BPOAXWVS.js → chunk-SDEDJXKM.js} +78 -6
  5. package/dist/chunk-SDEDJXKM.js.map +1 -0
  6. package/dist/{chunk-YKLSCOBE.js → chunk-SPGTIHTC.js} +21 -3
  7. package/dist/chunk-SPGTIHTC.js.map +1 -0
  8. package/dist/{chunk-DRRJRCVG.js → chunk-UUB5LHWU.js} +6 -3
  9. package/dist/{chunk-DRRJRCVG.js.map → chunk-UUB5LHWU.js.map} +1 -1
  10. package/dist/{chunk-T6O3MFM4.js → chunk-XADZNIOO.js} +4 -3
  11. package/dist/chunk-XADZNIOO.js.map +1 -0
  12. package/dist/{http-SWK5U3S4.js → http-LM5MZIOW.js} +2 -2
  13. package/dist/{http-GHK5JKGG.js → http-TVY52JJZ.js} +2 -2
  14. package/dist/index.cjs +80 -3
  15. package/dist/index.cjs.map +1 -1
  16. package/dist/index.d.cts +113 -3
  17. package/dist/index.d.ts +113 -3
  18. package/dist/index.js +5 -3
  19. package/dist/node.cjs +80 -3
  20. package/dist/node.cjs.map +1 -1
  21. package/dist/node.d.cts +1 -1
  22. package/dist/node.d.ts +1 -1
  23. package/dist/node.js +5 -3
  24. package/dist/node.js.map +1 -1
  25. package/dist/{replay-BN4FM6MX.js → replay-SWPDIBQG.js} +3 -3
  26. package/dist/replayCli.js +8 -23
  27. package/dist/replayCli.js.map +1 -1
  28. package/dist/seedCli.js +2 -2
  29. package/package.json +3 -2
  30. package/dist/chunk-BPOAXWVS.js.map +0 -1
  31. package/dist/chunk-T6O3MFM4.js.map +0 -1
  32. package/dist/chunk-YKLSCOBE.js.map +0 -1
  33. /package/dist/{http-GHK5JKGG.js.map → http-LM5MZIOW.js.map} +0 -0
  34. /package/dist/{http-SWK5U3S4.js.map → http-TVY52JJZ.js.map} +0 -0
  35. /package/dist/{replay-BN4FM6MX.js.map → replay-SWPDIBQG.js.map} +0 -0
package/dist/node.d.cts CHANGED
@@ -1 +1 @@
1
- export { ActiveSpanContext, AdaptContext, AdaptInputsFn, AddDatasetGradersResult, AddDatasetTracesResult, AllowedEnvVars, ApprovalFields, ApprovalState, Approver, ArchiveAssertionsParams, AssertionCategoriesClient, AssertionCategory, AssertionCategorySummary, AssertionEvidenceParameter, AssertionGeneration, AssertionGenerationError, AssertionGenerationStatus, AssertionGenerationTimeoutError, AssertionLabelEvidence, AssertionVerdict, Assignee, BITFAB_PROGRESS_PREFIX, BamlExecutionResult, Bitfab, BitfabClaudeAgentHandler, BitfabConfig, BitfabError, BitfabFunction, BitfabLangChainCallbackHandler, BitfabLangChainCallbackHandler as BitfabLangGraphCallbackHandler, BitfabLangGraphIntegration, BitfabLanguageModelMiddleware, BitfabOpenAIAgentHandler, BitfabOpenAITracingProcessor, BitfabRivetIntegration, BitfabVercelAiHandler, CaptureSurface, CaptureWhen, CapturedSpan, CodeChangeFile, CommitRef, CurrentSpan, CurrentTrace, DEFAULT_SERVICE_URL, Dataset, DatasetGraderRef, DatasetTraceIds, DatasetsClient, DbBranchOptions, DbBranchReplayError, DbBranchTimings, DbSnapshotConfig, DbSnapshotProvider, DbSnapshotRef, DetachedTrace, GenerateAssertionsOptions, GetGraderLabelsParams, GraderLabel, GraderLabelOutcome, GraderLabelSource, GraderLabelUpdate, GraderRerun, GraderRerunError, GraderRerunProgress, GraderRerunResult, GraderRerunStatus, GraderRerunTimeoutError, GradersClient, HttpClient, HumanLabelOutcome, HumanLabelUpdate, Justification, JustificationSpan, LabelAction, LabelConfidence, LabelOutcome, LabelSource, LabelStatus, LabelTarget, LabelUpdate, LabelsClient, LangGraphIntegrationOptions, ListDatasetsParams, MixedTracingError, MockOverride, MockOverrideCtx, MockOverrideInput, MockOverrideResolver, MockStrategy, MockValue, NO_MOCK_OVERRIDE, NodeMatcher, NodeMethodDecorator, NodeOptions, OrganizationMember, OrganizationMembersClient, ProviderDefinition, RemoveDatasetGradersResult, RemoveDatasetTracesResult, ReplayBranch, ReplayError, ReplayExperiment, ReplayInterrupt, ReplayInterruptSignal, ReplayItem, ReplayItemFinishProgress, ReplayItemStartProgress, ReplayNodeIdentity, ReplayOptions, ReplayOptionsFactory, ReplayProgress, ReplayProgressItem, ReplayRegistration, ReplayRegistry, ReplayRegistryContext, ReplayRegistryOptions, ReplayResult, RerunGradersOptions, RerunGradersResult, ReseedOptions, ReseedRegistryResult, ReseedResult, RivetContextLike, RivetEffectType, RivetIntegrationOptions, SUPPORTED_PROVIDERS, SaveAssertion, SaveAssertionCategoryParams, SaveAssertionsAllParams, SaveAssertionsParams, SaveDatasetParams, SaveDatasetResult, SeedCase, SeedCaseOptions, SeedResult, SeedRunOptions, SelectiveReplayDecision, SelectiveReplayOptions, SelectiveReplayReport, SpanLookup, SpanMethodDecorator, SpanMethodDecoratorContext, SpanNodeMeta, SpanOccurrence, SpanOptions, SpanType, TokenUsage, TraceAssertion, TraceAssertionSource, TraceAssertionsResult, TraceAssertionsUpdate, TraceIngestionType, TraceLabels, TraceResponse, TraceSearchFilters, TraceSearchParams, TraceSearchResult, TraceTarget, TraceTargetOccurrence, TracesClient, TracingProcessor, VercelCallParams, VercelGenerateResult, VercelStreamResult, WrapBAMLOptions, WrappedBamlFn, __version__, defineReplayRegistry, finalizers, flushTraces, getCurrentReplayBranch, getCurrentSpan, getCurrentTrace, reportReplayProgress, reseedFromRegistry, seedFromRegistry, serializeReplayResult } from './index.cjs';
1
+ export { ActiveSpanContext, AdaptContext, AdaptInputsFn, AddDatasetGradersResult, AddDatasetTracesResult, AllowedEnvVars, ApprovalFields, ApprovalState, Approver, ArchiveAssertionsParams, AssertionCategoriesClient, AssertionCategory, AssertionCategorySummary, AssertionEvidenceParameter, AssertionGeneration, AssertionGenerationError, AssertionGenerationStatus, AssertionGenerationTimeoutError, AssertionLabelEvidence, AssertionVerdict, Assignee, BITFAB_PROGRESS_PREFIX, BamlExecutionResult, Bitfab, BitfabClaudeAgentHandler, BitfabConfig, BitfabError, BitfabFunction, BitfabLangChainCallbackHandler, BitfabLangChainCallbackHandler as BitfabLangGraphCallbackHandler, BitfabLangGraphIntegration, BitfabLanguageModelMiddleware, BitfabOpenAIAgentHandler, BitfabOpenAITracingProcessor, BitfabRivetIntegration, BitfabVercelAiHandler, CaptureSurface, CaptureWhen, CapturedSpan, CodeChangeFile, CommitRef, CurrentSpan, CurrentTrace, DEFAULT_SERVICE_URL, Dataset, DatasetGraderRef, DatasetTraceIds, DatasetsClient, DbBranchOptions, DbBranchReplayError, DbBranchTimings, DbSnapshotConfig, DbSnapshotProvider, DbSnapshotRef, DetachedTrace, Experiment, ExperimentCategoryTally, ExperimentCodeChangeTotals, ExperimentJitter, ExperimentPage, ExperimentRollup, ExperimentRollupResult, ExperimentRunBy, ExperimentStatus, ExperimentTally, ExperimentTotals, ExperimentsClient, GenerateAssertionsOptions, GetGraderLabelsParams, GraderLabel, GraderLabelOutcome, GraderLabelSource, GraderLabelUpdate, GraderRerun, GraderRerunError, GraderRerunProgress, GraderRerunResult, GraderRerunStatus, GraderRerunTimeoutError, GradersClient, HttpClient, HumanLabelOutcome, HumanLabelUpdate, Justification, JustificationSpan, LabelAction, LabelConfidence, LabelOutcome, LabelSource, LabelStatus, LabelTarget, LabelUpdate, LabelsClient, LangGraphIntegrationOptions, ListDatasetsParams, ListExperimentsParams, MixedTracingError, MockOverride, MockOverrideCtx, MockOverrideInput, MockOverrideResolver, MockStrategy, MockValue, NO_MOCK_OVERRIDE, NodeMatcher, NodeMethodDecorator, NodeOptions, OrganizationMember, OrganizationMembersClient, ProviderDefinition, RemoveDatasetGradersResult, RemoveDatasetTracesResult, ReplayBranch, ReplayError, ReplayExperiment, ReplayInterrupt, ReplayInterruptSignal, ReplayItem, ReplayItemFinishProgress, ReplayItemStartProgress, ReplayNodeIdentity, ReplayOptions, ReplayOptionsFactory, ReplayProgress, ReplayProgressItem, ReplayRegistration, ReplayRegistry, ReplayRegistryContext, ReplayRegistryOptions, ReplayResult, RerunGradersOptions, RerunGradersResult, ReseedOptions, ReseedRegistryResult, ReseedResult, RivetContextLike, RivetEffectType, RivetIntegrationOptions, SUPPORTED_PROVIDERS, SaveAssertion, SaveAssertionCategoryParams, SaveAssertionsAllParams, SaveAssertionsParams, SaveDatasetParams, SaveDatasetResult, SeedCase, SeedCaseOptions, SeedResult, SeedRunOptions, SelectiveReplayDecision, SelectiveReplayOptions, SelectiveReplayReport, SpanLookup, SpanMethodDecorator, SpanMethodDecoratorContext, SpanNodeMeta, SpanOccurrence, SpanOptions, SpanType, TokenUsage, TraceAssertion, TraceAssertionSource, TraceAssertionsResult, TraceAssertionsUpdate, TraceIngestionType, TraceLabels, TraceResponse, TraceSearchFilters, TraceSearchParams, TraceSearchResult, TraceTarget, TraceTargetOccurrence, TracesClient, TracingProcessor, VercelCallParams, VercelGenerateResult, VercelStreamResult, WrapBAMLOptions, WrappedBamlFn, __version__, defineReplayRegistry, finalizers, flushTraces, getCurrentReplayBranch, getCurrentSpan, getCurrentTrace, reportReplayProgress, reseedFromRegistry, seedFromRegistry, serializeReplayResult } from './index.cjs';
package/dist/node.d.ts CHANGED
@@ -1 +1 @@
1
- export { ActiveSpanContext, AdaptContext, AdaptInputsFn, AddDatasetGradersResult, AddDatasetTracesResult, AllowedEnvVars, ApprovalFields, ApprovalState, Approver, ArchiveAssertionsParams, AssertionCategoriesClient, AssertionCategory, AssertionCategorySummary, AssertionEvidenceParameter, AssertionGeneration, AssertionGenerationError, AssertionGenerationStatus, AssertionGenerationTimeoutError, AssertionLabelEvidence, AssertionVerdict, Assignee, BITFAB_PROGRESS_PREFIX, BamlExecutionResult, Bitfab, BitfabClaudeAgentHandler, BitfabConfig, BitfabError, BitfabFunction, BitfabLangChainCallbackHandler, BitfabLangChainCallbackHandler as BitfabLangGraphCallbackHandler, BitfabLangGraphIntegration, BitfabLanguageModelMiddleware, BitfabOpenAIAgentHandler, BitfabOpenAITracingProcessor, BitfabRivetIntegration, BitfabVercelAiHandler, CaptureSurface, CaptureWhen, CapturedSpan, CodeChangeFile, CommitRef, CurrentSpan, CurrentTrace, DEFAULT_SERVICE_URL, Dataset, DatasetGraderRef, DatasetTraceIds, DatasetsClient, DbBranchOptions, DbBranchReplayError, DbBranchTimings, DbSnapshotConfig, DbSnapshotProvider, DbSnapshotRef, DetachedTrace, GenerateAssertionsOptions, GetGraderLabelsParams, GraderLabel, GraderLabelOutcome, GraderLabelSource, GraderLabelUpdate, GraderRerun, GraderRerunError, GraderRerunProgress, GraderRerunResult, GraderRerunStatus, GraderRerunTimeoutError, GradersClient, HttpClient, HumanLabelOutcome, HumanLabelUpdate, Justification, JustificationSpan, LabelAction, LabelConfidence, LabelOutcome, LabelSource, LabelStatus, LabelTarget, LabelUpdate, LabelsClient, LangGraphIntegrationOptions, ListDatasetsParams, MixedTracingError, MockOverride, MockOverrideCtx, MockOverrideInput, MockOverrideResolver, MockStrategy, MockValue, NO_MOCK_OVERRIDE, NodeMatcher, NodeMethodDecorator, NodeOptions, OrganizationMember, OrganizationMembersClient, ProviderDefinition, RemoveDatasetGradersResult, RemoveDatasetTracesResult, ReplayBranch, ReplayError, ReplayExperiment, ReplayInterrupt, ReplayInterruptSignal, ReplayItem, ReplayItemFinishProgress, ReplayItemStartProgress, ReplayNodeIdentity, ReplayOptions, ReplayOptionsFactory, ReplayProgress, ReplayProgressItem, ReplayRegistration, ReplayRegistry, ReplayRegistryContext, ReplayRegistryOptions, ReplayResult, RerunGradersOptions, RerunGradersResult, ReseedOptions, ReseedRegistryResult, ReseedResult, RivetContextLike, RivetEffectType, RivetIntegrationOptions, SUPPORTED_PROVIDERS, SaveAssertion, SaveAssertionCategoryParams, SaveAssertionsAllParams, SaveAssertionsParams, SaveDatasetParams, SaveDatasetResult, SeedCase, SeedCaseOptions, SeedResult, SeedRunOptions, SelectiveReplayDecision, SelectiveReplayOptions, SelectiveReplayReport, SpanLookup, SpanMethodDecorator, SpanMethodDecoratorContext, SpanNodeMeta, SpanOccurrence, SpanOptions, SpanType, TokenUsage, TraceAssertion, TraceAssertionSource, TraceAssertionsResult, TraceAssertionsUpdate, TraceIngestionType, TraceLabels, TraceResponse, TraceSearchFilters, TraceSearchParams, TraceSearchResult, TraceTarget, TraceTargetOccurrence, TracesClient, TracingProcessor, VercelCallParams, VercelGenerateResult, VercelStreamResult, WrapBAMLOptions, WrappedBamlFn, __version__, defineReplayRegistry, finalizers, flushTraces, getCurrentReplayBranch, getCurrentSpan, getCurrentTrace, reportReplayProgress, reseedFromRegistry, seedFromRegistry, serializeReplayResult } from './index.js';
1
+ export { ActiveSpanContext, AdaptContext, AdaptInputsFn, AddDatasetGradersResult, AddDatasetTracesResult, AllowedEnvVars, ApprovalFields, ApprovalState, Approver, ArchiveAssertionsParams, AssertionCategoriesClient, AssertionCategory, AssertionCategorySummary, AssertionEvidenceParameter, AssertionGeneration, AssertionGenerationError, AssertionGenerationStatus, AssertionGenerationTimeoutError, AssertionLabelEvidence, AssertionVerdict, Assignee, BITFAB_PROGRESS_PREFIX, BamlExecutionResult, Bitfab, BitfabClaudeAgentHandler, BitfabConfig, BitfabError, BitfabFunction, BitfabLangChainCallbackHandler, BitfabLangChainCallbackHandler as BitfabLangGraphCallbackHandler, BitfabLangGraphIntegration, BitfabLanguageModelMiddleware, BitfabOpenAIAgentHandler, BitfabOpenAITracingProcessor, BitfabRivetIntegration, BitfabVercelAiHandler, CaptureSurface, CaptureWhen, CapturedSpan, CodeChangeFile, CommitRef, CurrentSpan, CurrentTrace, DEFAULT_SERVICE_URL, Dataset, DatasetGraderRef, DatasetTraceIds, DatasetsClient, DbBranchOptions, DbBranchReplayError, DbBranchTimings, DbSnapshotConfig, DbSnapshotProvider, DbSnapshotRef, DetachedTrace, Experiment, ExperimentCategoryTally, ExperimentCodeChangeTotals, ExperimentJitter, ExperimentPage, ExperimentRollup, ExperimentRollupResult, ExperimentRunBy, ExperimentStatus, ExperimentTally, ExperimentTotals, ExperimentsClient, GenerateAssertionsOptions, GetGraderLabelsParams, GraderLabel, GraderLabelOutcome, GraderLabelSource, GraderLabelUpdate, GraderRerun, GraderRerunError, GraderRerunProgress, GraderRerunResult, GraderRerunStatus, GraderRerunTimeoutError, GradersClient, HttpClient, HumanLabelOutcome, HumanLabelUpdate, Justification, JustificationSpan, LabelAction, LabelConfidence, LabelOutcome, LabelSource, LabelStatus, LabelTarget, LabelUpdate, LabelsClient, LangGraphIntegrationOptions, ListDatasetsParams, ListExperimentsParams, MixedTracingError, MockOverride, MockOverrideCtx, MockOverrideInput, MockOverrideResolver, MockStrategy, MockValue, NO_MOCK_OVERRIDE, NodeMatcher, NodeMethodDecorator, NodeOptions, OrganizationMember, OrganizationMembersClient, ProviderDefinition, RemoveDatasetGradersResult, RemoveDatasetTracesResult, ReplayBranch, ReplayError, ReplayExperiment, ReplayInterrupt, ReplayInterruptSignal, ReplayItem, ReplayItemFinishProgress, ReplayItemStartProgress, ReplayNodeIdentity, ReplayOptions, ReplayOptionsFactory, ReplayProgress, ReplayProgressItem, ReplayRegistration, ReplayRegistry, ReplayRegistryContext, ReplayRegistryOptions, ReplayResult, RerunGradersOptions, RerunGradersResult, ReseedOptions, ReseedRegistryResult, ReseedResult, RivetContextLike, RivetEffectType, RivetIntegrationOptions, SUPPORTED_PROVIDERS, SaveAssertion, SaveAssertionCategoryParams, SaveAssertionsAllParams, SaveAssertionsParams, SaveDatasetParams, SaveDatasetResult, SeedCase, SeedCaseOptions, SeedResult, SeedRunOptions, SelectiveReplayDecision, SelectiveReplayOptions, SelectiveReplayReport, SpanLookup, SpanMethodDecorator, SpanMethodDecoratorContext, SpanNodeMeta, SpanOccurrence, SpanOptions, SpanType, TokenUsage, TraceAssertion, TraceAssertionSource, TraceAssertionsResult, TraceAssertionsUpdate, TraceIngestionType, TraceLabels, TraceResponse, TraceSearchFilters, TraceSearchParams, TraceSearchResult, TraceTarget, TraceTargetOccurrence, TracesClient, TracingProcessor, VercelCallParams, VercelGenerateResult, VercelStreamResult, WrapBAMLOptions, WrappedBamlFn, __version__, defineReplayRegistry, finalizers, flushTraces, getCurrentReplayBranch, getCurrentSpan, getCurrentTrace, reportReplayProgress, reseedFromRegistry, seedFromRegistry, serializeReplayResult } from './index.js';
package/dist/node.js CHANGED
@@ -21,6 +21,7 @@ import {
21
21
  BitfabRivetIntegration,
22
22
  BitfabVercelAiHandler,
23
23
  DatasetsClient,
24
+ ExperimentsClient,
24
25
  GraderRerunError,
25
26
  GraderRerunTimeoutError,
26
27
  GradersClient,
@@ -35,7 +36,7 @@ import {
35
36
  getCurrentTrace,
36
37
  reseedFromRegistry,
37
38
  seedFromRegistry
38
- } from "./chunk-BPOAXWVS.js";
39
+ } from "./chunk-SDEDJXKM.js";
39
40
  import "./chunk-K4XCWQBC.js";
40
41
  import {
41
42
  BITFAB_PROGRESS_PREFIX,
@@ -44,7 +45,7 @@ import {
44
45
  ReplayError,
45
46
  reportReplayProgress,
46
47
  serializeReplayResult
47
- } from "./chunk-T6O3MFM4.js";
48
+ } from "./chunk-XADZNIOO.js";
48
49
  import {
49
50
  BitfabError,
50
51
  DEFAULT_SERVICE_URL,
@@ -52,7 +53,7 @@ import {
52
53
  MixedTracingError,
53
54
  __version__,
54
55
  flushTraces
55
- } from "./chunk-DRRJRCVG.js";
56
+ } from "./chunk-UUB5LHWU.js";
56
57
  import {
57
58
  assertAsyncStorageRegistered,
58
59
  registerAsyncLocalStorageClass
@@ -85,6 +86,7 @@ export {
85
86
  DEFAULT_SERVICE_URL,
86
87
  DatasetsClient,
87
88
  DbBranchReplayError,
89
+ ExperimentsClient,
88
90
  GraderRerunError,
89
91
  GraderRerunTimeoutError,
90
92
  GradersClient,
package/dist/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/asyncStorageNode.ts","../src/node.ts"],"sourcesContent":["/**\n * Synchronous AsyncLocalStorage registration for Node.js.\n *\n * This module is a side-effect-only import: it registers the Node.js\n * AsyncLocalStorage class into the shared registry so span nesting\n * works immediately - no async gap, no microtask delay.\n *\n * It is imported by `node.ts` (the Node.js-specific entry point) as\n * the FIRST import, before `index.ts` or `client.ts` are evaluated.\n *\n * This file must ONLY be imported in Node.js environments (not browsers).\n * It uses a static `import` of `node:async_hooks`, which will fail in\n * browser bundlers. The `node.ts` entry point is conditionally selected\n * via package.json `exports` conditions, so browsers never see this file.\n */\n\nimport { AsyncLocalStorage } from \"node:async_hooks\"\nimport type { AsyncLocalStorageLike } from \"./asyncStorage.js\"\nimport { registerAsyncLocalStorageClass } from \"./asyncStorage.js\"\n\nregisterAsyncLocalStorageClass(\n AsyncLocalStorage as unknown as new () => AsyncLocalStorageLike<unknown>,\n)\n","/**\n * Node.js-specific entry point for the Bitfab SDK.\n *\n * Selected automatically via package.json `exports` conditions when the\n * consumer's runtime or bundler supports the \"node\" condition (Node.js,\n * most server-side bundlers).\n *\n * This entry point differs from the default (`index.ts`) in one way:\n * it synchronously registers Node.js's `AsyncLocalStorage` before any\n * other SDK code evaluates. This eliminates the async initialization\n * gap that the default entry point has (where the first span might\n * execute before the dynamic import of `node:async_hooks` resolves).\n *\n * The default entry point (`index.ts`) is used for browsers and other\n * environments where `node:async_hooks` is unavailable. There, span\n * nesting degrades gracefully to a shared stack (correct for sequential\n * async, but not for concurrent Promise.all patterns).\n */\n\n// ⚠️ IMPORT ORDER MATTERS\n// asyncStorageNode MUST be imported before index.js.\n// It registers the AsyncLocalStorage class synchronously during module\n// evaluation. index.js (via client.ts) reads from that registration at\n// span creation time. If this import is moved after index.js or removed,\n// span nesting silently degrades to the browser fallback (flat spans).\nimport \"./asyncStorageNode.js\"\n\nexport * from \"./index.js\"\n\n// Verify registration succeeded. This turns a silent degradation into a\n// loud error if someone reorders the imports above or if asyncStorageNode.ts\n// fails to register for any reason. Only runs in the Node.js entry point\n// where we know node:async_hooks must be available.\nimport { assertAsyncStorageRegistered } from \"./asyncStorage.js\"\n\nassertAsyncStorageRegistered()\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,SAAS,yBAAyB;AAIlC;AAAA,EACE;AACF;;;ACaA,6BAA6B;","names":[]}
1
+ {"version":3,"sources":["../src/asyncStorageNode.ts","../src/node.ts"],"sourcesContent":["/**\n * Synchronous AsyncLocalStorage registration for Node.js.\n *\n * This module is a side-effect-only import: it registers the Node.js\n * AsyncLocalStorage class into the shared registry so span nesting\n * works immediately - no async gap, no microtask delay.\n *\n * It is imported by `node.ts` (the Node.js-specific entry point) as\n * the FIRST import, before `index.ts` or `client.ts` are evaluated.\n *\n * This file must ONLY be imported in Node.js environments (not browsers).\n * It uses a static `import` of `node:async_hooks`, which will fail in\n * browser bundlers. The `node.ts` entry point is conditionally selected\n * via package.json `exports` conditions, so browsers never see this file.\n */\n\nimport { AsyncLocalStorage } from \"node:async_hooks\"\nimport type { AsyncLocalStorageLike } from \"./asyncStorage.js\"\nimport { registerAsyncLocalStorageClass } from \"./asyncStorage.js\"\n\nregisterAsyncLocalStorageClass(\n AsyncLocalStorage as unknown as new () => AsyncLocalStorageLike<unknown>,\n)\n","/**\n * Node.js-specific entry point for the Bitfab SDK.\n *\n * Selected automatically via package.json `exports` conditions when the\n * consumer's runtime or bundler supports the \"node\" condition (Node.js,\n * most server-side bundlers).\n *\n * This entry point differs from the default (`index.ts`) in one way:\n * it synchronously registers Node.js's `AsyncLocalStorage` before any\n * other SDK code evaluates. This eliminates the async initialization\n * gap that the default entry point has (where the first span might\n * execute before the dynamic import of `node:async_hooks` resolves).\n *\n * The default entry point (`index.ts`) is used for browsers and other\n * environments where `node:async_hooks` is unavailable. There, span\n * nesting degrades gracefully to a shared stack (correct for sequential\n * async, but not for concurrent Promise.all patterns).\n */\n\n// ⚠️ IMPORT ORDER MATTERS\n// asyncStorageNode MUST be imported before index.js.\n// It registers the AsyncLocalStorage class synchronously during module\n// evaluation. index.js (via client.ts) reads from that registration at\n// span creation time. If this import is moved after index.js or removed,\n// span nesting silently degrades to the browser fallback (flat spans).\nimport \"./asyncStorageNode.js\"\n\nexport * from \"./index.js\"\n\n// Verify registration succeeded. This turns a silent degradation into a\n// loud error if someone reorders the imports above or if asyncStorageNode.ts\n// fails to register for any reason. Only runs in the Node.js entry point\n// where we know node:async_hooks must be available.\nimport { assertAsyncStorageRegistered } from \"./asyncStorage.js\"\n\nassertAsyncStorageRegistered()\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,SAAS,yBAAyB;AAIlC;AAAA,EACE;AACF;;;ACaA,6BAA6B;","names":[]}
@@ -8,8 +8,8 @@ import {
8
8
  serializeReplayResult,
9
9
  sleepForReplayPersistence,
10
10
  waitForReplayPersistence
11
- } from "./chunk-T6O3MFM4.js";
12
- import "./chunk-DRRJRCVG.js";
11
+ } from "./chunk-XADZNIOO.js";
12
+ import "./chunk-UUB5LHWU.js";
13
13
  import "./chunk-BAOIRE5T.js";
14
14
  export {
15
15
  BITFAB_PROGRESS_PREFIX,
@@ -22,4 +22,4 @@ export {
22
22
  sleepForReplayPersistence,
23
23
  waitForReplayPersistence
24
24
  };
25
- //# sourceMappingURL=replay-BN4FM6MX.js.map
25
+ //# sourceMappingURL=replay-SWPDIBQG.js.map
package/dist/replayCli.js CHANGED
@@ -7,44 +7,29 @@ import {
7
7
  runRegistryMain,
8
8
  runReplayCli,
9
9
  runSeedCli
10
- } from "./chunk-YKLSCOBE.js";
10
+ } from "./chunk-SPGTIHTC.js";
11
11
  import {
12
12
  BitfabError
13
- } from "./chunk-E2QXILJI.js";
13
+ } from "./chunk-COFCJXSZ.js";
14
14
 
15
15
  // src/cloudReplayCli.ts
16
- var CLOUD_REPLAY_HELP = "Direct GitHub replay: --cloud <pipeline> --trace-ids <UUIDs> [--registry <path>] [--max-concurrency 1..32] [--cloud-include <file>] [--cloud-dry-run] [--cloud-detach] [--cloud-request-id <UUID>]. Lifecycle: --cloud-status|--cloud-watch|--cloud-cancel|--cloud-cleanup <UUID>. Requires git, gh auth login, Python 3.10+, and bitfab:setup cloud.";
16
+ var CLOUD_REPLAY_HELP = "Direct GitHub replay: --cloud <pipeline> --trace-ids <UUIDs> [--registry <path>] [--max-concurrency 1..32] [--cloud-include <file>] [--cloud-dry-run] [--cloud-detach] [--cloud-request-id <UUID>]. Lifecycle: --cloud-status|--cloud-watch|--cloud-cancel|--cloud-cleanup <UUID>. Setup: --cloud-init --config <file>, --cloud-secrets --env-file <file> [<NAME>...]. Requires git, gh auth login, Python 3.10+, and bitfab:setup cloud.";
17
17
  function isCloudReplayCommand(argv) {
18
18
  return argv.some((arg) => arg === "--cloud" || arg.startsWith("--cloud-"));
19
19
  }
20
- async function runCloudReplayCommand(argv, io = {}) {
20
+ async function runCloudReplayCommand(argv, io = {}, helper) {
21
21
  if (argv.includes("--help") || argv.includes("-h")) {
22
22
  ;
23
23
  (io.stdout ?? console.log)(CLOUD_REPLAY_HELP);
24
24
  return {};
25
25
  }
26
- const [{ execFileSync, spawn }, { realpath }, path] = await Promise.all([
26
+ const [{ spawn }, { fileURLToPath }] = await Promise.all([
27
27
  import("child_process"),
28
- import("fs/promises"),
29
- import("path")
28
+ import("url")
30
29
  ]);
31
- const root = execFileSync("git", ["rev-parse", "--show-toplevel"], {
32
- encoding: "utf8",
33
- timeout: 15e3,
34
- stdio: ["ignore", "pipe", "pipe"]
35
- }).trim();
36
- const helper = path.join(root, ".bitfab", "cloudReplay.py");
37
- try {
38
- if (await realpath(helper) !== path.join(await realpath(root), ".bitfab", "cloudReplay.py")) {
39
- throw new Error("Symlinked helper");
40
- }
41
- } catch {
42
- throw new BitfabError(
43
- "Run bitfab:setup cloud first. Expected .bitfab/cloudReplay.py inside this repository."
44
- );
45
- }
30
+ const script = helper ?? fileURLToPath(new URL("../cloudReplay.py", import.meta.url));
46
31
  const output = await new Promise((resolve, reject) => {
47
- const child = spawn("python3", [helper, ...argv], {
32
+ const child = spawn("python3", [script, ...argv], {
48
33
  stdio: ["ignore", "pipe", "pipe"]
49
34
  });
50
35
  let stdout = "";
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cloudReplayCli.ts","../src/replayCli.ts"],"sourcesContent":["import { BitfabError } from \"./errors.js\"\nimport type { ReplayCliIo } from \"./replayRegistry.js\"\n\nexport const CLOUD_REPLAY_HELP =\n \"Direct GitHub replay: --cloud <pipeline> --trace-ids <UUIDs> [--registry <path>] [--max-concurrency 1..32] [--cloud-include <file>] [--cloud-dry-run] [--cloud-detach] [--cloud-request-id <UUID>]. Lifecycle: --cloud-status|--cloud-watch|--cloud-cancel|--cloud-cleanup <UUID>. Requires git, gh auth login, Python 3.10+, and bitfab:setup cloud.\"\n\nexport function isCloudReplayCommand(argv: readonly string[]): boolean {\n return argv.some((arg) => arg === \"--cloud\" || arg.startsWith(\"--cloud-\"))\n}\n\nexport async function runCloudReplayCommand(\n argv: readonly string[],\n io: ReplayCliIo = {},\n): Promise<Record<string, unknown>> {\n if (argv.includes(\"--help\") || argv.includes(\"-h\")) {\n ;(io.stdout ?? console.log)(CLOUD_REPLAY_HELP)\n return {}\n }\n const [{ execFileSync, spawn }, { realpath }, path] = await Promise.all([\n import(\"node:child_process\"),\n import(\"node:fs/promises\"),\n import(\"node:path\"),\n ])\n const root = execFileSync(\"git\", [\"rev-parse\", \"--show-toplevel\"], {\n encoding: \"utf8\",\n timeout: 15_000,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n }).trim()\n const helper = path.join(root, \".bitfab\", \"cloudReplay.py\")\n try {\n if (\n (await realpath(helper)) !==\n path.join(await realpath(root), \".bitfab\", \"cloudReplay.py\")\n ) {\n throw new Error(\"Symlinked helper\")\n }\n } catch {\n throw new BitfabError(\n \"Run bitfab:setup cloud first. Expected .bitfab/cloudReplay.py inside this repository.\",\n )\n }\n const output = await new Promise<string>((resolve, reject) => {\n const child = spawn(\"python3\", [helper, ...argv], {\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n })\n let stdout = \"\"\n child.stdout.setEncoding(\"utf8\")\n child.stderr.setEncoding(\"utf8\")\n child.stdout.on(\"data\", (chunk: string) => {\n stdout += chunk\n })\n child.stderr.on(\"data\", (chunk: string) => {\n ;(io.stderr ?? ((text) => process.stderr.write(text)))(chunk)\n })\n child.on(\"error\", () =>\n reject(new BitfabError(\"Cloud replay requires Python 3.10+ on PATH\")),\n )\n child.on(\"close\", (code) => {\n if (code !== 0) {\n if (stdout.trim() !== \"\") {\n ;(io.stdout ?? console.log)(stdout.trim())\n }\n reject(\n new BitfabError(\n \"Cloud replay failed. See diagnostics; use the execution UUID to recover a dispatched job.\",\n ),\n )\n } else {\n resolve(stdout)\n }\n })\n })\n const result = JSON.parse(output) as Record<string, unknown>\n ;(io.stdout ?? console.log)(JSON.stringify(result, null, 2))\n return result\n}\n","#!/usr/bin/env node\n\nimport {\n CLOUD_REPLAY_HELP,\n isCloudReplayCommand,\n runCloudReplayCommand,\n} from \"./cloudReplayCli.js\"\nimport {\n importRegistry,\n parseRegistryCommandArgs,\n type RegistryImporter,\n resolveRegistry,\n runIfEntrypoint,\n runRegistryMain,\n} from \"./registryCommand.js\"\nimport type { ReplayResult } from \"./replay.js\"\nimport {\n type ReplayCliIo,\n type ReseedRegistryResult,\n runReplayCli,\n runSeedCli,\n type SeedResult,\n} from \"./replayRegistry.js\"\n\nconst USAGE = `Usage: bitfab-replay --registry <path> <pipeline> [options]\\n bitfab-replay --registry <path> <pipeline> --resume <experimentId>\\n bitfab-replay --registry <path> <pipeline> --seed <cases.jsonl> [--run]\\nRun bitfab-replay --registry <path> --help to list replay options.\\n${CLOUD_REPLAY_HELP}`\n\nexport async function runReplayCommand(\n argv: readonly string[],\n io: ReplayCliIo = {},\n importer: RegistryImporter = importRegistry,\n): Promise<\n | ReplayResult<unknown>\n | SeedResult\n | ReseedRegistryResult\n | Record<string, unknown>\n> {\n if (isCloudReplayCommand(argv)) {\n return runCloudReplayCommand(argv, io)\n }\n const { registryPath, commandArgs } = await parseRegistryCommandArgs(\n argv,\n USAGE,\n )\n const registry = resolveRegistry(await importer(registryPath), registryPath)\n if (commandArgs.includes(\"--seed\")) {\n return runSeedCli(registry, commandArgs, io)\n }\n return runReplayCli(registry, commandArgs, io, registryPath)\n}\n\nexport async function runReplayMain(\n argv: readonly string[],\n io: ReplayCliIo = {},\n): Promise<number> {\n return runRegistryMain(() => runReplayCommand(argv, io), io)\n}\n\nrunIfEntrypoint(import.meta.url, () => runReplayMain(process.argv.slice(2)))\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/cloudReplayCli.ts","../src/replayCli.ts"],"sourcesContent":["import { BitfabError } from \"./errors.js\"\nimport type { ReplayCliIo } from \"./replayRegistry.js\"\n\nexport const CLOUD_REPLAY_HELP =\n \"Direct GitHub replay: --cloud <pipeline> --trace-ids <UUIDs> [--registry <path>] [--max-concurrency 1..32] [--cloud-include <file>] [--cloud-dry-run] [--cloud-detach] [--cloud-request-id <UUID>]. Lifecycle: --cloud-status|--cloud-watch|--cloud-cancel|--cloud-cleanup <UUID>. Setup: --cloud-init --config <file>, --cloud-secrets --env-file <file> [<NAME>...]. Requires git, gh auth login, Python 3.10+, and bitfab:setup cloud.\"\n\nexport function isCloudReplayCommand(argv: readonly string[]): boolean {\n return argv.some((arg) => arg === \"--cloud\" || arg.startsWith(\"--cloud-\"))\n}\n\nexport async function runCloudReplayCommand(\n argv: readonly string[],\n io: ReplayCliIo = {},\n helper?: string,\n): Promise<Record<string, unknown>> {\n if (argv.includes(\"--help\") || argv.includes(\"-h\")) {\n ;(io.stdout ?? console.log)(CLOUD_REPLAY_HELP)\n return {}\n }\n const [{ spawn }, { fileURLToPath }] = await Promise.all([\n import(\"node:child_process\"),\n import(\"node:url\"),\n ])\n const script =\n helper ?? fileURLToPath(new URL(\"../cloudReplay.py\", import.meta.url))\n const output = await new Promise<string>((resolve, reject) => {\n const child = spawn(\"python3\", [script, ...argv], {\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n })\n let stdout = \"\"\n child.stdout.setEncoding(\"utf8\")\n child.stderr.setEncoding(\"utf8\")\n child.stdout.on(\"data\", (chunk: string) => {\n stdout += chunk\n })\n child.stderr.on(\"data\", (chunk: string) => {\n ;(io.stderr ?? ((text) => process.stderr.write(text)))(chunk)\n })\n child.on(\"error\", () =>\n reject(new BitfabError(\"Cloud replay requires Python 3.10+ on PATH\")),\n )\n child.on(\"close\", (code) => {\n if (code !== 0) {\n if (stdout.trim() !== \"\") {\n ;(io.stdout ?? console.log)(stdout.trim())\n }\n reject(\n new BitfabError(\n \"Cloud replay failed. See diagnostics; use the execution UUID to recover a dispatched job.\",\n ),\n )\n } else {\n resolve(stdout)\n }\n })\n })\n const result = JSON.parse(output) as Record<string, unknown>\n ;(io.stdout ?? console.log)(JSON.stringify(result, null, 2))\n return result\n}\n","#!/usr/bin/env node\n\nimport {\n CLOUD_REPLAY_HELP,\n isCloudReplayCommand,\n runCloudReplayCommand,\n} from \"./cloudReplayCli.js\"\nimport {\n importRegistry,\n parseRegistryCommandArgs,\n type RegistryImporter,\n resolveRegistry,\n runIfEntrypoint,\n runRegistryMain,\n} from \"./registryCommand.js\"\nimport type { ReplayResult } from \"./replay.js\"\nimport {\n type ReplayCliIo,\n type ReseedRegistryResult,\n runReplayCli,\n runSeedCli,\n type SeedResult,\n} from \"./replayRegistry.js\"\n\nconst USAGE = `Usage: bitfab-replay --registry <path> <pipeline> [options]\\n bitfab-replay --registry <path> <pipeline> --resume <experimentId>\\n bitfab-replay --registry <path> <pipeline> --seed <cases.jsonl> [--run]\\nRun bitfab-replay --registry <path> --help to list replay options.\\n${CLOUD_REPLAY_HELP}`\n\nexport async function runReplayCommand(\n argv: readonly string[],\n io: ReplayCliIo = {},\n importer: RegistryImporter = importRegistry,\n): Promise<\n | ReplayResult<unknown>\n | SeedResult\n | ReseedRegistryResult\n | Record<string, unknown>\n> {\n if (isCloudReplayCommand(argv)) {\n return runCloudReplayCommand(argv, io)\n }\n const { registryPath, commandArgs } = await parseRegistryCommandArgs(\n argv,\n USAGE,\n )\n const registry = resolveRegistry(await importer(registryPath), registryPath)\n if (commandArgs.includes(\"--seed\")) {\n return runSeedCli(registry, commandArgs, io)\n }\n return runReplayCli(registry, commandArgs, io, registryPath)\n}\n\nexport async function runReplayMain(\n argv: readonly string[],\n io: ReplayCliIo = {},\n): Promise<number> {\n return runRegistryMain(() => runReplayCommand(argv, io), io)\n}\n\nrunIfEntrypoint(import.meta.url, () => runReplayMain(process.argv.slice(2)))\n"],"mappings":";;;;;;;;;;;;;;;AAGO,IAAM,oBACX;AAEK,SAAS,qBAAqB,MAAkC;AACrE,SAAO,KAAK,KAAK,CAAC,QAAQ,QAAQ,aAAa,IAAI,WAAW,UAAU,CAAC;AAC3E;AAEA,eAAsB,sBACpB,MACA,KAAkB,CAAC,GACnB,QACkC;AAClC,MAAI,KAAK,SAAS,QAAQ,KAAK,KAAK,SAAS,IAAI,GAAG;AAClD;AAAC,KAAC,GAAG,UAAU,QAAQ,KAAK,iBAAiB;AAC7C,WAAO,CAAC;AAAA,EACV;AACA,QAAM,CAAC,EAAE,MAAM,GAAG,EAAE,cAAc,CAAC,IAAI,MAAM,QAAQ,IAAI;AAAA,IACvD,OAAO,eAAoB;AAAA,IAC3B,OAAO,KAAU;AAAA,EACnB,CAAC;AACD,QAAM,SACJ,UAAU,cAAc,IAAI,IAAI,qBAAqB,YAAY,GAAG,CAAC;AACvE,QAAM,SAAS,MAAM,IAAI,QAAgB,CAAC,SAAS,WAAW;AAC5D,UAAM,QAAQ,MAAM,WAAW,CAAC,QAAQ,GAAG,IAAI,GAAG;AAAA,MAChD,OAAO,CAAC,UAAU,QAAQ,MAAM;AAAA,IAClC,CAAC;AACD,QAAI,SAAS;AACb,UAAM,OAAO,YAAY,MAAM;AAC/B,UAAM,OAAO,YAAY,MAAM;AAC/B,UAAM,OAAO,GAAG,QAAQ,CAAC,UAAkB;AACzC,gBAAU;AAAA,IACZ,CAAC;AACD,UAAM,OAAO,GAAG,QAAQ,CAAC,UAAkB;AACzC;AAAC,OAAC,GAAG,WAAW,CAAC,SAAS,QAAQ,OAAO,MAAM,IAAI,IAAI,KAAK;AAAA,IAC9D,CAAC;AACD,UAAM;AAAA,MAAG;AAAA,MAAS,MAChB,OAAO,IAAI,YAAY,4CAA4C,CAAC;AAAA,IACtE;AACA,UAAM,GAAG,SAAS,CAAC,SAAS;AAC1B,UAAI,SAAS,GAAG;AACd,YAAI,OAAO,KAAK,MAAM,IAAI;AACxB;AAAC,WAAC,GAAG,UAAU,QAAQ,KAAK,OAAO,KAAK,CAAC;AAAA,QAC3C;AACA;AAAA,UACE,IAAI;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF,OAAO;AACL,gBAAQ,MAAM;AAAA,MAChB;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACD,QAAM,SAAS,KAAK,MAAM,MAAM;AAC/B,GAAC,GAAG,UAAU,QAAQ,KAAK,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAC3D,SAAO;AACT;;;ACnCA,IAAM,QAAQ;AAAA;AAAA;AAAA;AAAA,EAA+R,iBAAiB;AAE9T,eAAsB,iBACpB,MACA,KAAkB,CAAC,GACnB,WAA6B,gBAM7B;AACA,MAAI,qBAAqB,IAAI,GAAG;AAC9B,WAAO,sBAAsB,MAAM,EAAE;AAAA,EACvC;AACA,QAAM,EAAE,cAAc,YAAY,IAAI,MAAM;AAAA,IAC1C;AAAA,IACA;AAAA,EACF;AACA,QAAM,WAAW,gBAAgB,MAAM,SAAS,YAAY,GAAG,YAAY;AAC3E,MAAI,YAAY,SAAS,QAAQ,GAAG;AAClC,WAAO,WAAW,UAAU,aAAa,EAAE;AAAA,EAC7C;AACA,SAAO,aAAa,UAAU,aAAa,IAAI,YAAY;AAC7D;AAEA,eAAsB,cACpB,MACA,KAAkB,CAAC,GACF;AACjB,SAAO,gBAAgB,MAAM,iBAAiB,MAAM,EAAE,GAAG,EAAE;AAC7D;AAEA,gBAAgB,YAAY,KAAK,MAAM,cAAc,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC;","names":[]}
package/dist/seedCli.js CHANGED
@@ -6,8 +6,8 @@ import {
6
6
  runIfEntrypoint,
7
7
  runRegistryMain,
8
8
  runSeedCli
9
- } from "./chunk-YKLSCOBE.js";
10
- import "./chunk-E2QXILJI.js";
9
+ } from "./chunk-SPGTIHTC.js";
10
+ import "./chunk-COFCJXSZ.js";
11
11
 
12
12
  // src/seedCli.ts
13
13
  var USAGE = "Usage: bitfab-seed --registry <path> <pipeline> --from-trace <id>[,<id>...]\n bitfab-seed --registry <path> <pipeline> --cases <cases.jsonl> [--run]\nRun bitfab-seed --registry <path> <pipeline> --help for details.";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bitfab",
3
- "version": "0.62.3",
3
+ "version": "0.62.5",
4
4
  "description": "Bitfab client for provider-based API calls with local BAML execution",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -194,7 +194,8 @@
194
194
  "files": [
195
195
  "dist",
196
196
  "transform-loader.cjs",
197
- "transform-loader.d.cts"
197
+ "transform-loader.d.cts",
198
+ "cloudReplay.py"
198
199
  ],
199
200
  "scripts": {
200
201
  "prebuild": "pnpm clean && tsx scripts/generate-version.ts",