@granular-software/sdk 0.4.72 → 0.4.74

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.
package/dist/cli/index.js CHANGED
@@ -7818,6 +7818,22 @@ var ApiClient = class {
7818
7818
  try {
7819
7819
  const parsed = JSON.parse(errorText);
7820
7820
  errorMsg = parsed.message || parsed.error || errorMsg;
7821
+ if (Array.isArray(parsed.errors)) {
7822
+ const details = parsed.errors.flatMap((issue) => {
7823
+ if (!issue || typeof issue !== "object") return [];
7824
+ const { code, path: path8, message } = issue;
7825
+ if (typeof message !== "string") return [];
7826
+ return [
7827
+ [
7828
+ typeof code === "string" ? code : "Validation error",
7829
+ typeof path8 === "string" ? `at ${path8}` : "",
7830
+ message
7831
+ ].filter(Boolean).join(": ")
7832
+ ];
7833
+ });
7834
+ if (details.length) errorMsg += `
7835
+ ${details.join("\n")}`;
7836
+ }
7821
7837
  } catch {
7822
7838
  errorMsg = errorText || errorMsg;
7823
7839
  }
@@ -15705,7 +15721,7 @@ function buildMachineTypes(classSummary, machine) {
15705
15721
  ];
15706
15722
  }
15707
15723
  function buildMachineMethods(classSummary, machine) {
15708
- const stateName = stateTypeName(classSummary.name, machine.name);
15724
+ const stateName2 = stateTypeName(classSummary.name, machine.name);
15709
15725
  const transitionName = transitionTypeName(classSummary.name, machine.name);
15710
15726
  pathTypeName(classSummary.name, machine.name);
15711
15727
  const docsPrefix = `${classSummary.name}.${machine.name}`;
@@ -15715,12 +15731,12 @@ function buildMachineMethods(classSummary, machine) {
15715
15731
  docs: [`Get the current ${docsPrefix} state.`],
15716
15732
  static: false,
15717
15733
  params: [],
15718
- returnType: `Promise<${stateName} | null>`,
15734
+ returnType: `Promise<${stateName2} | null>`,
15719
15735
  runtime: {
15720
15736
  kind: "state_machine",
15721
15737
  machineName: machine.name,
15722
15738
  className: classSummary.name,
15723
- stateTypeName: stateName,
15739
+ stateTypeName: stateName2,
15724
15740
  transitionTypeName: transitionName,
15725
15741
  operation: "get_current"
15726
15742
  }
@@ -15731,13 +15747,13 @@ function buildMachineMethods(classSummary, machine) {
15731
15747
  `Reach a ${docsPrefix} state through the shortest allowed transition path.`
15732
15748
  ],
15733
15749
  static: false,
15734
- params: [{ name: "target", type: stateName }],
15750
+ params: [{ name: "target", type: stateName2 }],
15735
15751
  returnType: `Promise<${toPascalCase2(classSummary.name)}>`,
15736
15752
  runtime: {
15737
15753
  kind: "state_machine",
15738
15754
  machineName: machine.name,
15739
15755
  className: classSummary.name,
15740
- stateTypeName: stateName,
15756
+ stateTypeName: stateName2,
15741
15757
  transitionTypeName: transitionName,
15742
15758
  operation: "reach"
15743
15759
  }
@@ -15752,7 +15768,7 @@ function buildMachineMethods(classSummary, machine) {
15752
15768
  kind: "state_machine",
15753
15769
  machineName: machine.name,
15754
15770
  className: classSummary.name,
15755
- stateTypeName: stateName,
15771
+ stateTypeName: stateName2,
15756
15772
  transitionTypeName: transitionName,
15757
15773
  operation: "list_transitions"
15758
15774
  }
@@ -15762,12 +15778,12 @@ function buildMachineMethods(classSummary, machine) {
15762
15778
  docs: [`List reachable states for ${docsPrefix} from the current state.`],
15763
15779
  static: false,
15764
15780
  params: [],
15765
- returnType: `Promise<${stateName}[]>`,
15781
+ returnType: `Promise<${stateName2}[]>`,
15766
15782
  runtime: {
15767
15783
  kind: "state_machine",
15768
15784
  machineName: machine.name,
15769
15785
  className: classSummary.name,
15770
- stateTypeName: stateName,
15786
+ stateTypeName: stateName2,
15771
15787
  transitionTypeName: transitionName,
15772
15788
  operation: "list_reachable_states"
15773
15789
  }
@@ -15782,7 +15798,7 @@ function buildMachineMethods(classSummary, machine) {
15782
15798
  kind: "state_machine",
15783
15799
  machineName: machine.name,
15784
15800
  className: classSummary.name,
15785
- stateTypeName: stateName,
15801
+ stateTypeName: stateName2,
15786
15802
  transitionTypeName: transitionName,
15787
15803
  operation: "is_final"
15788
15804
  }
@@ -15793,13 +15809,13 @@ function buildMachineMethods(classSummary, machine) {
15793
15809
  `List shortest transition paths from the current ${docsPrefix} state to a target state.`
15794
15810
  ],
15795
15811
  static: false,
15796
- params: [{ name: "target", type: stateName }],
15797
- returnType: `Promise<Array<{ states: ${stateName}[]; transitions: ${transitionName}[] }>>`,
15812
+ params: [{ name: "target", type: stateName2 }],
15813
+ returnType: `Promise<Array<{ states: ${stateName2}[]; transitions: ${transitionName}[] }>>`,
15798
15814
  runtime: {
15799
15815
  kind: "state_machine",
15800
15816
  machineName: machine.name,
15801
15817
  className: classSummary.name,
15802
- stateTypeName: stateName,
15818
+ stateTypeName: stateName2,
15803
15819
  transitionTypeName: transitionName,
15804
15820
  operation: "paths_to"
15805
15821
  }
@@ -15823,7 +15839,7 @@ function buildMachineMethods(classSummary, machine) {
15823
15839
  kind: "state_machine",
15824
15840
  machineName: machine.name,
15825
15841
  className: classSummary.name,
15826
- stateTypeName: stateName,
15842
+ stateTypeName: stateName2,
15827
15843
  transitionTypeName: transitionName,
15828
15844
  operation: "reach",
15829
15845
  targetState: stateNameValue,
@@ -15842,7 +15858,7 @@ function buildMachineMethods(classSummary, machine) {
15842
15858
  kind: "state_machine",
15843
15859
  machineName: machine.name,
15844
15860
  className: classSummary.name,
15845
- stateTypeName: stateName,
15861
+ stateTypeName: stateName2,
15846
15862
  transitionTypeName: transitionName,
15847
15863
  operation: "prepare_reach",
15848
15864
  targetState: stateNameValue,
@@ -15855,7 +15871,7 @@ function buildMachineMethods(classSummary, machine) {
15855
15871
  kind: "state_machine",
15856
15872
  machineName: machine.name,
15857
15873
  className: classSummary.name,
15858
- stateTypeName: stateName,
15874
+ stateTypeName: stateName2,
15859
15875
  transitionTypeName: transitionName,
15860
15876
  operation: "prepare_create_reach",
15861
15877
  targetState: stateNameValue,
@@ -23928,6 +23944,31 @@ function buildSessionTranscript(input) {
23928
23944
  liveDoc
23929
23945
  });
23930
23946
  }
23947
+ function assertRecordSnapshotTransitionMapping(transition) {
23948
+ if (!transition)
23949
+ throw new Error("A transition commit has no authored transition context.");
23950
+ if (!transition.outcomes || !Object.keys(transition.outcomes).length) {
23951
+ throw new Error(
23952
+ "Automatic product-state mapping requires at least one declared outcome."
23953
+ );
23954
+ }
23955
+ const destinations = /* @__PURE__ */ new Map();
23956
+ for (const [key, outcome] of Object.entries(transition.outcomes)) {
23957
+ if (!outcome || typeof outcome.to !== "string" || !outcome.to) {
23958
+ throw new Error(
23959
+ `Automatic product-state mapping requires a destination for outcome ${key}.`
23960
+ );
23961
+ }
23962
+ const destination = outcome.to === "$current" ? transition.from : outcome.to;
23963
+ const previous = destinations.get(destination);
23964
+ if (previous !== void 0) {
23965
+ throw new Error(
23966
+ `Ambiguous product-state mapping for ${transition.machine}.${transition.transition}: outcomes ${previous} and ${key} both resolve to ${destination}; automatic mapping requires distinct outcome destinations.`
23967
+ );
23968
+ }
23969
+ destinations.set(destination, key);
23970
+ }
23971
+ }
23931
23972
 
23932
23973
  // src/commit.ts
23933
23974
  var MAX_PROJECTION_CHANGES = 1e3;
@@ -24486,6 +24527,11 @@ async function invokeRegisteredEffect(effectMap, request, options = {}) {
24486
24527
  `Transition effect ${request.effectKey} has no resolved transition context; customer code was not invoked`
24487
24528
  );
24488
24529
  }
24530
+ if (commitRequired && declaration?.kind === "transition" && declaration.outcomeSelection === "product_state") {
24531
+ assertRecordSnapshotTransitionMapping(
24532
+ request.context?.invocation?.transition
24533
+ );
24534
+ }
24489
24535
  const idempotencyKey = commitRequired ? await resolveInvocationIdempotencyKey(request) : request.context?.idempotencyKey;
24490
24536
  let commitStarted = false;
24491
24537
  let commitPromise = null;
@@ -25435,13 +25481,15 @@ var Environment = class _Environment {
25435
25481
  _apiEndpoint;
25436
25482
  _tokenProvider;
25437
25483
  _beforeMutationSend;
25438
- constructor(granular, envData, apiKey, apiEndpoint, tokenProvider, beforeMutationSend) {
25484
+ _graphqlIdempotencyKey;
25485
+ constructor(granular, envData, apiKey, apiEndpoint, tokenProvider, beforeMutationSend, graphqlIdempotencyKey) {
25439
25486
  this.granular = granular;
25440
25487
  this.envData = envData;
25441
25488
  this._apiKey = apiKey;
25442
25489
  this._apiEndpoint = apiEndpoint;
25443
25490
  this._tokenProvider = tokenProvider;
25444
25491
  this._beforeMutationSend = beforeMutationSend;
25492
+ this._graphqlIdempotencyKey = graphqlIdempotencyKey;
25445
25493
  }
25446
25494
  /** The environment ID */
25447
25495
  get environmentId() {
@@ -25723,8 +25771,8 @@ var Environment = class _Environment {
25723
25771
  * `await env.recordState({ className: "spend_request", id, machine: "lifecycle", state: "policy_review", source: "customer_backend" })`
25724
25772
  */
25725
25773
  state(target) {
25726
- const observe = async (machineName, stateName, input = {}) => {
25727
- const observedState = input.observedState || input.state || stateName;
25774
+ const observe = async (machineName, stateName2, input = {}) => {
25775
+ const observedState = input.observedState || input.state || stateName2;
25728
25776
  if (!observedState) {
25729
25777
  throw new Error("State observation requires a target state");
25730
25778
  }
@@ -25750,7 +25798,7 @@ var Environment = class _Environment {
25750
25798
  {
25751
25799
  get: (_machineTarget, stateProperty) => {
25752
25800
  if (stateProperty === "to") {
25753
- return (stateName, input) => observe(machineProperty, stateName, input || {});
25801
+ return (stateName2, input) => observe(machineProperty, stateName2, input || {});
25754
25802
  }
25755
25803
  if (typeof stateProperty !== "string") return void 0;
25756
25804
  return (input) => observe(
@@ -25984,11 +26032,13 @@ var Environment = class _Environment {
25984
26032
  if (this._beforeMutationSend && isGraphQLMutationDocument(query)) {
25985
26033
  this._beforeMutationSend?.();
25986
26034
  }
26035
+ const idempotencyKey = this._graphqlIdempotencyKey?.(query, variables);
25987
26036
  const response = await fetch(this._apiEndpoint, {
25988
26037
  method: "POST",
25989
26038
  headers: {
25990
26039
  "Content-Type": "application/json",
25991
- Authorization: `Bearer ${authToken}`
26040
+ Authorization: `Bearer ${authToken}`,
26041
+ ...idempotencyKey ? { "Idempotency-Key": idempotencyKey } : {}
25992
26042
  },
25993
26043
  body: JSON.stringify({
25994
26044
  environmentId: this.environmentId,
@@ -26043,6 +26093,11 @@ var Environment = class _Environment {
26043
26093
  classNames: options.classNames?.length ? options.classNames : []
26044
26094
  }
26045
26095
  );
26096
+ if (response.errors?.length) {
26097
+ throw new Error(
26098
+ `Record search failed: ${response.errors.map((error2) => error2.message).join("; ")}`
26099
+ );
26100
+ }
26046
26101
  const seen = /* @__PURE__ */ new Set();
26047
26102
  const results = (response.data?.record_search || []).flatMap((entry) => {
26048
26103
  const className = entry.className?.trim();
@@ -27557,6 +27612,7 @@ var Granular = class _Granular {
27557
27612
  onUnexpectedClose;
27558
27613
  onReconnectError;
27559
27614
  effectHostUrl;
27615
+ graphqlIdempotencyKey;
27560
27616
  debugHttp = process.env.GRANULAR_DEBUG_HTTP === "1";
27561
27617
  /** Sandbox-level effect registry: sandboxId → (effectKey@selector → ToolWithHandler) */
27562
27618
  sandboxEffects = /* @__PURE__ */ new Map();
@@ -27586,6 +27642,7 @@ var Granular = class _Granular {
27586
27642
  this.onUnexpectedClose = options.onUnexpectedClose;
27587
27643
  this.onReconnectError = options.onReconnectError;
27588
27644
  this.effectHostUrl = options.effectHostUrl;
27645
+ this.graphqlIdempotencyKey = options.graphqlIdempotencyKey;
27589
27646
  this.httpUrl = this.apiUrl.replace(/^wss:\/\//, "https://").replace(/^ws:\/\//, "http://").replace(/\/ws$/, "");
27590
27647
  }
27591
27648
  /**
@@ -28601,7 +28658,9 @@ var Granular = class _Granular {
28601
28658
  envData,
28602
28659
  this.apiKey,
28603
28660
  graphqlEndpoint,
28604
- this.tokenProvider
28661
+ this.tokenProvider,
28662
+ void 0,
28663
+ this.graphqlIdempotencyKey
28605
28664
  );
28606
28665
  }
28607
28666
  async bindWebSocketEnvironmentSession(environment, clientId, session2, transportOptions = {}) {
@@ -1,4 +1,4 @@
1
- import { du as WSClientOptions, ab as SessionFeedApi, bf as GranularQuotaProgress, T as ToolWithHandler, t as PublishToolsResult, cl as Job, u as ToolHandler, I as InstanceToolHandler, co as UserMessageInput, cp as UserMessageAppendResult, c8 as EffectInfo, n as Prompt, c7 as ToolInfo, ca as EffectsChangedEvent, c9 as ToolsChangedEvent, D as DomainState, ae as FeedListTransport, aX as GranularOptions, e0 as EnvironmentImporter, a_ as RecordUserOptions, aZ as User, b0 as OpenEnvironmentOptions, E as EnvironmentData, aW as AccessTokenProvider, bp as BuildPolicy, dZ as EnvironmentSetupSummary, b6 as ConversationSessionListOptions, b4 as ConversationSessionInfo, b7 as ConversationSessionListResponse, b3 as CreateSessionOptions, h as RecordObjectOptions, dM as RecordObjectResult, dO as RecordObjectsOptions, dV as RecordImport, dR as RecordImportStatus, dU as RecordImportItem, a as EnvironmentRecordImportSummary, cj as EnvironmentFeedbackRecord, m as SessionHeapSnapshot, dh as SessionDocumentResult, cq as AssistantReplyPublicationInput, cr as AssistantReplyPublicationResult, di as SessionCollectionListOptions, dk as SessionCollectionListResult, cu as SessionTimelineEvent, dj as SessionJobListOptions, da as SessionJobRecord, bT as SessionMutationView, cN as SessionArtifactListOptions, r as SessionArtifactRecord, cP as SessionArtifactRelationshipOptionsInput, cR as SessionArtifactRelationshipOptionsResult, cS as SessionArtifactRelationshipCreateInput, cO as SessionArtifactValidationResult, cU as SessionArtifactExecutionOptions, cT as SessionArtifactExecutionResult, cV as SessionArtifactApprovalOptions, d3 as RecordManualActionInput, d5 as ManualActionRecordResult, d6 as ManualActionListOptions, d4 as ManualActionOccurrence, d8 as ManualActionSuggestionOptions, d7 as ManualActionSuggestion, cY as ArtifactApprovalTaskListOptions, cX as ArtifactApprovalTask, cZ as ArtifactApprovalDecisionInput, c_ as ArtifactApprovalDecisionResult, cy as SessionFileRecord, d9 as SessionFileUploadOptions, S as SessionHeapEntry, k as SessionHeapList, dd as SessionHeapVariable, o as SessionTranscriptEntry, eu as GraphQLResult, df as RecordSearchOptions, de as RecordSearchResult, dg as RecordMentionInput, dF as DefineRelationshipOptions, dE as RelationshipInfo, dD as ModelRef, i as ManifestContent, dJ as EnvironmentStateUpdateInput, dH as EnvironmentStateTarget, dL as EnvironmentStateProxy, dQ as RecordImportOptions, dq as UserEnvironmentStateOptions, dp as UserEnvironmentState, dr as MarkUserEnvironmentReadOptions, d as ProjectionMapper, bM as EffectProjectionResult, bR as ExternalCommitOptions, C as CommitReceipt, bN as TransitionProjectionResult, bS as ObservationReceipt, b1 as AdoptEnvironmentOptions, b2 as ConnectOptions, dX as RunEnvironmentImporterOptions, aJ as OpenAIUsageSpendEvent, aI as GranularSpendContext, aL as RecordOpenAIUsageSpendResult, bi as SandboxListResponse, bg as Sandbox, bh as CreateSandboxData, ew as DeleteResponse, bk as PermissionProfile, bl as CreatePermissionProfileData, bs as CreateEnvironmentData, ex as StreamEvent, ey as StreamSubscription, ez as StreamStats, a$ as Subject, bo as AssignmentListResponse } from './spend-lJDtuAr6.mjs';
1
+ import { dv as WSClientOptions, ab as SessionFeedApi, bf as GranularQuotaProgress, T as ToolWithHandler, t as PublishToolsResult, cl as Job, u as ToolHandler, I as InstanceToolHandler, co as UserMessageInput, cp as UserMessageAppendResult, c8 as EffectInfo, n as Prompt, c7 as ToolInfo, ca as EffectsChangedEvent, c9 as ToolsChangedEvent, D as DomainState, ae as FeedListTransport, aX as GranularOptions, e1 as EnvironmentImporter, a_ as RecordUserOptions, aZ as User, b0 as OpenEnvironmentOptions, E as EnvironmentData, aW as AccessTokenProvider, bp as BuildPolicy, d_ as EnvironmentSetupSummary, b6 as ConversationSessionListOptions, b4 as ConversationSessionInfo, b7 as ConversationSessionListResponse, b3 as CreateSessionOptions, h as RecordObjectOptions, dN as RecordObjectResult, dP as RecordObjectsOptions, dW as RecordImport, dS as RecordImportStatus, dV as RecordImportItem, a as EnvironmentRecordImportSummary, cj as EnvironmentFeedbackRecord, m as SessionHeapSnapshot, dh as SessionDocumentResult, cq as AssistantReplyPublicationInput, cr as AssistantReplyPublicationResult, di as SessionCollectionListOptions, dk as SessionCollectionListResult, cu as SessionTimelineEvent, dj as SessionJobListOptions, da as SessionJobRecord, bT as SessionMutationView, cN as SessionArtifactListOptions, r as SessionArtifactRecord, cP as SessionArtifactRelationshipOptionsInput, cR as SessionArtifactRelationshipOptionsResult, cS as SessionArtifactRelationshipCreateInput, cO as SessionArtifactValidationResult, cU as SessionArtifactExecutionOptions, cT as SessionArtifactExecutionResult, cV as SessionArtifactApprovalOptions, d3 as RecordManualActionInput, d5 as ManualActionRecordResult, d6 as ManualActionListOptions, d4 as ManualActionOccurrence, d8 as ManualActionSuggestionOptions, d7 as ManualActionSuggestion, cY as ArtifactApprovalTaskListOptions, cX as ArtifactApprovalTask, cZ as ArtifactApprovalDecisionInput, c_ as ArtifactApprovalDecisionResult, cy as SessionFileRecord, d9 as SessionFileUploadOptions, S as SessionHeapEntry, k as SessionHeapList, dd as SessionHeapVariable, o as SessionTranscriptEntry, ev as GraphQLResult, df as RecordSearchOptions, de as RecordSearchResult, dg as RecordMentionInput, dG as DefineRelationshipOptions, dF as RelationshipInfo, dE as ModelRef, i as ManifestContent, dK as EnvironmentStateUpdateInput, dI as EnvironmentStateTarget, dM as EnvironmentStateProxy, dR as RecordImportOptions, dr as UserEnvironmentStateOptions, dq as UserEnvironmentState, ds as MarkUserEnvironmentReadOptions, d as ProjectionMapper, bM as EffectProjectionResult, bR as ExternalCommitOptions, C as CommitReceipt, bN as TransitionProjectionResult, bS as ObservationReceipt, b1 as AdoptEnvironmentOptions, b2 as ConnectOptions, dY as RunEnvironmentImporterOptions, aJ as OpenAIUsageSpendEvent, aI as GranularSpendContext, aL as RecordOpenAIUsageSpendResult, bi as SandboxListResponse, bg as Sandbox, bh as CreateSandboxData, ex as DeleteResponse, bk as PermissionProfile, bl as CreatePermissionProfileData, bs as CreateEnvironmentData, ey as StreamEvent, ez as StreamSubscription, eA as StreamStats, a$ as Subject, bo as AssignmentListResponse } from './spend-DBRQOSaj.mjs';
2
2
  import * as Automerge from '@automerge/automerge';
3
3
  import { Doc } from '@automerge/automerge/slim';
4
4
 
@@ -343,7 +343,8 @@ declare class Environment {
343
343
  private _apiEndpoint;
344
344
  private _tokenProvider?;
345
345
  private _beforeMutationSend?;
346
- constructor(granular: Granular, envData: EnvironmentData, apiKey: string, apiEndpoint: string, tokenProvider?: AccessTokenProvider, beforeMutationSend?: () => void);
346
+ private _graphqlIdempotencyKey?;
347
+ constructor(granular: Granular, envData: EnvironmentData, apiKey: string, apiEndpoint: string, tokenProvider?: AccessTokenProvider, beforeMutationSend?: () => void, graphqlIdempotencyKey?: GranularOptions["graphqlIdempotencyKey"]);
347
348
  /** The environment ID */
348
349
  get environmentId(): string;
349
350
  /** The sandbox ID */
@@ -1052,6 +1053,7 @@ declare class Granular {
1052
1053
  private onUnexpectedClose?;
1053
1054
  private onReconnectError?;
1054
1055
  private effectHostUrl?;
1056
+ private graphqlIdempotencyKey?;
1055
1057
  private debugHttp;
1056
1058
  /** Sandbox-level effect registry: sandboxId → (effectKey@selector → ToolWithHandler) */
1057
1059
  private sandboxEffects;
@@ -1,4 +1,4 @@
1
- import { du as WSClientOptions, ab as SessionFeedApi, bf as GranularQuotaProgress, T as ToolWithHandler, t as PublishToolsResult, cl as Job, u as ToolHandler, I as InstanceToolHandler, co as UserMessageInput, cp as UserMessageAppendResult, c8 as EffectInfo, n as Prompt, c7 as ToolInfo, ca as EffectsChangedEvent, c9 as ToolsChangedEvent, D as DomainState, ae as FeedListTransport, aX as GranularOptions, e0 as EnvironmentImporter, a_ as RecordUserOptions, aZ as User, b0 as OpenEnvironmentOptions, E as EnvironmentData, aW as AccessTokenProvider, bp as BuildPolicy, dZ as EnvironmentSetupSummary, b6 as ConversationSessionListOptions, b4 as ConversationSessionInfo, b7 as ConversationSessionListResponse, b3 as CreateSessionOptions, h as RecordObjectOptions, dM as RecordObjectResult, dO as RecordObjectsOptions, dV as RecordImport, dR as RecordImportStatus, dU as RecordImportItem, a as EnvironmentRecordImportSummary, cj as EnvironmentFeedbackRecord, m as SessionHeapSnapshot, dh as SessionDocumentResult, cq as AssistantReplyPublicationInput, cr as AssistantReplyPublicationResult, di as SessionCollectionListOptions, dk as SessionCollectionListResult, cu as SessionTimelineEvent, dj as SessionJobListOptions, da as SessionJobRecord, bT as SessionMutationView, cN as SessionArtifactListOptions, r as SessionArtifactRecord, cP as SessionArtifactRelationshipOptionsInput, cR as SessionArtifactRelationshipOptionsResult, cS as SessionArtifactRelationshipCreateInput, cO as SessionArtifactValidationResult, cU as SessionArtifactExecutionOptions, cT as SessionArtifactExecutionResult, cV as SessionArtifactApprovalOptions, d3 as RecordManualActionInput, d5 as ManualActionRecordResult, d6 as ManualActionListOptions, d4 as ManualActionOccurrence, d8 as ManualActionSuggestionOptions, d7 as ManualActionSuggestion, cY as ArtifactApprovalTaskListOptions, cX as ArtifactApprovalTask, cZ as ArtifactApprovalDecisionInput, c_ as ArtifactApprovalDecisionResult, cy as SessionFileRecord, d9 as SessionFileUploadOptions, S as SessionHeapEntry, k as SessionHeapList, dd as SessionHeapVariable, o as SessionTranscriptEntry, eu as GraphQLResult, df as RecordSearchOptions, de as RecordSearchResult, dg as RecordMentionInput, dF as DefineRelationshipOptions, dE as RelationshipInfo, dD as ModelRef, i as ManifestContent, dJ as EnvironmentStateUpdateInput, dH as EnvironmentStateTarget, dL as EnvironmentStateProxy, dQ as RecordImportOptions, dq as UserEnvironmentStateOptions, dp as UserEnvironmentState, dr as MarkUserEnvironmentReadOptions, d as ProjectionMapper, bM as EffectProjectionResult, bR as ExternalCommitOptions, C as CommitReceipt, bN as TransitionProjectionResult, bS as ObservationReceipt, b1 as AdoptEnvironmentOptions, b2 as ConnectOptions, dX as RunEnvironmentImporterOptions, aJ as OpenAIUsageSpendEvent, aI as GranularSpendContext, aL as RecordOpenAIUsageSpendResult, bi as SandboxListResponse, bg as Sandbox, bh as CreateSandboxData, ew as DeleteResponse, bk as PermissionProfile, bl as CreatePermissionProfileData, bs as CreateEnvironmentData, ex as StreamEvent, ey as StreamSubscription, ez as StreamStats, a$ as Subject, bo as AssignmentListResponse } from './spend-lJDtuAr6.js';
1
+ import { dv as WSClientOptions, ab as SessionFeedApi, bf as GranularQuotaProgress, T as ToolWithHandler, t as PublishToolsResult, cl as Job, u as ToolHandler, I as InstanceToolHandler, co as UserMessageInput, cp as UserMessageAppendResult, c8 as EffectInfo, n as Prompt, c7 as ToolInfo, ca as EffectsChangedEvent, c9 as ToolsChangedEvent, D as DomainState, ae as FeedListTransport, aX as GranularOptions, e1 as EnvironmentImporter, a_ as RecordUserOptions, aZ as User, b0 as OpenEnvironmentOptions, E as EnvironmentData, aW as AccessTokenProvider, bp as BuildPolicy, d_ as EnvironmentSetupSummary, b6 as ConversationSessionListOptions, b4 as ConversationSessionInfo, b7 as ConversationSessionListResponse, b3 as CreateSessionOptions, h as RecordObjectOptions, dN as RecordObjectResult, dP as RecordObjectsOptions, dW as RecordImport, dS as RecordImportStatus, dV as RecordImportItem, a as EnvironmentRecordImportSummary, cj as EnvironmentFeedbackRecord, m as SessionHeapSnapshot, dh as SessionDocumentResult, cq as AssistantReplyPublicationInput, cr as AssistantReplyPublicationResult, di as SessionCollectionListOptions, dk as SessionCollectionListResult, cu as SessionTimelineEvent, dj as SessionJobListOptions, da as SessionJobRecord, bT as SessionMutationView, cN as SessionArtifactListOptions, r as SessionArtifactRecord, cP as SessionArtifactRelationshipOptionsInput, cR as SessionArtifactRelationshipOptionsResult, cS as SessionArtifactRelationshipCreateInput, cO as SessionArtifactValidationResult, cU as SessionArtifactExecutionOptions, cT as SessionArtifactExecutionResult, cV as SessionArtifactApprovalOptions, d3 as RecordManualActionInput, d5 as ManualActionRecordResult, d6 as ManualActionListOptions, d4 as ManualActionOccurrence, d8 as ManualActionSuggestionOptions, d7 as ManualActionSuggestion, cY as ArtifactApprovalTaskListOptions, cX as ArtifactApprovalTask, cZ as ArtifactApprovalDecisionInput, c_ as ArtifactApprovalDecisionResult, cy as SessionFileRecord, d9 as SessionFileUploadOptions, S as SessionHeapEntry, k as SessionHeapList, dd as SessionHeapVariable, o as SessionTranscriptEntry, ev as GraphQLResult, df as RecordSearchOptions, de as RecordSearchResult, dg as RecordMentionInput, dG as DefineRelationshipOptions, dF as RelationshipInfo, dE as ModelRef, i as ManifestContent, dK as EnvironmentStateUpdateInput, dI as EnvironmentStateTarget, dM as EnvironmentStateProxy, dR as RecordImportOptions, dr as UserEnvironmentStateOptions, dq as UserEnvironmentState, ds as MarkUserEnvironmentReadOptions, d as ProjectionMapper, bM as EffectProjectionResult, bR as ExternalCommitOptions, C as CommitReceipt, bN as TransitionProjectionResult, bS as ObservationReceipt, b1 as AdoptEnvironmentOptions, b2 as ConnectOptions, dY as RunEnvironmentImporterOptions, aJ as OpenAIUsageSpendEvent, aI as GranularSpendContext, aL as RecordOpenAIUsageSpendResult, bi as SandboxListResponse, bg as Sandbox, bh as CreateSandboxData, ex as DeleteResponse, bk as PermissionProfile, bl as CreatePermissionProfileData, bs as CreateEnvironmentData, ey as StreamEvent, ez as StreamSubscription, eA as StreamStats, a$ as Subject, bo as AssignmentListResponse } from './spend-DBRQOSaj.js';
2
2
  import * as Automerge from '@automerge/automerge';
3
3
  import { Doc } from '@automerge/automerge/slim';
4
4
 
@@ -343,7 +343,8 @@ declare class Environment {
343
343
  private _apiEndpoint;
344
344
  private _tokenProvider?;
345
345
  private _beforeMutationSend?;
346
- constructor(granular: Granular, envData: EnvironmentData, apiKey: string, apiEndpoint: string, tokenProvider?: AccessTokenProvider, beforeMutationSend?: () => void);
346
+ private _graphqlIdempotencyKey?;
347
+ constructor(granular: Granular, envData: EnvironmentData, apiKey: string, apiEndpoint: string, tokenProvider?: AccessTokenProvider, beforeMutationSend?: () => void, graphqlIdempotencyKey?: GranularOptions["graphqlIdempotencyKey"]);
347
348
  /** The environment ID */
348
349
  get environmentId(): string;
349
350
  /** The sandbox ID */
@@ -1052,6 +1053,7 @@ declare class Granular {
1052
1053
  private onUnexpectedClose?;
1053
1054
  private onReconnectError?;
1054
1055
  private effectHostUrl?;
1056
+ private graphqlIdempotencyKey?;
1055
1057
  private debugHttp;
1056
1058
  /** Sandbox-level effect registry: sandboxId → (effectKey@selector → ToolWithHandler) */
1057
1059
  private sandboxEffects;
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- export { E as Environment, a as EnvironmentSession, G as Granular, O as OntologyHandle, S as Session, W as WSClient, i as isGraphQLMutationDocument } from './client-p5EhOwpP.mjs';
2
- import { E as EnvironmentData, a as EnvironmentRecordImportSummary, b as EndpointMode, c as EffectCommitRequest, C as CommitReceipt, T as ToolWithHandler, P as ProjectionResult, d as ProjectionMapper, e as CommitTransitionOutcomeDeclaration, f as CommitDeclaration, g as EffectHandlerContext, F as FeedPublishTransport, M as ManifestEffectMetamodelSpec, R as ResolvedEffectBehaviors, h as RecordObjectOptions, i as ManifestContent, j as CommitTransitionInvocation, S as SessionHeapEntry, k as SessionHeapList, l as FeedItem, m as SessionHeapSnapshot, n as Prompt, o as SessionTranscriptEntry, A as ArtifactWorkflowNode, p as ArtifactWorkflowNodeStatus, q as ArtifactWorkflow, r as SessionArtifactRecord } from './spend-lJDtuAr6.mjs';
3
- export { ev as APIError, aW as AccessTokenProvider, a0 as ActionSuggestionFeedItem, b1 as AdoptEnvironmentOptions, bO as AgentCommitStatus, cZ as ArtifactApprovalDecisionInput, c_ as ArtifactApprovalDecisionResult, cX as ArtifactApprovalTask, cY as ArtifactApprovalTaskListOptions, cW as ArtifactApprovalTaskStatus, Y as ArtifactFeedItem, c2 as ArtifactOptionsHandler, cH as ArtifactWorkflowAttention, cC as ArtifactWorkflowCompletionState, cD as ArtifactWorkflowNodeAvailability, cB as ArtifactWorkflowNodeKind, cE as ArtifactWorkflowOperationPhase, cG as ArtifactWorkflowRecap, cF as ArtifactWorkflowRecapItem, bn as Assignment, bo as AssignmentListResponse, cq as AssistantReplyPublicationInput, cr as AssistantReplyPublicationResult, bL as BaseProjectionResult, bx as Build, bz as BuildListResponse, bp as BuildPolicy, bw as BuildStatus, bG as CanonicalProjectedRecord, bP as CommitChangeReceipt, bE as CommitSafeError, bQ as CommitTransitionReceipt, aS as ConditionIR, b2 as ConnectOptions, b4 as ConversationSessionInfo, b6 as ConversationSessionListOptions, b7 as ConversationSessionListResponse, b5 as ConversationSessionListStatus, bs as CreateEnvironmentData, bl as CreatePermissionProfileData, bh as CreateSandboxData, b3 as CreateSessionOptions, dF as DefineRelationshipOptions, ew as DeleteResponse, D as DomainState, b_ as EffectArtifactOptionsInvocation, c0 as EffectArtifactRelationshipOption, c1 as EffectArtifactRelationshipOptionsResult, bU as EffectCommitContext, cb as EffectHandler, c8 as EffectInfo, b$ as EffectInvocationMetadata, bZ as EffectInvocationMode, bM as EffectProjectionResult, c3 as EffectSchema, c6 as EffectVersionSelector, c4 as EffectWithHandler, ca as EffectsChangedEvent, cj as EnvironmentFeedbackRecord, e0 as EnvironmentImporter, d$ as EnvironmentImporterImportOptions, bt as EnvironmentListResponse, d_ as EnvironmentSetupImporterClaim, dY as EnvironmentSetupLifecycleStatus, dZ as EnvironmentSetupSummary, dW as EnvironmentSetupTriggerReason, dK as EnvironmentStateMachineProxy, dI as EnvironmentStateObservationInput, dL as EnvironmentStateProxy, dH as EnvironmentStateTarget, dJ as EnvironmentStateUpdateInput, bR as ExternalCommitOptions, ag as FeedDiagnostic, ah as FeedDiagnosticListener, ao as FeedDocumentState, y as FeedFeedbackTone, Z as FeedFileSource, x as FeedIconToken, H as FeedItemBase, B as FeedItemKind, a7 as FeedListOptions, ae as FeedListTransport, L as FeedObjectReference, a8 as FeedPage, az as FeedPublisher, a6 as FeedSnapshot, af as FeedSnapshotRegressionReason, w as FeedSource, v as FeedSourceActor, a9 as FeedSubscribeOptions, aa as FeedSubscriptionChange, N as FeedTableCell, Q as FeedTableColumn, W as FeedTableProjection, V as FeedTableRow, U as FeedTableRowReference, G as FeedTarget, z as FeedTransientFeedbackTone, dz as FeedTransientPatchMessage, K as FeedbackFeedItem, _ as FileFeedItem, ai as GRANULAR_FEED_DIAGNOSTIC_EVENT, aY as GranularAuth, aX as GranularOptions, be as GranularQuotaPolicy, bf as GranularQuotaProgress, aI as GranularSpendContext, eu as GraphQLResult, cc as InstanceEffectHandler, I as InstanceToolHandler, cl as Job, dy as JobActionTraceMessage, ch as JobFeedbackInput, cg as JobFeedbackMetadata, ci as JobFeedbackRecord, ce as JobFeedbackSentiment, cf as JobFeedbackToolCall, cd as JobStatus, ck as JobSubmitResult, bu as Manifest, ek as ManifestApprovalRequiredSpec, el as ManifestCreatesSpec, ei as ManifestDryRunSpec, eo as ManifestEffectDeclaration, en as ManifestEffectSchema, e3 as ManifestEnumRuleSpec, eq as ManifestEventStreamDef, ep as ManifestEventTypeDef, e4 as ManifestFilterBySpec, es as ManifestImport, bv as ManifestListResponse, er as ManifestOperation, eh as ManifestPostConditionSpec, e1 as ManifestPropertySpec, em as ManifestRelationshipDef, ej as ManifestReverseSpec, eg as ManifestStateMachineSpec, e6 as ManifestStateMachineStateSpec, ef as ManifestStateMachineTransitionSpec, e8 as ManifestStateTransitionActionSpec, e9 as ManifestStateTransitionAssigneeSpec, ed as ManifestStateTransitionExpectedOutcomeSpec, e7 as ManifestStateTransitionInputBinding, ee as ManifestStateTransitionOutcomeSpec, ec as ManifestStateTransitionPermissionSpec, ea as ManifestStateTransitionRelatedStateRequirementSpec, eb as ManifestStateTransitionRequirementsSpec, e2 as ManifestValidationOperator, e5 as ManifestValidationRuleSpec, et as ManifestVolume, d6 as ManualActionListOptions, d4 as ManualActionOccurrence, d5 as ManualActionRecordResult, d2 as ManualActionRelatedRecord, d0 as ManualActionSource, c$ as ManualActionStatus, d7 as ManualActionSuggestion, d8 as ManualActionSuggestionOptions, d1 as ManualActionTarget, dr as MarkUserEnvironmentReadOptions, aV as MatchedPolicy, J as MessageFeedItem, dD as ModelRef, aC as NormalizedOpenAIUsage, $ as NormalizedSuggestedArtifact, aE as OPENAI_MODEL_PRICING_USD_PER_MILLION, bH as ObjectProjectionChange, bC as ObjectReference, O as ObjectsFeedItem, bS as ObservationReceipt, aB as OpenAIModelPricing, aD as OpenAITokenSpend, aJ as OpenAIUsageSpendEvent, b0 as OpenEnvironmentOptions, bk as PermissionProfile, bm as PermissionProfileListResponse, bj as PermissionRules, aR as PolicyOperator, aT as PolicyOrigin, aQ as PolicyPredicateSource, aU as PolicyRuleIR, aP as PolicySource, bK as ProjectionChange, a1 as PromptFeedItem, c5 as PublishEffectsResult, av as PublishFeedbackOptions, t as PublishToolsResult, aw as PublishTransientFeedbackOptions, bd as QuotaLineItemFilter, ba as QuotaPeriod, b9 as QuotaScopeType, bb as QuotaStatus, dv as RPCRequest, dA as RPCRequestFromServer, dw as RPCResponse, dV as RecordImport, dU as RecordImportItem, dS as RecordImportItemStatus, dQ as RecordImportOptions, dT as RecordImportStats, dR as RecordImportStatus, dP as RecordImportWriteMode, d3 as RecordManualActionInput, dg as RecordMentionInput, dM as RecordObjectResult, dG as RecordObjectStateValue, dN as RecordObjectsChunkInfo, dO as RecordObjectsOptions, aK as RecordOpenAIUsageSpendOptions, aL as RecordOpenAIUsageSpendResult, df as RecordSearchOptions, de as RecordSearchResult, a_ as RecordUserOptions, dE as RelationshipInfo, bI as RelationshipProjectionChange, bY as ResolvedEffectApprovalRequired, bW as ResolvedEffectDryRun, bV as ResolvedEffectPostCondition, bX as ResolvedEffectReverse, dX as RunEnvironmentImporterOptions, bg as Sandbox, bi as SandboxListResponse, bB as SemanticVersionDiff, bA as SemanticVersionDiffEntry, cV as SessionArtifactApprovalOptions, cI as SessionArtifactAutonomyPolicy, cU as SessionArtifactExecutionOptions, cT as SessionArtifactExecutionResult, cM as SessionArtifactFieldProvenance, cJ as SessionArtifactFieldProvenanceSource, cA as SessionArtifactKind, cN as SessionArtifactListOptions, cS as SessionArtifactRelationshipCreateInput, cQ as SessionArtifactRelationshipOption, cP as SessionArtifactRelationshipOptionsInput, cR as SessionArtifactRelationshipOptionsResult, cL as SessionArtifactRequestContext, cK as SessionArtifactRequestContextSource, cz as SessionArtifactStatus, cO as SessionArtifactValidationResult, di as SessionCollectionListOptions, dk as SessionCollectionListResult, dh as SessionDocumentResult, ab as SessionFeedApi, au as SessionFeedController, an as SessionFeedControllerOptions, cw as SessionFileKind, cy as SessionFileRecord, cv as SessionFileSource, cx as SessionFileStatus, d9 as SessionFileUploadOptions, db as SessionHeapFieldType, dc as SessionHeapFieldValue, dd as SessionHeapVariable, dj as SessionJobListOptions, da as SessionJobRecord, bT as SessionMutationView, cu as SessionTimelineEvent, cs as SessionTranscriptActionSuggestion, ct as SessionTranscriptShowRefs, ax as SettleTransientFeedbackOptions, dx as SnapshotResetMessage, bD as SourceAcknowledgement, b8 as SpendLineItemType, bc as SpendSummary, bJ as StateObservationProjectionChange, ex as StreamEvent, ez as StreamStats, ey as StreamSubscription, a$ as Subject, X as TableFeedItem, u as ToolHandler, c7 as ToolInfo, dB as ToolInvokeParams, dC as ToolResultParams, s as ToolSchema, c9 as ToolsChangedEvent, a5 as TransientFeedItem, a2 as TransientFeedItemBase, a4 as TransientFeedbackFeedItem, ay as TransientFeedbackHandle, a3 as TransientMessageFeedItem, bF as TransitionOutcomeProjection, bN as TransitionProjectionResult, aZ as User, dm as UserEnvironmentMessagePreview, dl as UserEnvironmentPrompt, dn as UserEnvironmentSessionState, dp as UserEnvironmentState, dq as UserEnvironmentStateOptions, cp as UserMessageAppendResult, co as UserMessageInput, cm as UserMessageShowRefs, cn as UserMessageTarget, by as Version, br as VersionTag, bq as VersionTracking, du as WSClientOptions, ds as WSDisconnectInfo, dt as WSReconnectErrorInfo, aN as buildOpenAISpendEventId, aH as calculateOpenAITokenSpend, aA as createFeedPublisher, am as emitFeedDiagnostic, al as emitFeedDiagnosticToDefaultSink, ap as emptyFeedSnapshot, aF as getOpenAIModelPricing, aq as hasCanonicalSessionFeedActivation, ar as isCanonicalSessionFeedDocument, ac as mergeFeedItemsBySequence, ak as normalizeFeedDiagnostic, aj as normalizeFeedDiagnosticKind, at as normalizeFeedPage, aG as normalizeOpenAIUsage, ad as orderTransientFeedItems, as as readSessionFeedSnapshot, aO as recordOpenAIUsageSpend, aM as toGranularHttpBase } from './spend-lJDtuAr6.mjs';
1
+ export { E as Environment, a as EnvironmentSession, G as Granular, O as OntologyHandle, S as Session, W as WSClient, i as isGraphQLMutationDocument } from './client-6d1OsWJf.mjs';
2
+ import { E as EnvironmentData, a as EnvironmentRecordImportSummary, b as EndpointMode, c as EffectCommitRequest, C as CommitReceipt, T as ToolWithHandler, P as ProjectionResult, d as ProjectionMapper, e as CommitTransitionOutcomeDeclaration, f as CommitDeclaration, g as EffectHandlerContext, F as FeedPublishTransport, M as ManifestEffectMetamodelSpec, R as ResolvedEffectBehaviors, h as RecordObjectOptions, i as ManifestContent, j as CommitTransitionInvocation, S as SessionHeapEntry, k as SessionHeapList, l as FeedItem, m as SessionHeapSnapshot, n as Prompt, o as SessionTranscriptEntry, A as ArtifactWorkflowNode, p as ArtifactWorkflowNodeStatus, q as ArtifactWorkflow, r as SessionArtifactRecord } from './spend-DBRQOSaj.mjs';
3
+ export { ew as APIError, aW as AccessTokenProvider, a0 as ActionSuggestionFeedItem, b1 as AdoptEnvironmentOptions, bO as AgentCommitStatus, cZ as ArtifactApprovalDecisionInput, c_ as ArtifactApprovalDecisionResult, cX as ArtifactApprovalTask, cY as ArtifactApprovalTaskListOptions, cW as ArtifactApprovalTaskStatus, Y as ArtifactFeedItem, c2 as ArtifactOptionsHandler, cH as ArtifactWorkflowAttention, cC as ArtifactWorkflowCompletionState, cD as ArtifactWorkflowNodeAvailability, cB as ArtifactWorkflowNodeKind, cE as ArtifactWorkflowOperationPhase, cG as ArtifactWorkflowRecap, cF as ArtifactWorkflowRecapItem, bn as Assignment, bo as AssignmentListResponse, cq as AssistantReplyPublicationInput, cr as AssistantReplyPublicationResult, bL as BaseProjectionResult, bx as Build, bz as BuildListResponse, bp as BuildPolicy, bw as BuildStatus, bG as CanonicalProjectedRecord, bP as CommitChangeReceipt, bE as CommitSafeError, bQ as CommitTransitionReceipt, aS as ConditionIR, b2 as ConnectOptions, b4 as ConversationSessionInfo, b6 as ConversationSessionListOptions, b7 as ConversationSessionListResponse, b5 as ConversationSessionListStatus, bs as CreateEnvironmentData, bl as CreatePermissionProfileData, bh as CreateSandboxData, b3 as CreateSessionOptions, dG as DefineRelationshipOptions, ex as DeleteResponse, D as DomainState, b_ as EffectArtifactOptionsInvocation, c0 as EffectArtifactRelationshipOption, c1 as EffectArtifactRelationshipOptionsResult, bU as EffectCommitContext, cb as EffectHandler, c8 as EffectInfo, b$ as EffectInvocationMetadata, bZ as EffectInvocationMode, bM as EffectProjectionResult, c3 as EffectSchema, c6 as EffectVersionSelector, c4 as EffectWithHandler, ca as EffectsChangedEvent, cj as EnvironmentFeedbackRecord, e1 as EnvironmentImporter, e0 as EnvironmentImporterImportOptions, bt as EnvironmentListResponse, d$ as EnvironmentSetupImporterClaim, dZ as EnvironmentSetupLifecycleStatus, d_ as EnvironmentSetupSummary, dX as EnvironmentSetupTriggerReason, dL as EnvironmentStateMachineProxy, dJ as EnvironmentStateObservationInput, dM as EnvironmentStateProxy, dI as EnvironmentStateTarget, dK as EnvironmentStateUpdateInput, bR as ExternalCommitOptions, ag as FeedDiagnostic, ah as FeedDiagnosticListener, ao as FeedDocumentState, y as FeedFeedbackTone, Z as FeedFileSource, x as FeedIconToken, H as FeedItemBase, B as FeedItemKind, a7 as FeedListOptions, ae as FeedListTransport, L as FeedObjectReference, a8 as FeedPage, az as FeedPublisher, a6 as FeedSnapshot, af as FeedSnapshotRegressionReason, w as FeedSource, v as FeedSourceActor, a9 as FeedSubscribeOptions, aa as FeedSubscriptionChange, N as FeedTableCell, Q as FeedTableColumn, W as FeedTableProjection, V as FeedTableRow, U as FeedTableRowReference, G as FeedTarget, z as FeedTransientFeedbackTone, dA as FeedTransientPatchMessage, K as FeedbackFeedItem, _ as FileFeedItem, ai as GRANULAR_FEED_DIAGNOSTIC_EVENT, aY as GranularAuth, aX as GranularOptions, be as GranularQuotaPolicy, bf as GranularQuotaProgress, aI as GranularSpendContext, ev as GraphQLResult, cc as InstanceEffectHandler, I as InstanceToolHandler, cl as Job, dz as JobActionTraceMessage, ch as JobFeedbackInput, cg as JobFeedbackMetadata, ci as JobFeedbackRecord, ce as JobFeedbackSentiment, cf as JobFeedbackToolCall, cd as JobStatus, ck as JobSubmitResult, bu as Manifest, el as ManifestApprovalRequiredSpec, em as ManifestCreatesSpec, ej as ManifestDryRunSpec, ep as ManifestEffectDeclaration, eo as ManifestEffectSchema, e4 as ManifestEnumRuleSpec, er as ManifestEventStreamDef, eq as ManifestEventTypeDef, e5 as ManifestFilterBySpec, et as ManifestImport, bv as ManifestListResponse, es as ManifestOperation, ei as ManifestPostConditionSpec, e2 as ManifestPropertySpec, en as ManifestRelationshipDef, ek as ManifestReverseSpec, eh as ManifestStateMachineSpec, e7 as ManifestStateMachineStateSpec, eg as ManifestStateMachineTransitionSpec, e9 as ManifestStateTransitionActionSpec, ea as ManifestStateTransitionAssigneeSpec, ee as ManifestStateTransitionExpectedOutcomeSpec, e8 as ManifestStateTransitionInputBinding, ef as ManifestStateTransitionOutcomeSpec, ed as ManifestStateTransitionPermissionSpec, eb as ManifestStateTransitionRelatedStateRequirementSpec, ec as ManifestStateTransitionRequirementsSpec, e3 as ManifestValidationOperator, e6 as ManifestValidationRuleSpec, eu as ManifestVolume, d6 as ManualActionListOptions, d4 as ManualActionOccurrence, d5 as ManualActionRecordResult, d2 as ManualActionRelatedRecord, d0 as ManualActionSource, c$ as ManualActionStatus, d7 as ManualActionSuggestion, d8 as ManualActionSuggestionOptions, d1 as ManualActionTarget, ds as MarkUserEnvironmentReadOptions, aV as MatchedPolicy, J as MessageFeedItem, dE as ModelRef, aC as NormalizedOpenAIUsage, $ as NormalizedSuggestedArtifact, aE as OPENAI_MODEL_PRICING_USD_PER_MILLION, bH as ObjectProjectionChange, bC as ObjectReference, O as ObjectsFeedItem, bS as ObservationReceipt, aB as OpenAIModelPricing, aD as OpenAITokenSpend, aJ as OpenAIUsageSpendEvent, b0 as OpenEnvironmentOptions, bk as PermissionProfile, bm as PermissionProfileListResponse, bj as PermissionRules, aR as PolicyOperator, aT as PolicyOrigin, aQ as PolicyPredicateSource, aU as PolicyRuleIR, aP as PolicySource, bK as ProjectionChange, a1 as PromptFeedItem, c5 as PublishEffectsResult, av as PublishFeedbackOptions, t as PublishToolsResult, aw as PublishTransientFeedbackOptions, bd as QuotaLineItemFilter, ba as QuotaPeriod, b9 as QuotaScopeType, bb as QuotaStatus, dw as RPCRequest, dB as RPCRequestFromServer, dx as RPCResponse, dW as RecordImport, dV as RecordImportItem, dT as RecordImportItemStatus, dR as RecordImportOptions, dU as RecordImportStats, dS as RecordImportStatus, dQ as RecordImportWriteMode, d3 as RecordManualActionInput, dg as RecordMentionInput, dN as RecordObjectResult, dH as RecordObjectStateValue, dO as RecordObjectsChunkInfo, dP as RecordObjectsOptions, aK as RecordOpenAIUsageSpendOptions, aL as RecordOpenAIUsageSpendResult, df as RecordSearchOptions, de as RecordSearchResult, a_ as RecordUserOptions, dF as RelationshipInfo, bI as RelationshipProjectionChange, bY as ResolvedEffectApprovalRequired, bW as ResolvedEffectDryRun, bV as ResolvedEffectPostCondition, bX as ResolvedEffectReverse, dY as RunEnvironmentImporterOptions, bg as Sandbox, bi as SandboxListResponse, bB as SemanticVersionDiff, bA as SemanticVersionDiffEntry, cV as SessionArtifactApprovalOptions, cI as SessionArtifactAutonomyPolicy, cU as SessionArtifactExecutionOptions, cT as SessionArtifactExecutionResult, cM as SessionArtifactFieldProvenance, cJ as SessionArtifactFieldProvenanceSource, cA as SessionArtifactKind, cN as SessionArtifactListOptions, cS as SessionArtifactRelationshipCreateInput, cQ as SessionArtifactRelationshipOption, cP as SessionArtifactRelationshipOptionsInput, cR as SessionArtifactRelationshipOptionsResult, cL as SessionArtifactRequestContext, cK as SessionArtifactRequestContextSource, cz as SessionArtifactStatus, cO as SessionArtifactValidationResult, di as SessionCollectionListOptions, dk as SessionCollectionListResult, dh as SessionDocumentResult, ab as SessionFeedApi, au as SessionFeedController, an as SessionFeedControllerOptions, cw as SessionFileKind, cy as SessionFileRecord, cv as SessionFileSource, cx as SessionFileStatus, d9 as SessionFileUploadOptions, db as SessionHeapFieldType, dc as SessionHeapFieldValue, dd as SessionHeapVariable, dj as SessionJobListOptions, da as SessionJobRecord, bT as SessionMutationView, cu as SessionTimelineEvent, cs as SessionTranscriptActionSuggestion, ct as SessionTranscriptShowRefs, ax as SettleTransientFeedbackOptions, dy as SnapshotResetMessage, bD as SourceAcknowledgement, b8 as SpendLineItemType, bc as SpendSummary, bJ as StateObservationProjectionChange, ey as StreamEvent, eA as StreamStats, ez as StreamSubscription, a$ as Subject, X as TableFeedItem, u as ToolHandler, c7 as ToolInfo, dC as ToolInvokeParams, dD as ToolResultParams, s as ToolSchema, c9 as ToolsChangedEvent, a5 as TransientFeedItem, a2 as TransientFeedItemBase, a4 as TransientFeedbackFeedItem, ay as TransientFeedbackHandle, a3 as TransientMessageFeedItem, bF as TransitionOutcomeProjection, bN as TransitionProjectionResult, aZ as User, dn as UserEnvironmentArtifactAttention, dm as UserEnvironmentMessagePreview, dl as UserEnvironmentPrompt, dp as UserEnvironmentSessionState, dq as UserEnvironmentState, dr as UserEnvironmentStateOptions, cp as UserMessageAppendResult, co as UserMessageInput, cm as UserMessageShowRefs, cn as UserMessageTarget, by as Version, br as VersionTag, bq as VersionTracking, dv as WSClientOptions, dt as WSDisconnectInfo, du as WSReconnectErrorInfo, aN as buildOpenAISpendEventId, aH as calculateOpenAITokenSpend, aA as createFeedPublisher, am as emitFeedDiagnostic, al as emitFeedDiagnosticToDefaultSink, ap as emptyFeedSnapshot, aF as getOpenAIModelPricing, aq as hasCanonicalSessionFeedActivation, ar as isCanonicalSessionFeedDocument, ac as mergeFeedItemsBySequence, ak as normalizeFeedDiagnostic, aj as normalizeFeedDiagnosticKind, at as normalizeFeedPage, aG as normalizeOpenAIUsage, ad as orderTransientFeedItems, as as readSessionFeedSnapshot, aO as recordOpenAIUsageSpend, aM as toGranularHttpBase } from './spend-DBRQOSaj.mjs';
4
4
  export { BuildGranularAgentSystemPromptInput, GeneratedJobCodeIssue, GranularAgentExecutionCheckpoint, GranularAgentHeapSummaryOptions, GranularAgentManualActionMemorySuggestion, GranularAgentPromptCapabilities, GranularAgentReferentFocus, GranularAgentSessionContext, GranularAgentToolInfo, GranularAgentWorkflowFocus, GranularReasoningTraceChunkResult, GranularReasoningTraceOptions, HarnessContinuationDecision, HarnessControllerBudgets, HarnessProjectionOptions, HarnessPromptLike, HarnessRenderedContinuation, HarnessRenderedPrompt, HarnessTemplate, HarnessTemplateManifest, HarnessTemplateSelectionOptions, HarnessTemplateStatus, HarnessVerifierSnapshot, HarnessVerifierSnapshotInput, ReviewGeneratedJobCodeOptions, buildContinuationInstruction, buildContinuationInstructionFromTemplate, buildGranularAgentCheckpointBlock, buildGranularAgentDomainBlock, buildGranularAgentFileBlock, buildGranularAgentHeapBlock, buildGranularAgentLoopBlock, buildGranularAgentManualActionBlock, buildGranularAgentManualActionMemorySummary, buildGranularAgentReferentBlock, buildGranularAgentRuntimeImportsBlock, buildGranularAgentSessionBlock, buildGranularAgentSystemPrompt, buildGranularAgentSystemPromptFromTemplate, buildGranularAgentToolBlock, buildGranularAgentWorkflowBlock, consumeGranularReasoningOnlyChunk, consumeGranularReasoningTraceChunk, createHarnessVerifierSnapshot, evaluateContinuation, getCurrentClosureId, getDefaultHarnessTemplateId, getExclusivePromptTarget, hasOpenPrompt, hashHarnessTemplateValue, listHarnessTemplates, projectConversationReferentFocus, projectConversationReferentSummary, projectHeapSummary, projectLoopSummary, projectSessionFileSummary, projectWorkflowFocus, projectWorkflowSummary, renderContinuationInstructionFromTemplate, renderGranularAgentSystemPromptFromTemplate, resolveHarnessTemplate, reviewGeneratedJobCode, stripGranularReasoningTrace, validateHarnessTemplateManifest } from './agent-harness.mjs';
5
5
  import '@automerge/automerge';
6
6
  import '@automerge/automerge/slim';
@@ -139,6 +139,8 @@ interface RecordSnapshotCommitSource {
139
139
  * persisting bounded, replayable mapper input beside a product mutation.
140
140
  */
141
141
  declare function changedRecordSnapshots(beforeRecords: RecordObjectOptions[], afterRecords: RecordObjectOptions[]): Pick<RecordSnapshotCommitSource, "beforeRecords" | "afterRecords">;
142
+ /** Validate automatic state-based mapping before invoking product code. */
143
+ declare function assertRecordSnapshotTransitionMapping(transition: CommitTransitionInvocation | undefined): asserts transition is CommitTransitionInvocation;
142
144
  /**
143
145
  * Deterministically maps a persisted before/after product snapshot to commit
144
146
  * changes. It performs no I/O and never guesses ontology labels or paths.
@@ -152,6 +154,9 @@ declare function projectRecordSnapshotMutation(input: {
152
154
  commitKind: "effect" | "transition";
153
155
  transition?: CommitTransitionInvocation;
154
156
  }): ProjectionResult;
157
+ declare namespace projectRecordSnapshotMutation {
158
+ var validateTransition: typeof assertRecordSnapshotTransitionMapping;
159
+ }
155
160
 
156
161
  interface ValidationRuleEvaluationInput {
157
162
  operator?: string | null;
@@ -336,6 +341,24 @@ declare function requireArtifactWorkflowResult<T extends {
336
341
  artifact: ArtifactLike;
337
342
  }>(result: T): T;
338
343
 
344
+ /** The prepared operation a person reviews, independent of runtime progress. */
345
+ declare function artifactReviewedOperation(artifact: {
346
+ artifactId: string;
347
+ sessionId?: string | null;
348
+ environmentId?: string | null;
349
+ subjectId?: string | null;
350
+ buildId?: string | null;
351
+ buildVersionNumber?: number | null;
352
+ kind: string;
353
+ target?: unknown;
354
+ policy?: unknown;
355
+ inputSchema?: unknown;
356
+ inputValues?: Record<string, unknown>;
357
+ relationships?: Record<string, unknown>;
358
+ metadata?: Record<string, unknown>;
359
+ subArtifactIds?: string[];
360
+ }, inputValues?: Record<string, unknown>, relationships?: Record<string, unknown>): Record<string, unknown>;
361
+
339
362
  type ArtifactSurfaceKind = "input" | "review" | "executing" | "approval" | "blocked" | "failure" | "partial" | "result" | "canceled" | "stale";
340
363
  type ArtifactSurfaceActionId = "continue" | "edit" | "execute" | "approve" | "decline" | "retry" | "refresh" | "check_status" | "close";
341
364
  interface ArtifactSurfaceAction {
@@ -374,4 +397,4 @@ interface ArtifactSurfaceModel {
374
397
  }
375
398
  declare function selectArtifactSurface(artifact: SessionArtifactRecord, context?: ArtifactSurfaceContext): ArtifactSurfaceModel;
376
399
 
377
- export { type ArtifactSurfaceAction, type ArtifactSurfaceActionId, type ArtifactSurfaceContext, type ArtifactSurfaceKind, type ArtifactSurfaceModel, ArtifactWorkflow, ArtifactWorkflowNode, ArtifactWorkflowNodeStatus, CommitDeclaration, CommitReceipt, CommitTransitionInvocation, CommitTransitionOutcomeDeclaration, type CommitTransport, type ConditionalPolicySpec, type DefinedStateMachine, EffectCommitRequest, EffectHandlerContext, EndpointMode, EnvironmentData, EnvironmentRecordImportSummary, type EnvironmentSetupPollInput, type EnvironmentSetupProgress, type EnvironmentSetupRequestError, type EnvironmentSetupResponse, FeedItem, FeedPublishTransport, type JobPresentation, type LimitPolicySpec, ManifestContent, ManifestEffectMetamodelSpec, type NormalizedPromptChoiceOption, type PermissionActionSpec, type PermissionPolicySpec, type PermissionProfileFile, type PolicyDecision, type PolicyEvaluationContext, type PolicyOutcome, ProjectionMapper, ProjectionResult, Prompt, RecordObjectOptions, type RecordSnapshotCommitSource, ResolvedEffectBehaviors, SessionArtifactRecord, SessionHeapEntry, SessionHeapList, SessionHeapSnapshot, SessionTranscriptEntry, type StateMachineDefinition, ToolWithHandler, type ValidationRuleEvaluationInput, type ValidationRuleEvaluationResult, assertArtifactWorkflow, buildSessionTranscript, buildSessionTranscriptFromFeedItems, canInspectArtifactWorkflowNode, canonicalizeCommitValue, changedRecordSnapshots, defineEffect, defineProjection, defineStateMachine, environmentSetupProgressFromError, environmentSetupProgressFromResponse, evaluateValidationRule, extractPromptTokens, getArtifactWorkflowNavigationLeaves, getArtifactWorkflowNavigationTarget, getArtifactWorkflowNodes, getCurrentArtifactWorkflowNode, invokeRegisteredEffect, isArtifactWorkflowNodeNavigableLeaf, isArtifactWorkflowNodeTerminal, isLocalApiUrl, normalizeEffectBehaviors, normalizePrompt, normalizePromptChoiceOption, normalizePromptText, normalizePromptType, pollEnvironmentSetup, projectArtifactWorkflow, projectRecordSnapshotMutation, requireArtifactWorkflow, requireArtifactWorkflowResult, resolveApiUrl, resolveAuthTokenForApiUrl, resolveJobPresentation, resolvePromptAnswer, scorePromptChoiceMatch, selectArtifactSurface, validateProjectionResult, validationRuleFailureMessage };
400
+ export { type ArtifactSurfaceAction, type ArtifactSurfaceActionId, type ArtifactSurfaceContext, type ArtifactSurfaceKind, type ArtifactSurfaceModel, ArtifactWorkflow, ArtifactWorkflowNode, ArtifactWorkflowNodeStatus, CommitDeclaration, CommitReceipt, CommitTransitionInvocation, CommitTransitionOutcomeDeclaration, type CommitTransport, type ConditionalPolicySpec, type DefinedStateMachine, EffectCommitRequest, EffectHandlerContext, EndpointMode, EnvironmentData, EnvironmentRecordImportSummary, type EnvironmentSetupPollInput, type EnvironmentSetupProgress, type EnvironmentSetupRequestError, type EnvironmentSetupResponse, FeedItem, FeedPublishTransport, type JobPresentation, type LimitPolicySpec, ManifestContent, ManifestEffectMetamodelSpec, type NormalizedPromptChoiceOption, type PermissionActionSpec, type PermissionPolicySpec, type PermissionProfileFile, type PolicyDecision, type PolicyEvaluationContext, type PolicyOutcome, ProjectionMapper, ProjectionResult, Prompt, RecordObjectOptions, type RecordSnapshotCommitSource, ResolvedEffectBehaviors, SessionArtifactRecord, SessionHeapEntry, SessionHeapList, SessionHeapSnapshot, SessionTranscriptEntry, type StateMachineDefinition, ToolWithHandler, type ValidationRuleEvaluationInput, type ValidationRuleEvaluationResult, artifactReviewedOperation, assertArtifactWorkflow, buildSessionTranscript, buildSessionTranscriptFromFeedItems, canInspectArtifactWorkflowNode, canonicalizeCommitValue, changedRecordSnapshots, defineEffect, defineProjection, defineStateMachine, environmentSetupProgressFromError, environmentSetupProgressFromResponse, evaluateValidationRule, extractPromptTokens, getArtifactWorkflowNavigationLeaves, getArtifactWorkflowNavigationTarget, getArtifactWorkflowNodes, getCurrentArtifactWorkflowNode, invokeRegisteredEffect, isArtifactWorkflowNodeNavigableLeaf, isArtifactWorkflowNodeTerminal, isLocalApiUrl, normalizeEffectBehaviors, normalizePrompt, normalizePromptChoiceOption, normalizePromptText, normalizePromptType, pollEnvironmentSetup, projectArtifactWorkflow, projectRecordSnapshotMutation, requireArtifactWorkflow, requireArtifactWorkflowResult, resolveApiUrl, resolveAuthTokenForApiUrl, resolveJobPresentation, resolvePromptAnswer, scorePromptChoiceMatch, selectArtifactSurface, validateProjectionResult, validationRuleFailureMessage };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export { E as Environment, a as EnvironmentSession, G as Granular, O as OntologyHandle, S as Session, W as WSClient, i as isGraphQLMutationDocument } from './client-JCISbded.js';
2
- import { E as EnvironmentData, a as EnvironmentRecordImportSummary, b as EndpointMode, c as EffectCommitRequest, C as CommitReceipt, T as ToolWithHandler, P as ProjectionResult, d as ProjectionMapper, e as CommitTransitionOutcomeDeclaration, f as CommitDeclaration, g as EffectHandlerContext, F as FeedPublishTransport, M as ManifestEffectMetamodelSpec, R as ResolvedEffectBehaviors, h as RecordObjectOptions, i as ManifestContent, j as CommitTransitionInvocation, S as SessionHeapEntry, k as SessionHeapList, l as FeedItem, m as SessionHeapSnapshot, n as Prompt, o as SessionTranscriptEntry, A as ArtifactWorkflowNode, p as ArtifactWorkflowNodeStatus, q as ArtifactWorkflow, r as SessionArtifactRecord } from './spend-lJDtuAr6.js';
3
- export { ev as APIError, aW as AccessTokenProvider, a0 as ActionSuggestionFeedItem, b1 as AdoptEnvironmentOptions, bO as AgentCommitStatus, cZ as ArtifactApprovalDecisionInput, c_ as ArtifactApprovalDecisionResult, cX as ArtifactApprovalTask, cY as ArtifactApprovalTaskListOptions, cW as ArtifactApprovalTaskStatus, Y as ArtifactFeedItem, c2 as ArtifactOptionsHandler, cH as ArtifactWorkflowAttention, cC as ArtifactWorkflowCompletionState, cD as ArtifactWorkflowNodeAvailability, cB as ArtifactWorkflowNodeKind, cE as ArtifactWorkflowOperationPhase, cG as ArtifactWorkflowRecap, cF as ArtifactWorkflowRecapItem, bn as Assignment, bo as AssignmentListResponse, cq as AssistantReplyPublicationInput, cr as AssistantReplyPublicationResult, bL as BaseProjectionResult, bx as Build, bz as BuildListResponse, bp as BuildPolicy, bw as BuildStatus, bG as CanonicalProjectedRecord, bP as CommitChangeReceipt, bE as CommitSafeError, bQ as CommitTransitionReceipt, aS as ConditionIR, b2 as ConnectOptions, b4 as ConversationSessionInfo, b6 as ConversationSessionListOptions, b7 as ConversationSessionListResponse, b5 as ConversationSessionListStatus, bs as CreateEnvironmentData, bl as CreatePermissionProfileData, bh as CreateSandboxData, b3 as CreateSessionOptions, dF as DefineRelationshipOptions, ew as DeleteResponse, D as DomainState, b_ as EffectArtifactOptionsInvocation, c0 as EffectArtifactRelationshipOption, c1 as EffectArtifactRelationshipOptionsResult, bU as EffectCommitContext, cb as EffectHandler, c8 as EffectInfo, b$ as EffectInvocationMetadata, bZ as EffectInvocationMode, bM as EffectProjectionResult, c3 as EffectSchema, c6 as EffectVersionSelector, c4 as EffectWithHandler, ca as EffectsChangedEvent, cj as EnvironmentFeedbackRecord, e0 as EnvironmentImporter, d$ as EnvironmentImporterImportOptions, bt as EnvironmentListResponse, d_ as EnvironmentSetupImporterClaim, dY as EnvironmentSetupLifecycleStatus, dZ as EnvironmentSetupSummary, dW as EnvironmentSetupTriggerReason, dK as EnvironmentStateMachineProxy, dI as EnvironmentStateObservationInput, dL as EnvironmentStateProxy, dH as EnvironmentStateTarget, dJ as EnvironmentStateUpdateInput, bR as ExternalCommitOptions, ag as FeedDiagnostic, ah as FeedDiagnosticListener, ao as FeedDocumentState, y as FeedFeedbackTone, Z as FeedFileSource, x as FeedIconToken, H as FeedItemBase, B as FeedItemKind, a7 as FeedListOptions, ae as FeedListTransport, L as FeedObjectReference, a8 as FeedPage, az as FeedPublisher, a6 as FeedSnapshot, af as FeedSnapshotRegressionReason, w as FeedSource, v as FeedSourceActor, a9 as FeedSubscribeOptions, aa as FeedSubscriptionChange, N as FeedTableCell, Q as FeedTableColumn, W as FeedTableProjection, V as FeedTableRow, U as FeedTableRowReference, G as FeedTarget, z as FeedTransientFeedbackTone, dz as FeedTransientPatchMessage, K as FeedbackFeedItem, _ as FileFeedItem, ai as GRANULAR_FEED_DIAGNOSTIC_EVENT, aY as GranularAuth, aX as GranularOptions, be as GranularQuotaPolicy, bf as GranularQuotaProgress, aI as GranularSpendContext, eu as GraphQLResult, cc as InstanceEffectHandler, I as InstanceToolHandler, cl as Job, dy as JobActionTraceMessage, ch as JobFeedbackInput, cg as JobFeedbackMetadata, ci as JobFeedbackRecord, ce as JobFeedbackSentiment, cf as JobFeedbackToolCall, cd as JobStatus, ck as JobSubmitResult, bu as Manifest, ek as ManifestApprovalRequiredSpec, el as ManifestCreatesSpec, ei as ManifestDryRunSpec, eo as ManifestEffectDeclaration, en as ManifestEffectSchema, e3 as ManifestEnumRuleSpec, eq as ManifestEventStreamDef, ep as ManifestEventTypeDef, e4 as ManifestFilterBySpec, es as ManifestImport, bv as ManifestListResponse, er as ManifestOperation, eh as ManifestPostConditionSpec, e1 as ManifestPropertySpec, em as ManifestRelationshipDef, ej as ManifestReverseSpec, eg as ManifestStateMachineSpec, e6 as ManifestStateMachineStateSpec, ef as ManifestStateMachineTransitionSpec, e8 as ManifestStateTransitionActionSpec, e9 as ManifestStateTransitionAssigneeSpec, ed as ManifestStateTransitionExpectedOutcomeSpec, e7 as ManifestStateTransitionInputBinding, ee as ManifestStateTransitionOutcomeSpec, ec as ManifestStateTransitionPermissionSpec, ea as ManifestStateTransitionRelatedStateRequirementSpec, eb as ManifestStateTransitionRequirementsSpec, e2 as ManifestValidationOperator, e5 as ManifestValidationRuleSpec, et as ManifestVolume, d6 as ManualActionListOptions, d4 as ManualActionOccurrence, d5 as ManualActionRecordResult, d2 as ManualActionRelatedRecord, d0 as ManualActionSource, c$ as ManualActionStatus, d7 as ManualActionSuggestion, d8 as ManualActionSuggestionOptions, d1 as ManualActionTarget, dr as MarkUserEnvironmentReadOptions, aV as MatchedPolicy, J as MessageFeedItem, dD as ModelRef, aC as NormalizedOpenAIUsage, $ as NormalizedSuggestedArtifact, aE as OPENAI_MODEL_PRICING_USD_PER_MILLION, bH as ObjectProjectionChange, bC as ObjectReference, O as ObjectsFeedItem, bS as ObservationReceipt, aB as OpenAIModelPricing, aD as OpenAITokenSpend, aJ as OpenAIUsageSpendEvent, b0 as OpenEnvironmentOptions, bk as PermissionProfile, bm as PermissionProfileListResponse, bj as PermissionRules, aR as PolicyOperator, aT as PolicyOrigin, aQ as PolicyPredicateSource, aU as PolicyRuleIR, aP as PolicySource, bK as ProjectionChange, a1 as PromptFeedItem, c5 as PublishEffectsResult, av as PublishFeedbackOptions, t as PublishToolsResult, aw as PublishTransientFeedbackOptions, bd as QuotaLineItemFilter, ba as QuotaPeriod, b9 as QuotaScopeType, bb as QuotaStatus, dv as RPCRequest, dA as RPCRequestFromServer, dw as RPCResponse, dV as RecordImport, dU as RecordImportItem, dS as RecordImportItemStatus, dQ as RecordImportOptions, dT as RecordImportStats, dR as RecordImportStatus, dP as RecordImportWriteMode, d3 as RecordManualActionInput, dg as RecordMentionInput, dM as RecordObjectResult, dG as RecordObjectStateValue, dN as RecordObjectsChunkInfo, dO as RecordObjectsOptions, aK as RecordOpenAIUsageSpendOptions, aL as RecordOpenAIUsageSpendResult, df as RecordSearchOptions, de as RecordSearchResult, a_ as RecordUserOptions, dE as RelationshipInfo, bI as RelationshipProjectionChange, bY as ResolvedEffectApprovalRequired, bW as ResolvedEffectDryRun, bV as ResolvedEffectPostCondition, bX as ResolvedEffectReverse, dX as RunEnvironmentImporterOptions, bg as Sandbox, bi as SandboxListResponse, bB as SemanticVersionDiff, bA as SemanticVersionDiffEntry, cV as SessionArtifactApprovalOptions, cI as SessionArtifactAutonomyPolicy, cU as SessionArtifactExecutionOptions, cT as SessionArtifactExecutionResult, cM as SessionArtifactFieldProvenance, cJ as SessionArtifactFieldProvenanceSource, cA as SessionArtifactKind, cN as SessionArtifactListOptions, cS as SessionArtifactRelationshipCreateInput, cQ as SessionArtifactRelationshipOption, cP as SessionArtifactRelationshipOptionsInput, cR as SessionArtifactRelationshipOptionsResult, cL as SessionArtifactRequestContext, cK as SessionArtifactRequestContextSource, cz as SessionArtifactStatus, cO as SessionArtifactValidationResult, di as SessionCollectionListOptions, dk as SessionCollectionListResult, dh as SessionDocumentResult, ab as SessionFeedApi, au as SessionFeedController, an as SessionFeedControllerOptions, cw as SessionFileKind, cy as SessionFileRecord, cv as SessionFileSource, cx as SessionFileStatus, d9 as SessionFileUploadOptions, db as SessionHeapFieldType, dc as SessionHeapFieldValue, dd as SessionHeapVariable, dj as SessionJobListOptions, da as SessionJobRecord, bT as SessionMutationView, cu as SessionTimelineEvent, cs as SessionTranscriptActionSuggestion, ct as SessionTranscriptShowRefs, ax as SettleTransientFeedbackOptions, dx as SnapshotResetMessage, bD as SourceAcknowledgement, b8 as SpendLineItemType, bc as SpendSummary, bJ as StateObservationProjectionChange, ex as StreamEvent, ez as StreamStats, ey as StreamSubscription, a$ as Subject, X as TableFeedItem, u as ToolHandler, c7 as ToolInfo, dB as ToolInvokeParams, dC as ToolResultParams, s as ToolSchema, c9 as ToolsChangedEvent, a5 as TransientFeedItem, a2 as TransientFeedItemBase, a4 as TransientFeedbackFeedItem, ay as TransientFeedbackHandle, a3 as TransientMessageFeedItem, bF as TransitionOutcomeProjection, bN as TransitionProjectionResult, aZ as User, dm as UserEnvironmentMessagePreview, dl as UserEnvironmentPrompt, dn as UserEnvironmentSessionState, dp as UserEnvironmentState, dq as UserEnvironmentStateOptions, cp as UserMessageAppendResult, co as UserMessageInput, cm as UserMessageShowRefs, cn as UserMessageTarget, by as Version, br as VersionTag, bq as VersionTracking, du as WSClientOptions, ds as WSDisconnectInfo, dt as WSReconnectErrorInfo, aN as buildOpenAISpendEventId, aH as calculateOpenAITokenSpend, aA as createFeedPublisher, am as emitFeedDiagnostic, al as emitFeedDiagnosticToDefaultSink, ap as emptyFeedSnapshot, aF as getOpenAIModelPricing, aq as hasCanonicalSessionFeedActivation, ar as isCanonicalSessionFeedDocument, ac as mergeFeedItemsBySequence, ak as normalizeFeedDiagnostic, aj as normalizeFeedDiagnosticKind, at as normalizeFeedPage, aG as normalizeOpenAIUsage, ad as orderTransientFeedItems, as as readSessionFeedSnapshot, aO as recordOpenAIUsageSpend, aM as toGranularHttpBase } from './spend-lJDtuAr6.js';
1
+ export { E as Environment, a as EnvironmentSession, G as Granular, O as OntologyHandle, S as Session, W as WSClient, i as isGraphQLMutationDocument } from './client-DdEXINlv.js';
2
+ import { E as EnvironmentData, a as EnvironmentRecordImportSummary, b as EndpointMode, c as EffectCommitRequest, C as CommitReceipt, T as ToolWithHandler, P as ProjectionResult, d as ProjectionMapper, e as CommitTransitionOutcomeDeclaration, f as CommitDeclaration, g as EffectHandlerContext, F as FeedPublishTransport, M as ManifestEffectMetamodelSpec, R as ResolvedEffectBehaviors, h as RecordObjectOptions, i as ManifestContent, j as CommitTransitionInvocation, S as SessionHeapEntry, k as SessionHeapList, l as FeedItem, m as SessionHeapSnapshot, n as Prompt, o as SessionTranscriptEntry, A as ArtifactWorkflowNode, p as ArtifactWorkflowNodeStatus, q as ArtifactWorkflow, r as SessionArtifactRecord } from './spend-DBRQOSaj.js';
3
+ export { ew as APIError, aW as AccessTokenProvider, a0 as ActionSuggestionFeedItem, b1 as AdoptEnvironmentOptions, bO as AgentCommitStatus, cZ as ArtifactApprovalDecisionInput, c_ as ArtifactApprovalDecisionResult, cX as ArtifactApprovalTask, cY as ArtifactApprovalTaskListOptions, cW as ArtifactApprovalTaskStatus, Y as ArtifactFeedItem, c2 as ArtifactOptionsHandler, cH as ArtifactWorkflowAttention, cC as ArtifactWorkflowCompletionState, cD as ArtifactWorkflowNodeAvailability, cB as ArtifactWorkflowNodeKind, cE as ArtifactWorkflowOperationPhase, cG as ArtifactWorkflowRecap, cF as ArtifactWorkflowRecapItem, bn as Assignment, bo as AssignmentListResponse, cq as AssistantReplyPublicationInput, cr as AssistantReplyPublicationResult, bL as BaseProjectionResult, bx as Build, bz as BuildListResponse, bp as BuildPolicy, bw as BuildStatus, bG as CanonicalProjectedRecord, bP as CommitChangeReceipt, bE as CommitSafeError, bQ as CommitTransitionReceipt, aS as ConditionIR, b2 as ConnectOptions, b4 as ConversationSessionInfo, b6 as ConversationSessionListOptions, b7 as ConversationSessionListResponse, b5 as ConversationSessionListStatus, bs as CreateEnvironmentData, bl as CreatePermissionProfileData, bh as CreateSandboxData, b3 as CreateSessionOptions, dG as DefineRelationshipOptions, ex as DeleteResponse, D as DomainState, b_ as EffectArtifactOptionsInvocation, c0 as EffectArtifactRelationshipOption, c1 as EffectArtifactRelationshipOptionsResult, bU as EffectCommitContext, cb as EffectHandler, c8 as EffectInfo, b$ as EffectInvocationMetadata, bZ as EffectInvocationMode, bM as EffectProjectionResult, c3 as EffectSchema, c6 as EffectVersionSelector, c4 as EffectWithHandler, ca as EffectsChangedEvent, cj as EnvironmentFeedbackRecord, e1 as EnvironmentImporter, e0 as EnvironmentImporterImportOptions, bt as EnvironmentListResponse, d$ as EnvironmentSetupImporterClaim, dZ as EnvironmentSetupLifecycleStatus, d_ as EnvironmentSetupSummary, dX as EnvironmentSetupTriggerReason, dL as EnvironmentStateMachineProxy, dJ as EnvironmentStateObservationInput, dM as EnvironmentStateProxy, dI as EnvironmentStateTarget, dK as EnvironmentStateUpdateInput, bR as ExternalCommitOptions, ag as FeedDiagnostic, ah as FeedDiagnosticListener, ao as FeedDocumentState, y as FeedFeedbackTone, Z as FeedFileSource, x as FeedIconToken, H as FeedItemBase, B as FeedItemKind, a7 as FeedListOptions, ae as FeedListTransport, L as FeedObjectReference, a8 as FeedPage, az as FeedPublisher, a6 as FeedSnapshot, af as FeedSnapshotRegressionReason, w as FeedSource, v as FeedSourceActor, a9 as FeedSubscribeOptions, aa as FeedSubscriptionChange, N as FeedTableCell, Q as FeedTableColumn, W as FeedTableProjection, V as FeedTableRow, U as FeedTableRowReference, G as FeedTarget, z as FeedTransientFeedbackTone, dA as FeedTransientPatchMessage, K as FeedbackFeedItem, _ as FileFeedItem, ai as GRANULAR_FEED_DIAGNOSTIC_EVENT, aY as GranularAuth, aX as GranularOptions, be as GranularQuotaPolicy, bf as GranularQuotaProgress, aI as GranularSpendContext, ev as GraphQLResult, cc as InstanceEffectHandler, I as InstanceToolHandler, cl as Job, dz as JobActionTraceMessage, ch as JobFeedbackInput, cg as JobFeedbackMetadata, ci as JobFeedbackRecord, ce as JobFeedbackSentiment, cf as JobFeedbackToolCall, cd as JobStatus, ck as JobSubmitResult, bu as Manifest, el as ManifestApprovalRequiredSpec, em as ManifestCreatesSpec, ej as ManifestDryRunSpec, ep as ManifestEffectDeclaration, eo as ManifestEffectSchema, e4 as ManifestEnumRuleSpec, er as ManifestEventStreamDef, eq as ManifestEventTypeDef, e5 as ManifestFilterBySpec, et as ManifestImport, bv as ManifestListResponse, es as ManifestOperation, ei as ManifestPostConditionSpec, e2 as ManifestPropertySpec, en as ManifestRelationshipDef, ek as ManifestReverseSpec, eh as ManifestStateMachineSpec, e7 as ManifestStateMachineStateSpec, eg as ManifestStateMachineTransitionSpec, e9 as ManifestStateTransitionActionSpec, ea as ManifestStateTransitionAssigneeSpec, ee as ManifestStateTransitionExpectedOutcomeSpec, e8 as ManifestStateTransitionInputBinding, ef as ManifestStateTransitionOutcomeSpec, ed as ManifestStateTransitionPermissionSpec, eb as ManifestStateTransitionRelatedStateRequirementSpec, ec as ManifestStateTransitionRequirementsSpec, e3 as ManifestValidationOperator, e6 as ManifestValidationRuleSpec, eu as ManifestVolume, d6 as ManualActionListOptions, d4 as ManualActionOccurrence, d5 as ManualActionRecordResult, d2 as ManualActionRelatedRecord, d0 as ManualActionSource, c$ as ManualActionStatus, d7 as ManualActionSuggestion, d8 as ManualActionSuggestionOptions, d1 as ManualActionTarget, ds as MarkUserEnvironmentReadOptions, aV as MatchedPolicy, J as MessageFeedItem, dE as ModelRef, aC as NormalizedOpenAIUsage, $ as NormalizedSuggestedArtifact, aE as OPENAI_MODEL_PRICING_USD_PER_MILLION, bH as ObjectProjectionChange, bC as ObjectReference, O as ObjectsFeedItem, bS as ObservationReceipt, aB as OpenAIModelPricing, aD as OpenAITokenSpend, aJ as OpenAIUsageSpendEvent, b0 as OpenEnvironmentOptions, bk as PermissionProfile, bm as PermissionProfileListResponse, bj as PermissionRules, aR as PolicyOperator, aT as PolicyOrigin, aQ as PolicyPredicateSource, aU as PolicyRuleIR, aP as PolicySource, bK as ProjectionChange, a1 as PromptFeedItem, c5 as PublishEffectsResult, av as PublishFeedbackOptions, t as PublishToolsResult, aw as PublishTransientFeedbackOptions, bd as QuotaLineItemFilter, ba as QuotaPeriod, b9 as QuotaScopeType, bb as QuotaStatus, dw as RPCRequest, dB as RPCRequestFromServer, dx as RPCResponse, dW as RecordImport, dV as RecordImportItem, dT as RecordImportItemStatus, dR as RecordImportOptions, dU as RecordImportStats, dS as RecordImportStatus, dQ as RecordImportWriteMode, d3 as RecordManualActionInput, dg as RecordMentionInput, dN as RecordObjectResult, dH as RecordObjectStateValue, dO as RecordObjectsChunkInfo, dP as RecordObjectsOptions, aK as RecordOpenAIUsageSpendOptions, aL as RecordOpenAIUsageSpendResult, df as RecordSearchOptions, de as RecordSearchResult, a_ as RecordUserOptions, dF as RelationshipInfo, bI as RelationshipProjectionChange, bY as ResolvedEffectApprovalRequired, bW as ResolvedEffectDryRun, bV as ResolvedEffectPostCondition, bX as ResolvedEffectReverse, dY as RunEnvironmentImporterOptions, bg as Sandbox, bi as SandboxListResponse, bB as SemanticVersionDiff, bA as SemanticVersionDiffEntry, cV as SessionArtifactApprovalOptions, cI as SessionArtifactAutonomyPolicy, cU as SessionArtifactExecutionOptions, cT as SessionArtifactExecutionResult, cM as SessionArtifactFieldProvenance, cJ as SessionArtifactFieldProvenanceSource, cA as SessionArtifactKind, cN as SessionArtifactListOptions, cS as SessionArtifactRelationshipCreateInput, cQ as SessionArtifactRelationshipOption, cP as SessionArtifactRelationshipOptionsInput, cR as SessionArtifactRelationshipOptionsResult, cL as SessionArtifactRequestContext, cK as SessionArtifactRequestContextSource, cz as SessionArtifactStatus, cO as SessionArtifactValidationResult, di as SessionCollectionListOptions, dk as SessionCollectionListResult, dh as SessionDocumentResult, ab as SessionFeedApi, au as SessionFeedController, an as SessionFeedControllerOptions, cw as SessionFileKind, cy as SessionFileRecord, cv as SessionFileSource, cx as SessionFileStatus, d9 as SessionFileUploadOptions, db as SessionHeapFieldType, dc as SessionHeapFieldValue, dd as SessionHeapVariable, dj as SessionJobListOptions, da as SessionJobRecord, bT as SessionMutationView, cu as SessionTimelineEvent, cs as SessionTranscriptActionSuggestion, ct as SessionTranscriptShowRefs, ax as SettleTransientFeedbackOptions, dy as SnapshotResetMessage, bD as SourceAcknowledgement, b8 as SpendLineItemType, bc as SpendSummary, bJ as StateObservationProjectionChange, ey as StreamEvent, eA as StreamStats, ez as StreamSubscription, a$ as Subject, X as TableFeedItem, u as ToolHandler, c7 as ToolInfo, dC as ToolInvokeParams, dD as ToolResultParams, s as ToolSchema, c9 as ToolsChangedEvent, a5 as TransientFeedItem, a2 as TransientFeedItemBase, a4 as TransientFeedbackFeedItem, ay as TransientFeedbackHandle, a3 as TransientMessageFeedItem, bF as TransitionOutcomeProjection, bN as TransitionProjectionResult, aZ as User, dn as UserEnvironmentArtifactAttention, dm as UserEnvironmentMessagePreview, dl as UserEnvironmentPrompt, dp as UserEnvironmentSessionState, dq as UserEnvironmentState, dr as UserEnvironmentStateOptions, cp as UserMessageAppendResult, co as UserMessageInput, cm as UserMessageShowRefs, cn as UserMessageTarget, by as Version, br as VersionTag, bq as VersionTracking, dv as WSClientOptions, dt as WSDisconnectInfo, du as WSReconnectErrorInfo, aN as buildOpenAISpendEventId, aH as calculateOpenAITokenSpend, aA as createFeedPublisher, am as emitFeedDiagnostic, al as emitFeedDiagnosticToDefaultSink, ap as emptyFeedSnapshot, aF as getOpenAIModelPricing, aq as hasCanonicalSessionFeedActivation, ar as isCanonicalSessionFeedDocument, ac as mergeFeedItemsBySequence, ak as normalizeFeedDiagnostic, aj as normalizeFeedDiagnosticKind, at as normalizeFeedPage, aG as normalizeOpenAIUsage, ad as orderTransientFeedItems, as as readSessionFeedSnapshot, aO as recordOpenAIUsageSpend, aM as toGranularHttpBase } from './spend-DBRQOSaj.js';
4
4
  export { BuildGranularAgentSystemPromptInput, GeneratedJobCodeIssue, GranularAgentExecutionCheckpoint, GranularAgentHeapSummaryOptions, GranularAgentManualActionMemorySuggestion, GranularAgentPromptCapabilities, GranularAgentReferentFocus, GranularAgentSessionContext, GranularAgentToolInfo, GranularAgentWorkflowFocus, GranularReasoningTraceChunkResult, GranularReasoningTraceOptions, HarnessContinuationDecision, HarnessControllerBudgets, HarnessProjectionOptions, HarnessPromptLike, HarnessRenderedContinuation, HarnessRenderedPrompt, HarnessTemplate, HarnessTemplateManifest, HarnessTemplateSelectionOptions, HarnessTemplateStatus, HarnessVerifierSnapshot, HarnessVerifierSnapshotInput, ReviewGeneratedJobCodeOptions, buildContinuationInstruction, buildContinuationInstructionFromTemplate, buildGranularAgentCheckpointBlock, buildGranularAgentDomainBlock, buildGranularAgentFileBlock, buildGranularAgentHeapBlock, buildGranularAgentLoopBlock, buildGranularAgentManualActionBlock, buildGranularAgentManualActionMemorySummary, buildGranularAgentReferentBlock, buildGranularAgentRuntimeImportsBlock, buildGranularAgentSessionBlock, buildGranularAgentSystemPrompt, buildGranularAgentSystemPromptFromTemplate, buildGranularAgentToolBlock, buildGranularAgentWorkflowBlock, consumeGranularReasoningOnlyChunk, consumeGranularReasoningTraceChunk, createHarnessVerifierSnapshot, evaluateContinuation, getCurrentClosureId, getDefaultHarnessTemplateId, getExclusivePromptTarget, hasOpenPrompt, hashHarnessTemplateValue, listHarnessTemplates, projectConversationReferentFocus, projectConversationReferentSummary, projectHeapSummary, projectLoopSummary, projectSessionFileSummary, projectWorkflowFocus, projectWorkflowSummary, renderContinuationInstructionFromTemplate, renderGranularAgentSystemPromptFromTemplate, resolveHarnessTemplate, reviewGeneratedJobCode, stripGranularReasoningTrace, validateHarnessTemplateManifest } from './agent-harness.js';
5
5
  import '@automerge/automerge';
6
6
  import '@automerge/automerge/slim';
@@ -139,6 +139,8 @@ interface RecordSnapshotCommitSource {
139
139
  * persisting bounded, replayable mapper input beside a product mutation.
140
140
  */
141
141
  declare function changedRecordSnapshots(beforeRecords: RecordObjectOptions[], afterRecords: RecordObjectOptions[]): Pick<RecordSnapshotCommitSource, "beforeRecords" | "afterRecords">;
142
+ /** Validate automatic state-based mapping before invoking product code. */
143
+ declare function assertRecordSnapshotTransitionMapping(transition: CommitTransitionInvocation | undefined): asserts transition is CommitTransitionInvocation;
142
144
  /**
143
145
  * Deterministically maps a persisted before/after product snapshot to commit
144
146
  * changes. It performs no I/O and never guesses ontology labels or paths.
@@ -152,6 +154,9 @@ declare function projectRecordSnapshotMutation(input: {
152
154
  commitKind: "effect" | "transition";
153
155
  transition?: CommitTransitionInvocation;
154
156
  }): ProjectionResult;
157
+ declare namespace projectRecordSnapshotMutation {
158
+ var validateTransition: typeof assertRecordSnapshotTransitionMapping;
159
+ }
155
160
 
156
161
  interface ValidationRuleEvaluationInput {
157
162
  operator?: string | null;
@@ -336,6 +341,24 @@ declare function requireArtifactWorkflowResult<T extends {
336
341
  artifact: ArtifactLike;
337
342
  }>(result: T): T;
338
343
 
344
+ /** The prepared operation a person reviews, independent of runtime progress. */
345
+ declare function artifactReviewedOperation(artifact: {
346
+ artifactId: string;
347
+ sessionId?: string | null;
348
+ environmentId?: string | null;
349
+ subjectId?: string | null;
350
+ buildId?: string | null;
351
+ buildVersionNumber?: number | null;
352
+ kind: string;
353
+ target?: unknown;
354
+ policy?: unknown;
355
+ inputSchema?: unknown;
356
+ inputValues?: Record<string, unknown>;
357
+ relationships?: Record<string, unknown>;
358
+ metadata?: Record<string, unknown>;
359
+ subArtifactIds?: string[];
360
+ }, inputValues?: Record<string, unknown>, relationships?: Record<string, unknown>): Record<string, unknown>;
361
+
339
362
  type ArtifactSurfaceKind = "input" | "review" | "executing" | "approval" | "blocked" | "failure" | "partial" | "result" | "canceled" | "stale";
340
363
  type ArtifactSurfaceActionId = "continue" | "edit" | "execute" | "approve" | "decline" | "retry" | "refresh" | "check_status" | "close";
341
364
  interface ArtifactSurfaceAction {
@@ -374,4 +397,4 @@ interface ArtifactSurfaceModel {
374
397
  }
375
398
  declare function selectArtifactSurface(artifact: SessionArtifactRecord, context?: ArtifactSurfaceContext): ArtifactSurfaceModel;
376
399
 
377
- export { type ArtifactSurfaceAction, type ArtifactSurfaceActionId, type ArtifactSurfaceContext, type ArtifactSurfaceKind, type ArtifactSurfaceModel, ArtifactWorkflow, ArtifactWorkflowNode, ArtifactWorkflowNodeStatus, CommitDeclaration, CommitReceipt, CommitTransitionInvocation, CommitTransitionOutcomeDeclaration, type CommitTransport, type ConditionalPolicySpec, type DefinedStateMachine, EffectCommitRequest, EffectHandlerContext, EndpointMode, EnvironmentData, EnvironmentRecordImportSummary, type EnvironmentSetupPollInput, type EnvironmentSetupProgress, type EnvironmentSetupRequestError, type EnvironmentSetupResponse, FeedItem, FeedPublishTransport, type JobPresentation, type LimitPolicySpec, ManifestContent, ManifestEffectMetamodelSpec, type NormalizedPromptChoiceOption, type PermissionActionSpec, type PermissionPolicySpec, type PermissionProfileFile, type PolicyDecision, type PolicyEvaluationContext, type PolicyOutcome, ProjectionMapper, ProjectionResult, Prompt, RecordObjectOptions, type RecordSnapshotCommitSource, ResolvedEffectBehaviors, SessionArtifactRecord, SessionHeapEntry, SessionHeapList, SessionHeapSnapshot, SessionTranscriptEntry, type StateMachineDefinition, ToolWithHandler, type ValidationRuleEvaluationInput, type ValidationRuleEvaluationResult, assertArtifactWorkflow, buildSessionTranscript, buildSessionTranscriptFromFeedItems, canInspectArtifactWorkflowNode, canonicalizeCommitValue, changedRecordSnapshots, defineEffect, defineProjection, defineStateMachine, environmentSetupProgressFromError, environmentSetupProgressFromResponse, evaluateValidationRule, extractPromptTokens, getArtifactWorkflowNavigationLeaves, getArtifactWorkflowNavigationTarget, getArtifactWorkflowNodes, getCurrentArtifactWorkflowNode, invokeRegisteredEffect, isArtifactWorkflowNodeNavigableLeaf, isArtifactWorkflowNodeTerminal, isLocalApiUrl, normalizeEffectBehaviors, normalizePrompt, normalizePromptChoiceOption, normalizePromptText, normalizePromptType, pollEnvironmentSetup, projectArtifactWorkflow, projectRecordSnapshotMutation, requireArtifactWorkflow, requireArtifactWorkflowResult, resolveApiUrl, resolveAuthTokenForApiUrl, resolveJobPresentation, resolvePromptAnswer, scorePromptChoiceMatch, selectArtifactSurface, validateProjectionResult, validationRuleFailureMessage };
400
+ export { type ArtifactSurfaceAction, type ArtifactSurfaceActionId, type ArtifactSurfaceContext, type ArtifactSurfaceKind, type ArtifactSurfaceModel, ArtifactWorkflow, ArtifactWorkflowNode, ArtifactWorkflowNodeStatus, CommitDeclaration, CommitReceipt, CommitTransitionInvocation, CommitTransitionOutcomeDeclaration, type CommitTransport, type ConditionalPolicySpec, type DefinedStateMachine, EffectCommitRequest, EffectHandlerContext, EndpointMode, EnvironmentData, EnvironmentRecordImportSummary, type EnvironmentSetupPollInput, type EnvironmentSetupProgress, type EnvironmentSetupRequestError, type EnvironmentSetupResponse, FeedItem, FeedPublishTransport, type JobPresentation, type LimitPolicySpec, ManifestContent, ManifestEffectMetamodelSpec, type NormalizedPromptChoiceOption, type PermissionActionSpec, type PermissionPolicySpec, type PermissionProfileFile, type PolicyDecision, type PolicyEvaluationContext, type PolicyOutcome, ProjectionMapper, ProjectionResult, Prompt, RecordObjectOptions, type RecordSnapshotCommitSource, ResolvedEffectBehaviors, SessionArtifactRecord, SessionHeapEntry, SessionHeapList, SessionHeapSnapshot, SessionTranscriptEntry, type StateMachineDefinition, ToolWithHandler, type ValidationRuleEvaluationInput, type ValidationRuleEvaluationResult, artifactReviewedOperation, assertArtifactWorkflow, buildSessionTranscript, buildSessionTranscriptFromFeedItems, canInspectArtifactWorkflowNode, canonicalizeCommitValue, changedRecordSnapshots, defineEffect, defineProjection, defineStateMachine, environmentSetupProgressFromError, environmentSetupProgressFromResponse, evaluateValidationRule, extractPromptTokens, getArtifactWorkflowNavigationLeaves, getArtifactWorkflowNavigationTarget, getArtifactWorkflowNodes, getCurrentArtifactWorkflowNode, invokeRegisteredEffect, isArtifactWorkflowNodeNavigableLeaf, isArtifactWorkflowNodeTerminal, isLocalApiUrl, normalizeEffectBehaviors, normalizePrompt, normalizePromptChoiceOption, normalizePromptText, normalizePromptType, pollEnvironmentSetup, projectArtifactWorkflow, projectRecordSnapshotMutation, requireArtifactWorkflow, requireArtifactWorkflowResult, resolveApiUrl, resolveAuthTokenForApiUrl, resolveJobPresentation, resolvePromptAnswer, scorePromptChoiceMatch, selectArtifactSurface, validateProjectionResult, validationRuleFailureMessage };