@granular-software/sdk 0.4.63 → 0.4.64

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
@@ -14048,8 +14048,12 @@ external_exports.union([
14048
14048
  external_exports.array(external_exports.string()),
14049
14049
  external_exports.object({
14050
14050
  values: external_exports.array(external_exports.string()),
14051
+ labels: external_exports.array(external_exports.string().min(1)).optional(),
14051
14052
  message: external_exports.string().optional()
14052
- }).strict()
14053
+ }).strict().refine(
14054
+ (rule) => !rule.labels || rule.labels.length === rule.values.length,
14055
+ { message: "Enum labels must match enum values one-for-one" }
14056
+ )
14053
14057
  ]);
14054
14058
  external_exports.union([
14055
14059
  external_exports.boolean(),
@@ -14077,7 +14081,7 @@ var StateMachineStateSchema = external_exports.union([
14077
14081
  external_exports.string(),
14078
14082
  external_exports.object({
14079
14083
  name: external_exports.string().min(1),
14080
- label: external_exports.string().optional(),
14084
+ label: external_exports.string().min(1).optional(),
14081
14085
  description: external_exports.string().optional(),
14082
14086
  isFinal: external_exports.boolean().optional()
14083
14087
  }).strict()
@@ -14866,18 +14870,24 @@ function normalizeEnumInput(enumSpec) {
14866
14870
  (value) => typeof value === "string" && value.length > 0
14867
14871
  );
14868
14872
  if (values.length === 0) return null;
14869
- return config.message ? { values, message: config.message } : { values };
14873
+ const labels = Array.isArray(config.labels) && config.labels.length === values.length ? config.labels : values;
14874
+ return {
14875
+ values,
14876
+ labels,
14877
+ ...config.message ? { message: config.message } : {}
14878
+ };
14870
14879
  }
14871
14880
  function buildEnumFieldMutations(fieldPath, enumSpec) {
14872
14881
  const normalized = normalizeEnumInput(enumSpec);
14873
14882
  if (!normalized) return [];
14874
14883
  const messageArg = normalized.message ? `, message: ${JSON.stringify(normalized.message)}` : "";
14884
+ const labelsArg = normalized.labels ? `, labels: ${JSON.stringify(normalized.labels)}` : "";
14875
14885
  return [
14876
14886
  {
14877
14887
  label: `set enum on ${fieldPath}`,
14878
14888
  query: `mutation { at(path: ${JSON.stringify(fieldPath)}) { set_enum(values: ${JSON.stringify(
14879
14889
  normalized.values
14880
- )}${messageArg}) { values } } }`
14890
+ )}${labelsArg}${messageArg}) { values labels } } }`
14881
14891
  }
14882
14892
  ];
14883
14893
  }
@@ -14887,7 +14897,7 @@ var enumMetamodelPackage = defineMetamodelPackage({
14887
14897
  fieldRows: [
14888
14898
  {
14889
14899
  key: "enum",
14890
- description: 'Allowed values. Accepts `["a", "b"]` or `{ "values": [...], "message": "..." }`.'
14900
+ description: 'Allowed values. Use `{ "values": [...], "labels": [...] }` for authored display labels; otherwise each unchanged value is its display fallback.'
14891
14901
  }
14892
14902
  ]
14893
14903
  },
@@ -14897,6 +14907,7 @@ var enumMetamodelPackage = defineMetamodelPackage({
14897
14907
  type EnumMetamodel {
14898
14908
  model: Model!
14899
14909
  values: [String!]!
14910
+ labels: [String!]!
14900
14911
  message: String
14901
14912
  }
14902
14913
 
@@ -14905,7 +14916,7 @@ var enumMetamodelPackage = defineMetamodelPackage({
14905
14916
  }
14906
14917
 
14907
14918
  extend type ModelMutation {
14908
- set_enum(values: [String!]!, message: String): EnumMetamodel
14919
+ set_enum(values: [String!]!, labels: [String!], message: String): EnumMetamodel
14909
14920
  }
14910
14921
  `
14911
14922
  ],
@@ -14914,15 +14925,19 @@ var enumMetamodelPackage = defineMetamodelPackage({
14914
14925
  EnumMetamodel: {
14915
14926
  model: (value) => value.model,
14916
14927
  values: (value) => value.values,
14928
+ labels: (value) => value.labels || [],
14917
14929
  message: (value) => value.message || null
14918
14930
  },
14919
14931
  Model: {
14920
14932
  enum_rule: async (ant) => await run(ant.enum_rule())
14921
14933
  },
14922
14934
  ModelMutation: {
14923
- set_enum: async (ant, { values, message }) => {
14924
- const model = await run(ant.set_enum(values, message));
14925
- return { model, values, message };
14935
+ set_enum: async (ant, { values, labels, message }) => {
14936
+ const resolvedLabels = Array.isArray(labels) && labels.length === values.length ? labels : values;
14937
+ const model = await run(
14938
+ ant.set_enum(values, resolvedLabels, message)
14939
+ );
14940
+ return { model, values, labels: resolvedLabels, message };
14926
14941
  }
14927
14942
  }
14928
14943
  };
@@ -14935,7 +14950,7 @@ var enumMetamodelPackage = defineMetamodelPackage({
14935
14950
  },
14936
14951
  summary: {
14937
14952
  selections: {
14938
- propertyFields: [`enum_rule { values message }`]
14953
+ propertyFields: [`enum_rule { values labels message }`]
14939
14954
  },
14940
14955
  readPropertySummary(rawProperty) {
14941
14956
  const values = Array.isArray(rawProperty.enum_rule?.values) ? rawProperty.enum_rule.values.filter(
@@ -14943,8 +14958,15 @@ var enumMetamodelPackage = defineMetamodelPackage({
14943
14958
  ) : [];
14944
14959
  if (values.length === 0) return { enumRule: null };
14945
14960
  const message = typeof rawProperty.enum_rule?.message === "string" ? rawProperty.enum_rule.message : null;
14961
+ const labels = Array.isArray(rawProperty.enum_rule?.labels) ? rawProperty.enum_rule.labels.filter(
14962
+ (label) => typeof label === "string" && label.length > 0
14963
+ ) : [];
14946
14964
  return {
14947
- enumRule: message ? { values, message } : { values }
14965
+ enumRule: {
14966
+ values,
14967
+ ...labels.length === values.length ? { labels } : {},
14968
+ ...message ? { message } : {}
14969
+ }
14948
14970
  };
14949
14971
  }
14950
14972
  },
@@ -23730,7 +23752,7 @@ function resolveHandlerForMode(effectMap, effect, request) {
23730
23752
  if (mode === "artifactOptions") {
23731
23753
  if (!effect.artifactOptionsHandler) {
23732
23754
  throw new Error(
23733
- `Artifact relationship options are not supported for ${request.effectKey}`
23755
+ `Artifact field options are not supported for ${request.effectKey}`
23734
23756
  );
23735
23757
  }
23736
23758
  return {
@@ -1,4 +1,4 @@
1
- import { cO as WSClientOptions, Y as SessionFeedApi, b0 as GranularQuotaProgress, T as ToolWithHandler, g as PublishToolsResult, bQ as Job, h as ToolHandler, I as InstanceToolHandler, bT as UserMessageInput, bU as UserMessageAppendResult, bD as EffectInfo, P as Prompt, bC as ToolInfo, bF as EffectsChangedEvent, bE as ToolsChangedEvent, D as DomainState, $ as FeedListTransport, aI as GranularOptions, dk as EnvironmentImporter, aL as RecordUserOptions, aK as User, aN as OpenEnvironmentOptions, bd as EnvironmentData, ba as BuildPolicy, dh as EnvironmentSetupSummary, aT as ConversationSessionListOptions, aR as ConversationSessionInfo, aU as ConversationSessionListResponse, aQ as CreateSessionOptions, cY as RecordObjectOptions, d3 as RecordObjectResult, d5 as RecordObjectsOptions, dc as RecordImport, d8 as RecordImportStatus, db as RecordImportItem, dd as EnvironmentRecordImportSummary, bO as EnvironmentFeedbackRecord, d as SessionHeapSnapshot, cC as SessionDocumentResult, bV as AssistantReplyPublicationInput, bW as AssistantReplyPublicationResult, cD as SessionCollectionListOptions, cF as SessionCollectionListResult, bZ as SessionTimelineEvent, cE as SessionJobListOptions, cv as SessionJobRecord, c6 as SessionArtifactListOptions, c5 as SessionArtifactRecord, c8 as SessionArtifactRelationshipOptionsInput, ca as SessionArtifactRelationshipOptionsResult, cb as SessionArtifactRelationshipCreateInput, c7 as SessionArtifactValidationResult, cd as SessionArtifactExecutionOptions, cc as SessionArtifactExecutionResult, ce as SessionArtifactApprovalOptions, co as RecordManualActionInput, cq as ManualActionRecordResult, cr as ManualActionListOptions, cp as ManualActionOccurrence, ct as ManualActionSuggestionOptions, cs as ManualActionSuggestion, ch as ArtifactApprovalTaskListOptions, cg as ArtifactApprovalTask, ci as ArtifactApprovalDecisionInput, cj as ArtifactApprovalDecisionResult, c1 as SessionFileRecord, cu as SessionFileUploadOptions, S as SessionHeapEntry, b as SessionHeapList, cy as SessionHeapVariable, e as SessionTranscriptEntry, dP as GraphQLResult, cA as RecordSearchOptions, cz as RecordSearchResult, cB as RecordMentionInput, cX as DefineRelationshipOptions, cW as RelationshipInfo, cV as ModelRef, dO as ManifestContent, d0 as EnvironmentStateUpdateInput, c_ as EnvironmentStateTarget, d2 as EnvironmentStateProxy, d7 as RecordImportOptions, cK as UserEnvironmentStateOptions, cJ as UserEnvironmentState, cL as MarkUserEnvironmentReadOptions, aO as AdoptEnvironmentOptions, aP as ConnectOptions, df as RunEnvironmentImporterOptions, au as OpenAIUsageSpendEvent, at as GranularSpendContext, aw as RecordOpenAIUsageSpendResult, b3 as SandboxListResponse, b1 as Sandbox, b2 as CreateSandboxData, dR as DeleteResponse, b5 as PermissionProfile, b6 as CreatePermissionProfileData, be as CreateEnvironmentData, dS as StreamEvent, dT as StreamSubscription, dU as StreamStats, aM as Subject, b9 as AssignmentListResponse } from './spend-DtsHRNb5.js';
1
+ import { cO as WSClientOptions, Y as SessionFeedApi, b0 as GranularQuotaProgress, T as ToolWithHandler, g as PublishToolsResult, bQ as Job, h as ToolHandler, I as InstanceToolHandler, bT as UserMessageInput, bU as UserMessageAppendResult, bD as EffectInfo, P as Prompt, bC as ToolInfo, bF as EffectsChangedEvent, bE as ToolsChangedEvent, D as DomainState, $ as FeedListTransport, aI as GranularOptions, dk as EnvironmentImporter, aL as RecordUserOptions, aK as User, aN as OpenEnvironmentOptions, bd as EnvironmentData, ba as BuildPolicy, dh as EnvironmentSetupSummary, aT as ConversationSessionListOptions, aR as ConversationSessionInfo, aU as ConversationSessionListResponse, aQ as CreateSessionOptions, cY as RecordObjectOptions, d3 as RecordObjectResult, d5 as RecordObjectsOptions, dc as RecordImport, d8 as RecordImportStatus, db as RecordImportItem, dd as EnvironmentRecordImportSummary, bO as EnvironmentFeedbackRecord, d as SessionHeapSnapshot, cC as SessionDocumentResult, bV as AssistantReplyPublicationInput, bW as AssistantReplyPublicationResult, cD as SessionCollectionListOptions, cF as SessionCollectionListResult, bZ as SessionTimelineEvent, cE as SessionJobListOptions, cv as SessionJobRecord, c6 as SessionArtifactListOptions, c5 as SessionArtifactRecord, c8 as SessionArtifactRelationshipOptionsInput, ca as SessionArtifactRelationshipOptionsResult, cb as SessionArtifactRelationshipCreateInput, c7 as SessionArtifactValidationResult, cd as SessionArtifactExecutionOptions, cc as SessionArtifactExecutionResult, ce as SessionArtifactApprovalOptions, co as RecordManualActionInput, cq as ManualActionRecordResult, cr as ManualActionListOptions, cp as ManualActionOccurrence, ct as ManualActionSuggestionOptions, cs as ManualActionSuggestion, ch as ArtifactApprovalTaskListOptions, cg as ArtifactApprovalTask, ci as ArtifactApprovalDecisionInput, cj as ArtifactApprovalDecisionResult, c1 as SessionFileRecord, cu as SessionFileUploadOptions, S as SessionHeapEntry, b as SessionHeapList, cy as SessionHeapVariable, e as SessionTranscriptEntry, dP as GraphQLResult, cA as RecordSearchOptions, cz as RecordSearchResult, cB as RecordMentionInput, cX as DefineRelationshipOptions, cW as RelationshipInfo, cV as ModelRef, dO as ManifestContent, d0 as EnvironmentStateUpdateInput, c_ as EnvironmentStateTarget, d2 as EnvironmentStateProxy, d7 as RecordImportOptions, cK as UserEnvironmentStateOptions, cJ as UserEnvironmentState, cL as MarkUserEnvironmentReadOptions, aO as AdoptEnvironmentOptions, aP as ConnectOptions, df as RunEnvironmentImporterOptions, au as OpenAIUsageSpendEvent, at as GranularSpendContext, aw as RecordOpenAIUsageSpendResult, b3 as SandboxListResponse, b1 as Sandbox, b2 as CreateSandboxData, dR as DeleteResponse, b5 as PermissionProfile, b6 as CreatePermissionProfileData, be as CreateEnvironmentData, dS as StreamEvent, dT as StreamSubscription, dU as StreamStats, aM as Subject, b9 as AssignmentListResponse } from './spend-CDLmk-KW.js';
2
2
  import * as Automerge from '@automerge/automerge';
3
3
  import { Doc } from '@automerge/automerge/slim';
4
4
 
@@ -1,4 +1,4 @@
1
- import { cO as WSClientOptions, Y as SessionFeedApi, b0 as GranularQuotaProgress, T as ToolWithHandler, g as PublishToolsResult, bQ as Job, h as ToolHandler, I as InstanceToolHandler, bT as UserMessageInput, bU as UserMessageAppendResult, bD as EffectInfo, P as Prompt, bC as ToolInfo, bF as EffectsChangedEvent, bE as ToolsChangedEvent, D as DomainState, $ as FeedListTransport, aI as GranularOptions, dk as EnvironmentImporter, aL as RecordUserOptions, aK as User, aN as OpenEnvironmentOptions, bd as EnvironmentData, ba as BuildPolicy, dh as EnvironmentSetupSummary, aT as ConversationSessionListOptions, aR as ConversationSessionInfo, aU as ConversationSessionListResponse, aQ as CreateSessionOptions, cY as RecordObjectOptions, d3 as RecordObjectResult, d5 as RecordObjectsOptions, dc as RecordImport, d8 as RecordImportStatus, db as RecordImportItem, dd as EnvironmentRecordImportSummary, bO as EnvironmentFeedbackRecord, d as SessionHeapSnapshot, cC as SessionDocumentResult, bV as AssistantReplyPublicationInput, bW as AssistantReplyPublicationResult, cD as SessionCollectionListOptions, cF as SessionCollectionListResult, bZ as SessionTimelineEvent, cE as SessionJobListOptions, cv as SessionJobRecord, c6 as SessionArtifactListOptions, c5 as SessionArtifactRecord, c8 as SessionArtifactRelationshipOptionsInput, ca as SessionArtifactRelationshipOptionsResult, cb as SessionArtifactRelationshipCreateInput, c7 as SessionArtifactValidationResult, cd as SessionArtifactExecutionOptions, cc as SessionArtifactExecutionResult, ce as SessionArtifactApprovalOptions, co as RecordManualActionInput, cq as ManualActionRecordResult, cr as ManualActionListOptions, cp as ManualActionOccurrence, ct as ManualActionSuggestionOptions, cs as ManualActionSuggestion, ch as ArtifactApprovalTaskListOptions, cg as ArtifactApprovalTask, ci as ArtifactApprovalDecisionInput, cj as ArtifactApprovalDecisionResult, c1 as SessionFileRecord, cu as SessionFileUploadOptions, S as SessionHeapEntry, b as SessionHeapList, cy as SessionHeapVariable, e as SessionTranscriptEntry, dP as GraphQLResult, cA as RecordSearchOptions, cz as RecordSearchResult, cB as RecordMentionInput, cX as DefineRelationshipOptions, cW as RelationshipInfo, cV as ModelRef, dO as ManifestContent, d0 as EnvironmentStateUpdateInput, c_ as EnvironmentStateTarget, d2 as EnvironmentStateProxy, d7 as RecordImportOptions, cK as UserEnvironmentStateOptions, cJ as UserEnvironmentState, cL as MarkUserEnvironmentReadOptions, aO as AdoptEnvironmentOptions, aP as ConnectOptions, df as RunEnvironmentImporterOptions, au as OpenAIUsageSpendEvent, at as GranularSpendContext, aw as RecordOpenAIUsageSpendResult, b3 as SandboxListResponse, b1 as Sandbox, b2 as CreateSandboxData, dR as DeleteResponse, b5 as PermissionProfile, b6 as CreatePermissionProfileData, be as CreateEnvironmentData, dS as StreamEvent, dT as StreamSubscription, dU as StreamStats, aM as Subject, b9 as AssignmentListResponse } from './spend-DtsHRNb5.mjs';
1
+ import { cO as WSClientOptions, Y as SessionFeedApi, b0 as GranularQuotaProgress, T as ToolWithHandler, g as PublishToolsResult, bQ as Job, h as ToolHandler, I as InstanceToolHandler, bT as UserMessageInput, bU as UserMessageAppendResult, bD as EffectInfo, P as Prompt, bC as ToolInfo, bF as EffectsChangedEvent, bE as ToolsChangedEvent, D as DomainState, $ as FeedListTransport, aI as GranularOptions, dk as EnvironmentImporter, aL as RecordUserOptions, aK as User, aN as OpenEnvironmentOptions, bd as EnvironmentData, ba as BuildPolicy, dh as EnvironmentSetupSummary, aT as ConversationSessionListOptions, aR as ConversationSessionInfo, aU as ConversationSessionListResponse, aQ as CreateSessionOptions, cY as RecordObjectOptions, d3 as RecordObjectResult, d5 as RecordObjectsOptions, dc as RecordImport, d8 as RecordImportStatus, db as RecordImportItem, dd as EnvironmentRecordImportSummary, bO as EnvironmentFeedbackRecord, d as SessionHeapSnapshot, cC as SessionDocumentResult, bV as AssistantReplyPublicationInput, bW as AssistantReplyPublicationResult, cD as SessionCollectionListOptions, cF as SessionCollectionListResult, bZ as SessionTimelineEvent, cE as SessionJobListOptions, cv as SessionJobRecord, c6 as SessionArtifactListOptions, c5 as SessionArtifactRecord, c8 as SessionArtifactRelationshipOptionsInput, ca as SessionArtifactRelationshipOptionsResult, cb as SessionArtifactRelationshipCreateInput, c7 as SessionArtifactValidationResult, cd as SessionArtifactExecutionOptions, cc as SessionArtifactExecutionResult, ce as SessionArtifactApprovalOptions, co as RecordManualActionInput, cq as ManualActionRecordResult, cr as ManualActionListOptions, cp as ManualActionOccurrence, ct as ManualActionSuggestionOptions, cs as ManualActionSuggestion, ch as ArtifactApprovalTaskListOptions, cg as ArtifactApprovalTask, ci as ArtifactApprovalDecisionInput, cj as ArtifactApprovalDecisionResult, c1 as SessionFileRecord, cu as SessionFileUploadOptions, S as SessionHeapEntry, b as SessionHeapList, cy as SessionHeapVariable, e as SessionTranscriptEntry, dP as GraphQLResult, cA as RecordSearchOptions, cz as RecordSearchResult, cB as RecordMentionInput, cX as DefineRelationshipOptions, cW as RelationshipInfo, cV as ModelRef, dO as ManifestContent, d0 as EnvironmentStateUpdateInput, c_ as EnvironmentStateTarget, d2 as EnvironmentStateProxy, d7 as RecordImportOptions, cK as UserEnvironmentStateOptions, cJ as UserEnvironmentState, cL as MarkUserEnvironmentReadOptions, aO as AdoptEnvironmentOptions, aP as ConnectOptions, df as RunEnvironmentImporterOptions, au as OpenAIUsageSpendEvent, at as GranularSpendContext, aw as RecordOpenAIUsageSpendResult, b3 as SandboxListResponse, b1 as Sandbox, b2 as CreateSandboxData, dR as DeleteResponse, b5 as PermissionProfile, b6 as CreatePermissionProfileData, be as CreateEnvironmentData, dS as StreamEvent, dT as StreamSubscription, dU as StreamStats, aM as Subject, b9 as AssignmentListResponse } from './spend-CDLmk-KW.mjs';
2
2
  import * as Automerge from '@automerge/automerge';
3
3
  import { Doc } from '@automerge/automerge/slim';
4
4
 
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 } from './client-lk-dmdKR.mjs';
2
- import { E as EndpointMode, T as ToolWithHandler, a as EffectHandlerContext, F as FeedPublishTransport, M as ManifestEffectMetamodelSpec, R as ResolvedEffectBehaviors, S as SessionHeapEntry, b as SessionHeapList, c as FeedItem, d as SessionHeapSnapshot, P as Prompt, e as SessionTranscriptEntry } from './spend-DtsHRNb5.mjs';
3
- export { dQ as APIError, aH as AccessTokenProvider, C as ActionSuggestionFeedItem, aO as AdoptEnvironmentOptions, ci as ArtifactApprovalDecisionInput, cj as ArtifactApprovalDecisionResult, cg as ArtifactApprovalTask, ch as ArtifactApprovalTaskListOptions, cf as ArtifactApprovalTaskStatus, A as ArtifactFeedItem, bx as ArtifactOptionsHandler, b8 as Assignment, b9 as AssignmentListResponse, bV as AssistantReplyPublicationInput, bW as AssistantReplyPublicationResult, bj as Build, bl as BuildListResponse, ba as BuildPolicy, bi as BuildStatus, aD as ConditionIR, aP as ConnectOptions, aR as ConversationSessionInfo, aT as ConversationSessionListOptions, aU as ConversationSessionListResponse, aS as ConversationSessionListStatus, be as CreateEnvironmentData, b6 as CreatePermissionProfileData, b2 as CreateSandboxData, aQ as CreateSessionOptions, cX as DefineRelationshipOptions, dR as DeleteResponse, D as DomainState, bt as EffectArtifactOptionsInvocation, bv as EffectArtifactRelationshipOption, bw as EffectArtifactRelationshipOptionsResult, bG as EffectHandler, bD as EffectInfo, bu as EffectInvocationMetadata, bs as EffectInvocationMode, by as EffectSchema, bB as EffectVersionSelector, bz as EffectWithHandler, bF as EffectsChangedEvent, bd as EnvironmentData, bO as EnvironmentFeedbackRecord, dk as EnvironmentImporter, dj as EnvironmentImporterImportOptions, bf as EnvironmentListResponse, dd as EnvironmentRecordImportSummary, di as EnvironmentSetupImporterClaim, dg as EnvironmentSetupLifecycleStatus, dh as EnvironmentSetupSummary, de as EnvironmentSetupTriggerReason, d1 as EnvironmentStateMachineProxy, c$ as EnvironmentStateObservationInput, d2 as EnvironmentStateProxy, c_ as EnvironmentStateTarget, d0 as EnvironmentStateUpdateInput, a1 as FeedDiagnostic, a2 as FeedDiagnosticListener, a9 as FeedDocumentState, l as FeedFeedbackTone, z as FeedFileSource, k as FeedIconToken, p as FeedItemBase, n as FeedItemKind, U as FeedListOptions, $ as FeedListTransport, s as FeedObjectReference, V as FeedPage, ak as FeedPublisher, Q as FeedSnapshot, a0 as FeedSnapshotRegressionReason, j as FeedSource, i as FeedSourceActor, W as FeedSubscribeOptions, X as FeedSubscriptionChange, t as FeedTableCell, u as FeedTableColumn, x as FeedTableProjection, w as FeedTableRow, v as FeedTableRowReference, o as FeedTarget, m as FeedTransientFeedbackTone, r as FeedbackFeedItem, B as FileFeedItem, a3 as GRANULAR_FEED_DIAGNOSTIC_EVENT, aJ as GranularAuth, aI as GranularOptions, a$ as GranularQuotaPolicy, b0 as GranularQuotaProgress, at as GranularSpendContext, dP as GraphQLResult, bH as InstanceEffectHandler, I as InstanceToolHandler, bQ as Job, bM as JobFeedbackInput, bL as JobFeedbackMetadata, bN as JobFeedbackRecord, bJ as JobFeedbackSentiment, bK as JobFeedbackToolCall, bI as JobStatus, bP as JobSubmitResult, bg as Manifest, dE as ManifestApprovalRequiredSpec, dO as ManifestContent, dF as ManifestCreatesSpec, dC as ManifestDryRunSpec, dI as ManifestEffectDeclaration, dH as ManifestEffectSchema, dn as ManifestEnumRuleSpec, dK as ManifestEventStreamDef, dJ as ManifestEventTypeDef, dp as ManifestFilterBySpec, dM as ManifestImport, bh as ManifestListResponse, dL as ManifestOperation, dB as ManifestPostConditionSpec, dl as ManifestPropertySpec, dG as ManifestRelationshipDef, dD as ManifestReverseSpec, dA as ManifestStateMachineSpec, dr as ManifestStateMachineStateSpec, dz as ManifestStateMachineTransitionSpec, dt as ManifestStateTransitionActionSpec, du as ManifestStateTransitionAssigneeSpec, dy as ManifestStateTransitionExpectedOutcomeSpec, ds as ManifestStateTransitionInputBinding, dx as ManifestStateTransitionPermissionSpec, dv as ManifestStateTransitionRelatedStateRequirementSpec, dw as ManifestStateTransitionRequirementsSpec, dm as ManifestValidationOperator, dq as ManifestValidationRuleSpec, dN as ManifestVolume, cr as ManualActionListOptions, cp as ManualActionOccurrence, cq as ManualActionRecordResult, cn as ManualActionRelatedRecord, cl as ManualActionSource, ck as ManualActionStatus, cs as ManualActionSuggestion, ct as ManualActionSuggestionOptions, cm as ManualActionTarget, cL as MarkUserEnvironmentReadOptions, aG as MatchedPolicy, q as MessageFeedItem, cV as ModelRef, an as NormalizedOpenAIUsage, N as NormalizedSuggestedArtifact, ap as OPENAI_MODEL_PRICING_USD_PER_MILLION, O as ObjectsFeedItem, am as OpenAIModelPricing, ao as OpenAITokenSpend, au as OpenAIUsageSpendEvent, aN as OpenEnvironmentOptions, b5 as PermissionProfile, b7 as PermissionProfileListResponse, b4 as PermissionRules, aC as PolicyOperator, aE as PolicyOrigin, aB as PolicyPredicateSource, aF as PolicyRuleIR, aA as PolicySource, G as PromptFeedItem, bA as PublishEffectsResult, ag as PublishFeedbackOptions, g as PublishToolsResult, ah as PublishTransientFeedbackOptions, a_ as QuotaLineItemFilter, aX as QuotaPeriod, aW as QuotaScopeType, aY as QuotaStatus, cP as RPCRequest, cS as RPCRequestFromServer, cQ as RPCResponse, dc as RecordImport, db as RecordImportItem, d9 as RecordImportItemStatus, d7 as RecordImportOptions, da as RecordImportStats, d8 as RecordImportStatus, d6 as RecordImportWriteMode, co as RecordManualActionInput, cB as RecordMentionInput, cY as RecordObjectOptions, d3 as RecordObjectResult, cZ as RecordObjectStateValue, d4 as RecordObjectsChunkInfo, d5 as RecordObjectsOptions, av as RecordOpenAIUsageSpendOptions, aw as RecordOpenAIUsageSpendResult, cA as RecordSearchOptions, cz as RecordSearchResult, aL as RecordUserOptions, cW as RelationshipInfo, br as ResolvedEffectApprovalRequired, bp as ResolvedEffectDryRun, bo as ResolvedEffectPostCondition, bq as ResolvedEffectReverse, df as RunEnvironmentImporterOptions, b1 as Sandbox, b3 as SandboxListResponse, bn as SemanticVersionDiff, bm as SemanticVersionDiffEntry, ce as SessionArtifactApprovalOptions, c4 as SessionArtifactAutonomyPolicy, cd as SessionArtifactExecutionOptions, cc as SessionArtifactExecutionResult, c3 as SessionArtifactKind, c6 as SessionArtifactListOptions, c5 as SessionArtifactRecord, cb as SessionArtifactRelationshipCreateInput, c9 as SessionArtifactRelationshipOption, c8 as SessionArtifactRelationshipOptionsInput, ca as SessionArtifactRelationshipOptionsResult, c2 as SessionArtifactStatus, c7 as SessionArtifactValidationResult, cD as SessionCollectionListOptions, cF as SessionCollectionListResult, cC as SessionDocumentResult, Y as SessionFeedApi, af as SessionFeedController, a8 as SessionFeedControllerOptions, b$ as SessionFileKind, c1 as SessionFileRecord, b_ as SessionFileSource, c0 as SessionFileStatus, cu as SessionFileUploadOptions, cw as SessionHeapFieldType, cx as SessionHeapFieldValue, cy as SessionHeapVariable, cE as SessionJobListOptions, cv as SessionJobRecord, bZ as SessionTimelineEvent, bX as SessionTranscriptActionSuggestion, bY as SessionTranscriptShowRefs, ai as SettleTransientFeedbackOptions, cR as SnapshotResetMessage, aV as SpendLineItemType, aZ as SpendSummary, dS as StreamEvent, dU as StreamStats, dT as StreamSubscription, aM as Subject, y as TableFeedItem, h as ToolHandler, bC as ToolInfo, cT as ToolInvokeParams, cU as ToolResultParams, f as ToolSchema, bE as ToolsChangedEvent, L as TransientFeedItem, H as TransientFeedItemBase, K as TransientFeedbackFeedItem, aj as TransientFeedbackHandle, J as TransientMessageFeedItem, aK as User, cH as UserEnvironmentMessagePreview, cG as UserEnvironmentPrompt, cI as UserEnvironmentSessionState, cJ as UserEnvironmentState, cK as UserEnvironmentStateOptions, bU as UserMessageAppendResult, bT as UserMessageInput, bR as UserMessageShowRefs, bS as UserMessageTarget, bk as Version, bc as VersionTag, bb as VersionTracking, cO as WSClientOptions, cM as WSDisconnectInfo, cN as WSReconnectErrorInfo, ay as buildOpenAISpendEventId, as as calculateOpenAITokenSpend, al as createFeedPublisher, a7 as emitFeedDiagnostic, a6 as emitFeedDiagnosticToDefaultSink, aa as emptyFeedSnapshot, aq as getOpenAIModelPricing, ab as hasCanonicalSessionFeedActivation, ac as isCanonicalSessionFeedDocument, Z as mergeFeedItemsBySequence, a5 as normalizeFeedDiagnostic, a4 as normalizeFeedDiagnosticKind, ae as normalizeFeedPage, ar as normalizeOpenAIUsage, _ as orderTransientFeedItems, ad as readSessionFeedSnapshot, az as recordOpenAIUsageSpend, ax as toGranularHttpBase } from './spend-DtsHRNb5.mjs';
1
+ export { E as Environment, a as EnvironmentSession, G as Granular, O as OntologyHandle, S as Session, W as WSClient } from './client-IQeOoPnO.mjs';
2
+ import { E as EndpointMode, T as ToolWithHandler, a as EffectHandlerContext, F as FeedPublishTransport, M as ManifestEffectMetamodelSpec, R as ResolvedEffectBehaviors, S as SessionHeapEntry, b as SessionHeapList, c as FeedItem, d as SessionHeapSnapshot, P as Prompt, e as SessionTranscriptEntry } from './spend-CDLmk-KW.mjs';
3
+ export { dQ as APIError, aH as AccessTokenProvider, C as ActionSuggestionFeedItem, aO as AdoptEnvironmentOptions, ci as ArtifactApprovalDecisionInput, cj as ArtifactApprovalDecisionResult, cg as ArtifactApprovalTask, ch as ArtifactApprovalTaskListOptions, cf as ArtifactApprovalTaskStatus, A as ArtifactFeedItem, bx as ArtifactOptionsHandler, b8 as Assignment, b9 as AssignmentListResponse, bV as AssistantReplyPublicationInput, bW as AssistantReplyPublicationResult, bj as Build, bl as BuildListResponse, ba as BuildPolicy, bi as BuildStatus, aD as ConditionIR, aP as ConnectOptions, aR as ConversationSessionInfo, aT as ConversationSessionListOptions, aU as ConversationSessionListResponse, aS as ConversationSessionListStatus, be as CreateEnvironmentData, b6 as CreatePermissionProfileData, b2 as CreateSandboxData, aQ as CreateSessionOptions, cX as DefineRelationshipOptions, dR as DeleteResponse, D as DomainState, bt as EffectArtifactOptionsInvocation, bv as EffectArtifactRelationshipOption, bw as EffectArtifactRelationshipOptionsResult, bG as EffectHandler, bD as EffectInfo, bu as EffectInvocationMetadata, bs as EffectInvocationMode, by as EffectSchema, bB as EffectVersionSelector, bz as EffectWithHandler, bF as EffectsChangedEvent, bd as EnvironmentData, bO as EnvironmentFeedbackRecord, dk as EnvironmentImporter, dj as EnvironmentImporterImportOptions, bf as EnvironmentListResponse, dd as EnvironmentRecordImportSummary, di as EnvironmentSetupImporterClaim, dg as EnvironmentSetupLifecycleStatus, dh as EnvironmentSetupSummary, de as EnvironmentSetupTriggerReason, d1 as EnvironmentStateMachineProxy, c$ as EnvironmentStateObservationInput, d2 as EnvironmentStateProxy, c_ as EnvironmentStateTarget, d0 as EnvironmentStateUpdateInput, a1 as FeedDiagnostic, a2 as FeedDiagnosticListener, a9 as FeedDocumentState, l as FeedFeedbackTone, z as FeedFileSource, k as FeedIconToken, p as FeedItemBase, n as FeedItemKind, U as FeedListOptions, $ as FeedListTransport, s as FeedObjectReference, V as FeedPage, ak as FeedPublisher, Q as FeedSnapshot, a0 as FeedSnapshotRegressionReason, j as FeedSource, i as FeedSourceActor, W as FeedSubscribeOptions, X as FeedSubscriptionChange, t as FeedTableCell, u as FeedTableColumn, x as FeedTableProjection, w as FeedTableRow, v as FeedTableRowReference, o as FeedTarget, m as FeedTransientFeedbackTone, r as FeedbackFeedItem, B as FileFeedItem, a3 as GRANULAR_FEED_DIAGNOSTIC_EVENT, aJ as GranularAuth, aI as GranularOptions, a$ as GranularQuotaPolicy, b0 as GranularQuotaProgress, at as GranularSpendContext, dP as GraphQLResult, bH as InstanceEffectHandler, I as InstanceToolHandler, bQ as Job, bM as JobFeedbackInput, bL as JobFeedbackMetadata, bN as JobFeedbackRecord, bJ as JobFeedbackSentiment, bK as JobFeedbackToolCall, bI as JobStatus, bP as JobSubmitResult, bg as Manifest, dE as ManifestApprovalRequiredSpec, dO as ManifestContent, dF as ManifestCreatesSpec, dC as ManifestDryRunSpec, dI as ManifestEffectDeclaration, dH as ManifestEffectSchema, dn as ManifestEnumRuleSpec, dK as ManifestEventStreamDef, dJ as ManifestEventTypeDef, dp as ManifestFilterBySpec, dM as ManifestImport, bh as ManifestListResponse, dL as ManifestOperation, dB as ManifestPostConditionSpec, dl as ManifestPropertySpec, dG as ManifestRelationshipDef, dD as ManifestReverseSpec, dA as ManifestStateMachineSpec, dr as ManifestStateMachineStateSpec, dz as ManifestStateMachineTransitionSpec, dt as ManifestStateTransitionActionSpec, du as ManifestStateTransitionAssigneeSpec, dy as ManifestStateTransitionExpectedOutcomeSpec, ds as ManifestStateTransitionInputBinding, dx as ManifestStateTransitionPermissionSpec, dv as ManifestStateTransitionRelatedStateRequirementSpec, dw as ManifestStateTransitionRequirementsSpec, dm as ManifestValidationOperator, dq as ManifestValidationRuleSpec, dN as ManifestVolume, cr as ManualActionListOptions, cp as ManualActionOccurrence, cq as ManualActionRecordResult, cn as ManualActionRelatedRecord, cl as ManualActionSource, ck as ManualActionStatus, cs as ManualActionSuggestion, ct as ManualActionSuggestionOptions, cm as ManualActionTarget, cL as MarkUserEnvironmentReadOptions, aG as MatchedPolicy, q as MessageFeedItem, cV as ModelRef, an as NormalizedOpenAIUsage, N as NormalizedSuggestedArtifact, ap as OPENAI_MODEL_PRICING_USD_PER_MILLION, O as ObjectsFeedItem, am as OpenAIModelPricing, ao as OpenAITokenSpend, au as OpenAIUsageSpendEvent, aN as OpenEnvironmentOptions, b5 as PermissionProfile, b7 as PermissionProfileListResponse, b4 as PermissionRules, aC as PolicyOperator, aE as PolicyOrigin, aB as PolicyPredicateSource, aF as PolicyRuleIR, aA as PolicySource, G as PromptFeedItem, bA as PublishEffectsResult, ag as PublishFeedbackOptions, g as PublishToolsResult, ah as PublishTransientFeedbackOptions, a_ as QuotaLineItemFilter, aX as QuotaPeriod, aW as QuotaScopeType, aY as QuotaStatus, cP as RPCRequest, cS as RPCRequestFromServer, cQ as RPCResponse, dc as RecordImport, db as RecordImportItem, d9 as RecordImportItemStatus, d7 as RecordImportOptions, da as RecordImportStats, d8 as RecordImportStatus, d6 as RecordImportWriteMode, co as RecordManualActionInput, cB as RecordMentionInput, cY as RecordObjectOptions, d3 as RecordObjectResult, cZ as RecordObjectStateValue, d4 as RecordObjectsChunkInfo, d5 as RecordObjectsOptions, av as RecordOpenAIUsageSpendOptions, aw as RecordOpenAIUsageSpendResult, cA as RecordSearchOptions, cz as RecordSearchResult, aL as RecordUserOptions, cW as RelationshipInfo, br as ResolvedEffectApprovalRequired, bp as ResolvedEffectDryRun, bo as ResolvedEffectPostCondition, bq as ResolvedEffectReverse, df as RunEnvironmentImporterOptions, b1 as Sandbox, b3 as SandboxListResponse, bn as SemanticVersionDiff, bm as SemanticVersionDiffEntry, ce as SessionArtifactApprovalOptions, c4 as SessionArtifactAutonomyPolicy, cd as SessionArtifactExecutionOptions, cc as SessionArtifactExecutionResult, c3 as SessionArtifactKind, c6 as SessionArtifactListOptions, c5 as SessionArtifactRecord, cb as SessionArtifactRelationshipCreateInput, c9 as SessionArtifactRelationshipOption, c8 as SessionArtifactRelationshipOptionsInput, ca as SessionArtifactRelationshipOptionsResult, c2 as SessionArtifactStatus, c7 as SessionArtifactValidationResult, cD as SessionCollectionListOptions, cF as SessionCollectionListResult, cC as SessionDocumentResult, Y as SessionFeedApi, af as SessionFeedController, a8 as SessionFeedControllerOptions, b$ as SessionFileKind, c1 as SessionFileRecord, b_ as SessionFileSource, c0 as SessionFileStatus, cu as SessionFileUploadOptions, cw as SessionHeapFieldType, cx as SessionHeapFieldValue, cy as SessionHeapVariable, cE as SessionJobListOptions, cv as SessionJobRecord, bZ as SessionTimelineEvent, bX as SessionTranscriptActionSuggestion, bY as SessionTranscriptShowRefs, ai as SettleTransientFeedbackOptions, cR as SnapshotResetMessage, aV as SpendLineItemType, aZ as SpendSummary, dS as StreamEvent, dU as StreamStats, dT as StreamSubscription, aM as Subject, y as TableFeedItem, h as ToolHandler, bC as ToolInfo, cT as ToolInvokeParams, cU as ToolResultParams, f as ToolSchema, bE as ToolsChangedEvent, L as TransientFeedItem, H as TransientFeedItemBase, K as TransientFeedbackFeedItem, aj as TransientFeedbackHandle, J as TransientMessageFeedItem, aK as User, cH as UserEnvironmentMessagePreview, cG as UserEnvironmentPrompt, cI as UserEnvironmentSessionState, cJ as UserEnvironmentState, cK as UserEnvironmentStateOptions, bU as UserMessageAppendResult, bT as UserMessageInput, bR as UserMessageShowRefs, bS as UserMessageTarget, bk as Version, bc as VersionTag, bb as VersionTracking, cO as WSClientOptions, cM as WSDisconnectInfo, cN as WSReconnectErrorInfo, ay as buildOpenAISpendEventId, as as calculateOpenAITokenSpend, al as createFeedPublisher, a7 as emitFeedDiagnostic, a6 as emitFeedDiagnosticToDefaultSink, aa as emptyFeedSnapshot, aq as getOpenAIModelPricing, ab as hasCanonicalSessionFeedActivation, ac as isCanonicalSessionFeedDocument, Z as mergeFeedItemsBySequence, a5 as normalizeFeedDiagnostic, a4 as normalizeFeedDiagnosticKind, ae as normalizeFeedPage, ar as normalizeOpenAIUsage, _ as orderTransientFeedItems, ad as readSessionFeedSnapshot, az as recordOpenAIUsageSpend, ax as toGranularHttpBase } from './spend-CDLmk-KW.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';
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 } from './client-KqJIH7WE.js';
2
- import { E as EndpointMode, T as ToolWithHandler, a as EffectHandlerContext, F as FeedPublishTransport, M as ManifestEffectMetamodelSpec, R as ResolvedEffectBehaviors, S as SessionHeapEntry, b as SessionHeapList, c as FeedItem, d as SessionHeapSnapshot, P as Prompt, e as SessionTranscriptEntry } from './spend-DtsHRNb5.js';
3
- export { dQ as APIError, aH as AccessTokenProvider, C as ActionSuggestionFeedItem, aO as AdoptEnvironmentOptions, ci as ArtifactApprovalDecisionInput, cj as ArtifactApprovalDecisionResult, cg as ArtifactApprovalTask, ch as ArtifactApprovalTaskListOptions, cf as ArtifactApprovalTaskStatus, A as ArtifactFeedItem, bx as ArtifactOptionsHandler, b8 as Assignment, b9 as AssignmentListResponse, bV as AssistantReplyPublicationInput, bW as AssistantReplyPublicationResult, bj as Build, bl as BuildListResponse, ba as BuildPolicy, bi as BuildStatus, aD as ConditionIR, aP as ConnectOptions, aR as ConversationSessionInfo, aT as ConversationSessionListOptions, aU as ConversationSessionListResponse, aS as ConversationSessionListStatus, be as CreateEnvironmentData, b6 as CreatePermissionProfileData, b2 as CreateSandboxData, aQ as CreateSessionOptions, cX as DefineRelationshipOptions, dR as DeleteResponse, D as DomainState, bt as EffectArtifactOptionsInvocation, bv as EffectArtifactRelationshipOption, bw as EffectArtifactRelationshipOptionsResult, bG as EffectHandler, bD as EffectInfo, bu as EffectInvocationMetadata, bs as EffectInvocationMode, by as EffectSchema, bB as EffectVersionSelector, bz as EffectWithHandler, bF as EffectsChangedEvent, bd as EnvironmentData, bO as EnvironmentFeedbackRecord, dk as EnvironmentImporter, dj as EnvironmentImporterImportOptions, bf as EnvironmentListResponse, dd as EnvironmentRecordImportSummary, di as EnvironmentSetupImporterClaim, dg as EnvironmentSetupLifecycleStatus, dh as EnvironmentSetupSummary, de as EnvironmentSetupTriggerReason, d1 as EnvironmentStateMachineProxy, c$ as EnvironmentStateObservationInput, d2 as EnvironmentStateProxy, c_ as EnvironmentStateTarget, d0 as EnvironmentStateUpdateInput, a1 as FeedDiagnostic, a2 as FeedDiagnosticListener, a9 as FeedDocumentState, l as FeedFeedbackTone, z as FeedFileSource, k as FeedIconToken, p as FeedItemBase, n as FeedItemKind, U as FeedListOptions, $ as FeedListTransport, s as FeedObjectReference, V as FeedPage, ak as FeedPublisher, Q as FeedSnapshot, a0 as FeedSnapshotRegressionReason, j as FeedSource, i as FeedSourceActor, W as FeedSubscribeOptions, X as FeedSubscriptionChange, t as FeedTableCell, u as FeedTableColumn, x as FeedTableProjection, w as FeedTableRow, v as FeedTableRowReference, o as FeedTarget, m as FeedTransientFeedbackTone, r as FeedbackFeedItem, B as FileFeedItem, a3 as GRANULAR_FEED_DIAGNOSTIC_EVENT, aJ as GranularAuth, aI as GranularOptions, a$ as GranularQuotaPolicy, b0 as GranularQuotaProgress, at as GranularSpendContext, dP as GraphQLResult, bH as InstanceEffectHandler, I as InstanceToolHandler, bQ as Job, bM as JobFeedbackInput, bL as JobFeedbackMetadata, bN as JobFeedbackRecord, bJ as JobFeedbackSentiment, bK as JobFeedbackToolCall, bI as JobStatus, bP as JobSubmitResult, bg as Manifest, dE as ManifestApprovalRequiredSpec, dO as ManifestContent, dF as ManifestCreatesSpec, dC as ManifestDryRunSpec, dI as ManifestEffectDeclaration, dH as ManifestEffectSchema, dn as ManifestEnumRuleSpec, dK as ManifestEventStreamDef, dJ as ManifestEventTypeDef, dp as ManifestFilterBySpec, dM as ManifestImport, bh as ManifestListResponse, dL as ManifestOperation, dB as ManifestPostConditionSpec, dl as ManifestPropertySpec, dG as ManifestRelationshipDef, dD as ManifestReverseSpec, dA as ManifestStateMachineSpec, dr as ManifestStateMachineStateSpec, dz as ManifestStateMachineTransitionSpec, dt as ManifestStateTransitionActionSpec, du as ManifestStateTransitionAssigneeSpec, dy as ManifestStateTransitionExpectedOutcomeSpec, ds as ManifestStateTransitionInputBinding, dx as ManifestStateTransitionPermissionSpec, dv as ManifestStateTransitionRelatedStateRequirementSpec, dw as ManifestStateTransitionRequirementsSpec, dm as ManifestValidationOperator, dq as ManifestValidationRuleSpec, dN as ManifestVolume, cr as ManualActionListOptions, cp as ManualActionOccurrence, cq as ManualActionRecordResult, cn as ManualActionRelatedRecord, cl as ManualActionSource, ck as ManualActionStatus, cs as ManualActionSuggestion, ct as ManualActionSuggestionOptions, cm as ManualActionTarget, cL as MarkUserEnvironmentReadOptions, aG as MatchedPolicy, q as MessageFeedItem, cV as ModelRef, an as NormalizedOpenAIUsage, N as NormalizedSuggestedArtifact, ap as OPENAI_MODEL_PRICING_USD_PER_MILLION, O as ObjectsFeedItem, am as OpenAIModelPricing, ao as OpenAITokenSpend, au as OpenAIUsageSpendEvent, aN as OpenEnvironmentOptions, b5 as PermissionProfile, b7 as PermissionProfileListResponse, b4 as PermissionRules, aC as PolicyOperator, aE as PolicyOrigin, aB as PolicyPredicateSource, aF as PolicyRuleIR, aA as PolicySource, G as PromptFeedItem, bA as PublishEffectsResult, ag as PublishFeedbackOptions, g as PublishToolsResult, ah as PublishTransientFeedbackOptions, a_ as QuotaLineItemFilter, aX as QuotaPeriod, aW as QuotaScopeType, aY as QuotaStatus, cP as RPCRequest, cS as RPCRequestFromServer, cQ as RPCResponse, dc as RecordImport, db as RecordImportItem, d9 as RecordImportItemStatus, d7 as RecordImportOptions, da as RecordImportStats, d8 as RecordImportStatus, d6 as RecordImportWriteMode, co as RecordManualActionInput, cB as RecordMentionInput, cY as RecordObjectOptions, d3 as RecordObjectResult, cZ as RecordObjectStateValue, d4 as RecordObjectsChunkInfo, d5 as RecordObjectsOptions, av as RecordOpenAIUsageSpendOptions, aw as RecordOpenAIUsageSpendResult, cA as RecordSearchOptions, cz as RecordSearchResult, aL as RecordUserOptions, cW as RelationshipInfo, br as ResolvedEffectApprovalRequired, bp as ResolvedEffectDryRun, bo as ResolvedEffectPostCondition, bq as ResolvedEffectReverse, df as RunEnvironmentImporterOptions, b1 as Sandbox, b3 as SandboxListResponse, bn as SemanticVersionDiff, bm as SemanticVersionDiffEntry, ce as SessionArtifactApprovalOptions, c4 as SessionArtifactAutonomyPolicy, cd as SessionArtifactExecutionOptions, cc as SessionArtifactExecutionResult, c3 as SessionArtifactKind, c6 as SessionArtifactListOptions, c5 as SessionArtifactRecord, cb as SessionArtifactRelationshipCreateInput, c9 as SessionArtifactRelationshipOption, c8 as SessionArtifactRelationshipOptionsInput, ca as SessionArtifactRelationshipOptionsResult, c2 as SessionArtifactStatus, c7 as SessionArtifactValidationResult, cD as SessionCollectionListOptions, cF as SessionCollectionListResult, cC as SessionDocumentResult, Y as SessionFeedApi, af as SessionFeedController, a8 as SessionFeedControllerOptions, b$ as SessionFileKind, c1 as SessionFileRecord, b_ as SessionFileSource, c0 as SessionFileStatus, cu as SessionFileUploadOptions, cw as SessionHeapFieldType, cx as SessionHeapFieldValue, cy as SessionHeapVariable, cE as SessionJobListOptions, cv as SessionJobRecord, bZ as SessionTimelineEvent, bX as SessionTranscriptActionSuggestion, bY as SessionTranscriptShowRefs, ai as SettleTransientFeedbackOptions, cR as SnapshotResetMessage, aV as SpendLineItemType, aZ as SpendSummary, dS as StreamEvent, dU as StreamStats, dT as StreamSubscription, aM as Subject, y as TableFeedItem, h as ToolHandler, bC as ToolInfo, cT as ToolInvokeParams, cU as ToolResultParams, f as ToolSchema, bE as ToolsChangedEvent, L as TransientFeedItem, H as TransientFeedItemBase, K as TransientFeedbackFeedItem, aj as TransientFeedbackHandle, J as TransientMessageFeedItem, aK as User, cH as UserEnvironmentMessagePreview, cG as UserEnvironmentPrompt, cI as UserEnvironmentSessionState, cJ as UserEnvironmentState, cK as UserEnvironmentStateOptions, bU as UserMessageAppendResult, bT as UserMessageInput, bR as UserMessageShowRefs, bS as UserMessageTarget, bk as Version, bc as VersionTag, bb as VersionTracking, cO as WSClientOptions, cM as WSDisconnectInfo, cN as WSReconnectErrorInfo, ay as buildOpenAISpendEventId, as as calculateOpenAITokenSpend, al as createFeedPublisher, a7 as emitFeedDiagnostic, a6 as emitFeedDiagnosticToDefaultSink, aa as emptyFeedSnapshot, aq as getOpenAIModelPricing, ab as hasCanonicalSessionFeedActivation, ac as isCanonicalSessionFeedDocument, Z as mergeFeedItemsBySequence, a5 as normalizeFeedDiagnostic, a4 as normalizeFeedDiagnosticKind, ae as normalizeFeedPage, ar as normalizeOpenAIUsage, _ as orderTransientFeedItems, ad as readSessionFeedSnapshot, az as recordOpenAIUsageSpend, ax as toGranularHttpBase } from './spend-DtsHRNb5.js';
1
+ export { E as Environment, a as EnvironmentSession, G as Granular, O as OntologyHandle, S as Session, W as WSClient } from './client-BziqnDTl.js';
2
+ import { E as EndpointMode, T as ToolWithHandler, a as EffectHandlerContext, F as FeedPublishTransport, M as ManifestEffectMetamodelSpec, R as ResolvedEffectBehaviors, S as SessionHeapEntry, b as SessionHeapList, c as FeedItem, d as SessionHeapSnapshot, P as Prompt, e as SessionTranscriptEntry } from './spend-CDLmk-KW.js';
3
+ export { dQ as APIError, aH as AccessTokenProvider, C as ActionSuggestionFeedItem, aO as AdoptEnvironmentOptions, ci as ArtifactApprovalDecisionInput, cj as ArtifactApprovalDecisionResult, cg as ArtifactApprovalTask, ch as ArtifactApprovalTaskListOptions, cf as ArtifactApprovalTaskStatus, A as ArtifactFeedItem, bx as ArtifactOptionsHandler, b8 as Assignment, b9 as AssignmentListResponse, bV as AssistantReplyPublicationInput, bW as AssistantReplyPublicationResult, bj as Build, bl as BuildListResponse, ba as BuildPolicy, bi as BuildStatus, aD as ConditionIR, aP as ConnectOptions, aR as ConversationSessionInfo, aT as ConversationSessionListOptions, aU as ConversationSessionListResponse, aS as ConversationSessionListStatus, be as CreateEnvironmentData, b6 as CreatePermissionProfileData, b2 as CreateSandboxData, aQ as CreateSessionOptions, cX as DefineRelationshipOptions, dR as DeleteResponse, D as DomainState, bt as EffectArtifactOptionsInvocation, bv as EffectArtifactRelationshipOption, bw as EffectArtifactRelationshipOptionsResult, bG as EffectHandler, bD as EffectInfo, bu as EffectInvocationMetadata, bs as EffectInvocationMode, by as EffectSchema, bB as EffectVersionSelector, bz as EffectWithHandler, bF as EffectsChangedEvent, bd as EnvironmentData, bO as EnvironmentFeedbackRecord, dk as EnvironmentImporter, dj as EnvironmentImporterImportOptions, bf as EnvironmentListResponse, dd as EnvironmentRecordImportSummary, di as EnvironmentSetupImporterClaim, dg as EnvironmentSetupLifecycleStatus, dh as EnvironmentSetupSummary, de as EnvironmentSetupTriggerReason, d1 as EnvironmentStateMachineProxy, c$ as EnvironmentStateObservationInput, d2 as EnvironmentStateProxy, c_ as EnvironmentStateTarget, d0 as EnvironmentStateUpdateInput, a1 as FeedDiagnostic, a2 as FeedDiagnosticListener, a9 as FeedDocumentState, l as FeedFeedbackTone, z as FeedFileSource, k as FeedIconToken, p as FeedItemBase, n as FeedItemKind, U as FeedListOptions, $ as FeedListTransport, s as FeedObjectReference, V as FeedPage, ak as FeedPublisher, Q as FeedSnapshot, a0 as FeedSnapshotRegressionReason, j as FeedSource, i as FeedSourceActor, W as FeedSubscribeOptions, X as FeedSubscriptionChange, t as FeedTableCell, u as FeedTableColumn, x as FeedTableProjection, w as FeedTableRow, v as FeedTableRowReference, o as FeedTarget, m as FeedTransientFeedbackTone, r as FeedbackFeedItem, B as FileFeedItem, a3 as GRANULAR_FEED_DIAGNOSTIC_EVENT, aJ as GranularAuth, aI as GranularOptions, a$ as GranularQuotaPolicy, b0 as GranularQuotaProgress, at as GranularSpendContext, dP as GraphQLResult, bH as InstanceEffectHandler, I as InstanceToolHandler, bQ as Job, bM as JobFeedbackInput, bL as JobFeedbackMetadata, bN as JobFeedbackRecord, bJ as JobFeedbackSentiment, bK as JobFeedbackToolCall, bI as JobStatus, bP as JobSubmitResult, bg as Manifest, dE as ManifestApprovalRequiredSpec, dO as ManifestContent, dF as ManifestCreatesSpec, dC as ManifestDryRunSpec, dI as ManifestEffectDeclaration, dH as ManifestEffectSchema, dn as ManifestEnumRuleSpec, dK as ManifestEventStreamDef, dJ as ManifestEventTypeDef, dp as ManifestFilterBySpec, dM as ManifestImport, bh as ManifestListResponse, dL as ManifestOperation, dB as ManifestPostConditionSpec, dl as ManifestPropertySpec, dG as ManifestRelationshipDef, dD as ManifestReverseSpec, dA as ManifestStateMachineSpec, dr as ManifestStateMachineStateSpec, dz as ManifestStateMachineTransitionSpec, dt as ManifestStateTransitionActionSpec, du as ManifestStateTransitionAssigneeSpec, dy as ManifestStateTransitionExpectedOutcomeSpec, ds as ManifestStateTransitionInputBinding, dx as ManifestStateTransitionPermissionSpec, dv as ManifestStateTransitionRelatedStateRequirementSpec, dw as ManifestStateTransitionRequirementsSpec, dm as ManifestValidationOperator, dq as ManifestValidationRuleSpec, dN as ManifestVolume, cr as ManualActionListOptions, cp as ManualActionOccurrence, cq as ManualActionRecordResult, cn as ManualActionRelatedRecord, cl as ManualActionSource, ck as ManualActionStatus, cs as ManualActionSuggestion, ct as ManualActionSuggestionOptions, cm as ManualActionTarget, cL as MarkUserEnvironmentReadOptions, aG as MatchedPolicy, q as MessageFeedItem, cV as ModelRef, an as NormalizedOpenAIUsage, N as NormalizedSuggestedArtifact, ap as OPENAI_MODEL_PRICING_USD_PER_MILLION, O as ObjectsFeedItem, am as OpenAIModelPricing, ao as OpenAITokenSpend, au as OpenAIUsageSpendEvent, aN as OpenEnvironmentOptions, b5 as PermissionProfile, b7 as PermissionProfileListResponse, b4 as PermissionRules, aC as PolicyOperator, aE as PolicyOrigin, aB as PolicyPredicateSource, aF as PolicyRuleIR, aA as PolicySource, G as PromptFeedItem, bA as PublishEffectsResult, ag as PublishFeedbackOptions, g as PublishToolsResult, ah as PublishTransientFeedbackOptions, a_ as QuotaLineItemFilter, aX as QuotaPeriod, aW as QuotaScopeType, aY as QuotaStatus, cP as RPCRequest, cS as RPCRequestFromServer, cQ as RPCResponse, dc as RecordImport, db as RecordImportItem, d9 as RecordImportItemStatus, d7 as RecordImportOptions, da as RecordImportStats, d8 as RecordImportStatus, d6 as RecordImportWriteMode, co as RecordManualActionInput, cB as RecordMentionInput, cY as RecordObjectOptions, d3 as RecordObjectResult, cZ as RecordObjectStateValue, d4 as RecordObjectsChunkInfo, d5 as RecordObjectsOptions, av as RecordOpenAIUsageSpendOptions, aw as RecordOpenAIUsageSpendResult, cA as RecordSearchOptions, cz as RecordSearchResult, aL as RecordUserOptions, cW as RelationshipInfo, br as ResolvedEffectApprovalRequired, bp as ResolvedEffectDryRun, bo as ResolvedEffectPostCondition, bq as ResolvedEffectReverse, df as RunEnvironmentImporterOptions, b1 as Sandbox, b3 as SandboxListResponse, bn as SemanticVersionDiff, bm as SemanticVersionDiffEntry, ce as SessionArtifactApprovalOptions, c4 as SessionArtifactAutonomyPolicy, cd as SessionArtifactExecutionOptions, cc as SessionArtifactExecutionResult, c3 as SessionArtifactKind, c6 as SessionArtifactListOptions, c5 as SessionArtifactRecord, cb as SessionArtifactRelationshipCreateInput, c9 as SessionArtifactRelationshipOption, c8 as SessionArtifactRelationshipOptionsInput, ca as SessionArtifactRelationshipOptionsResult, c2 as SessionArtifactStatus, c7 as SessionArtifactValidationResult, cD as SessionCollectionListOptions, cF as SessionCollectionListResult, cC as SessionDocumentResult, Y as SessionFeedApi, af as SessionFeedController, a8 as SessionFeedControllerOptions, b$ as SessionFileKind, c1 as SessionFileRecord, b_ as SessionFileSource, c0 as SessionFileStatus, cu as SessionFileUploadOptions, cw as SessionHeapFieldType, cx as SessionHeapFieldValue, cy as SessionHeapVariable, cE as SessionJobListOptions, cv as SessionJobRecord, bZ as SessionTimelineEvent, bX as SessionTranscriptActionSuggestion, bY as SessionTranscriptShowRefs, ai as SettleTransientFeedbackOptions, cR as SnapshotResetMessage, aV as SpendLineItemType, aZ as SpendSummary, dS as StreamEvent, dU as StreamStats, dT as StreamSubscription, aM as Subject, y as TableFeedItem, h as ToolHandler, bC as ToolInfo, cT as ToolInvokeParams, cU as ToolResultParams, f as ToolSchema, bE as ToolsChangedEvent, L as TransientFeedItem, H as TransientFeedItemBase, K as TransientFeedbackFeedItem, aj as TransientFeedbackHandle, J as TransientMessageFeedItem, aK as User, cH as UserEnvironmentMessagePreview, cG as UserEnvironmentPrompt, cI as UserEnvironmentSessionState, cJ as UserEnvironmentState, cK as UserEnvironmentStateOptions, bU as UserMessageAppendResult, bT as UserMessageInput, bR as UserMessageShowRefs, bS as UserMessageTarget, bk as Version, bc as VersionTag, bb as VersionTracking, cO as WSClientOptions, cM as WSDisconnectInfo, cN as WSReconnectErrorInfo, ay as buildOpenAISpendEventId, as as calculateOpenAITokenSpend, al as createFeedPublisher, a7 as emitFeedDiagnostic, a6 as emitFeedDiagnosticToDefaultSink, aa as emptyFeedSnapshot, aq as getOpenAIModelPricing, ab as hasCanonicalSessionFeedActivation, ac as isCanonicalSessionFeedDocument, Z as mergeFeedItemsBySequence, a5 as normalizeFeedDiagnostic, a4 as normalizeFeedDiagnosticKind, ae as normalizeFeedPage, ar as normalizeOpenAIUsage, _ as orderTransientFeedItems, ad as readSessionFeedSnapshot, az as recordOpenAIUsageSpend, ax as toGranularHttpBase } from './spend-CDLmk-KW.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';
package/dist/index.js CHANGED
@@ -12219,8 +12219,12 @@ external_exports.union([
12219
12219
  external_exports.array(external_exports.string()),
12220
12220
  external_exports.object({
12221
12221
  values: external_exports.array(external_exports.string()),
12222
+ labels: external_exports.array(external_exports.string().min(1)).optional(),
12222
12223
  message: external_exports.string().optional()
12223
- }).strict()
12224
+ }).strict().refine(
12225
+ (rule) => !rule.labels || rule.labels.length === rule.values.length,
12226
+ { message: "Enum labels must match enum values one-for-one" }
12227
+ )
12224
12228
  ]);
12225
12229
  external_exports.union([
12226
12230
  external_exports.boolean(),
@@ -12248,7 +12252,7 @@ var StateMachineStateSchema = external_exports.union([
12248
12252
  external_exports.string(),
12249
12253
  external_exports.object({
12250
12254
  name: external_exports.string().min(1),
12251
- label: external_exports.string().optional(),
12255
+ label: external_exports.string().min(1).optional(),
12252
12256
  description: external_exports.string().optional(),
12253
12257
  isFinal: external_exports.boolean().optional()
12254
12258
  }).strict()
@@ -13142,7 +13146,7 @@ function resolveHandlerForMode(effectMap, effect, request) {
13142
13146
  if (mode === "artifactOptions") {
13143
13147
  if (!effect.artifactOptionsHandler) {
13144
13148
  throw new Error(
13145
- `Artifact relationship options are not supported for ${request.effectKey}`
13149
+ `Artifact field options are not supported for ${request.effectKey}`
13146
13150
  );
13147
13151
  }
13148
13152
  return {
@@ -13644,18 +13648,24 @@ function normalizeEnumInput(enumSpec) {
13644
13648
  (value) => typeof value === "string" && value.length > 0
13645
13649
  );
13646
13650
  if (values.length === 0) return null;
13647
- return config.message ? { values, message: config.message } : { values };
13651
+ const labels = Array.isArray(config.labels) && config.labels.length === values.length ? config.labels : values;
13652
+ return {
13653
+ values,
13654
+ labels,
13655
+ ...config.message ? { message: config.message } : {}
13656
+ };
13648
13657
  }
13649
13658
  function buildEnumFieldMutations(fieldPath, enumSpec) {
13650
13659
  const normalized = normalizeEnumInput(enumSpec);
13651
13660
  if (!normalized) return [];
13652
13661
  const messageArg = normalized.message ? `, message: ${JSON.stringify(normalized.message)}` : "";
13662
+ const labelsArg = normalized.labels ? `, labels: ${JSON.stringify(normalized.labels)}` : "";
13653
13663
  return [
13654
13664
  {
13655
13665
  label: `set enum on ${fieldPath}`,
13656
13666
  query: `mutation { at(path: ${JSON.stringify(fieldPath)}) { set_enum(values: ${JSON.stringify(
13657
13667
  normalized.values
13658
- )}${messageArg}) { values } } }`
13668
+ )}${labelsArg}${messageArg}) { values labels } } }`
13659
13669
  }
13660
13670
  ];
13661
13671
  }
@@ -13665,7 +13675,7 @@ var enumMetamodelPackage = defineMetamodelPackage({
13665
13675
  fieldRows: [
13666
13676
  {
13667
13677
  key: "enum",
13668
- description: 'Allowed values. Accepts `["a", "b"]` or `{ "values": [...], "message": "..." }`.'
13678
+ description: 'Allowed values. Use `{ "values": [...], "labels": [...] }` for authored display labels; otherwise each unchanged value is its display fallback.'
13669
13679
  }
13670
13680
  ]
13671
13681
  },
@@ -13675,6 +13685,7 @@ var enumMetamodelPackage = defineMetamodelPackage({
13675
13685
  type EnumMetamodel {
13676
13686
  model: Model!
13677
13687
  values: [String!]!
13688
+ labels: [String!]!
13678
13689
  message: String
13679
13690
  }
13680
13691
 
@@ -13683,7 +13694,7 @@ var enumMetamodelPackage = defineMetamodelPackage({
13683
13694
  }
13684
13695
 
13685
13696
  extend type ModelMutation {
13686
- set_enum(values: [String!]!, message: String): EnumMetamodel
13697
+ set_enum(values: [String!]!, labels: [String!], message: String): EnumMetamodel
13687
13698
  }
13688
13699
  `
13689
13700
  ],
@@ -13692,15 +13703,19 @@ var enumMetamodelPackage = defineMetamodelPackage({
13692
13703
  EnumMetamodel: {
13693
13704
  model: (value) => value.model,
13694
13705
  values: (value) => value.values,
13706
+ labels: (value) => value.labels || [],
13695
13707
  message: (value) => value.message || null
13696
13708
  },
13697
13709
  Model: {
13698
13710
  enum_rule: async (ant) => await run(ant.enum_rule())
13699
13711
  },
13700
13712
  ModelMutation: {
13701
- set_enum: async (ant, { values, message }) => {
13702
- const model = await run(ant.set_enum(values, message));
13703
- return { model, values, message };
13713
+ set_enum: async (ant, { values, labels, message }) => {
13714
+ const resolvedLabels = Array.isArray(labels) && labels.length === values.length ? labels : values;
13715
+ const model = await run(
13716
+ ant.set_enum(values, resolvedLabels, message)
13717
+ );
13718
+ return { model, values, labels: resolvedLabels, message };
13704
13719
  }
13705
13720
  }
13706
13721
  };
@@ -13713,7 +13728,7 @@ var enumMetamodelPackage = defineMetamodelPackage({
13713
13728
  },
13714
13729
  summary: {
13715
13730
  selections: {
13716
- propertyFields: [`enum_rule { values message }`]
13731
+ propertyFields: [`enum_rule { values labels message }`]
13717
13732
  },
13718
13733
  readPropertySummary(rawProperty) {
13719
13734
  const values = Array.isArray(rawProperty.enum_rule?.values) ? rawProperty.enum_rule.values.filter(
@@ -13721,8 +13736,15 @@ var enumMetamodelPackage = defineMetamodelPackage({
13721
13736
  ) : [];
13722
13737
  if (values.length === 0) return { enumRule: null };
13723
13738
  const message = typeof rawProperty.enum_rule?.message === "string" ? rawProperty.enum_rule.message : null;
13739
+ const labels = Array.isArray(rawProperty.enum_rule?.labels) ? rawProperty.enum_rule.labels.filter(
13740
+ (label) => typeof label === "string" && label.length > 0
13741
+ ) : [];
13724
13742
  return {
13725
- enumRule: message ? { values, message } : { values }
13743
+ enumRule: {
13744
+ values,
13745
+ ...labels.length === values.length ? { labels } : {},
13746
+ ...message ? { message } : {}
13747
+ }
13726
13748
  };
13727
13749
  }
13728
13750
  },