@granular-software/sdk 0.4.22 → 0.4.24

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
@@ -18300,7 +18300,9 @@ var Session = class {
18300
18300
  }
18301
18301
  }
18302
18302
  if (!revision) {
18303
- throw new Error("No domain revision available. Register live effects or ensure the build schema is activated.");
18303
+ throw new Error(
18304
+ "No domain revision available. Register live effects or ensure the build schema is activated."
18305
+ );
18304
18306
  }
18305
18307
  const result = await this.client.call("job.submit", {
18306
18308
  domainRevision: revision,
@@ -18336,7 +18338,11 @@ var Session = class {
18336
18338
  const prompt3 = this.promptCache.get(promptId);
18337
18339
  const resolvedAnswer = resolvePromptAnswer(prompt3, answer);
18338
18340
  this.promptCache.delete(promptId);
18339
- await this.client.call("prompt.answer", { promptId, answer: resolvedAnswer, value: resolvedAnswer });
18341
+ await this.client.call("prompt.answer", {
18342
+ promptId,
18343
+ answer: resolvedAnswer,
18344
+ value: resolvedAnswer
18345
+ });
18340
18346
  }
18341
18347
  /**
18342
18348
  * Get the current list of available effects.
@@ -18368,7 +18374,8 @@ var Session = class {
18368
18374
  for (const tool of cat.tools) {
18369
18375
  if (!tool?.name) continue;
18370
18376
  const existing = toolMap.get(tool.name);
18371
- if (existing?.publishedAt && cat.publishedAt && existing.publishedAt > cat.publishedAt) continue;
18377
+ if (existing?.publishedAt && cat.publishedAt && existing.publishedAt > cat.publishedAt)
18378
+ continue;
18372
18379
  const isLocal = clientId === this.clientId;
18373
18380
  const ready = isLocal ? this.effects.has(tool.name) || this.toolHandlers.has(tool.name) || this.instanceTools.has(tool.name) : true;
18374
18381
  toolMap.set(tool.name, {
@@ -18406,7 +18413,10 @@ var Session = class {
18406
18413
  return () => {
18407
18414
  const listeners = this.eventListeners.get("effects:changed");
18408
18415
  if (listeners) {
18409
- this.eventListeners.set("effects:changed", listeners.filter((h) => h !== handler));
18416
+ this.eventListeners.set(
18417
+ "effects:changed",
18418
+ listeners.filter((h) => h !== handler)
18419
+ );
18410
18420
  }
18411
18421
  };
18412
18422
  }
@@ -18422,7 +18432,10 @@ var Session = class {
18422
18432
  return () => {
18423
18433
  const listeners = this.eventListeners.get("tools:changed");
18424
18434
  if (listeners) {
18425
- this.eventListeners.set("tools:changed", listeners.filter((h) => h !== handler));
18435
+ this.eventListeners.set(
18436
+ "tools:changed",
18437
+ listeners.filter((h) => h !== handler)
18438
+ );
18426
18439
  }
18427
18440
  };
18428
18441
  }
@@ -18430,11 +18443,16 @@ var Session = class {
18430
18443
  * Get the current domain state and available tools
18431
18444
  */
18432
18445
  async getDomain() {
18433
- const summary = await this.client.call("domain.getSummary", {});
18446
+ const summary = await this.client.call(
18447
+ "domain.getSummary",
18448
+ {}
18449
+ );
18434
18450
  if (summary.activeDomainRevision) {
18435
18451
  this.currentDomainRevision = summary.activeDomainRevision;
18436
18452
  } else {
18437
- this.currentDomainRevision = this.extractDomainRevisionFromDoc(this.client.doc);
18453
+ this.currentDomainRevision = this.extractDomainRevisionFromDoc(
18454
+ this.client.doc
18455
+ );
18438
18456
  }
18439
18457
  return summary;
18440
18458
  }
@@ -18609,20 +18627,31 @@ import { ${allImports} } from "./sandbox-tools";
18609
18627
  off(event, handler) {
18610
18628
  const handlers = this.eventListeners.get(event);
18611
18629
  if (handlers) {
18612
- this.eventListeners.set(event, handlers.filter((h) => h !== handler));
18630
+ this.eventListeners.set(
18631
+ event,
18632
+ handlers.filter((h) => h !== handler)
18633
+ );
18613
18634
  }
18614
18635
  }
18615
18636
  // --- Internal ---
18616
18637
  setupToolInvokeHandler() {
18617
18638
  this.client.registerRpcHandler("tool.invoke", async (params) => {
18618
18639
  const { callId, toolName, input } = params;
18619
- this.emit("effect:invoke", { callId, effectKey: toolName, toolName, input });
18640
+ this.emit("effect:invoke", {
18641
+ callId,
18642
+ effectKey: toolName,
18643
+ toolName,
18644
+ input
18645
+ });
18620
18646
  this.emit("tool:invoke", { callId, toolName, input });
18621
18647
  const handler = this.toolHandlers.get(toolName);
18622
18648
  if (!handler) {
18623
18649
  await this.client.call("tool.result", {
18624
18650
  callId,
18625
- error: { code: "TOOL_NOT_FOUND", message: `Tool handler not found: ${toolName}` }
18651
+ error: {
18652
+ code: "TOOL_NOT_FOUND",
18653
+ message: `Tool handler not found: ${toolName}`
18654
+ }
18626
18655
  });
18627
18656
  return;
18628
18657
  }
@@ -18631,7 +18660,11 @@ import { ${allImports} } from "./sandbox-tools";
18631
18660
  const invocationContext = this.buildLegacyEffectContext();
18632
18661
  if (this.instanceTools.has(toolName) && input && typeof input === "object" && "_objectId" in input) {
18633
18662
  const { _objectId, ...restParams } = input;
18634
- result = await handler(_objectId, restParams, invocationContext);
18663
+ result = await handler(
18664
+ _objectId,
18665
+ restParams,
18666
+ invocationContext
18667
+ );
18635
18668
  } else {
18636
18669
  result = await handler(input, invocationContext);
18637
18670
  }
@@ -18643,7 +18676,11 @@ import { ${allImports} } from "./sandbox-tools";
18643
18676
  });
18644
18677
  } catch (error2) {
18645
18678
  const errorMessage = error2 instanceof Error ? error2.message : String(error2);
18646
- this.emit("effect:result", { callId, effectKey: toolName, error: errorMessage });
18679
+ this.emit("effect:result", {
18680
+ callId,
18681
+ effectKey: toolName,
18682
+ error: errorMessage
18683
+ });
18647
18684
  this.emit("tool:result", { callId, error: errorMessage });
18648
18685
  await this.client.call("tool.result", {
18649
18686
  callId,
@@ -18653,7 +18690,10 @@ import { ${allImports} } from "./sandbox-tools";
18653
18690
  });
18654
18691
  }
18655
18692
  setupEventHandlers() {
18656
- this.client.on("open", (payload) => this.emit("open", payload || {}));
18693
+ this.client.on(
18694
+ "open",
18695
+ (payload) => this.emit("open", payload || {})
18696
+ );
18657
18697
  this.client.on("sync", (doc) => {
18658
18698
  this.currentDomainRevision = this.extractDomainRevisionFromDoc(doc);
18659
18699
  this.emit("sync", doc);
@@ -18667,8 +18707,14 @@ import { ${allImports} } from "./sandbox-tools";
18667
18707
  };
18668
18708
  this.client.on("prompt", emitPrompt);
18669
18709
  this.client.on("prompt.request", emitPrompt);
18670
- this.client.on("disconnect", (payload) => this.emit("disconnect", payload || {}));
18671
- this.client.on("reconnect_error", (payload) => this.emit("reconnect_error", payload || {}));
18710
+ this.client.on(
18711
+ "disconnect",
18712
+ (payload) => this.emit("disconnect", payload || {})
18713
+ );
18714
+ this.client.on(
18715
+ "reconnect_error",
18716
+ (payload) => this.emit("reconnect_error", payload || {})
18717
+ );
18672
18718
  this.client.on("job.status", (data) => {
18673
18719
  this.emit("job:status", data);
18674
18720
  });
@@ -18784,7 +18830,10 @@ function sanitizeFeedbackValue(value, depth = 0, seen = /* @__PURE__ */ new Weak
18784
18830
  return "[Circular]";
18785
18831
  }
18786
18832
  seen.add(value);
18787
- const entries = Object.entries(value).slice(0, MAX_FEEDBACK_OBJECT_KEYS);
18833
+ const entries = Object.entries(value).slice(
18834
+ 0,
18835
+ MAX_FEEDBACK_OBJECT_KEYS
18836
+ );
18788
18837
  const sanitized = {};
18789
18838
  for (const [key, entryValue] of entries) {
18790
18839
  sanitized[key] = sanitizeFeedbackValue(entryValue, depth + 1, seen);
@@ -18835,12 +18884,18 @@ var JobImplementation = class {
18835
18884
  if (progressData.execId === id || progressData.jobId === id) {
18836
18885
  if (progressData.stdout) {
18837
18886
  this.markStarted();
18838
- this.metadata.stdout = [...this.metadata.stdout, truncateFeedbackString(progressData.stdout)].slice(-100);
18887
+ this.metadata.stdout = [
18888
+ ...this.metadata.stdout,
18889
+ truncateFeedbackString(progressData.stdout)
18890
+ ].slice(-100);
18839
18891
  this.emit("stdout", progressData.stdout);
18840
18892
  }
18841
18893
  if (progressData.stderr) {
18842
18894
  this.markStarted();
18843
- this.metadata.stderr = [...this.metadata.stderr, truncateFeedbackString(progressData.stderr)].slice(-100);
18895
+ this.metadata.stderr = [
18896
+ ...this.metadata.stderr,
18897
+ truncateFeedbackString(progressData.stderr)
18898
+ ].slice(-100);
18844
18899
  this.emit("stderr", progressData.stderr);
18845
18900
  }
18846
18901
  }
@@ -18862,12 +18917,18 @@ var JobImplementation = class {
18862
18917
  });
18863
18918
  this.client.on(`job.${id}.stdout`, (line) => {
18864
18919
  this.markStarted();
18865
- this.metadata.stdout = [...this.metadata.stdout, truncateFeedbackString(String(line))].slice(-100);
18920
+ this.metadata.stdout = [
18921
+ ...this.metadata.stdout,
18922
+ truncateFeedbackString(String(line))
18923
+ ].slice(-100);
18866
18924
  this.emit("stdout", line);
18867
18925
  });
18868
18926
  this.client.on(`job.${id}.stderr`, (line) => {
18869
18927
  this.markStarted();
18870
- this.metadata.stderr = [...this.metadata.stderr, truncateFeedbackString(String(line))].slice(-100);
18928
+ this.metadata.stderr = [
18929
+ ...this.metadata.stderr,
18930
+ truncateFeedbackString(String(line))
18931
+ ].slice(-100);
18871
18932
  this.emit("stderr", line);
18872
18933
  });
18873
18934
  this.client.on(`job.${id}.result`, (result) => {
@@ -18899,7 +18960,11 @@ var JobImplementation = class {
18899
18960
  this.client.on("job.failed", (data) => {
18900
18961
  const jobData = data;
18901
18962
  if (jobData.jobId === id) {
18902
- this.finalize("failed", void 0, jobData.error || new Error("Job failed"));
18963
+ this.finalize(
18964
+ "failed",
18965
+ void 0,
18966
+ jobData.error || new Error("Job failed")
18967
+ );
18903
18968
  this.emit("status", this.status);
18904
18969
  }
18905
18970
  });
@@ -18912,7 +18977,12 @@ var JobImplementation = class {
18912
18977
  input: sanitizeFeedbackValue(d.input),
18913
18978
  startedAt: d.timestamp || Date.now()
18914
18979
  });
18915
- this.emit("toolCallStart", { callId: d.callId, toolName: d.toolName, input: d.input, timestamp: d.timestamp });
18980
+ this.emit("toolCallStart", {
18981
+ callId: d.callId,
18982
+ toolName: d.toolName,
18983
+ input: d.input,
18984
+ timestamp: d.timestamp
18985
+ });
18916
18986
  }
18917
18987
  });
18918
18988
  this.client.on("tool.call.end", (data) => {
@@ -18927,7 +18997,25 @@ var JobImplementation = class {
18927
18997
  completedAt,
18928
18998
  durationMs: typeof d.durationMs === "number" ? d.durationMs : void 0
18929
18999
  });
18930
- this.emit("toolCallEnd", { callId: d.callId, toolName: d.toolName, result: d.result, error: d.error, durationMs: d.durationMs, timestamp: d.timestamp });
19000
+ this.emit("toolCallEnd", {
19001
+ callId: d.callId,
19002
+ toolName: d.toolName,
19003
+ result: d.result,
19004
+ error: d.error,
19005
+ durationMs: d.durationMs,
19006
+ timestamp: d.timestamp
19007
+ });
19008
+ }
19009
+ });
19010
+ this.client.on("job.agent_message", (data) => {
19011
+ const d = data;
19012
+ if (d.jobId === id) {
19013
+ this.emit("agentMessage", {
19014
+ messageId: d.messageId,
19015
+ reply: typeof d.reply === "string" ? d.reply : "",
19016
+ show: d.show,
19017
+ timestamp: d.timestamp || Date.now()
19018
+ });
18931
19019
  }
18932
19020
  });
18933
19021
  }
@@ -18997,7 +19085,9 @@ var JobImplementation = class {
18997
19085
  }
18998
19086
  upsertToolCall(next) {
18999
19087
  const callId = next.callId || `tool-call-${Date.now()}`;
19000
- const existingIndex = this.metadata.toolCalls.findIndex((entry) => entry.callId === callId);
19088
+ const existingIndex = this.metadata.toolCalls.findIndex(
19089
+ (entry) => entry.callId === callId
19090
+ );
19001
19091
  const existing = existingIndex >= 0 ? this.metadata.toolCalls[existingIndex] : void 0;
19002
19092
  const merged = {
19003
19093
  ...existing,
@@ -1299,7 +1299,7 @@ declare class Session {
1299
1299
  docId?: string;
1300
1300
  graphContainerStatus?: {
1301
1301
  lastKeepAliveAt: number;
1302
- status: 'warming' | 'hot' | 'unknown';
1302
+ status: "warming" | "hot" | "unknown";
1303
1303
  };
1304
1304
  }>;
1305
1305
  publishTools(tools: ToolWithHandler[], revision?: string): Promise<PublishToolsResult>;
@@ -1299,7 +1299,7 @@ declare class Session {
1299
1299
  docId?: string;
1300
1300
  graphContainerStatus?: {
1301
1301
  lastKeepAliveAt: number;
1302
- status: 'warming' | 'hot' | 'unknown';
1302
+ status: "warming" | "hot" | "unknown";
1303
1303
  };
1304
1304
  }>;
1305
1305
  publishTools(tools: ToolWithHandler[], revision?: string): Promise<PublishToolsResult>;
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- 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 } from './client-DLGC0mJk.mjs';
2
- export { b1 as APIError, A as AccessTokenProvider, u as Assignment, v as AssignmentListResponse, K as Build, N as BuildListResponse, B as BuildPolicy, J as BuildStatus, C as ConnectOptions, m as ConversationSessionInfo, y as CreateEnvironmentData, s as CreatePermissionProfileData, o as CreateSandboxData, aw as DefineRelationshipOptions, b2 as DeleteResponse, D as DomainState, a8 as EffectHandler, a5 as EffectInfo, a0 as EffectInvocationMetadata, $ as EffectInvocationMode, a1 as EffectSchema, a2 as EffectWithHandler, a7 as EffectsChangedEvent, d as Environment, x as EnvironmentData, z as EnvironmentListResponse, aG as EnvironmentRecordImportSummary, G as Granular, j as GranularAuth, i as GranularOptions, b0 as GraphQLResult, a9 as InstanceEffectHandler, I as InstanceToolHandler, ah as Job, ae as JobFeedbackInput, ad as JobFeedbackMetadata, af as JobFeedbackRecord, ab as JobFeedbackSentiment, ac as JobFeedbackToolCall, aa as JobStatus, ag as JobSubmitResult, F as Manifest, aS as ManifestApprovalRequiredSpec, a$ as ManifestContent, aQ as ManifestDryRunSpec, aV as ManifestEffectDeclaration, aU as ManifestEffectSchema, aJ as ManifestEnumRuleSpec, aX as ManifestEventStreamDef, aW as ManifestEventTypeDef, aK as ManifestFilterBySpec, aZ as ManifestImport, H as ManifestListResponse, aY as ManifestOperation, aP as ManifestPostConditionSpec, aH as ManifestPropertySpec, aT as ManifestRelationshipDef, aR as ManifestReverseSpec, aO as ManifestStateMachineSpec, aM as ManifestStateMachineStateSpec, aN as ManifestStateMachineTransitionSpec, aI as ManifestValidationOperator, aL as ManifestValidationRuleSpec, a_ as ManifestVolume, au as ModelRef, r as PermissionProfile, t as PermissionProfileListResponse, q as PermissionRules, a3 as PublishEffectsResult, g as PublishToolsResult, ao as RPCRequest, ar as RPCRequestFromServer, ap as RPCResponse, aF as RecordImport, aE as RecordImportItem, aC as RecordImportItemStatus, aD as RecordImportStats, aB as RecordImportStatus, ax as RecordObjectOptions, ay as RecordObjectResult, az as RecordObjectsChunkInfo, aA as RecordObjectsOptions, k as RecordUserOptions, av as RelationshipInfo, _ as ResolvedEffectApprovalRequired, Y as ResolvedEffectDryRun, X as ResolvedEffectPostCondition, Z as ResolvedEffectReverse, n as Sandbox, p as SandboxListResponse, Q as SemanticVersionDiff, O as SemanticVersionDiffEntry, e as Session, ai as SessionHeapFieldType, aj as SessionHeapFieldValue, ak as SessionHeapVariable, b3 as StreamEvent, b5 as StreamStats, b4 as StreamSubscription, l as Subject, aq as SyncMessage, h as ToolHandler, a4 as ToolInfo, as as ToolInvokeParams, at as ToolResultParams, f as ToolSchema, a6 as ToolsChangedEvent, U as User, L as Version, w as VersionTag, V as VersionTracking, W as WSClient, an as WSClientOptions, al as WSDisconnectInfo, am as WSReconnectErrorInfo } from './client-DLGC0mJk.mjs';
1
+ 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 } from './client-CQFKsCTd.mjs';
2
+ export { b1 as APIError, A as AccessTokenProvider, u as Assignment, v as AssignmentListResponse, K as Build, N as BuildListResponse, B as BuildPolicy, J as BuildStatus, C as ConnectOptions, m as ConversationSessionInfo, y as CreateEnvironmentData, s as CreatePermissionProfileData, o as CreateSandboxData, aw as DefineRelationshipOptions, b2 as DeleteResponse, D as DomainState, a8 as EffectHandler, a5 as EffectInfo, a0 as EffectInvocationMetadata, $ as EffectInvocationMode, a1 as EffectSchema, a2 as EffectWithHandler, a7 as EffectsChangedEvent, d as Environment, x as EnvironmentData, z as EnvironmentListResponse, aG as EnvironmentRecordImportSummary, G as Granular, j as GranularAuth, i as GranularOptions, b0 as GraphQLResult, a9 as InstanceEffectHandler, I as InstanceToolHandler, ah as Job, ae as JobFeedbackInput, ad as JobFeedbackMetadata, af as JobFeedbackRecord, ab as JobFeedbackSentiment, ac as JobFeedbackToolCall, aa as JobStatus, ag as JobSubmitResult, F as Manifest, aS as ManifestApprovalRequiredSpec, a$ as ManifestContent, aQ as ManifestDryRunSpec, aV as ManifestEffectDeclaration, aU as ManifestEffectSchema, aJ as ManifestEnumRuleSpec, aX as ManifestEventStreamDef, aW as ManifestEventTypeDef, aK as ManifestFilterBySpec, aZ as ManifestImport, H as ManifestListResponse, aY as ManifestOperation, aP as ManifestPostConditionSpec, aH as ManifestPropertySpec, aT as ManifestRelationshipDef, aR as ManifestReverseSpec, aO as ManifestStateMachineSpec, aM as ManifestStateMachineStateSpec, aN as ManifestStateMachineTransitionSpec, aI as ManifestValidationOperator, aL as ManifestValidationRuleSpec, a_ as ManifestVolume, au as ModelRef, r as PermissionProfile, t as PermissionProfileListResponse, q as PermissionRules, a3 as PublishEffectsResult, g as PublishToolsResult, ao as RPCRequest, ar as RPCRequestFromServer, ap as RPCResponse, aF as RecordImport, aE as RecordImportItem, aC as RecordImportItemStatus, aD as RecordImportStats, aB as RecordImportStatus, ax as RecordObjectOptions, ay as RecordObjectResult, az as RecordObjectsChunkInfo, aA as RecordObjectsOptions, k as RecordUserOptions, av as RelationshipInfo, _ as ResolvedEffectApprovalRequired, Y as ResolvedEffectDryRun, X as ResolvedEffectPostCondition, Z as ResolvedEffectReverse, n as Sandbox, p as SandboxListResponse, Q as SemanticVersionDiff, O as SemanticVersionDiffEntry, e as Session, ai as SessionHeapFieldType, aj as SessionHeapFieldValue, ak as SessionHeapVariable, b3 as StreamEvent, b5 as StreamStats, b4 as StreamSubscription, l as Subject, aq as SyncMessage, h as ToolHandler, a4 as ToolInfo, as as ToolInvokeParams, at as ToolResultParams, f as ToolSchema, a6 as ToolsChangedEvent, U as User, L as Version, w as VersionTag, V as VersionTracking, W as WSClient, an as WSClientOptions, al as WSDisconnectInfo, am as WSReconnectErrorInfo } from './client-CQFKsCTd.mjs';
3
3
  export { BuildGranularAgentSystemPromptInput, GeneratedJobCodeIssue, GranularAgentExecutionCheckpoint, GranularAgentHeapSummaryOptions, GranularAgentSessionContext, GranularAgentToolInfo, GranularAgentWorkflowFocus, HarnessContinuationDecision, HarnessControllerBudgets, HarnessProjectionOptions, HarnessPromptLike, HarnessVerifierSnapshot, HarnessVerifierSnapshotInput, buildContinuationInstruction, buildGranularAgentCheckpointBlock, buildGranularAgentDomainBlock, buildGranularAgentHeapBlock, buildGranularAgentLoopBlock, buildGranularAgentSessionBlock, buildGranularAgentSystemPrompt, buildGranularAgentToolBlock, buildGranularAgentWorkflowBlock, createHarnessVerifierSnapshot, evaluateContinuation, getCurrentClosureId, getExclusivePromptTarget, hasOpenPrompt, projectHeapSummary, projectLoopSummary, projectWorkflowFocus, projectWorkflowSummary, reviewGeneratedJobCode } from './agent-harness.mjs';
4
4
  import '@automerge/automerge';
5
5
  import '@automerge/automerge/slim';
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- 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 } from './client-DLGC0mJk.js';
2
- export { b1 as APIError, A as AccessTokenProvider, u as Assignment, v as AssignmentListResponse, K as Build, N as BuildListResponse, B as BuildPolicy, J as BuildStatus, C as ConnectOptions, m as ConversationSessionInfo, y as CreateEnvironmentData, s as CreatePermissionProfileData, o as CreateSandboxData, aw as DefineRelationshipOptions, b2 as DeleteResponse, D as DomainState, a8 as EffectHandler, a5 as EffectInfo, a0 as EffectInvocationMetadata, $ as EffectInvocationMode, a1 as EffectSchema, a2 as EffectWithHandler, a7 as EffectsChangedEvent, d as Environment, x as EnvironmentData, z as EnvironmentListResponse, aG as EnvironmentRecordImportSummary, G as Granular, j as GranularAuth, i as GranularOptions, b0 as GraphQLResult, a9 as InstanceEffectHandler, I as InstanceToolHandler, ah as Job, ae as JobFeedbackInput, ad as JobFeedbackMetadata, af as JobFeedbackRecord, ab as JobFeedbackSentiment, ac as JobFeedbackToolCall, aa as JobStatus, ag as JobSubmitResult, F as Manifest, aS as ManifestApprovalRequiredSpec, a$ as ManifestContent, aQ as ManifestDryRunSpec, aV as ManifestEffectDeclaration, aU as ManifestEffectSchema, aJ as ManifestEnumRuleSpec, aX as ManifestEventStreamDef, aW as ManifestEventTypeDef, aK as ManifestFilterBySpec, aZ as ManifestImport, H as ManifestListResponse, aY as ManifestOperation, aP as ManifestPostConditionSpec, aH as ManifestPropertySpec, aT as ManifestRelationshipDef, aR as ManifestReverseSpec, aO as ManifestStateMachineSpec, aM as ManifestStateMachineStateSpec, aN as ManifestStateMachineTransitionSpec, aI as ManifestValidationOperator, aL as ManifestValidationRuleSpec, a_ as ManifestVolume, au as ModelRef, r as PermissionProfile, t as PermissionProfileListResponse, q as PermissionRules, a3 as PublishEffectsResult, g as PublishToolsResult, ao as RPCRequest, ar as RPCRequestFromServer, ap as RPCResponse, aF as RecordImport, aE as RecordImportItem, aC as RecordImportItemStatus, aD as RecordImportStats, aB as RecordImportStatus, ax as RecordObjectOptions, ay as RecordObjectResult, az as RecordObjectsChunkInfo, aA as RecordObjectsOptions, k as RecordUserOptions, av as RelationshipInfo, _ as ResolvedEffectApprovalRequired, Y as ResolvedEffectDryRun, X as ResolvedEffectPostCondition, Z as ResolvedEffectReverse, n as Sandbox, p as SandboxListResponse, Q as SemanticVersionDiff, O as SemanticVersionDiffEntry, e as Session, ai as SessionHeapFieldType, aj as SessionHeapFieldValue, ak as SessionHeapVariable, b3 as StreamEvent, b5 as StreamStats, b4 as StreamSubscription, l as Subject, aq as SyncMessage, h as ToolHandler, a4 as ToolInfo, as as ToolInvokeParams, at as ToolResultParams, f as ToolSchema, a6 as ToolsChangedEvent, U as User, L as Version, w as VersionTag, V as VersionTracking, W as WSClient, an as WSClientOptions, al as WSDisconnectInfo, am as WSReconnectErrorInfo } from './client-DLGC0mJk.js';
1
+ 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 } from './client-CQFKsCTd.js';
2
+ export { b1 as APIError, A as AccessTokenProvider, u as Assignment, v as AssignmentListResponse, K as Build, N as BuildListResponse, B as BuildPolicy, J as BuildStatus, C as ConnectOptions, m as ConversationSessionInfo, y as CreateEnvironmentData, s as CreatePermissionProfileData, o as CreateSandboxData, aw as DefineRelationshipOptions, b2 as DeleteResponse, D as DomainState, a8 as EffectHandler, a5 as EffectInfo, a0 as EffectInvocationMetadata, $ as EffectInvocationMode, a1 as EffectSchema, a2 as EffectWithHandler, a7 as EffectsChangedEvent, d as Environment, x as EnvironmentData, z as EnvironmentListResponse, aG as EnvironmentRecordImportSummary, G as Granular, j as GranularAuth, i as GranularOptions, b0 as GraphQLResult, a9 as InstanceEffectHandler, I as InstanceToolHandler, ah as Job, ae as JobFeedbackInput, ad as JobFeedbackMetadata, af as JobFeedbackRecord, ab as JobFeedbackSentiment, ac as JobFeedbackToolCall, aa as JobStatus, ag as JobSubmitResult, F as Manifest, aS as ManifestApprovalRequiredSpec, a$ as ManifestContent, aQ as ManifestDryRunSpec, aV as ManifestEffectDeclaration, aU as ManifestEffectSchema, aJ as ManifestEnumRuleSpec, aX as ManifestEventStreamDef, aW as ManifestEventTypeDef, aK as ManifestFilterBySpec, aZ as ManifestImport, H as ManifestListResponse, aY as ManifestOperation, aP as ManifestPostConditionSpec, aH as ManifestPropertySpec, aT as ManifestRelationshipDef, aR as ManifestReverseSpec, aO as ManifestStateMachineSpec, aM as ManifestStateMachineStateSpec, aN as ManifestStateMachineTransitionSpec, aI as ManifestValidationOperator, aL as ManifestValidationRuleSpec, a_ as ManifestVolume, au as ModelRef, r as PermissionProfile, t as PermissionProfileListResponse, q as PermissionRules, a3 as PublishEffectsResult, g as PublishToolsResult, ao as RPCRequest, ar as RPCRequestFromServer, ap as RPCResponse, aF as RecordImport, aE as RecordImportItem, aC as RecordImportItemStatus, aD as RecordImportStats, aB as RecordImportStatus, ax as RecordObjectOptions, ay as RecordObjectResult, az as RecordObjectsChunkInfo, aA as RecordObjectsOptions, k as RecordUserOptions, av as RelationshipInfo, _ as ResolvedEffectApprovalRequired, Y as ResolvedEffectDryRun, X as ResolvedEffectPostCondition, Z as ResolvedEffectReverse, n as Sandbox, p as SandboxListResponse, Q as SemanticVersionDiff, O as SemanticVersionDiffEntry, e as Session, ai as SessionHeapFieldType, aj as SessionHeapFieldValue, ak as SessionHeapVariable, b3 as StreamEvent, b5 as StreamStats, b4 as StreamSubscription, l as Subject, aq as SyncMessage, h as ToolHandler, a4 as ToolInfo, as as ToolInvokeParams, at as ToolResultParams, f as ToolSchema, a6 as ToolsChangedEvent, U as User, L as Version, w as VersionTag, V as VersionTracking, W as WSClient, an as WSClientOptions, al as WSDisconnectInfo, am as WSReconnectErrorInfo } from './client-CQFKsCTd.js';
3
3
  export { BuildGranularAgentSystemPromptInput, GeneratedJobCodeIssue, GranularAgentExecutionCheckpoint, GranularAgentHeapSummaryOptions, GranularAgentSessionContext, GranularAgentToolInfo, GranularAgentWorkflowFocus, HarnessContinuationDecision, HarnessControllerBudgets, HarnessProjectionOptions, HarnessPromptLike, HarnessVerifierSnapshot, HarnessVerifierSnapshotInput, buildContinuationInstruction, buildGranularAgentCheckpointBlock, buildGranularAgentDomainBlock, buildGranularAgentHeapBlock, buildGranularAgentLoopBlock, buildGranularAgentSessionBlock, buildGranularAgentSystemPrompt, buildGranularAgentToolBlock, buildGranularAgentWorkflowBlock, createHarnessVerifierSnapshot, evaluateContinuation, getCurrentClosureId, getExclusivePromptTarget, hasOpenPrompt, projectHeapSummary, projectLoopSummary, projectWorkflowFocus, projectWorkflowSummary, reviewGeneratedJobCode } from './agent-harness.js';
4
4
  import '@automerge/automerge';
5
5
  import '@automerge/automerge/slim';