@granular-software/sdk 0.4.41 → 0.4.42

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
@@ -24983,6 +24983,288 @@ var Granular = class _Granular {
24983
24983
  }
24984
24984
  };
24985
24985
 
24986
+ // src/agent-harness-templates/action-presentation/0.1.0/manifest.json
24987
+ var manifest_default = {
24988
+ id: "action-presentation",
24989
+ version: "0.1.0",
24990
+ status: "candidate",
24991
+ owner: "granular",
24992
+ createdAt: "2026-05-25T00:00:00.000Z",
24993
+ changelog: "Candidate harness template focused on action-request detection and mutation result presentation. It exists to harden cases where the model answers with a terse completion such as Done instead of using tools and reporting the target/action/result.",
24994
+ promptBuilder: "buildGranularAgentSystemPrompt:action-presentation",
24995
+ continuationBuilder: "buildContinuationInstruction:action-presentation",
24996
+ modelOutputInstruction: "agent-evals:modelOutputInstruction",
24997
+ codeReviewPolicy: "reviewGeneratedJobCode",
24998
+ defaultModel: "gpt-5.4",
24999
+ modelMatrix: ["gpt-5.4"],
25000
+ temperature: 0,
25001
+ compatibility: {
25002
+ minSdkVersion: "0.4.40",
25003
+ capabilities: [
25004
+ "executeCode",
25005
+ "readEntities",
25006
+ "workflowHelpers",
25007
+ "savedData",
25008
+ "showRecords"
25009
+ ]
25010
+ },
25011
+ evalGates: {
25012
+ requiredSuites: [
25013
+ "agent-harness-hardening",
25014
+ "agent-harness-runtime-e2e",
25015
+ "agent-production-readiness-e2e"
25016
+ ],
25017
+ criticalBuckets: [
25018
+ "relationship-traversal",
25019
+ "cross-turn-reference",
25020
+ "ambiguous-target-choice",
25021
+ "confirmation-gated-mutation",
25022
+ "denied-action-refusal",
25023
+ "mutation-presentation"
25024
+ ],
25025
+ maxRegressionPct: 0,
25026
+ minPassK: {
25027
+ "critical-mutation": 0.9,
25028
+ "permission-boundary": 1
25029
+ }
25030
+ }
25031
+ };
25032
+
25033
+ // src/agent-harness-templates/experimental-compact/0.1.0/manifest.json
25034
+ var manifest_default2 = {
25035
+ id: "experimental-compact",
25036
+ version: "0.1.0",
25037
+ status: "candidate",
25038
+ owner: "granular",
25039
+ createdAt: "2026-05-24T00:00:00.000Z",
25040
+ changelog: "Candidate harness template used for champion/challenger testing. It adds a compact decision discipline section on top of the stable renderer.",
25041
+ promptBuilder: "buildGranularAgentSystemPrompt:experimental-compact",
25042
+ continuationBuilder: "buildContinuationInstruction:experimental-compact",
25043
+ modelOutputInstruction: "agent-evals:modelOutputInstruction",
25044
+ codeReviewPolicy: "reviewGeneratedJobCode",
25045
+ defaultModel: "gpt-5.4",
25046
+ modelMatrix: ["gpt-5.4"],
25047
+ temperature: 0,
25048
+ compatibility: {
25049
+ minSdkVersion: "0.4.40",
25050
+ capabilities: [
25051
+ "executeCode",
25052
+ "readEntities",
25053
+ "workflowHelpers",
25054
+ "savedData",
25055
+ "showRecords"
25056
+ ]
25057
+ },
25058
+ evalGates: {
25059
+ requiredSuites: [
25060
+ "agent-harness-hardening",
25061
+ "agent-harness-runtime-e2e",
25062
+ "agent-production-readiness-e2e"
25063
+ ],
25064
+ criticalBuckets: [
25065
+ "relationship-traversal",
25066
+ "cross-turn-reference",
25067
+ "ambiguous-target-choice",
25068
+ "confirmation-gated-mutation",
25069
+ "denied-action-refusal",
25070
+ "mutation-presentation"
25071
+ ],
25072
+ maxRegressionPct: 0,
25073
+ minPassK: {
25074
+ "critical-mutation": 0.9,
25075
+ "permission-boundary": 1
25076
+ }
25077
+ }
25078
+ };
25079
+
25080
+ // src/agent-harness-templates/stable/1.0.0/manifest.json
25081
+ var manifest_default3 = {
25082
+ id: "stable",
25083
+ version: "1.0.0",
25084
+ status: "stable",
25085
+ owner: "granular",
25086
+ createdAt: "2026-05-24T00:00:00.000Z",
25087
+ changelog: "Baseline template wrapping the existing Granular agent harness prompt, continuation instruction, output contract, and generated-job review policy.",
25088
+ promptBuilder: "buildGranularAgentSystemPrompt",
25089
+ continuationBuilder: "buildContinuationInstruction",
25090
+ modelOutputInstruction: "agent-evals:modelOutputInstruction",
25091
+ codeReviewPolicy: "reviewGeneratedJobCode",
25092
+ defaultModel: "gpt-5.4",
25093
+ modelMatrix: ["gpt-5.4"],
25094
+ temperature: 0,
25095
+ compatibility: {
25096
+ minSdkVersion: "0.4.40",
25097
+ capabilities: [
25098
+ "executeCode",
25099
+ "readEntities",
25100
+ "workflowHelpers",
25101
+ "savedData",
25102
+ "showRecords"
25103
+ ]
25104
+ },
25105
+ evalGates: {
25106
+ requiredSuites: [
25107
+ "agent-harness-hardening",
25108
+ "agent-harness-runtime-e2e",
25109
+ "agent-production-readiness-e2e"
25110
+ ],
25111
+ criticalBuckets: [
25112
+ "relationship-traversal",
25113
+ "cross-turn-reference",
25114
+ "ambiguous-target-choice",
25115
+ "confirmation-gated-mutation",
25116
+ "denied-action-refusal",
25117
+ "mutation-presentation"
25118
+ ],
25119
+ maxRegressionPct: 0,
25120
+ minPassK: {
25121
+ "critical-mutation": 0.9,
25122
+ "permission-boundary": 1
25123
+ }
25124
+ }
25125
+ };
25126
+
25127
+ // src/agent-harness.ts
25128
+ var HARNESS_TEMPLATE_STATUSES = [
25129
+ "draft",
25130
+ "candidate",
25131
+ "release-candidate",
25132
+ "stable",
25133
+ "deprecated"
25134
+ ];
25135
+ function requireRecord(value, context) {
25136
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
25137
+ throw new Error(`${context} must be an object.`);
25138
+ }
25139
+ return value;
25140
+ }
25141
+ function requiredString(record, key, context) {
25142
+ const value = record[key];
25143
+ if (typeof value !== "string" || !value.trim()) {
25144
+ throw new Error(`${context}.${key} must be a non-empty string.`);
25145
+ }
25146
+ return value;
25147
+ }
25148
+ function requiredNumber(record, key, context) {
25149
+ const value = record[key];
25150
+ if (typeof value !== "number" || !Number.isFinite(value)) {
25151
+ throw new Error(`${context}.${key} must be a finite number.`);
25152
+ }
25153
+ return value;
25154
+ }
25155
+ function requiredStringArray(record, key, context) {
25156
+ const value = record[key];
25157
+ if (!Array.isArray(value) || value.some((item) => typeof item !== "string" || !item.trim())) {
25158
+ throw new Error(`${context}.${key} must be an array of non-empty strings.`);
25159
+ }
25160
+ return [...value];
25161
+ }
25162
+ function requiredNumberRecord(record, key, context) {
25163
+ const value = requireRecord(record[key], `${context}.${key}`);
25164
+ const output = {};
25165
+ for (const [entryKey, entryValue] of Object.entries(value)) {
25166
+ if (typeof entryValue !== "number" || !Number.isFinite(entryValue) || entryValue < 0 || entryValue > 1) {
25167
+ throw new Error(
25168
+ `${context}.${key}.${entryKey} must be a number between 0 and 1.`
25169
+ );
25170
+ }
25171
+ output[entryKey] = entryValue;
25172
+ }
25173
+ return output;
25174
+ }
25175
+ function validateHarnessTemplateManifest(value, context = "HarnessTemplateManifest") {
25176
+ const record = requireRecord(value, context);
25177
+ const status = requiredString(record, "status", context);
25178
+ if (!HARNESS_TEMPLATE_STATUSES.includes(status)) {
25179
+ throw new Error(
25180
+ `${context}.status must be one of ${HARNESS_TEMPLATE_STATUSES.join(", ")}.`
25181
+ );
25182
+ }
25183
+ const createdAt = requiredString(record, "createdAt", context);
25184
+ if (Number.isNaN(Date.parse(createdAt))) {
25185
+ throw new Error(`${context}.createdAt must be an ISO timestamp.`);
25186
+ }
25187
+ const compatibility = requireRecord(
25188
+ record.compatibility,
25189
+ `${context}.compatibility`
25190
+ );
25191
+ const evalGates = requireRecord(record.evalGates, `${context}.evalGates`);
25192
+ const maxRegressionPct = requiredNumber(
25193
+ evalGates,
25194
+ "maxRegressionPct",
25195
+ `${context}.evalGates`
25196
+ );
25197
+ if (maxRegressionPct < 0 || maxRegressionPct > 1) {
25198
+ throw new Error(
25199
+ `${context}.evalGates.maxRegressionPct must be between 0 and 1.`
25200
+ );
25201
+ }
25202
+ return {
25203
+ id: requiredString(record, "id", context),
25204
+ version: requiredString(record, "version", context),
25205
+ status,
25206
+ owner: requiredString(record, "owner", context),
25207
+ createdAt,
25208
+ changelog: requiredString(record, "changelog", context),
25209
+ promptBuilder: requiredString(record, "promptBuilder", context),
25210
+ continuationBuilder: requiredString(record, "continuationBuilder", context),
25211
+ modelOutputInstruction: requiredString(
25212
+ record,
25213
+ "modelOutputInstruction",
25214
+ context
25215
+ ),
25216
+ codeReviewPolicy: requiredString(record, "codeReviewPolicy", context),
25217
+ defaultModel: requiredString(record, "defaultModel", context),
25218
+ modelMatrix: requiredStringArray(record, "modelMatrix", context),
25219
+ temperature: requiredNumber(record, "temperature", context),
25220
+ compatibility: {
25221
+ minSdkVersion: requiredString(
25222
+ compatibility,
25223
+ "minSdkVersion",
25224
+ `${context}.compatibility`
25225
+ ),
25226
+ capabilities: requiredStringArray(
25227
+ compatibility,
25228
+ "capabilities",
25229
+ `${context}.compatibility`
25230
+ )
25231
+ },
25232
+ evalGates: {
25233
+ requiredSuites: requiredStringArray(
25234
+ evalGates,
25235
+ "requiredSuites",
25236
+ `${context}.evalGates`
25237
+ ),
25238
+ criticalBuckets: requiredStringArray(
25239
+ evalGates,
25240
+ "criticalBuckets",
25241
+ `${context}.evalGates`
25242
+ ),
25243
+ maxRegressionPct,
25244
+ minPassK: requiredNumberRecord(
25245
+ evalGates,
25246
+ "minPassK",
25247
+ `${context}.evalGates`
25248
+ )
25249
+ }
25250
+ };
25251
+ }
25252
+ function defineHarnessTemplateManifest(value, context) {
25253
+ return validateHarnessTemplateManifest(value, context);
25254
+ }
25255
+ defineHarnessTemplateManifest(
25256
+ manifest_default3,
25257
+ "stable@1.0.0 manifest"
25258
+ );
25259
+ defineHarnessTemplateManifest(
25260
+ manifest_default2,
25261
+ "experimental-compact@0.1.0 manifest"
25262
+ );
25263
+ defineHarnessTemplateManifest(
25264
+ manifest_default,
25265
+ "action-presentation@0.1.0 manifest"
25266
+ );
25267
+
24986
25268
  // src/cli/commands/runtime-shared.ts
24987
25269
  function normalizePermissions(raw) {
24988
25270
  const values = raw?.split(",").map((value) => value.trim()).filter(Boolean);
package/dist/index.d.mts CHANGED
@@ -2,7 +2,7 @@ export { E as Environment, a as EnvironmentSession, G as Granular, O as Ontology
2
2
  import { E as EndpointMode, T as ToolWithHandler, a as EffectHandlerContext, M as ManifestEffectMetamodelSpec, R as ResolvedEffectBehaviors, S as SessionHeapEntry, b as SessionHeapList, c as SessionHeapSnapshot, P as Prompt, d as SessionTranscriptEntry } from './spend-tAz2a16I.mjs';
3
3
  export { bO as APIError, A as AccessTokenProvider, a0 as Assignment, a1 as AssignmentListResponse, ab as Build, ad as BuildListResponse, a2 as BuildPolicy, aa as BuildStatus, C as ConnectOptions, aH as ConversationAppendResult, aG as ConversationMessageInput, aF as ConversationMessageShowRefs, y as ConversationSessionInfo, a6 as CreateEnvironmentData, _ as CreatePermissionProfileData, W as CreateSandboxData, x as CreateSessionOptions, b9 as DefineRelationshipOptions, bP as DeleteResponse, D as DomainState, au as EffectHandler, ar as EffectInfo, al as EffectInvocationMetadata, ak as EffectInvocationMode, am as EffectSchema, ap as EffectVersionSelector, an as EffectWithHandler, at as EffectsChangedEvent, a5 as EnvironmentData, aC as EnvironmentFeedbackRecord, br as EnvironmentImporter, bq as EnvironmentImporterImportOptions, a7 as EnvironmentListResponse, bl as EnvironmentRecordImportSummary, bo as EnvironmentSetupLifecycleStatus, bp as EnvironmentSetupSummary, bm as EnvironmentSetupTriggerReason, s as GranularAuth, q as GranularOptions, K as GranularQuotaPolicy, L as GranularQuotaProgress, G as GranularSpendContext, bN as GraphQLResult, av as InstanceEffectHandler, I as InstanceToolHandler, aE as Job, aA as JobFeedbackInput, az as JobFeedbackMetadata, aB as JobFeedbackRecord, ax as JobFeedbackSentiment, ay as JobFeedbackToolCall, aw as JobStatus, aD as JobSubmitResult, a8 as Manifest, bD as ManifestApprovalRequiredSpec, bM as ManifestContent, bB as ManifestDryRunSpec, bG as ManifestEffectDeclaration, bF as ManifestEffectSchema, bu as ManifestEnumRuleSpec, bI as ManifestEventStreamDef, bH as ManifestEventTypeDef, bv as ManifestFilterBySpec, bK as ManifestImport, a9 as ManifestListResponse, bJ as ManifestOperation, bA as ManifestPostConditionSpec, bs as ManifestPropertySpec, bE as ManifestRelationshipDef, bC as ManifestReverseSpec, bz as ManifestStateMachineSpec, bx as ManifestStateMachineStateSpec, by as ManifestStateMachineTransitionSpec, bt as ManifestValidationOperator, bw as ManifestValidationRuleSpec, bL as ManifestVolume, b7 as ModelRef, N as NormalizedOpenAIUsage, i as OPENAI_MODEL_PRICING_USD_PER_MILLION, O as OpenAIModelPricing, h as OpenAITokenSpend, l as OpenAIUsageSpendEvent, w as OpenEnvironmentOptions, Z as PermissionProfile, $ as PermissionProfileListResponse, Y as PermissionRules, ao as PublishEffectsResult, f as PublishToolsResult, J as QuotaLineItemFilter, B as QuotaPeriod, Q as QuotaScopeType, F as QuotaStatus, b1 as RPCRequest, b4 as RPCRequestFromServer, b2 as RPCResponse, bk as RecordImport, bj as RecordImportItem, bh as RecordImportItemStatus, bf as RecordImportOptions, bi as RecordImportStats, bg as RecordImportStatus, be as RecordImportWriteMode, aV as RecordMentionInput, ba as RecordObjectOptions, bb as RecordObjectResult, bc as RecordObjectsChunkInfo, bd as RecordObjectsOptions, m as RecordOpenAIUsageSpendOptions, o as RecordOpenAIUsageSpendResult, aU as RecordSearchOptions, aT as RecordSearchResult, u as RecordUserOptions, b8 as RelationshipInfo, aj as ResolvedEffectApprovalRequired, ah as ResolvedEffectDryRun, ag as ResolvedEffectPostCondition, ai as ResolvedEffectReverse, bn as RunEnvironmentImporterOptions, V as Sandbox, X as SandboxListResponse, af as SemanticVersionDiff, ae as SemanticVersionDiffEntry, aX as SessionCollectionListOptions, aZ as SessionCollectionListResult, aI as SessionConversationMessage, aW as SessionDocumentResult, aL as SessionFileKind, aN as SessionFileRecord, aK as SessionFileSource, aM as SessionFileStatus, aO as SessionFileUploadOptions, aQ as SessionHeapFieldType, aR as SessionHeapFieldValue, aS as SessionHeapVariable, aY as SessionJobListOptions, aP as SessionJobRecord, aJ as SessionTimelineEvent, z as SpendLineItemType, H as SpendSummary, bQ as StreamEvent, bS as StreamStats, bR as StreamSubscription, v as Subject, b3 as SyncMessage, g as ToolHandler, aq as ToolInfo, b5 as ToolInvokeParams, b6 as ToolResultParams, e as ToolSchema, as as ToolsChangedEvent, U as User, ac as Version, a4 as VersionTag, a3 as VersionTracking, b0 as WSClientOptions, a_ as WSDisconnectInfo, a$ as WSReconnectErrorInfo, p as buildOpenAISpendEventId, k as calculateOpenAITokenSpend, j as getOpenAIModelPricing, n as normalizeOpenAIUsage, r as recordOpenAIUsageSpend, t as toGranularHttpBase } from './spend-tAz2a16I.mjs';
4
4
  export { ConditionIR, ConditionalPolicySpec, LimitPolicySpec, MatchedPolicy, PermissionActionSpec, PermissionPolicySpec, PermissionProfileFile, PolicyDecision, PolicyEvaluationContext, PolicyOutcome, PolicyRuleIR } from '@granular-software/policy-engine';
5
- export { BuildGranularAgentSystemPromptInput, GeneratedJobCodeIssue, GranularAgentExecutionCheckpoint, GranularAgentHeapSummaryOptions, GranularAgentPromptCapabilities, GranularAgentReferentFocus, GranularAgentSessionContext, GranularAgentToolInfo, GranularAgentWorkflowFocus, GranularReasoningTraceChunkResult, GranularReasoningTraceOptions, HarnessContinuationDecision, HarnessControllerBudgets, HarnessProjectionOptions, HarnessPromptLike, HarnessVerifierSnapshot, HarnessVerifierSnapshotInput, ReviewGeneratedJobCodeOptions, buildContinuationInstruction, buildGranularAgentCheckpointBlock, buildGranularAgentDomainBlock, buildGranularAgentFileBlock, buildGranularAgentHeapBlock, buildGranularAgentLoopBlock, buildGranularAgentReferentBlock, buildGranularAgentRuntimeImportsBlock, buildGranularAgentSessionBlock, buildGranularAgentSystemPrompt, buildGranularAgentToolBlock, buildGranularAgentWorkflowBlock, consumeGranularReasoningOnlyChunk, consumeGranularReasoningTraceChunk, createHarnessVerifierSnapshot, evaluateContinuation, getCurrentClosureId, getExclusivePromptTarget, hasOpenPrompt, projectConversationReferentFocus, projectConversationReferentSummary, projectHeapSummary, projectLoopSummary, projectSessionFileSummary, projectWorkflowFocus, projectWorkflowSummary, reviewGeneratedJobCode, stripGranularReasoningTrace } from './agent-harness.mjs';
5
+ export { BuildGranularAgentSystemPromptInput, GeneratedJobCodeIssue, GranularAgentExecutionCheckpoint, GranularAgentHeapSummaryOptions, 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, 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';
6
6
  import '@automerge/automerge';
7
7
  import '@automerge/automerge/slim';
8
8
 
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ export { E as Environment, a as EnvironmentSession, G as Granular, O as Ontology
2
2
  import { E as EndpointMode, T as ToolWithHandler, a as EffectHandlerContext, M as ManifestEffectMetamodelSpec, R as ResolvedEffectBehaviors, S as SessionHeapEntry, b as SessionHeapList, c as SessionHeapSnapshot, P as Prompt, d as SessionTranscriptEntry } from './spend-tAz2a16I.js';
3
3
  export { bO as APIError, A as AccessTokenProvider, a0 as Assignment, a1 as AssignmentListResponse, ab as Build, ad as BuildListResponse, a2 as BuildPolicy, aa as BuildStatus, C as ConnectOptions, aH as ConversationAppendResult, aG as ConversationMessageInput, aF as ConversationMessageShowRefs, y as ConversationSessionInfo, a6 as CreateEnvironmentData, _ as CreatePermissionProfileData, W as CreateSandboxData, x as CreateSessionOptions, b9 as DefineRelationshipOptions, bP as DeleteResponse, D as DomainState, au as EffectHandler, ar as EffectInfo, al as EffectInvocationMetadata, ak as EffectInvocationMode, am as EffectSchema, ap as EffectVersionSelector, an as EffectWithHandler, at as EffectsChangedEvent, a5 as EnvironmentData, aC as EnvironmentFeedbackRecord, br as EnvironmentImporter, bq as EnvironmentImporterImportOptions, a7 as EnvironmentListResponse, bl as EnvironmentRecordImportSummary, bo as EnvironmentSetupLifecycleStatus, bp as EnvironmentSetupSummary, bm as EnvironmentSetupTriggerReason, s as GranularAuth, q as GranularOptions, K as GranularQuotaPolicy, L as GranularQuotaProgress, G as GranularSpendContext, bN as GraphQLResult, av as InstanceEffectHandler, I as InstanceToolHandler, aE as Job, aA as JobFeedbackInput, az as JobFeedbackMetadata, aB as JobFeedbackRecord, ax as JobFeedbackSentiment, ay as JobFeedbackToolCall, aw as JobStatus, aD as JobSubmitResult, a8 as Manifest, bD as ManifestApprovalRequiredSpec, bM as ManifestContent, bB as ManifestDryRunSpec, bG as ManifestEffectDeclaration, bF as ManifestEffectSchema, bu as ManifestEnumRuleSpec, bI as ManifestEventStreamDef, bH as ManifestEventTypeDef, bv as ManifestFilterBySpec, bK as ManifestImport, a9 as ManifestListResponse, bJ as ManifestOperation, bA as ManifestPostConditionSpec, bs as ManifestPropertySpec, bE as ManifestRelationshipDef, bC as ManifestReverseSpec, bz as ManifestStateMachineSpec, bx as ManifestStateMachineStateSpec, by as ManifestStateMachineTransitionSpec, bt as ManifestValidationOperator, bw as ManifestValidationRuleSpec, bL as ManifestVolume, b7 as ModelRef, N as NormalizedOpenAIUsage, i as OPENAI_MODEL_PRICING_USD_PER_MILLION, O as OpenAIModelPricing, h as OpenAITokenSpend, l as OpenAIUsageSpendEvent, w as OpenEnvironmentOptions, Z as PermissionProfile, $ as PermissionProfileListResponse, Y as PermissionRules, ao as PublishEffectsResult, f as PublishToolsResult, J as QuotaLineItemFilter, B as QuotaPeriod, Q as QuotaScopeType, F as QuotaStatus, b1 as RPCRequest, b4 as RPCRequestFromServer, b2 as RPCResponse, bk as RecordImport, bj as RecordImportItem, bh as RecordImportItemStatus, bf as RecordImportOptions, bi as RecordImportStats, bg as RecordImportStatus, be as RecordImportWriteMode, aV as RecordMentionInput, ba as RecordObjectOptions, bb as RecordObjectResult, bc as RecordObjectsChunkInfo, bd as RecordObjectsOptions, m as RecordOpenAIUsageSpendOptions, o as RecordOpenAIUsageSpendResult, aU as RecordSearchOptions, aT as RecordSearchResult, u as RecordUserOptions, b8 as RelationshipInfo, aj as ResolvedEffectApprovalRequired, ah as ResolvedEffectDryRun, ag as ResolvedEffectPostCondition, ai as ResolvedEffectReverse, bn as RunEnvironmentImporterOptions, V as Sandbox, X as SandboxListResponse, af as SemanticVersionDiff, ae as SemanticVersionDiffEntry, aX as SessionCollectionListOptions, aZ as SessionCollectionListResult, aI as SessionConversationMessage, aW as SessionDocumentResult, aL as SessionFileKind, aN as SessionFileRecord, aK as SessionFileSource, aM as SessionFileStatus, aO as SessionFileUploadOptions, aQ as SessionHeapFieldType, aR as SessionHeapFieldValue, aS as SessionHeapVariable, aY as SessionJobListOptions, aP as SessionJobRecord, aJ as SessionTimelineEvent, z as SpendLineItemType, H as SpendSummary, bQ as StreamEvent, bS as StreamStats, bR as StreamSubscription, v as Subject, b3 as SyncMessage, g as ToolHandler, aq as ToolInfo, b5 as ToolInvokeParams, b6 as ToolResultParams, e as ToolSchema, as as ToolsChangedEvent, U as User, ac as Version, a4 as VersionTag, a3 as VersionTracking, b0 as WSClientOptions, a_ as WSDisconnectInfo, a$ as WSReconnectErrorInfo, p as buildOpenAISpendEventId, k as calculateOpenAITokenSpend, j as getOpenAIModelPricing, n as normalizeOpenAIUsage, r as recordOpenAIUsageSpend, t as toGranularHttpBase } from './spend-tAz2a16I.js';
4
4
  export { ConditionIR, ConditionalPolicySpec, LimitPolicySpec, MatchedPolicy, PermissionActionSpec, PermissionPolicySpec, PermissionProfileFile, PolicyDecision, PolicyEvaluationContext, PolicyOutcome, PolicyRuleIR } from '@granular-software/policy-engine';
5
- export { BuildGranularAgentSystemPromptInput, GeneratedJobCodeIssue, GranularAgentExecutionCheckpoint, GranularAgentHeapSummaryOptions, GranularAgentPromptCapabilities, GranularAgentReferentFocus, GranularAgentSessionContext, GranularAgentToolInfo, GranularAgentWorkflowFocus, GranularReasoningTraceChunkResult, GranularReasoningTraceOptions, HarnessContinuationDecision, HarnessControllerBudgets, HarnessProjectionOptions, HarnessPromptLike, HarnessVerifierSnapshot, HarnessVerifierSnapshotInput, ReviewGeneratedJobCodeOptions, buildContinuationInstruction, buildGranularAgentCheckpointBlock, buildGranularAgentDomainBlock, buildGranularAgentFileBlock, buildGranularAgentHeapBlock, buildGranularAgentLoopBlock, buildGranularAgentReferentBlock, buildGranularAgentRuntimeImportsBlock, buildGranularAgentSessionBlock, buildGranularAgentSystemPrompt, buildGranularAgentToolBlock, buildGranularAgentWorkflowBlock, consumeGranularReasoningOnlyChunk, consumeGranularReasoningTraceChunk, createHarnessVerifierSnapshot, evaluateContinuation, getCurrentClosureId, getExclusivePromptTarget, hasOpenPrompt, projectConversationReferentFocus, projectConversationReferentSummary, projectHeapSummary, projectLoopSummary, projectSessionFileSummary, projectWorkflowFocus, projectWorkflowSummary, reviewGeneratedJobCode, stripGranularReasoningTrace } from './agent-harness.js';
5
+ export { BuildGranularAgentSystemPromptInput, GeneratedJobCodeIssue, GranularAgentExecutionCheckpoint, GranularAgentHeapSummaryOptions, 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, 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';
6
6
  import '@automerge/automerge';
7
7
  import '@automerge/automerge/slim';
8
8