@granular-software/sdk 0.4.60 → 0.4.62

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
@@ -14115,6 +14115,7 @@ var StateTransitionInputBindingSchema = external_exports.lazy(
14115
14115
  );
14116
14116
  var StateTransitionActionSchema = external_exports.object({
14117
14117
  effect: external_exports.string().min(1),
14118
+ providerLabel: external_exports.string().optional(),
14118
14119
  input: external_exports.record(external_exports.string(), StateTransitionInputBindingSchema).optional()
14119
14120
  }).strict();
14120
14121
  var StateTransitionAssigneeSchema = external_exports.object({
@@ -15901,6 +15902,15 @@ var stateMachineMetamodelPackage = defineMetamodelPackage({
15901
15902
  is_final: Boolean!
15902
15903
  history: [StateMachineTransitionEvent!]!
15903
15904
  instances_in_state(state: String!): [Model!]!
15905
+ instance_population(state: String!, page: Int = 1, per_page: Int = 50): StateMachineInstancePopulation!
15906
+ }
15907
+
15908
+ type StateMachineInstancePopulation {
15909
+ count: Int!
15910
+ instances: [Model!]!
15911
+ page: Int!
15912
+ per_page: Int!
15913
+ has_more: Boolean!
15904
15914
  }
15905
15915
 
15906
15916
  type StateMachineState {
@@ -16109,6 +16119,13 @@ var stateMachineMetamodelPackage = defineMetamodelPackage({
16109
16119
  value.model.target || value.model,
16110
16120
  value.name,
16111
16121
  state
16122
+ ),
16123
+ instance_population: async (value, { state, page, per_page }) => await stateMachines.instancePopulation(
16124
+ value.model.target || value.model,
16125
+ value.name,
16126
+ state,
16127
+ page,
16128
+ per_page
16112
16129
  )
16113
16130
  }
16114
16131
  };
@@ -26904,11 +26921,16 @@ var Granular = class _Granular {
26904
26921
  `${methodName}() requires at least one permission so the SDK can ensure assignments for new users.`
26905
26922
  );
26906
26923
  }
26907
- for (const profileName of user.permissions) {
26908
- const profileId = await this.ensurePermissionProfile(
26909
- sandbox.sandboxId,
26910
- profileName
26924
+ const permissionProfileIds = [];
26925
+ for (const profileReference of user.permissions) {
26926
+ permissionProfileIds.push(
26927
+ await this.ensurePermissionProfile(
26928
+ sandbox.sandboxId,
26929
+ profileReference
26930
+ )
26911
26931
  );
26932
+ }
26933
+ for (const profileId of permissionProfileIds) {
26912
26934
  await this.ensureAssignment(
26913
26935
  user.granularId,
26914
26936
  sandbox.sandboxId,
@@ -27913,25 +27935,37 @@ var Granular = class _Granular {
27913
27935
  }
27914
27936
  }
27915
27937
  /**
27916
- * Ensure a permission profile exists for a sandbox, creating it if needed.
27917
- * If profileName matches an existing profile name, returns its ID.
27918
- * Otherwise, creates a v1 source-profile file shape with an allow default.
27938
+ * Resolve an existing permission profile by exact name or ID.
27939
+ *
27940
+ * `allow-all` is the sole compatibility profile that the SDK may provision
27941
+ * automatically. Every other missing reference fails closed so a typo or
27942
+ * untrusted role value cannot become an allow-default profile.
27919
27943
  */
27920
- async ensurePermissionProfile(sandboxId, profileName) {
27921
- try {
27922
- const profiles = await this.permissionProfiles.list(sandboxId);
27923
- const existing = profiles.find((p) => p.name === profileName);
27924
- if (existing) {
27925
- return existing.permissionProfileId;
27926
- }
27927
- } catch {
27944
+ async ensurePermissionProfile(sandboxId, profileReference) {
27945
+ const normalizedReference = typeof profileReference === "string" ? profileReference.trim() : "";
27946
+ if (!normalizedReference) {
27947
+ throw new Error(
27948
+ "Permission profile references must be non-empty names or IDs."
27949
+ );
27950
+ }
27951
+ const profiles = await this.permissionProfiles.list(sandboxId);
27952
+ const existing = profiles.find(
27953
+ (profile) => profile.name === normalizedReference || profile.permissionProfileId === normalizedReference
27954
+ );
27955
+ if (existing) {
27956
+ return existing.permissionProfileId;
27957
+ }
27958
+ if (normalizedReference !== "allow-all") {
27959
+ throw new Error(
27960
+ `Permission profile "${normalizedReference}" was not found in sandbox ${sandboxId}. Provision it with granular build or granular deploy before calling openEnvironment(). Only the reserved "allow-all" profile can be created automatically.`
27961
+ );
27928
27962
  }
27929
27963
  const created = await this.permissionProfiles.create(sandboxId, {
27930
- name: profileName,
27964
+ name: normalizedReference,
27931
27965
  rules: {
27932
27966
  schemaVersion: 1,
27933
- name: profileName,
27934
- description: profileName === "allow-all" ? "Every declared action is visible unless a manifest policy denies it." : `Generated permission profile ${profileName}`,
27967
+ name: normalizedReference,
27968
+ description: "Every declared action is visible unless a manifest policy denies it.",
27935
27969
  defaults: { actionPolicy: "allow" },
27936
27970
  actions: []
27937
27971
  }
@@ -1,4 +1,4 @@
1
- import { cN as WSClientOptions, Y as SessionFeedApi, a$ as GranularQuotaProgress, T as ToolWithHandler, g as PublishToolsResult, bP as Job, h as ToolHandler, I as InstanceToolHandler, bS as UserMessageInput, bT as UserMessageAppendResult, bC as EffectInfo, P as Prompt, bB as ToolInfo, bE as EffectsChangedEvent, bD as ToolsChangedEvent, D as DomainState, $ as FeedListTransport, aI as GranularOptions, dj as EnvironmentImporter, aL as RecordUserOptions, aK as User, aN as OpenEnvironmentOptions, bc as EnvironmentData, b9 as BuildPolicy, dg as EnvironmentSetupSummary, aT as ConversationSessionListOptions, aR as ConversationSessionInfo, aQ as CreateSessionOptions, cX as RecordObjectOptions, d2 as RecordObjectResult, d4 as RecordObjectsOptions, db as RecordImport, d7 as RecordImportStatus, da as RecordImportItem, dc as EnvironmentRecordImportSummary, bN as EnvironmentFeedbackRecord, d as SessionHeapSnapshot, cB as SessionDocumentResult, bU as AssistantReplyPublicationInput, bV as AssistantReplyPublicationResult, cC as SessionCollectionListOptions, cE as SessionCollectionListResult, bY as SessionTimelineEvent, cD as SessionJobListOptions, cu as SessionJobRecord, c5 as SessionArtifactListOptions, c4 as SessionArtifactRecord, c7 as SessionArtifactRelationshipOptionsInput, c9 as SessionArtifactRelationshipOptionsResult, ca as SessionArtifactRelationshipCreateInput, c6 as SessionArtifactValidationResult, cc as SessionArtifactExecutionOptions, cb as SessionArtifactExecutionResult, cd as SessionArtifactApprovalOptions, cn as RecordManualActionInput, cp as ManualActionRecordResult, cq as ManualActionListOptions, co as ManualActionOccurrence, cs as ManualActionSuggestionOptions, cr as ManualActionSuggestion, cg as ArtifactApprovalTaskListOptions, cf as ArtifactApprovalTask, ch as ArtifactApprovalDecisionInput, ci as ArtifactApprovalDecisionResult, c0 as SessionFileRecord, ct as SessionFileUploadOptions, S as SessionHeapEntry, b as SessionHeapList, cx as SessionHeapVariable, e as SessionTranscriptEntry, dO as GraphQLResult, cz as RecordSearchOptions, cy as RecordSearchResult, cA as RecordMentionInput, cW as DefineRelationshipOptions, cV as RelationshipInfo, cU as ModelRef, dN as ManifestContent, c$ as EnvironmentStateUpdateInput, cZ as EnvironmentStateTarget, d1 as EnvironmentStateProxy, d6 as RecordImportOptions, cJ as UserEnvironmentStateOptions, cI as UserEnvironmentState, cK as MarkUserEnvironmentReadOptions, aO as AdoptEnvironmentOptions, aP as ConnectOptions, de as RunEnvironmentImporterOptions, au as OpenAIUsageSpendEvent, at as GranularSpendContext, aw as RecordOpenAIUsageSpendResult, b2 as SandboxListResponse, b0 as Sandbox, b1 as CreateSandboxData, dQ as DeleteResponse, b4 as PermissionProfile, b5 as CreatePermissionProfileData, bd as CreateEnvironmentData, dR as StreamEvent, dS as StreamSubscription, dT as StreamStats, aM as Subject, b8 as AssignmentListResponse } from './spend-CNe-Ff6U.js';
1
+ import { cN as WSClientOptions, Y as SessionFeedApi, a$ as GranularQuotaProgress, T as ToolWithHandler, g as PublishToolsResult, bP as Job, h as ToolHandler, I as InstanceToolHandler, bS as UserMessageInput, bT as UserMessageAppendResult, bC as EffectInfo, P as Prompt, bB as ToolInfo, bE as EffectsChangedEvent, bD as ToolsChangedEvent, D as DomainState, $ as FeedListTransport, aI as GranularOptions, dj as EnvironmentImporter, aL as RecordUserOptions, aK as User, aN as OpenEnvironmentOptions, bc as EnvironmentData, b9 as BuildPolicy, dg as EnvironmentSetupSummary, aT as ConversationSessionListOptions, aR as ConversationSessionInfo, aQ as CreateSessionOptions, cX as RecordObjectOptions, d2 as RecordObjectResult, d4 as RecordObjectsOptions, db as RecordImport, d7 as RecordImportStatus, da as RecordImportItem, dc as EnvironmentRecordImportSummary, bN as EnvironmentFeedbackRecord, d as SessionHeapSnapshot, cB as SessionDocumentResult, bU as AssistantReplyPublicationInput, bV as AssistantReplyPublicationResult, cC as SessionCollectionListOptions, cE as SessionCollectionListResult, bY as SessionTimelineEvent, cD as SessionJobListOptions, cu as SessionJobRecord, c5 as SessionArtifactListOptions, c4 as SessionArtifactRecord, c7 as SessionArtifactRelationshipOptionsInput, c9 as SessionArtifactRelationshipOptionsResult, ca as SessionArtifactRelationshipCreateInput, c6 as SessionArtifactValidationResult, cc as SessionArtifactExecutionOptions, cb as SessionArtifactExecutionResult, cd as SessionArtifactApprovalOptions, cn as RecordManualActionInput, cp as ManualActionRecordResult, cq as ManualActionListOptions, co as ManualActionOccurrence, cs as ManualActionSuggestionOptions, cr as ManualActionSuggestion, cg as ArtifactApprovalTaskListOptions, cf as ArtifactApprovalTask, ch as ArtifactApprovalDecisionInput, ci as ArtifactApprovalDecisionResult, c0 as SessionFileRecord, ct as SessionFileUploadOptions, S as SessionHeapEntry, b as SessionHeapList, cx as SessionHeapVariable, e as SessionTranscriptEntry, dO as GraphQLResult, cz as RecordSearchOptions, cy as RecordSearchResult, cA as RecordMentionInput, cW as DefineRelationshipOptions, cV as RelationshipInfo, cU as ModelRef, dN as ManifestContent, c$ as EnvironmentStateUpdateInput, cZ as EnvironmentStateTarget, d1 as EnvironmentStateProxy, d6 as RecordImportOptions, cJ as UserEnvironmentStateOptions, cI as UserEnvironmentState, cK as MarkUserEnvironmentReadOptions, aO as AdoptEnvironmentOptions, aP as ConnectOptions, de as RunEnvironmentImporterOptions, au as OpenAIUsageSpendEvent, at as GranularSpendContext, aw as RecordOpenAIUsageSpendResult, b2 as SandboxListResponse, b0 as Sandbox, b1 as CreateSandboxData, dQ as DeleteResponse, b4 as PermissionProfile, b5 as CreatePermissionProfileData, bd as CreateEnvironmentData, dR as StreamEvent, dS as StreamSubscription, dT as StreamStats, aM as Subject, b8 as AssignmentListResponse } from './spend-C8OQnF6E.js';
2
2
  import * as Automerge from '@automerge/automerge';
3
3
  import { Doc } from '@automerge/automerge/slim';
4
4
 
@@ -1190,9 +1190,11 @@ declare class Granular {
1190
1190
  */
1191
1191
  private findOrCreateSandbox;
1192
1192
  /**
1193
- * Ensure a permission profile exists for a sandbox, creating it if needed.
1194
- * If profileName matches an existing profile name, returns its ID.
1195
- * Otherwise, creates a v1 source-profile file shape with an allow default.
1193
+ * Resolve an existing permission profile by exact name or ID.
1194
+ *
1195
+ * `allow-all` is the sole compatibility profile that the SDK may provision
1196
+ * automatically. Every other missing reference fails closed so a typo or
1197
+ * untrusted role value cannot become an allow-default profile.
1196
1198
  */
1197
1199
  private ensurePermissionProfile;
1198
1200
  /**
@@ -1,4 +1,4 @@
1
- import { cN as WSClientOptions, Y as SessionFeedApi, a$ as GranularQuotaProgress, T as ToolWithHandler, g as PublishToolsResult, bP as Job, h as ToolHandler, I as InstanceToolHandler, bS as UserMessageInput, bT as UserMessageAppendResult, bC as EffectInfo, P as Prompt, bB as ToolInfo, bE as EffectsChangedEvent, bD as ToolsChangedEvent, D as DomainState, $ as FeedListTransport, aI as GranularOptions, dj as EnvironmentImporter, aL as RecordUserOptions, aK as User, aN as OpenEnvironmentOptions, bc as EnvironmentData, b9 as BuildPolicy, dg as EnvironmentSetupSummary, aT as ConversationSessionListOptions, aR as ConversationSessionInfo, aQ as CreateSessionOptions, cX as RecordObjectOptions, d2 as RecordObjectResult, d4 as RecordObjectsOptions, db as RecordImport, d7 as RecordImportStatus, da as RecordImportItem, dc as EnvironmentRecordImportSummary, bN as EnvironmentFeedbackRecord, d as SessionHeapSnapshot, cB as SessionDocumentResult, bU as AssistantReplyPublicationInput, bV as AssistantReplyPublicationResult, cC as SessionCollectionListOptions, cE as SessionCollectionListResult, bY as SessionTimelineEvent, cD as SessionJobListOptions, cu as SessionJobRecord, c5 as SessionArtifactListOptions, c4 as SessionArtifactRecord, c7 as SessionArtifactRelationshipOptionsInput, c9 as SessionArtifactRelationshipOptionsResult, ca as SessionArtifactRelationshipCreateInput, c6 as SessionArtifactValidationResult, cc as SessionArtifactExecutionOptions, cb as SessionArtifactExecutionResult, cd as SessionArtifactApprovalOptions, cn as RecordManualActionInput, cp as ManualActionRecordResult, cq as ManualActionListOptions, co as ManualActionOccurrence, cs as ManualActionSuggestionOptions, cr as ManualActionSuggestion, cg as ArtifactApprovalTaskListOptions, cf as ArtifactApprovalTask, ch as ArtifactApprovalDecisionInput, ci as ArtifactApprovalDecisionResult, c0 as SessionFileRecord, ct as SessionFileUploadOptions, S as SessionHeapEntry, b as SessionHeapList, cx as SessionHeapVariable, e as SessionTranscriptEntry, dO as GraphQLResult, cz as RecordSearchOptions, cy as RecordSearchResult, cA as RecordMentionInput, cW as DefineRelationshipOptions, cV as RelationshipInfo, cU as ModelRef, dN as ManifestContent, c$ as EnvironmentStateUpdateInput, cZ as EnvironmentStateTarget, d1 as EnvironmentStateProxy, d6 as RecordImportOptions, cJ as UserEnvironmentStateOptions, cI as UserEnvironmentState, cK as MarkUserEnvironmentReadOptions, aO as AdoptEnvironmentOptions, aP as ConnectOptions, de as RunEnvironmentImporterOptions, au as OpenAIUsageSpendEvent, at as GranularSpendContext, aw as RecordOpenAIUsageSpendResult, b2 as SandboxListResponse, b0 as Sandbox, b1 as CreateSandboxData, dQ as DeleteResponse, b4 as PermissionProfile, b5 as CreatePermissionProfileData, bd as CreateEnvironmentData, dR as StreamEvent, dS as StreamSubscription, dT as StreamStats, aM as Subject, b8 as AssignmentListResponse } from './spend-CNe-Ff6U.mjs';
1
+ import { cN as WSClientOptions, Y as SessionFeedApi, a$ as GranularQuotaProgress, T as ToolWithHandler, g as PublishToolsResult, bP as Job, h as ToolHandler, I as InstanceToolHandler, bS as UserMessageInput, bT as UserMessageAppendResult, bC as EffectInfo, P as Prompt, bB as ToolInfo, bE as EffectsChangedEvent, bD as ToolsChangedEvent, D as DomainState, $ as FeedListTransport, aI as GranularOptions, dj as EnvironmentImporter, aL as RecordUserOptions, aK as User, aN as OpenEnvironmentOptions, bc as EnvironmentData, b9 as BuildPolicy, dg as EnvironmentSetupSummary, aT as ConversationSessionListOptions, aR as ConversationSessionInfo, aQ as CreateSessionOptions, cX as RecordObjectOptions, d2 as RecordObjectResult, d4 as RecordObjectsOptions, db as RecordImport, d7 as RecordImportStatus, da as RecordImportItem, dc as EnvironmentRecordImportSummary, bN as EnvironmentFeedbackRecord, d as SessionHeapSnapshot, cB as SessionDocumentResult, bU as AssistantReplyPublicationInput, bV as AssistantReplyPublicationResult, cC as SessionCollectionListOptions, cE as SessionCollectionListResult, bY as SessionTimelineEvent, cD as SessionJobListOptions, cu as SessionJobRecord, c5 as SessionArtifactListOptions, c4 as SessionArtifactRecord, c7 as SessionArtifactRelationshipOptionsInput, c9 as SessionArtifactRelationshipOptionsResult, ca as SessionArtifactRelationshipCreateInput, c6 as SessionArtifactValidationResult, cc as SessionArtifactExecutionOptions, cb as SessionArtifactExecutionResult, cd as SessionArtifactApprovalOptions, cn as RecordManualActionInput, cp as ManualActionRecordResult, cq as ManualActionListOptions, co as ManualActionOccurrence, cs as ManualActionSuggestionOptions, cr as ManualActionSuggestion, cg as ArtifactApprovalTaskListOptions, cf as ArtifactApprovalTask, ch as ArtifactApprovalDecisionInput, ci as ArtifactApprovalDecisionResult, c0 as SessionFileRecord, ct as SessionFileUploadOptions, S as SessionHeapEntry, b as SessionHeapList, cx as SessionHeapVariable, e as SessionTranscriptEntry, dO as GraphQLResult, cz as RecordSearchOptions, cy as RecordSearchResult, cA as RecordMentionInput, cW as DefineRelationshipOptions, cV as RelationshipInfo, cU as ModelRef, dN as ManifestContent, c$ as EnvironmentStateUpdateInput, cZ as EnvironmentStateTarget, d1 as EnvironmentStateProxy, d6 as RecordImportOptions, cJ as UserEnvironmentStateOptions, cI as UserEnvironmentState, cK as MarkUserEnvironmentReadOptions, aO as AdoptEnvironmentOptions, aP as ConnectOptions, de as RunEnvironmentImporterOptions, au as OpenAIUsageSpendEvent, at as GranularSpendContext, aw as RecordOpenAIUsageSpendResult, b2 as SandboxListResponse, b0 as Sandbox, b1 as CreateSandboxData, dQ as DeleteResponse, b4 as PermissionProfile, b5 as CreatePermissionProfileData, bd as CreateEnvironmentData, dR as StreamEvent, dS as StreamSubscription, dT as StreamStats, aM as Subject, b8 as AssignmentListResponse } from './spend-C8OQnF6E.mjs';
2
2
  import * as Automerge from '@automerge/automerge';
3
3
  import { Doc } from '@automerge/automerge/slim';
4
4
 
@@ -1190,9 +1190,11 @@ declare class Granular {
1190
1190
  */
1191
1191
  private findOrCreateSandbox;
1192
1192
  /**
1193
- * Ensure a permission profile exists for a sandbox, creating it if needed.
1194
- * If profileName matches an existing profile name, returns its ID.
1195
- * Otherwise, creates a v1 source-profile file shape with an allow default.
1193
+ * Resolve an existing permission profile by exact name or ID.
1194
+ *
1195
+ * `allow-all` is the sole compatibility profile that the SDK may provision
1196
+ * automatically. Every other missing reference fails closed so a typo or
1197
+ * untrusted role value cannot become an allow-default profile.
1196
1198
  */
1197
1199
  private ensurePermissionProfile;
1198
1200
  /**
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-DSkGcmmX.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-CNe-Ff6U.mjs';
3
- export { dP as APIError, aH as AccessTokenProvider, C as ActionSuggestionFeedItem, aO as AdoptEnvironmentOptions, ch as ArtifactApprovalDecisionInput, ci as ArtifactApprovalDecisionResult, cf as ArtifactApprovalTask, cg as ArtifactApprovalTaskListOptions, ce as ArtifactApprovalTaskStatus, A as ArtifactFeedItem, bw as ArtifactOptionsHandler, b7 as Assignment, b8 as AssignmentListResponse, bU as AssistantReplyPublicationInput, bV as AssistantReplyPublicationResult, bi as Build, bk as BuildListResponse, b9 as BuildPolicy, bh as BuildStatus, aD as ConditionIR, aP as ConnectOptions, aR as ConversationSessionInfo, aT as ConversationSessionListOptions, aS as ConversationSessionListStatus, bd as CreateEnvironmentData, b5 as CreatePermissionProfileData, b1 as CreateSandboxData, aQ as CreateSessionOptions, cW as DefineRelationshipOptions, dQ as DeleteResponse, D as DomainState, bs as EffectArtifactOptionsInvocation, bu as EffectArtifactRelationshipOption, bv as EffectArtifactRelationshipOptionsResult, bF as EffectHandler, bC as EffectInfo, bt as EffectInvocationMetadata, br as EffectInvocationMode, bx as EffectSchema, bA as EffectVersionSelector, by as EffectWithHandler, bE as EffectsChangedEvent, bc as EnvironmentData, bN as EnvironmentFeedbackRecord, dj as EnvironmentImporter, di as EnvironmentImporterImportOptions, be as EnvironmentListResponse, dc as EnvironmentRecordImportSummary, dh as EnvironmentSetupImporterClaim, df as EnvironmentSetupLifecycleStatus, dg as EnvironmentSetupSummary, dd as EnvironmentSetupTriggerReason, d0 as EnvironmentStateMachineProxy, c_ as EnvironmentStateObservationInput, d1 as EnvironmentStateProxy, cZ as EnvironmentStateTarget, c$ 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, a$ as GranularQuotaProgress, at as GranularSpendContext, dO as GraphQLResult, bG as InstanceEffectHandler, I as InstanceToolHandler, bP as Job, bL as JobFeedbackInput, bK as JobFeedbackMetadata, bM as JobFeedbackRecord, bI as JobFeedbackSentiment, bJ as JobFeedbackToolCall, bH as JobStatus, bO as JobSubmitResult, bf as Manifest, dD as ManifestApprovalRequiredSpec, dN as ManifestContent, dE as ManifestCreatesSpec, dB as ManifestDryRunSpec, dH as ManifestEffectDeclaration, dG as ManifestEffectSchema, dm as ManifestEnumRuleSpec, dJ as ManifestEventStreamDef, dI as ManifestEventTypeDef, dn as ManifestFilterBySpec, dL as ManifestImport, bg as ManifestListResponse, dK as ManifestOperation, dA as ManifestPostConditionSpec, dk as ManifestPropertySpec, dF as ManifestRelationshipDef, dC as ManifestReverseSpec, dz as ManifestStateMachineSpec, dq as ManifestStateMachineStateSpec, dy as ManifestStateMachineTransitionSpec, ds as ManifestStateTransitionActionSpec, dt as ManifestStateTransitionAssigneeSpec, dx as ManifestStateTransitionExpectedOutcomeSpec, dr as ManifestStateTransitionInputBinding, dw as ManifestStateTransitionPermissionSpec, du as ManifestStateTransitionRelatedStateRequirementSpec, dv as ManifestStateTransitionRequirementsSpec, dl as ManifestValidationOperator, dp as ManifestValidationRuleSpec, dM as ManifestVolume, cq as ManualActionListOptions, co as ManualActionOccurrence, cp as ManualActionRecordResult, cm as ManualActionRelatedRecord, ck as ManualActionSource, cj as ManualActionStatus, cr as ManualActionSuggestion, cs as ManualActionSuggestionOptions, cl as ManualActionTarget, cK as MarkUserEnvironmentReadOptions, aG as MatchedPolicy, q as MessageFeedItem, cU 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, b4 as PermissionProfile, b6 as PermissionProfileListResponse, b3 as PermissionRules, aC as PolicyOperator, aE as PolicyOrigin, aB as PolicyPredicateSource, aF as PolicyRuleIR, aA as PolicySource, G as PromptFeedItem, bz as PublishEffectsResult, ag as PublishFeedbackOptions, g as PublishToolsResult, ah as PublishTransientFeedbackOptions, aZ as QuotaLineItemFilter, aW as QuotaPeriod, aV as QuotaScopeType, aX as QuotaStatus, cO as RPCRequest, cR as RPCRequestFromServer, cP as RPCResponse, db as RecordImport, da as RecordImportItem, d8 as RecordImportItemStatus, d6 as RecordImportOptions, d9 as RecordImportStats, d7 as RecordImportStatus, d5 as RecordImportWriteMode, cn as RecordManualActionInput, cA as RecordMentionInput, cX as RecordObjectOptions, d2 as RecordObjectResult, cY as RecordObjectStateValue, d3 as RecordObjectsChunkInfo, d4 as RecordObjectsOptions, av as RecordOpenAIUsageSpendOptions, aw as RecordOpenAIUsageSpendResult, cz as RecordSearchOptions, cy as RecordSearchResult, aL as RecordUserOptions, cV as RelationshipInfo, bq as ResolvedEffectApprovalRequired, bo as ResolvedEffectDryRun, bn as ResolvedEffectPostCondition, bp as ResolvedEffectReverse, de as RunEnvironmentImporterOptions, b0 as Sandbox, b2 as SandboxListResponse, bm as SemanticVersionDiff, bl as SemanticVersionDiffEntry, cd as SessionArtifactApprovalOptions, c3 as SessionArtifactAutonomyPolicy, cc as SessionArtifactExecutionOptions, cb as SessionArtifactExecutionResult, c2 as SessionArtifactKind, c5 as SessionArtifactListOptions, c4 as SessionArtifactRecord, ca as SessionArtifactRelationshipCreateInput, c8 as SessionArtifactRelationshipOption, c7 as SessionArtifactRelationshipOptionsInput, c9 as SessionArtifactRelationshipOptionsResult, c1 as SessionArtifactStatus, c6 as SessionArtifactValidationResult, cC as SessionCollectionListOptions, cE as SessionCollectionListResult, cB as SessionDocumentResult, Y as SessionFeedApi, af as SessionFeedController, a8 as SessionFeedControllerOptions, b_ as SessionFileKind, c0 as SessionFileRecord, bZ as SessionFileSource, b$ as SessionFileStatus, ct as SessionFileUploadOptions, cv as SessionHeapFieldType, cw as SessionHeapFieldValue, cx as SessionHeapVariable, cD as SessionJobListOptions, cu as SessionJobRecord, bY as SessionTimelineEvent, bW as SessionTranscriptActionSuggestion, bX as SessionTranscriptShowRefs, ai as SettleTransientFeedbackOptions, cQ as SnapshotResetMessage, aU as SpendLineItemType, aY as SpendSummary, dR as StreamEvent, dT as StreamStats, dS as StreamSubscription, aM as Subject, y as TableFeedItem, h as ToolHandler, bB as ToolInfo, cS as ToolInvokeParams, cT as ToolResultParams, f as ToolSchema, bD as ToolsChangedEvent, L as TransientFeedItem, H as TransientFeedItemBase, K as TransientFeedbackFeedItem, aj as TransientFeedbackHandle, J as TransientMessageFeedItem, aK as User, cG as UserEnvironmentMessagePreview, cF as UserEnvironmentPrompt, cH as UserEnvironmentSessionState, cI as UserEnvironmentState, cJ as UserEnvironmentStateOptions, bT as UserMessageAppendResult, bS as UserMessageInput, bQ as UserMessageShowRefs, bR as UserMessageTarget, bj as Version, bb as VersionTag, ba as VersionTracking, cN as WSClientOptions, cL as WSDisconnectInfo, cM 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-CNe-Ff6U.mjs';
1
+ export { E as Environment, a as EnvironmentSession, G as Granular, O as OntologyHandle, S as Session, W as WSClient } from './client-Dg0I_5B_.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-C8OQnF6E.mjs';
3
+ export { dP as APIError, aH as AccessTokenProvider, C as ActionSuggestionFeedItem, aO as AdoptEnvironmentOptions, ch as ArtifactApprovalDecisionInput, ci as ArtifactApprovalDecisionResult, cf as ArtifactApprovalTask, cg as ArtifactApprovalTaskListOptions, ce as ArtifactApprovalTaskStatus, A as ArtifactFeedItem, bw as ArtifactOptionsHandler, b7 as Assignment, b8 as AssignmentListResponse, bU as AssistantReplyPublicationInput, bV as AssistantReplyPublicationResult, bi as Build, bk as BuildListResponse, b9 as BuildPolicy, bh as BuildStatus, aD as ConditionIR, aP as ConnectOptions, aR as ConversationSessionInfo, aT as ConversationSessionListOptions, aS as ConversationSessionListStatus, bd as CreateEnvironmentData, b5 as CreatePermissionProfileData, b1 as CreateSandboxData, aQ as CreateSessionOptions, cW as DefineRelationshipOptions, dQ as DeleteResponse, D as DomainState, bs as EffectArtifactOptionsInvocation, bu as EffectArtifactRelationshipOption, bv as EffectArtifactRelationshipOptionsResult, bF as EffectHandler, bC as EffectInfo, bt as EffectInvocationMetadata, br as EffectInvocationMode, bx as EffectSchema, bA as EffectVersionSelector, by as EffectWithHandler, bE as EffectsChangedEvent, bc as EnvironmentData, bN as EnvironmentFeedbackRecord, dj as EnvironmentImporter, di as EnvironmentImporterImportOptions, be as EnvironmentListResponse, dc as EnvironmentRecordImportSummary, dh as EnvironmentSetupImporterClaim, df as EnvironmentSetupLifecycleStatus, dg as EnvironmentSetupSummary, dd as EnvironmentSetupTriggerReason, d0 as EnvironmentStateMachineProxy, c_ as EnvironmentStateObservationInput, d1 as EnvironmentStateProxy, cZ as EnvironmentStateTarget, c$ 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, a$ as GranularQuotaProgress, at as GranularSpendContext, dO as GraphQLResult, bG as InstanceEffectHandler, I as InstanceToolHandler, bP as Job, bL as JobFeedbackInput, bK as JobFeedbackMetadata, bM as JobFeedbackRecord, bI as JobFeedbackSentiment, bJ as JobFeedbackToolCall, bH as JobStatus, bO as JobSubmitResult, bf as Manifest, dD as ManifestApprovalRequiredSpec, dN as ManifestContent, dE as ManifestCreatesSpec, dB as ManifestDryRunSpec, dH as ManifestEffectDeclaration, dG as ManifestEffectSchema, dm as ManifestEnumRuleSpec, dJ as ManifestEventStreamDef, dI as ManifestEventTypeDef, dn as ManifestFilterBySpec, dL as ManifestImport, bg as ManifestListResponse, dK as ManifestOperation, dA as ManifestPostConditionSpec, dk as ManifestPropertySpec, dF as ManifestRelationshipDef, dC as ManifestReverseSpec, dz as ManifestStateMachineSpec, dq as ManifestStateMachineStateSpec, dy as ManifestStateMachineTransitionSpec, ds as ManifestStateTransitionActionSpec, dt as ManifestStateTransitionAssigneeSpec, dx as ManifestStateTransitionExpectedOutcomeSpec, dr as ManifestStateTransitionInputBinding, dw as ManifestStateTransitionPermissionSpec, du as ManifestStateTransitionRelatedStateRequirementSpec, dv as ManifestStateTransitionRequirementsSpec, dl as ManifestValidationOperator, dp as ManifestValidationRuleSpec, dM as ManifestVolume, cq as ManualActionListOptions, co as ManualActionOccurrence, cp as ManualActionRecordResult, cm as ManualActionRelatedRecord, ck as ManualActionSource, cj as ManualActionStatus, cr as ManualActionSuggestion, cs as ManualActionSuggestionOptions, cl as ManualActionTarget, cK as MarkUserEnvironmentReadOptions, aG as MatchedPolicy, q as MessageFeedItem, cU 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, b4 as PermissionProfile, b6 as PermissionProfileListResponse, b3 as PermissionRules, aC as PolicyOperator, aE as PolicyOrigin, aB as PolicyPredicateSource, aF as PolicyRuleIR, aA as PolicySource, G as PromptFeedItem, bz as PublishEffectsResult, ag as PublishFeedbackOptions, g as PublishToolsResult, ah as PublishTransientFeedbackOptions, aZ as QuotaLineItemFilter, aW as QuotaPeriod, aV as QuotaScopeType, aX as QuotaStatus, cO as RPCRequest, cR as RPCRequestFromServer, cP as RPCResponse, db as RecordImport, da as RecordImportItem, d8 as RecordImportItemStatus, d6 as RecordImportOptions, d9 as RecordImportStats, d7 as RecordImportStatus, d5 as RecordImportWriteMode, cn as RecordManualActionInput, cA as RecordMentionInput, cX as RecordObjectOptions, d2 as RecordObjectResult, cY as RecordObjectStateValue, d3 as RecordObjectsChunkInfo, d4 as RecordObjectsOptions, av as RecordOpenAIUsageSpendOptions, aw as RecordOpenAIUsageSpendResult, cz as RecordSearchOptions, cy as RecordSearchResult, aL as RecordUserOptions, cV as RelationshipInfo, bq as ResolvedEffectApprovalRequired, bo as ResolvedEffectDryRun, bn as ResolvedEffectPostCondition, bp as ResolvedEffectReverse, de as RunEnvironmentImporterOptions, b0 as Sandbox, b2 as SandboxListResponse, bm as SemanticVersionDiff, bl as SemanticVersionDiffEntry, cd as SessionArtifactApprovalOptions, c3 as SessionArtifactAutonomyPolicy, cc as SessionArtifactExecutionOptions, cb as SessionArtifactExecutionResult, c2 as SessionArtifactKind, c5 as SessionArtifactListOptions, c4 as SessionArtifactRecord, ca as SessionArtifactRelationshipCreateInput, c8 as SessionArtifactRelationshipOption, c7 as SessionArtifactRelationshipOptionsInput, c9 as SessionArtifactRelationshipOptionsResult, c1 as SessionArtifactStatus, c6 as SessionArtifactValidationResult, cC as SessionCollectionListOptions, cE as SessionCollectionListResult, cB as SessionDocumentResult, Y as SessionFeedApi, af as SessionFeedController, a8 as SessionFeedControllerOptions, b_ as SessionFileKind, c0 as SessionFileRecord, bZ as SessionFileSource, b$ as SessionFileStatus, ct as SessionFileUploadOptions, cv as SessionHeapFieldType, cw as SessionHeapFieldValue, cx as SessionHeapVariable, cD as SessionJobListOptions, cu as SessionJobRecord, bY as SessionTimelineEvent, bW as SessionTranscriptActionSuggestion, bX as SessionTranscriptShowRefs, ai as SettleTransientFeedbackOptions, cQ as SnapshotResetMessage, aU as SpendLineItemType, aY as SpendSummary, dR as StreamEvent, dT as StreamStats, dS as StreamSubscription, aM as Subject, y as TableFeedItem, h as ToolHandler, bB as ToolInfo, cS as ToolInvokeParams, cT as ToolResultParams, f as ToolSchema, bD as ToolsChangedEvent, L as TransientFeedItem, H as TransientFeedItemBase, K as TransientFeedbackFeedItem, aj as TransientFeedbackHandle, J as TransientMessageFeedItem, aK as User, cG as UserEnvironmentMessagePreview, cF as UserEnvironmentPrompt, cH as UserEnvironmentSessionState, cI as UserEnvironmentState, cJ as UserEnvironmentStateOptions, bT as UserMessageAppendResult, bS as UserMessageInput, bQ as UserMessageShowRefs, bR as UserMessageTarget, bj as Version, bb as VersionTag, ba as VersionTracking, cN as WSClientOptions, cL as WSDisconnectInfo, cM 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-C8OQnF6E.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-BzgQvNyG.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-CNe-Ff6U.js';
3
- export { dP as APIError, aH as AccessTokenProvider, C as ActionSuggestionFeedItem, aO as AdoptEnvironmentOptions, ch as ArtifactApprovalDecisionInput, ci as ArtifactApprovalDecisionResult, cf as ArtifactApprovalTask, cg as ArtifactApprovalTaskListOptions, ce as ArtifactApprovalTaskStatus, A as ArtifactFeedItem, bw as ArtifactOptionsHandler, b7 as Assignment, b8 as AssignmentListResponse, bU as AssistantReplyPublicationInput, bV as AssistantReplyPublicationResult, bi as Build, bk as BuildListResponse, b9 as BuildPolicy, bh as BuildStatus, aD as ConditionIR, aP as ConnectOptions, aR as ConversationSessionInfo, aT as ConversationSessionListOptions, aS as ConversationSessionListStatus, bd as CreateEnvironmentData, b5 as CreatePermissionProfileData, b1 as CreateSandboxData, aQ as CreateSessionOptions, cW as DefineRelationshipOptions, dQ as DeleteResponse, D as DomainState, bs as EffectArtifactOptionsInvocation, bu as EffectArtifactRelationshipOption, bv as EffectArtifactRelationshipOptionsResult, bF as EffectHandler, bC as EffectInfo, bt as EffectInvocationMetadata, br as EffectInvocationMode, bx as EffectSchema, bA as EffectVersionSelector, by as EffectWithHandler, bE as EffectsChangedEvent, bc as EnvironmentData, bN as EnvironmentFeedbackRecord, dj as EnvironmentImporter, di as EnvironmentImporterImportOptions, be as EnvironmentListResponse, dc as EnvironmentRecordImportSummary, dh as EnvironmentSetupImporterClaim, df as EnvironmentSetupLifecycleStatus, dg as EnvironmentSetupSummary, dd as EnvironmentSetupTriggerReason, d0 as EnvironmentStateMachineProxy, c_ as EnvironmentStateObservationInput, d1 as EnvironmentStateProxy, cZ as EnvironmentStateTarget, c$ 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, a$ as GranularQuotaProgress, at as GranularSpendContext, dO as GraphQLResult, bG as InstanceEffectHandler, I as InstanceToolHandler, bP as Job, bL as JobFeedbackInput, bK as JobFeedbackMetadata, bM as JobFeedbackRecord, bI as JobFeedbackSentiment, bJ as JobFeedbackToolCall, bH as JobStatus, bO as JobSubmitResult, bf as Manifest, dD as ManifestApprovalRequiredSpec, dN as ManifestContent, dE as ManifestCreatesSpec, dB as ManifestDryRunSpec, dH as ManifestEffectDeclaration, dG as ManifestEffectSchema, dm as ManifestEnumRuleSpec, dJ as ManifestEventStreamDef, dI as ManifestEventTypeDef, dn as ManifestFilterBySpec, dL as ManifestImport, bg as ManifestListResponse, dK as ManifestOperation, dA as ManifestPostConditionSpec, dk as ManifestPropertySpec, dF as ManifestRelationshipDef, dC as ManifestReverseSpec, dz as ManifestStateMachineSpec, dq as ManifestStateMachineStateSpec, dy as ManifestStateMachineTransitionSpec, ds as ManifestStateTransitionActionSpec, dt as ManifestStateTransitionAssigneeSpec, dx as ManifestStateTransitionExpectedOutcomeSpec, dr as ManifestStateTransitionInputBinding, dw as ManifestStateTransitionPermissionSpec, du as ManifestStateTransitionRelatedStateRequirementSpec, dv as ManifestStateTransitionRequirementsSpec, dl as ManifestValidationOperator, dp as ManifestValidationRuleSpec, dM as ManifestVolume, cq as ManualActionListOptions, co as ManualActionOccurrence, cp as ManualActionRecordResult, cm as ManualActionRelatedRecord, ck as ManualActionSource, cj as ManualActionStatus, cr as ManualActionSuggestion, cs as ManualActionSuggestionOptions, cl as ManualActionTarget, cK as MarkUserEnvironmentReadOptions, aG as MatchedPolicy, q as MessageFeedItem, cU 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, b4 as PermissionProfile, b6 as PermissionProfileListResponse, b3 as PermissionRules, aC as PolicyOperator, aE as PolicyOrigin, aB as PolicyPredicateSource, aF as PolicyRuleIR, aA as PolicySource, G as PromptFeedItem, bz as PublishEffectsResult, ag as PublishFeedbackOptions, g as PublishToolsResult, ah as PublishTransientFeedbackOptions, aZ as QuotaLineItemFilter, aW as QuotaPeriod, aV as QuotaScopeType, aX as QuotaStatus, cO as RPCRequest, cR as RPCRequestFromServer, cP as RPCResponse, db as RecordImport, da as RecordImportItem, d8 as RecordImportItemStatus, d6 as RecordImportOptions, d9 as RecordImportStats, d7 as RecordImportStatus, d5 as RecordImportWriteMode, cn as RecordManualActionInput, cA as RecordMentionInput, cX as RecordObjectOptions, d2 as RecordObjectResult, cY as RecordObjectStateValue, d3 as RecordObjectsChunkInfo, d4 as RecordObjectsOptions, av as RecordOpenAIUsageSpendOptions, aw as RecordOpenAIUsageSpendResult, cz as RecordSearchOptions, cy as RecordSearchResult, aL as RecordUserOptions, cV as RelationshipInfo, bq as ResolvedEffectApprovalRequired, bo as ResolvedEffectDryRun, bn as ResolvedEffectPostCondition, bp as ResolvedEffectReverse, de as RunEnvironmentImporterOptions, b0 as Sandbox, b2 as SandboxListResponse, bm as SemanticVersionDiff, bl as SemanticVersionDiffEntry, cd as SessionArtifactApprovalOptions, c3 as SessionArtifactAutonomyPolicy, cc as SessionArtifactExecutionOptions, cb as SessionArtifactExecutionResult, c2 as SessionArtifactKind, c5 as SessionArtifactListOptions, c4 as SessionArtifactRecord, ca as SessionArtifactRelationshipCreateInput, c8 as SessionArtifactRelationshipOption, c7 as SessionArtifactRelationshipOptionsInput, c9 as SessionArtifactRelationshipOptionsResult, c1 as SessionArtifactStatus, c6 as SessionArtifactValidationResult, cC as SessionCollectionListOptions, cE as SessionCollectionListResult, cB as SessionDocumentResult, Y as SessionFeedApi, af as SessionFeedController, a8 as SessionFeedControllerOptions, b_ as SessionFileKind, c0 as SessionFileRecord, bZ as SessionFileSource, b$ as SessionFileStatus, ct as SessionFileUploadOptions, cv as SessionHeapFieldType, cw as SessionHeapFieldValue, cx as SessionHeapVariable, cD as SessionJobListOptions, cu as SessionJobRecord, bY as SessionTimelineEvent, bW as SessionTranscriptActionSuggestion, bX as SessionTranscriptShowRefs, ai as SettleTransientFeedbackOptions, cQ as SnapshotResetMessage, aU as SpendLineItemType, aY as SpendSummary, dR as StreamEvent, dT as StreamStats, dS as StreamSubscription, aM as Subject, y as TableFeedItem, h as ToolHandler, bB as ToolInfo, cS as ToolInvokeParams, cT as ToolResultParams, f as ToolSchema, bD as ToolsChangedEvent, L as TransientFeedItem, H as TransientFeedItemBase, K as TransientFeedbackFeedItem, aj as TransientFeedbackHandle, J as TransientMessageFeedItem, aK as User, cG as UserEnvironmentMessagePreview, cF as UserEnvironmentPrompt, cH as UserEnvironmentSessionState, cI as UserEnvironmentState, cJ as UserEnvironmentStateOptions, bT as UserMessageAppendResult, bS as UserMessageInput, bQ as UserMessageShowRefs, bR as UserMessageTarget, bj as Version, bb as VersionTag, ba as VersionTracking, cN as WSClientOptions, cL as WSDisconnectInfo, cM 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-CNe-Ff6U.js';
1
+ export { E as Environment, a as EnvironmentSession, G as Granular, O as OntologyHandle, S as Session, W as WSClient } from './client-Bx5jIDGB.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-C8OQnF6E.js';
3
+ export { dP as APIError, aH as AccessTokenProvider, C as ActionSuggestionFeedItem, aO as AdoptEnvironmentOptions, ch as ArtifactApprovalDecisionInput, ci as ArtifactApprovalDecisionResult, cf as ArtifactApprovalTask, cg as ArtifactApprovalTaskListOptions, ce as ArtifactApprovalTaskStatus, A as ArtifactFeedItem, bw as ArtifactOptionsHandler, b7 as Assignment, b8 as AssignmentListResponse, bU as AssistantReplyPublicationInput, bV as AssistantReplyPublicationResult, bi as Build, bk as BuildListResponse, b9 as BuildPolicy, bh as BuildStatus, aD as ConditionIR, aP as ConnectOptions, aR as ConversationSessionInfo, aT as ConversationSessionListOptions, aS as ConversationSessionListStatus, bd as CreateEnvironmentData, b5 as CreatePermissionProfileData, b1 as CreateSandboxData, aQ as CreateSessionOptions, cW as DefineRelationshipOptions, dQ as DeleteResponse, D as DomainState, bs as EffectArtifactOptionsInvocation, bu as EffectArtifactRelationshipOption, bv as EffectArtifactRelationshipOptionsResult, bF as EffectHandler, bC as EffectInfo, bt as EffectInvocationMetadata, br as EffectInvocationMode, bx as EffectSchema, bA as EffectVersionSelector, by as EffectWithHandler, bE as EffectsChangedEvent, bc as EnvironmentData, bN as EnvironmentFeedbackRecord, dj as EnvironmentImporter, di as EnvironmentImporterImportOptions, be as EnvironmentListResponse, dc as EnvironmentRecordImportSummary, dh as EnvironmentSetupImporterClaim, df as EnvironmentSetupLifecycleStatus, dg as EnvironmentSetupSummary, dd as EnvironmentSetupTriggerReason, d0 as EnvironmentStateMachineProxy, c_ as EnvironmentStateObservationInput, d1 as EnvironmentStateProxy, cZ as EnvironmentStateTarget, c$ 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, a$ as GranularQuotaProgress, at as GranularSpendContext, dO as GraphQLResult, bG as InstanceEffectHandler, I as InstanceToolHandler, bP as Job, bL as JobFeedbackInput, bK as JobFeedbackMetadata, bM as JobFeedbackRecord, bI as JobFeedbackSentiment, bJ as JobFeedbackToolCall, bH as JobStatus, bO as JobSubmitResult, bf as Manifest, dD as ManifestApprovalRequiredSpec, dN as ManifestContent, dE as ManifestCreatesSpec, dB as ManifestDryRunSpec, dH as ManifestEffectDeclaration, dG as ManifestEffectSchema, dm as ManifestEnumRuleSpec, dJ as ManifestEventStreamDef, dI as ManifestEventTypeDef, dn as ManifestFilterBySpec, dL as ManifestImport, bg as ManifestListResponse, dK as ManifestOperation, dA as ManifestPostConditionSpec, dk as ManifestPropertySpec, dF as ManifestRelationshipDef, dC as ManifestReverseSpec, dz as ManifestStateMachineSpec, dq as ManifestStateMachineStateSpec, dy as ManifestStateMachineTransitionSpec, ds as ManifestStateTransitionActionSpec, dt as ManifestStateTransitionAssigneeSpec, dx as ManifestStateTransitionExpectedOutcomeSpec, dr as ManifestStateTransitionInputBinding, dw as ManifestStateTransitionPermissionSpec, du as ManifestStateTransitionRelatedStateRequirementSpec, dv as ManifestStateTransitionRequirementsSpec, dl as ManifestValidationOperator, dp as ManifestValidationRuleSpec, dM as ManifestVolume, cq as ManualActionListOptions, co as ManualActionOccurrence, cp as ManualActionRecordResult, cm as ManualActionRelatedRecord, ck as ManualActionSource, cj as ManualActionStatus, cr as ManualActionSuggestion, cs as ManualActionSuggestionOptions, cl as ManualActionTarget, cK as MarkUserEnvironmentReadOptions, aG as MatchedPolicy, q as MessageFeedItem, cU 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, b4 as PermissionProfile, b6 as PermissionProfileListResponse, b3 as PermissionRules, aC as PolicyOperator, aE as PolicyOrigin, aB as PolicyPredicateSource, aF as PolicyRuleIR, aA as PolicySource, G as PromptFeedItem, bz as PublishEffectsResult, ag as PublishFeedbackOptions, g as PublishToolsResult, ah as PublishTransientFeedbackOptions, aZ as QuotaLineItemFilter, aW as QuotaPeriod, aV as QuotaScopeType, aX as QuotaStatus, cO as RPCRequest, cR as RPCRequestFromServer, cP as RPCResponse, db as RecordImport, da as RecordImportItem, d8 as RecordImportItemStatus, d6 as RecordImportOptions, d9 as RecordImportStats, d7 as RecordImportStatus, d5 as RecordImportWriteMode, cn as RecordManualActionInput, cA as RecordMentionInput, cX as RecordObjectOptions, d2 as RecordObjectResult, cY as RecordObjectStateValue, d3 as RecordObjectsChunkInfo, d4 as RecordObjectsOptions, av as RecordOpenAIUsageSpendOptions, aw as RecordOpenAIUsageSpendResult, cz as RecordSearchOptions, cy as RecordSearchResult, aL as RecordUserOptions, cV as RelationshipInfo, bq as ResolvedEffectApprovalRequired, bo as ResolvedEffectDryRun, bn as ResolvedEffectPostCondition, bp as ResolvedEffectReverse, de as RunEnvironmentImporterOptions, b0 as Sandbox, b2 as SandboxListResponse, bm as SemanticVersionDiff, bl as SemanticVersionDiffEntry, cd as SessionArtifactApprovalOptions, c3 as SessionArtifactAutonomyPolicy, cc as SessionArtifactExecutionOptions, cb as SessionArtifactExecutionResult, c2 as SessionArtifactKind, c5 as SessionArtifactListOptions, c4 as SessionArtifactRecord, ca as SessionArtifactRelationshipCreateInput, c8 as SessionArtifactRelationshipOption, c7 as SessionArtifactRelationshipOptionsInput, c9 as SessionArtifactRelationshipOptionsResult, c1 as SessionArtifactStatus, c6 as SessionArtifactValidationResult, cC as SessionCollectionListOptions, cE as SessionCollectionListResult, cB as SessionDocumentResult, Y as SessionFeedApi, af as SessionFeedController, a8 as SessionFeedControllerOptions, b_ as SessionFileKind, c0 as SessionFileRecord, bZ as SessionFileSource, b$ as SessionFileStatus, ct as SessionFileUploadOptions, cv as SessionHeapFieldType, cw as SessionHeapFieldValue, cx as SessionHeapVariable, cD as SessionJobListOptions, cu as SessionJobRecord, bY as SessionTimelineEvent, bW as SessionTranscriptActionSuggestion, bX as SessionTranscriptShowRefs, ai as SettleTransientFeedbackOptions, cQ as SnapshotResetMessage, aU as SpendLineItemType, aY as SpendSummary, dR as StreamEvent, dT as StreamStats, dS as StreamSubscription, aM as Subject, y as TableFeedItem, h as ToolHandler, bB as ToolInfo, cS as ToolInvokeParams, cT as ToolResultParams, f as ToolSchema, bD as ToolsChangedEvent, L as TransientFeedItem, H as TransientFeedItemBase, K as TransientFeedbackFeedItem, aj as TransientFeedbackHandle, J as TransientMessageFeedItem, aK as User, cG as UserEnvironmentMessagePreview, cF as UserEnvironmentPrompt, cH as UserEnvironmentSessionState, cI as UserEnvironmentState, cJ as UserEnvironmentStateOptions, bT as UserMessageAppendResult, bS as UserMessageInput, bQ as UserMessageShowRefs, bR as UserMessageTarget, bj as Version, bb as VersionTag, ba as VersionTracking, cN as WSClientOptions, cL as WSDisconnectInfo, cM 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-C8OQnF6E.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
@@ -12295,6 +12295,7 @@ var StateTransitionInputBindingSchema = external_exports.lazy(
12295
12295
  );
12296
12296
  var StateTransitionActionSchema = external_exports.object({
12297
12297
  effect: external_exports.string().min(1),
12298
+ providerLabel: external_exports.string().optional(),
12298
12299
  input: external_exports.record(external_exports.string(), StateTransitionInputBindingSchema).optional()
12299
12300
  }).strict();
12300
12301
  var StateTransitionAssigneeSchema = external_exports.object({
@@ -14782,6 +14783,15 @@ var stateMachineMetamodelPackage = defineMetamodelPackage({
14782
14783
  is_final: Boolean!
14783
14784
  history: [StateMachineTransitionEvent!]!
14784
14785
  instances_in_state(state: String!): [Model!]!
14786
+ instance_population(state: String!, page: Int = 1, per_page: Int = 50): StateMachineInstancePopulation!
14787
+ }
14788
+
14789
+ type StateMachineInstancePopulation {
14790
+ count: Int!
14791
+ instances: [Model!]!
14792
+ page: Int!
14793
+ per_page: Int!
14794
+ has_more: Boolean!
14785
14795
  }
14786
14796
 
14787
14797
  type StateMachineState {
@@ -14990,6 +15000,13 @@ var stateMachineMetamodelPackage = defineMetamodelPackage({
14990
15000
  value.model.target || value.model,
14991
15001
  value.name,
14992
15002
  state
15003
+ ),
15004
+ instance_population: async (value, { state, page, per_page }) => await stateMachines.instancePopulation(
15005
+ value.model.target || value.model,
15006
+ value.name,
15007
+ state,
15008
+ page,
15009
+ per_page
14993
15010
  )
14994
15011
  }
14995
15012
  };
@@ -18024,11 +18041,16 @@ var Granular = class _Granular {
18024
18041
  `${methodName}() requires at least one permission so the SDK can ensure assignments for new users.`
18025
18042
  );
18026
18043
  }
18027
- for (const profileName of user.permissions) {
18028
- const profileId = await this.ensurePermissionProfile(
18029
- sandbox.sandboxId,
18030
- profileName
18044
+ const permissionProfileIds = [];
18045
+ for (const profileReference of user.permissions) {
18046
+ permissionProfileIds.push(
18047
+ await this.ensurePermissionProfile(
18048
+ sandbox.sandboxId,
18049
+ profileReference
18050
+ )
18031
18051
  );
18052
+ }
18053
+ for (const profileId of permissionProfileIds) {
18032
18054
  await this.ensureAssignment(
18033
18055
  user.granularId,
18034
18056
  sandbox.sandboxId,
@@ -19033,25 +19055,37 @@ var Granular = class _Granular {
19033
19055
  }
19034
19056
  }
19035
19057
  /**
19036
- * Ensure a permission profile exists for a sandbox, creating it if needed.
19037
- * If profileName matches an existing profile name, returns its ID.
19038
- * Otherwise, creates a v1 source-profile file shape with an allow default.
19058
+ * Resolve an existing permission profile by exact name or ID.
19059
+ *
19060
+ * `allow-all` is the sole compatibility profile that the SDK may provision
19061
+ * automatically. Every other missing reference fails closed so a typo or
19062
+ * untrusted role value cannot become an allow-default profile.
19039
19063
  */
19040
- async ensurePermissionProfile(sandboxId, profileName) {
19041
- try {
19042
- const profiles = await this.permissionProfiles.list(sandboxId);
19043
- const existing = profiles.find((p) => p.name === profileName);
19044
- if (existing) {
19045
- return existing.permissionProfileId;
19046
- }
19047
- } catch {
19064
+ async ensurePermissionProfile(sandboxId, profileReference) {
19065
+ const normalizedReference = typeof profileReference === "string" ? profileReference.trim() : "";
19066
+ if (!normalizedReference) {
19067
+ throw new Error(
19068
+ "Permission profile references must be non-empty names or IDs."
19069
+ );
19070
+ }
19071
+ const profiles = await this.permissionProfiles.list(sandboxId);
19072
+ const existing = profiles.find(
19073
+ (profile) => profile.name === normalizedReference || profile.permissionProfileId === normalizedReference
19074
+ );
19075
+ if (existing) {
19076
+ return existing.permissionProfileId;
19077
+ }
19078
+ if (normalizedReference !== "allow-all") {
19079
+ throw new Error(
19080
+ `Permission profile "${normalizedReference}" was not found in sandbox ${sandboxId}. Provision it with granular build or granular deploy before calling openEnvironment(). Only the reserved "allow-all" profile can be created automatically.`
19081
+ );
19048
19082
  }
19049
19083
  const created = await this.permissionProfiles.create(sandboxId, {
19050
- name: profileName,
19084
+ name: normalizedReference,
19051
19085
  rules: {
19052
19086
  schemaVersion: 1,
19053
- name: profileName,
19054
- description: profileName === "allow-all" ? "Every declared action is visible unless a manifest policy denies it." : `Generated permission profile ${profileName}`,
19087
+ name: normalizedReference,
19088
+ description: "Every declared action is visible unless a manifest policy denies it.",
19055
19089
  defaults: { actionPolicy: "allow" },
19056
19090
  actions: []
19057
19091
  }