@granular-software/sdk 0.4.36 → 0.4.37

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.
@@ -1,3 +1,4 @@
1
+ import { PermissionProfileFile } from '@granular-software/policy-engine';
1
2
  import * as Automerge from '@automerge/automerge';
2
3
  import { Doc } from '@automerge/automerge/slim';
3
4
 
@@ -5,6 +6,7 @@ import { Doc } from '@automerge/automerge/slim';
5
6
  * @module @granular-software/sdk/types
6
7
  * Type definitions for the Granular SDK
7
8
  */
9
+
8
10
  /**
9
11
  * Configuration for the Granular client
10
12
  */
@@ -19,6 +21,8 @@ interface GranularOptions {
19
21
  tokenProvider?: AccessTokenProvider;
20
22
  /** Optional API URL (for on-prem or testing) */
21
23
  apiUrl?: string;
24
+ /** Optional live effect-host WebSocket/base URL override (for local/on-prem routing) */
25
+ effectHostUrl?: string;
22
26
  /** Optional endpoint mode when apiUrl is not explicitly provided */
23
27
  endpointMode?: EndpointMode;
24
28
  /** Optional WebSocket constructor (for Node.js environments) */
@@ -141,7 +145,11 @@ interface ConnectOptions extends OpenEnvironmentOptions {
141
145
  tagName?: string;
142
146
  /** @deprecated Ignored by `connect()` now that it no longer opens sessions. */
143
147
  clientId?: string;
144
- /** @deprecated Ignored by `connect()` now that it no longer opens sessions. */
148
+ /**
149
+ * @deprecated Ignored by `connect()` now that it no longer opens sessions.
150
+ * Uses application record identity: class name plus the record id from the
151
+ * customer's own system. Granular resolves the internal graph path.
152
+ */
145
153
  initialHeap?: Array<{
146
154
  className: string;
147
155
  id: string;
@@ -153,7 +161,11 @@ interface ConnectOptions extends OpenEnvironmentOptions {
153
161
  interface CreateSessionOptions {
154
162
  /** Optional stable client ID. Defaults to `client_${Date.now()}`. */
155
163
  clientId?: string;
156
- /** Optional session heap seed. Each item is eagerly hydrated into the session heap on connect. */
164
+ /**
165
+ * Optional session heap seed. Each item uses application record identity:
166
+ * class name plus the record id from the customer's own system. Granular
167
+ * resolves and hydrates the corresponding internal graph record on connect.
168
+ */
157
169
  initialHeap?: Array<{
158
170
  className: string;
159
171
  id: string;
@@ -234,7 +246,9 @@ interface PermissionProfile {
234
246
  permissionProfileId: string;
235
247
  sandboxId: string;
236
248
  name: string;
237
- rules: PermissionRules;
249
+ description?: string;
250
+ rules?: PermissionProfileFile;
251
+ profile?: PermissionProfileFile;
238
252
  createdAt: number;
239
253
  updatedAt: number;
240
254
  }
@@ -243,7 +257,7 @@ interface PermissionProfile {
243
257
  */
244
258
  interface CreatePermissionProfileData {
245
259
  name: string;
246
- rules: PermissionRules;
260
+ rules: PermissionProfileFile;
247
261
  }
248
262
  /**
249
263
  * List response for permission profiles
@@ -865,6 +879,24 @@ interface SessionHeapSnapshot {
865
879
  variablesByName: Record<string, SessionHeapVariable>;
866
880
  updatedAt: number;
867
881
  }
882
+ interface RecordSearchResult {
883
+ path: string;
884
+ className: string;
885
+ id: string;
886
+ label: string;
887
+ description?: string | null;
888
+ fields: SessionHeapFieldValue[];
889
+ }
890
+ interface RecordSearchOptions {
891
+ limit?: number;
892
+ offset?: number;
893
+ classNames?: string[];
894
+ }
895
+ interface RecordMentionInput {
896
+ className: string;
897
+ id?: string;
898
+ path?: string;
899
+ }
868
900
  interface SessionDocumentResult {
869
901
  sessionState: Record<string, unknown> | null;
870
902
  document: Record<string, unknown> | null;
@@ -1070,6 +1102,12 @@ interface RecordObjectsOptions {
1070
1102
  */
1071
1103
  onChunkComplete?: (info: RecordObjectsChunkInfo) => void | Promise<void>;
1072
1104
  }
1105
+ type RecordImportWriteMode = "adaptive" | "batched" | "per_record" | "parallel_5";
1106
+ interface RecordImportOptions {
1107
+ batchSize?: number;
1108
+ setupRunId?: string;
1109
+ writeMode?: RecordImportWriteMode;
1110
+ }
1073
1111
  type RecordImportStatus = "queued" | "processing" | "completed" | "failed" | "canceled";
1074
1112
  type RecordImportItemStatus = "queued" | "processing" | "completed" | "failed" | "canceled";
1075
1113
  interface RecordImportStats {
@@ -1124,6 +1162,17 @@ interface EnvironmentRecordImportSummary extends RecordImportStats {
1124
1162
  updatedAt: number;
1125
1163
  }
1126
1164
  type EnvironmentSetupTriggerReason = "new_environment" | "fresh_after_version_update";
1165
+ interface RunEnvironmentImporterOptions {
1166
+ /**
1167
+ * Ontology name/id used to resolve the registered importer. Defaults to the
1168
+ * environment sandbox id.
1169
+ */
1170
+ ontology?: string;
1171
+ /**
1172
+ * Reason recorded on the setup run. Defaults to `new_environment`.
1173
+ */
1174
+ reason?: EnvironmentSetupTriggerReason;
1175
+ }
1127
1176
  type EnvironmentSetupLifecycleStatus = "running" | "completed" | "failed";
1128
1177
  interface EnvironmentSetupSummary extends RecordImportStats {
1129
1178
  setupRunId: string;
@@ -1144,6 +1193,7 @@ interface EnvironmentSetupSummary extends RecordImportStats {
1144
1193
  }
1145
1194
  interface EnvironmentImporterImportOptions {
1146
1195
  batchSize?: number;
1196
+ writeMode?: RecordImportWriteMode;
1147
1197
  }
1148
1198
  interface EnvironmentImporter {
1149
1199
  environmentId: string;
@@ -1469,6 +1519,8 @@ declare class Session {
1469
1519
  private lastKnownTools;
1470
1520
  /** Last seen live prompts, keyed by prompt id, for answer normalization */
1471
1521
  private promptCache;
1522
+ /** Prompt ids locally answered before the document sync catches up. */
1523
+ private hiddenPromptIds;
1472
1524
  constructor(client: WSClient, clientId?: string);
1473
1525
  private extractDomainRevisionFromDoc;
1474
1526
  private buildLegacyEffectContext;
@@ -1534,7 +1586,11 @@ declare class Session {
1534
1586
  * `effect.invoke` RPC back to the sandbox effect host, where the registered handlers
1535
1587
  * execute locally and return the result to the sandbox.
1536
1588
  */
1537
- submitJob(code: string, domainRevision?: string): Promise<Job>;
1589
+ submitJob(code: string, domainRevisionOrOptions?: string | {
1590
+ domainRevision?: string;
1591
+ metadata?: Record<string, unknown>;
1592
+ agent?: Record<string, unknown>;
1593
+ }): Promise<Job>;
1538
1594
  /**
1539
1595
  * Register a handler for a specific tool.
1540
1596
  * @param isInstance - If true, handler will receive (id, params) for instance method dispatch.
@@ -1550,6 +1606,14 @@ declare class Session {
1550
1606
  * Consolidates effect declarations and live availability for the session.
1551
1607
  */
1552
1608
  getEffects(): EffectInfo[];
1609
+ /**
1610
+ * Return the currently open prompt payloads known to this session.
1611
+ *
1612
+ * These come from live `prompt` / `prompt.request` websocket events and
1613
+ * preserve the exact shape used by `answerPrompt(...)`.
1614
+ */
1615
+ getPrompts(): Prompt[];
1616
+ getHiddenPromptIds(): string[];
1553
1617
  /**
1554
1618
  * Backwards-compatible alias for `getEffects()`.
1555
1619
  */
@@ -1707,24 +1771,20 @@ declare class Environment {
1707
1771
  listFeedback(): Promise<EnvironmentFeedbackRecord[]>;
1708
1772
  private getRuntimeBaseUrl;
1709
1773
  private controlPlaneRequest;
1774
+ private static normalizeGraphPathSegment;
1710
1775
  /**
1711
- * Convert a class name + real-world ID into a unique graph path.
1712
- *
1713
- * Two objects of *different* classes may share the same real-world ID,
1714
- * so the graph path must incorporate the class to guarantee uniqueness.
1715
- *
1716
- * Format: `{className}_{id}` — deterministic, human-readable.
1776
+ * Convert a class name + application record ID into Granular's graph path.
1717
1777
  *
1718
- * **Convention**: class names should be simple identifiers without
1719
- * underscores (e.g. `author`, `book`). This ensures the prefix is
1720
- * unambiguously parseable by `extractIdFromGraphPath`.
1778
+ * This mirrors the record-write path normalization used by the control plane.
1779
+ * Keep the original customer/system ID in `real_id`; graph paths are stable
1780
+ * internal addresses, not the source of truth for business identity.
1721
1781
  */
1722
1782
  static toGraphPath(className: string, id: string): string;
1723
1783
  /**
1724
- * Extract the real-world ID from a graph path, given the class name.
1784
+ * Best-effort extraction of an ID-like suffix from a graph path.
1725
1785
  *
1726
- * Strips the `{className}_` prefix. Returns the raw path if the
1727
- * expected prefix is not found.
1786
+ * Prefer the record's `real_id` field whenever exact customer/system IDs
1787
+ * matter, because graph path normalization is intentionally lossy.
1728
1788
  */
1729
1789
  static extractIdFromGraphPath(graphPath: string, className: string): string;
1730
1790
  /**
@@ -1752,6 +1812,7 @@ declare class Environment {
1752
1812
  * ```
1753
1813
  */
1754
1814
  graphql<T = any>(query: string, variables?: Record<string, any>): Promise<GraphQLResult<T>>;
1815
+ searchRecords(query: string, options?: RecordSearchOptions): Promise<RecordSearchResult[]>;
1755
1816
  /**
1756
1817
  * Define a relationship between two model types.
1757
1818
  *
@@ -1961,10 +2022,7 @@ declare class Environment {
1961
2022
  * need every row committed before the HTTP call returns. Use **`recordObjects`** when you need
1962
2023
  * synchronous upserts and fine-grained chunk progress via **`onChunkComplete`**.
1963
2024
  */
1964
- enqueueRecordImport(records: RecordObjectOptions[], options?: {
1965
- batchSize?: number;
1966
- setupRunId?: string;
1967
- }): Promise<RecordImport>;
2025
+ enqueueRecordImport(records: RecordObjectOptions[], options?: RecordImportOptions): Promise<RecordImport>;
1968
2026
  /**
1969
2027
  * List queued or completed record imports for this environment.
1970
2028
  */
@@ -1996,12 +2054,15 @@ declare class Environment {
1996
2054
  */
1997
2055
  declare class EnvironmentSession extends Session {
1998
2056
  readonly environment: Environment;
2057
+ private readonly sessionDataRoutePrefix;
1999
2058
  /** The last known graph container status, updated by checkReadiness() or on heartbeat */
2000
2059
  graphContainerStatus: {
2001
2060
  lastKeepAliveAt: number;
2002
2061
  status: "warming" | "hot" | "unknown";
2003
2062
  } | null;
2004
- constructor(client: WSClient, environment: Environment, clientId: string);
2063
+ constructor(client: WSClient, environment: Environment, clientId: string, options?: {
2064
+ sessionDataRoutePrefix?: string;
2065
+ });
2005
2066
  get environmentId(): string;
2006
2067
  get sandboxId(): string;
2007
2068
  get ontologyId(): string;
@@ -2059,11 +2120,21 @@ declare class EnvironmentSession extends Session {
2059
2120
  list: (options?: SessionCollectionListOptions) => Promise<SessionCollectionListResult<SessionHeapList>>;
2060
2121
  get: (name: string) => Promise<SessionHeapList>;
2061
2122
  };
2123
+ variables: {
2124
+ list: (options?: SessionCollectionListOptions) => Promise<SessionCollectionListResult<SessionHeapVariable>>;
2125
+ get: (name: string) => Promise<SessionHeapVariable>;
2126
+ delete: (name: string) => Promise<{
2127
+ deleted: boolean;
2128
+ name: string;
2129
+ }>;
2130
+ };
2062
2131
  };
2063
2132
  get transcript(): {
2064
2133
  list: (options?: SessionCollectionListOptions) => Promise<SessionCollectionListResult<SessionTranscriptEntry>>;
2065
2134
  };
2066
2135
  graphql<T = any>(query: string, variables?: Record<string, any>): Promise<GraphQLResult<T>>;
2136
+ searchRecords(query: string, options?: RecordSearchOptions): Promise<RecordSearchResult[]>;
2137
+ mentionRecord(input: RecordMentionInput): Promise<SessionHeapEntry>;
2067
2138
  defineRelationship(options: DefineRelationshipOptions): Promise<RelationshipInfo>;
2068
2139
  getRelationships(modelPath: string): Promise<RelationshipInfo[]>;
2069
2140
  attach(modelPath: string, submodelPath: string, targetPath: string): Promise<void>;
@@ -2075,9 +2146,7 @@ declare class EnvironmentSession extends Session {
2075
2146
  }>;
2076
2147
  recordObject(options: RecordObjectOptions): Promise<RecordObjectResult>;
2077
2148
  recordObjects(records: RecordObjectOptions[], options?: RecordObjectsOptions): Promise<RecordObjectResult[]>;
2078
- enqueueRecordImport(records: RecordObjectOptions[], options?: {
2079
- batchSize?: number;
2080
- }): Promise<RecordImport>;
2149
+ enqueueRecordImport(records: RecordObjectOptions[], options?: RecordImportOptions): Promise<RecordImport>;
2081
2150
  listRecordImports(status?: RecordImportStatus): Promise<RecordImport[]>;
2082
2151
  getRecordImportSummary(): Promise<EnvironmentRecordImportSummary>;
2083
2152
  getAwaitingRecordCount(): Promise<number>;
@@ -2132,6 +2201,7 @@ declare class Granular {
2132
2201
  private WebSocketCtor?;
2133
2202
  private onUnexpectedClose?;
2134
2203
  private onReconnectError?;
2204
+ private effectHostUrl?;
2135
2205
  private debugHttp;
2136
2206
  /** Sandbox-level effect registry: sandboxId → (effectKey@selector → ToolWithHandler) */
2137
2207
  private sandboxEffects;
@@ -2205,6 +2275,16 @@ declare class Granular {
2205
2275
  * `connect()` no longer opens a runtime session automatically.
2206
2276
  */
2207
2277
  connect(options: ConnectOptions): Promise<Environment>;
2278
+ /**
2279
+ * Run a registered environment importer against an environment that was
2280
+ * opened outside this SDK instance, for example by a delegated browser flow.
2281
+ *
2282
+ * This uses the same setup-run and queued record-import plumbing as
2283
+ * `openEnvironment()`: importer stages, expected object counts, and queued
2284
+ * import counters remain visible through `environment.setup` and
2285
+ * `getRecordImportSummary()`.
2286
+ */
2287
+ runEnvironmentImporterForEnvironment(environmentId: string, options?: RunEnvironmentImporterOptions): Promise<EnvironmentSetupSummary | null>;
2208
2288
  private resolveRequestedTag;
2209
2289
  private buildManagedEnvironmentName;
2210
2290
  private matchesTagTrackedEnvironment;
@@ -2254,6 +2334,7 @@ declare class Granular {
2254
2334
  }): Promise<EnvironmentSession>;
2255
2335
  private resolveEnvironmentImporter;
2256
2336
  private maybeRunEnvironmentImporter;
2337
+ private runEnvironmentImporter;
2257
2338
  private bindEnvironmentHandle;
2258
2339
  private bindWebSocketEnvironmentSession;
2259
2340
  private activateEnvironment;
@@ -2305,7 +2386,7 @@ declare class Granular {
2305
2386
  /**
2306
2387
  * Ensure a permission profile exists for a sandbox, creating it if needed.
2307
2388
  * If profileName matches an existing profile name, returns its ID.
2308
- * Otherwise, creates a new profile with default allow-all rules.
2389
+ * Otherwise, creates a v1 source-profile file shape with an allow default.
2309
2390
  */
2310
2391
  private ensurePermissionProfile;
2311
2392
  /**
@@ -2329,7 +2410,7 @@ declare class Granular {
2329
2410
  list: (sandboxId: string) => Promise<PermissionProfile[]>;
2330
2411
  get: (sandboxId: string, profileId: string) => Promise<PermissionProfile>;
2331
2412
  create: (sandboxId: string, data: CreatePermissionProfileData) => Promise<PermissionProfile>;
2332
- delete: (sandboxId: string, profileId: string) => Promise<DeleteResponse>;
2413
+ delete: (_sandboxId: string, _profileId: string) => Promise<DeleteResponse>;
2333
2414
  };
2334
2415
  /**
2335
2416
  * Environment management
@@ -2399,4 +2480,4 @@ declare class Granular {
2399
2480
  private request;
2400
2481
  }
2401
2482
 
2402
- export { type SemanticVersionDiff as $, type AccessTokenProvider as A, type BuildPolicy as B, type ConnectOptions as C, type DomainState as D, type EndpointMode as E, type VersionTag as F, Granular as G, type EnvironmentData as H, type InstanceToolHandler as I, type CreateEnvironmentData as J, type EnvironmentListResponse as K, type Manifest as L, type ManifestEffectMetamodelSpec as M, type ManifestListResponse as N, OntologyHandle as O, type Prompt as P, type BuildStatus as Q, type ResolvedEffectBehaviors as R, type SessionHeapEntry as S, type ToolWithHandler as T, type User as U, type VersionTracking as V, WSClient as W, type Build as X, type Version as Y, type BuildListResponse as Z, type SemanticVersionDiffEntry as _, type EffectHandlerContext as a, type EnvironmentImporterImportOptions as a$, type ResolvedEffectPostCondition as a0, type ResolvedEffectDryRun as a1, type ResolvedEffectReverse as a2, type ResolvedEffectApprovalRequired as a3, type EffectInvocationMode as a4, type EffectInvocationMetadata as a5, type EffectSchema as a6, type EffectWithHandler as a7, type PublishEffectsResult as a8, type EffectVersionSelector as a9, type SessionJobListOptions as aA, type SessionCollectionListResult as aB, type WSDisconnectInfo as aC, type WSReconnectErrorInfo as aD, type WSClientOptions as aE, type RPCRequest as aF, type RPCResponse as aG, type SyncMessage as aH, type RPCRequestFromServer as aI, type ToolInvokeParams as aJ, type ToolResultParams as aK, type ModelRef as aL, type RelationshipInfo as aM, type DefineRelationshipOptions as aN, type RecordObjectOptions as aO, type RecordObjectResult as aP, type RecordObjectsChunkInfo as aQ, type RecordObjectsOptions as aR, type RecordImportStatus as aS, type RecordImportItemStatus as aT, type RecordImportStats as aU, type RecordImportItem as aV, type RecordImport as aW, type EnvironmentRecordImportSummary as aX, type EnvironmentSetupTriggerReason as aY, type EnvironmentSetupLifecycleStatus as aZ, type EnvironmentSetupSummary as a_, type ToolInfo as aa, type EffectInfo as ab, type ToolsChangedEvent as ac, type EffectsChangedEvent as ad, type EffectHandler as ae, type InstanceEffectHandler as af, type JobStatus as ag, type JobFeedbackSentiment as ah, type JobFeedbackToolCall as ai, type JobFeedbackMetadata as aj, type JobFeedbackInput as ak, type JobFeedbackRecord as al, type EnvironmentFeedbackRecord as am, type JobSubmitResult as an, type Job as ao, type ConversationMessageShowRefs as ap, type ConversationMessageInput as aq, type ConversationAppendResult as ar, type SessionConversationMessage as as, type SessionTimelineEvent as at, type SessionJobRecord as au, type SessionHeapFieldType as av, type SessionHeapFieldValue as aw, type SessionHeapVariable as ax, type SessionDocumentResult as ay, type SessionCollectionListOptions as az, type SessionHeapList as b, type EnvironmentImporter as b0, type ManifestPropertySpec as b1, type ManifestValidationOperator as b2, type ManifestEnumRuleSpec as b3, type ManifestFilterBySpec as b4, type ManifestValidationRuleSpec as b5, type ManifestStateMachineStateSpec as b6, type ManifestStateMachineTransitionSpec as b7, type ManifestStateMachineSpec as b8, type ManifestPostConditionSpec as b9, type ManifestDryRunSpec as ba, type ManifestReverseSpec as bb, type ManifestApprovalRequiredSpec as bc, type ManifestRelationshipDef as bd, type ManifestEffectSchema as be, type ManifestEffectDeclaration as bf, type ManifestEventTypeDef as bg, type ManifestEventStreamDef as bh, type ManifestOperation as bi, type ManifestImport as bj, type ManifestVolume as bk, type ManifestContent as bl, type GraphQLResult as bm, type APIError as bn, type DeleteResponse as bo, type StreamEvent as bp, type StreamSubscription as bq, type StreamStats as br, type SessionHeapSnapshot as c, type SessionTranscriptEntry as d, Environment as e, EnvironmentSession as f, Session as g, type ToolSchema as h, type PublishToolsResult as i, type ToolHandler as j, type GranularOptions as k, type GranularAuth as l, type RecordUserOptions as m, type Subject as n, type OpenEnvironmentOptions as o, type CreateSessionOptions as p, type ConversationSessionInfo as q, type Sandbox as r, type CreateSandboxData as s, type SandboxListResponse as t, type PermissionRules as u, type PermissionProfile as v, type CreatePermissionProfileData as w, type PermissionProfileListResponse as x, type Assignment as y, type AssignmentListResponse as z };
2483
+ export { type SemanticVersionDiff as $, type AccessTokenProvider as A, type BuildPolicy as B, type ConnectOptions as C, type DomainState as D, type EndpointMode as E, type VersionTag as F, Granular as G, type EnvironmentData as H, type InstanceToolHandler as I, type CreateEnvironmentData as J, type EnvironmentListResponse as K, type Manifest as L, type ManifestEffectMetamodelSpec as M, type ManifestListResponse as N, OntologyHandle as O, type Prompt as P, type BuildStatus as Q, type ResolvedEffectBehaviors as R, type SessionHeapEntry as S, type ToolWithHandler as T, type User as U, type VersionTracking as V, WSClient as W, type Build as X, type Version as Y, type BuildListResponse as Z, type SemanticVersionDiffEntry as _, type EffectHandlerContext as a, type RecordImport as a$, type ResolvedEffectPostCondition as a0, type ResolvedEffectDryRun as a1, type ResolvedEffectReverse as a2, type ResolvedEffectApprovalRequired as a3, type EffectInvocationMode as a4, type EffectInvocationMetadata as a5, type EffectSchema as a6, type EffectWithHandler as a7, type PublishEffectsResult as a8, type EffectVersionSelector as a9, type RecordMentionInput as aA, type SessionDocumentResult as aB, type SessionCollectionListOptions as aC, type SessionJobListOptions as aD, type SessionCollectionListResult as aE, type WSDisconnectInfo as aF, type WSReconnectErrorInfo as aG, type WSClientOptions as aH, type RPCRequest as aI, type RPCResponse as aJ, type SyncMessage as aK, type RPCRequestFromServer as aL, type ToolInvokeParams as aM, type ToolResultParams as aN, type ModelRef as aO, type RelationshipInfo as aP, type DefineRelationshipOptions as aQ, type RecordObjectOptions as aR, type RecordObjectResult as aS, type RecordObjectsChunkInfo as aT, type RecordObjectsOptions as aU, type RecordImportWriteMode as aV, type RecordImportOptions as aW, type RecordImportStatus as aX, type RecordImportItemStatus as aY, type RecordImportStats as aZ, type RecordImportItem as a_, type ToolInfo as aa, type EffectInfo as ab, type ToolsChangedEvent as ac, type EffectsChangedEvent as ad, type EffectHandler as ae, type InstanceEffectHandler as af, type JobStatus as ag, type JobFeedbackSentiment as ah, type JobFeedbackToolCall as ai, type JobFeedbackMetadata as aj, type JobFeedbackInput as ak, type JobFeedbackRecord as al, type EnvironmentFeedbackRecord as am, type JobSubmitResult as an, type Job as ao, type ConversationMessageShowRefs as ap, type ConversationMessageInput as aq, type ConversationAppendResult as ar, type SessionConversationMessage as as, type SessionTimelineEvent as at, type SessionJobRecord as au, type SessionHeapFieldType as av, type SessionHeapFieldValue as aw, type SessionHeapVariable as ax, type RecordSearchResult as ay, type RecordSearchOptions as az, type SessionHeapList as b, type EnvironmentRecordImportSummary as b0, type EnvironmentSetupTriggerReason as b1, type RunEnvironmentImporterOptions as b2, type EnvironmentSetupLifecycleStatus as b3, type EnvironmentSetupSummary as b4, type EnvironmentImporterImportOptions as b5, type EnvironmentImporter as b6, type ManifestPropertySpec as b7, type ManifestValidationOperator as b8, type ManifestEnumRuleSpec as b9, type ManifestFilterBySpec as ba, type ManifestValidationRuleSpec as bb, type ManifestStateMachineStateSpec as bc, type ManifestStateMachineTransitionSpec as bd, type ManifestStateMachineSpec as be, type ManifestPostConditionSpec as bf, type ManifestDryRunSpec as bg, type ManifestReverseSpec as bh, type ManifestApprovalRequiredSpec as bi, type ManifestRelationshipDef as bj, type ManifestEffectSchema as bk, type ManifestEffectDeclaration as bl, type ManifestEventTypeDef as bm, type ManifestEventStreamDef as bn, type ManifestOperation as bo, type ManifestImport as bp, type ManifestVolume as bq, type ManifestContent as br, type GraphQLResult as bs, type APIError as bt, type DeleteResponse as bu, type StreamEvent as bv, type StreamSubscription as bw, type StreamStats as bx, type SessionHeapSnapshot as c, type SessionTranscriptEntry as d, Environment as e, EnvironmentSession as f, Session as g, type ToolSchema as h, type PublishToolsResult as i, type ToolHandler as j, type GranularOptions as k, type GranularAuth as l, type RecordUserOptions as m, type Subject as n, type OpenEnvironmentOptions as o, type CreateSessionOptions as p, type ConversationSessionInfo as q, type Sandbox as r, type CreateSandboxData as s, type SandboxListResponse as t, type PermissionRules as u, type PermissionProfile as v, type CreatePermissionProfileData as w, type PermissionProfileListResponse as x, type Assignment as y, type AssignmentListResponse as z };
package/dist/index.d.mts CHANGED
@@ -1,6 +1,7 @@
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, d as SessionTranscriptEntry } from './client-Cq8onk2D.mjs';
2
- export { bn as APIError, A as AccessTokenProvider, y as Assignment, z as AssignmentListResponse, X as Build, Z as BuildListResponse, B as BuildPolicy, Q as BuildStatus, C as ConnectOptions, ar as ConversationAppendResult, aq as ConversationMessageInput, ap as ConversationMessageShowRefs, q as ConversationSessionInfo, J as CreateEnvironmentData, w as CreatePermissionProfileData, s as CreateSandboxData, p as CreateSessionOptions, aN as DefineRelationshipOptions, bo as DeleteResponse, D as DomainState, ae as EffectHandler, ab as EffectInfo, a5 as EffectInvocationMetadata, a4 as EffectInvocationMode, a6 as EffectSchema, a9 as EffectVersionSelector, a7 as EffectWithHandler, ad as EffectsChangedEvent, e as Environment, H as EnvironmentData, am as EnvironmentFeedbackRecord, b0 as EnvironmentImporter, a$ as EnvironmentImporterImportOptions, K as EnvironmentListResponse, aX as EnvironmentRecordImportSummary, f as EnvironmentSession, aZ as EnvironmentSetupLifecycleStatus, a_ as EnvironmentSetupSummary, aY as EnvironmentSetupTriggerReason, G as Granular, l as GranularAuth, k as GranularOptions, bm as GraphQLResult, af as InstanceEffectHandler, I as InstanceToolHandler, ao as Job, ak as JobFeedbackInput, aj as JobFeedbackMetadata, al as JobFeedbackRecord, ah as JobFeedbackSentiment, ai as JobFeedbackToolCall, ag as JobStatus, an as JobSubmitResult, L as Manifest, bc as ManifestApprovalRequiredSpec, bl as ManifestContent, ba as ManifestDryRunSpec, bf as ManifestEffectDeclaration, be as ManifestEffectSchema, b3 as ManifestEnumRuleSpec, bh as ManifestEventStreamDef, bg as ManifestEventTypeDef, b4 as ManifestFilterBySpec, bj as ManifestImport, N as ManifestListResponse, bi as ManifestOperation, b9 as ManifestPostConditionSpec, b1 as ManifestPropertySpec, bd as ManifestRelationshipDef, bb as ManifestReverseSpec, b8 as ManifestStateMachineSpec, b6 as ManifestStateMachineStateSpec, b7 as ManifestStateMachineTransitionSpec, b2 as ManifestValidationOperator, b5 as ManifestValidationRuleSpec, bk as ManifestVolume, aL as ModelRef, O as OntologyHandle, o as OpenEnvironmentOptions, v as PermissionProfile, x as PermissionProfileListResponse, u as PermissionRules, a8 as PublishEffectsResult, i as PublishToolsResult, aF as RPCRequest, aI as RPCRequestFromServer, aG as RPCResponse, aW as RecordImport, aV as RecordImportItem, aT as RecordImportItemStatus, aU as RecordImportStats, aS as RecordImportStatus, aO as RecordObjectOptions, aP as RecordObjectResult, aQ as RecordObjectsChunkInfo, aR as RecordObjectsOptions, m as RecordUserOptions, aM as RelationshipInfo, a3 as ResolvedEffectApprovalRequired, a1 as ResolvedEffectDryRun, a0 as ResolvedEffectPostCondition, a2 as ResolvedEffectReverse, r as Sandbox, t as SandboxListResponse, $ as SemanticVersionDiff, _ as SemanticVersionDiffEntry, g as Session, az as SessionCollectionListOptions, aB as SessionCollectionListResult, as as SessionConversationMessage, ay as SessionDocumentResult, av as SessionHeapFieldType, aw as SessionHeapFieldValue, ax as SessionHeapVariable, aA as SessionJobListOptions, au as SessionJobRecord, at as SessionTimelineEvent, bp as StreamEvent, br as StreamStats, bq as StreamSubscription, n as Subject, aH as SyncMessage, j as ToolHandler, aa as ToolInfo, aJ as ToolInvokeParams, aK as ToolResultParams, h as ToolSchema, ac as ToolsChangedEvent, U as User, Y as Version, F as VersionTag, V as VersionTracking, W as WSClient, aE as WSClientOptions, aC as WSDisconnectInfo, aD as WSReconnectErrorInfo } from './client-Cq8onk2D.mjs';
3
- export { BuildGranularAgentSystemPromptInput, GeneratedJobCodeIssue, GranularAgentExecutionCheckpoint, GranularAgentHeapSummaryOptions, GranularAgentReferentFocus, GranularAgentSessionContext, GranularAgentToolInfo, GranularAgentWorkflowFocus, HarnessContinuationDecision, HarnessControllerBudgets, HarnessProjectionOptions, HarnessPromptLike, HarnessVerifierSnapshot, HarnessVerifierSnapshotInput, buildContinuationInstruction, buildGranularAgentCheckpointBlock, buildGranularAgentDomainBlock, buildGranularAgentHeapBlock, buildGranularAgentLoopBlock, buildGranularAgentReferentBlock, buildGranularAgentSessionBlock, buildGranularAgentSystemPrompt, buildGranularAgentToolBlock, buildGranularAgentWorkflowBlock, createHarnessVerifierSnapshot, evaluateContinuation, getCurrentClosureId, getExclusivePromptTarget, hasOpenPrompt, projectConversationReferentFocus, projectConversationReferentSummary, projectHeapSummary, projectLoopSummary, projectWorkflowFocus, projectWorkflowSummary, reviewGeneratedJobCode } from './agent-harness.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, d as SessionTranscriptEntry } from './client-eE9nTfvp.mjs';
2
+ export { bt as APIError, A as AccessTokenProvider, y as Assignment, z as AssignmentListResponse, X as Build, Z as BuildListResponse, B as BuildPolicy, Q as BuildStatus, C as ConnectOptions, ar as ConversationAppendResult, aq as ConversationMessageInput, ap as ConversationMessageShowRefs, q as ConversationSessionInfo, J as CreateEnvironmentData, w as CreatePermissionProfileData, s as CreateSandboxData, p as CreateSessionOptions, aQ as DefineRelationshipOptions, bu as DeleteResponse, D as DomainState, ae as EffectHandler, ab as EffectInfo, a5 as EffectInvocationMetadata, a4 as EffectInvocationMode, a6 as EffectSchema, a9 as EffectVersionSelector, a7 as EffectWithHandler, ad as EffectsChangedEvent, e as Environment, H as EnvironmentData, am as EnvironmentFeedbackRecord, b6 as EnvironmentImporter, b5 as EnvironmentImporterImportOptions, K as EnvironmentListResponse, b0 as EnvironmentRecordImportSummary, f as EnvironmentSession, b3 as EnvironmentSetupLifecycleStatus, b4 as EnvironmentSetupSummary, b1 as EnvironmentSetupTriggerReason, G as Granular, l as GranularAuth, k as GranularOptions, bs as GraphQLResult, af as InstanceEffectHandler, I as InstanceToolHandler, ao as Job, ak as JobFeedbackInput, aj as JobFeedbackMetadata, al as JobFeedbackRecord, ah as JobFeedbackSentiment, ai as JobFeedbackToolCall, ag as JobStatus, an as JobSubmitResult, L as Manifest, bi as ManifestApprovalRequiredSpec, br as ManifestContent, bg as ManifestDryRunSpec, bl as ManifestEffectDeclaration, bk as ManifestEffectSchema, b9 as ManifestEnumRuleSpec, bn as ManifestEventStreamDef, bm as ManifestEventTypeDef, ba as ManifestFilterBySpec, bp as ManifestImport, N as ManifestListResponse, bo as ManifestOperation, bf as ManifestPostConditionSpec, b7 as ManifestPropertySpec, bj as ManifestRelationshipDef, bh as ManifestReverseSpec, be as ManifestStateMachineSpec, bc as ManifestStateMachineStateSpec, bd as ManifestStateMachineTransitionSpec, b8 as ManifestValidationOperator, bb as ManifestValidationRuleSpec, bq as ManifestVolume, aO as ModelRef, O as OntologyHandle, o as OpenEnvironmentOptions, v as PermissionProfile, x as PermissionProfileListResponse, u as PermissionRules, a8 as PublishEffectsResult, i as PublishToolsResult, aI as RPCRequest, aL as RPCRequestFromServer, aJ as RPCResponse, a$ as RecordImport, a_ as RecordImportItem, aY as RecordImportItemStatus, aW as RecordImportOptions, aZ as RecordImportStats, aX as RecordImportStatus, aV as RecordImportWriteMode, aA as RecordMentionInput, aR as RecordObjectOptions, aS as RecordObjectResult, aT as RecordObjectsChunkInfo, aU as RecordObjectsOptions, az as RecordSearchOptions, ay as RecordSearchResult, m as RecordUserOptions, aP as RelationshipInfo, a3 as ResolvedEffectApprovalRequired, a1 as ResolvedEffectDryRun, a0 as ResolvedEffectPostCondition, a2 as ResolvedEffectReverse, b2 as RunEnvironmentImporterOptions, r as Sandbox, t as SandboxListResponse, $ as SemanticVersionDiff, _ as SemanticVersionDiffEntry, g as Session, aC as SessionCollectionListOptions, aE as SessionCollectionListResult, as as SessionConversationMessage, aB as SessionDocumentResult, av as SessionHeapFieldType, aw as SessionHeapFieldValue, ax as SessionHeapVariable, aD as SessionJobListOptions, au as SessionJobRecord, at as SessionTimelineEvent, bv as StreamEvent, bx as StreamStats, bw as StreamSubscription, n as Subject, aK as SyncMessage, j as ToolHandler, aa as ToolInfo, aM as ToolInvokeParams, aN as ToolResultParams, h as ToolSchema, ac as ToolsChangedEvent, U as User, Y as Version, F as VersionTag, V as VersionTracking, W as WSClient, aH as WSClientOptions, aF as WSDisconnectInfo, aG as WSReconnectErrorInfo } from './client-eE9nTfvp.mjs';
3
+ export { ConditionIR, ConditionalPolicySpec, LimitPolicySpec, MatchedPolicy, PermissionActionSpec, PermissionPolicySpec, PermissionProfileFile, PolicyDecision, PolicyEvaluationContext, PolicyOutcome, PolicyRuleIR } from '@granular-software/policy-engine';
4
+ export { BuildGranularAgentSystemPromptInput, GeneratedJobCodeIssue, GranularAgentExecutionCheckpoint, GranularAgentHeapSummaryOptions, GranularAgentPromptCapabilities, GranularAgentReferentFocus, GranularAgentSessionContext, GranularAgentToolInfo, GranularAgentWorkflowFocus, GranularReasoningTraceChunkResult, GranularReasoningTraceOptions, HarnessContinuationDecision, HarnessControllerBudgets, HarnessProjectionOptions, HarnessPromptLike, HarnessVerifierSnapshot, HarnessVerifierSnapshotInput, ReviewGeneratedJobCodeOptions, buildContinuationInstruction, buildGranularAgentCheckpointBlock, buildGranularAgentDomainBlock, buildGranularAgentHeapBlock, buildGranularAgentLoopBlock, buildGranularAgentReferentBlock, buildGranularAgentSessionBlock, buildGranularAgentSystemPrompt, buildGranularAgentToolBlock, buildGranularAgentWorkflowBlock, consumeGranularReasoningOnlyChunk, consumeGranularReasoningTraceChunk, createHarnessVerifierSnapshot, evaluateContinuation, getCurrentClosureId, getExclusivePromptTarget, hasOpenPrompt, projectConversationReferentFocus, projectConversationReferentSummary, projectHeapSummary, projectLoopSummary, projectWorkflowFocus, projectWorkflowSummary, reviewGeneratedJobCode, stripGranularReasoningTrace } from './agent-harness.mjs';
4
5
  import '@automerge/automerge';
5
6
  import '@automerge/automerge/slim';
6
7
 
@@ -36,16 +37,27 @@ interface JobPresentation {
36
37
  changedLists: SessionHeapList[];
37
38
  hasExplicitArtifacts: boolean;
38
39
  }
39
- declare function resolveJobPresentation({ jobId, result, stdout, sessionHeap, allowExplicitArtifacts, }: {
40
+ declare function resolveJobPresentation({ jobId, result, stdout, agentMessages, sessionHeap, allowExplicitArtifacts, }: {
40
41
  jobId: string;
41
42
  result: unknown;
42
43
  stdout?: string[];
44
+ agentMessages?: unknown[];
43
45
  sessionHeap: SessionHeapSnapshot;
44
46
  allowExplicitArtifacts?: boolean;
45
47
  }): JobPresentation;
46
48
 
47
49
  declare function normalizePromptText(value: string): string;
48
50
  declare function extractPromptTokens(value: string): string[];
51
+ interface NormalizedPromptChoiceOption {
52
+ value: string;
53
+ label: string;
54
+ description?: string;
55
+ }
56
+ declare function normalizePromptChoiceOption(option: string | {
57
+ value?: string;
58
+ label?: string;
59
+ description?: string;
60
+ }): NormalizedPromptChoiceOption;
49
61
  declare function scorePromptChoiceMatch(answer: string, answerTokens: string[], option: string | {
50
62
  value?: string;
51
63
  label?: string;
@@ -63,4 +75,4 @@ declare function buildSessionTranscript(input: {
63
75
  sessionHeap?: SessionHeapSnapshot;
64
76
  }): SessionTranscriptEntry[];
65
77
 
66
- export { EffectHandlerContext, EndpointMode, type JobPresentation, ManifestEffectMetamodelSpec, Prompt, ResolvedEffectBehaviors, SessionHeapEntry, SessionHeapList, SessionHeapSnapshot, SessionTranscriptEntry, ToolWithHandler, buildSessionTranscript, extractPromptTokens, invokeRegisteredEffect, isLocalApiUrl, normalizeEffectBehaviors, normalizePrompt, normalizePromptText, normalizePromptType, resolveApiUrl, resolveAuthTokenForApiUrl, resolveJobPresentation, resolvePromptAnswer, scorePromptChoiceMatch };
78
+ export { EffectHandlerContext, EndpointMode, type JobPresentation, ManifestEffectMetamodelSpec, type NormalizedPromptChoiceOption, Prompt, ResolvedEffectBehaviors, SessionHeapEntry, SessionHeapList, SessionHeapSnapshot, SessionTranscriptEntry, ToolWithHandler, buildSessionTranscript, extractPromptTokens, invokeRegisteredEffect, isLocalApiUrl, normalizeEffectBehaviors, normalizePrompt, normalizePromptChoiceOption, normalizePromptText, normalizePromptType, resolveApiUrl, resolveAuthTokenForApiUrl, resolveJobPresentation, resolvePromptAnswer, scorePromptChoiceMatch };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
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, d as SessionTranscriptEntry } from './client-Cq8onk2D.js';
2
- export { bn as APIError, A as AccessTokenProvider, y as Assignment, z as AssignmentListResponse, X as Build, Z as BuildListResponse, B as BuildPolicy, Q as BuildStatus, C as ConnectOptions, ar as ConversationAppendResult, aq as ConversationMessageInput, ap as ConversationMessageShowRefs, q as ConversationSessionInfo, J as CreateEnvironmentData, w as CreatePermissionProfileData, s as CreateSandboxData, p as CreateSessionOptions, aN as DefineRelationshipOptions, bo as DeleteResponse, D as DomainState, ae as EffectHandler, ab as EffectInfo, a5 as EffectInvocationMetadata, a4 as EffectInvocationMode, a6 as EffectSchema, a9 as EffectVersionSelector, a7 as EffectWithHandler, ad as EffectsChangedEvent, e as Environment, H as EnvironmentData, am as EnvironmentFeedbackRecord, b0 as EnvironmentImporter, a$ as EnvironmentImporterImportOptions, K as EnvironmentListResponse, aX as EnvironmentRecordImportSummary, f as EnvironmentSession, aZ as EnvironmentSetupLifecycleStatus, a_ as EnvironmentSetupSummary, aY as EnvironmentSetupTriggerReason, G as Granular, l as GranularAuth, k as GranularOptions, bm as GraphQLResult, af as InstanceEffectHandler, I as InstanceToolHandler, ao as Job, ak as JobFeedbackInput, aj as JobFeedbackMetadata, al as JobFeedbackRecord, ah as JobFeedbackSentiment, ai as JobFeedbackToolCall, ag as JobStatus, an as JobSubmitResult, L as Manifest, bc as ManifestApprovalRequiredSpec, bl as ManifestContent, ba as ManifestDryRunSpec, bf as ManifestEffectDeclaration, be as ManifestEffectSchema, b3 as ManifestEnumRuleSpec, bh as ManifestEventStreamDef, bg as ManifestEventTypeDef, b4 as ManifestFilterBySpec, bj as ManifestImport, N as ManifestListResponse, bi as ManifestOperation, b9 as ManifestPostConditionSpec, b1 as ManifestPropertySpec, bd as ManifestRelationshipDef, bb as ManifestReverseSpec, b8 as ManifestStateMachineSpec, b6 as ManifestStateMachineStateSpec, b7 as ManifestStateMachineTransitionSpec, b2 as ManifestValidationOperator, b5 as ManifestValidationRuleSpec, bk as ManifestVolume, aL as ModelRef, O as OntologyHandle, o as OpenEnvironmentOptions, v as PermissionProfile, x as PermissionProfileListResponse, u as PermissionRules, a8 as PublishEffectsResult, i as PublishToolsResult, aF as RPCRequest, aI as RPCRequestFromServer, aG as RPCResponse, aW as RecordImport, aV as RecordImportItem, aT as RecordImportItemStatus, aU as RecordImportStats, aS as RecordImportStatus, aO as RecordObjectOptions, aP as RecordObjectResult, aQ as RecordObjectsChunkInfo, aR as RecordObjectsOptions, m as RecordUserOptions, aM as RelationshipInfo, a3 as ResolvedEffectApprovalRequired, a1 as ResolvedEffectDryRun, a0 as ResolvedEffectPostCondition, a2 as ResolvedEffectReverse, r as Sandbox, t as SandboxListResponse, $ as SemanticVersionDiff, _ as SemanticVersionDiffEntry, g as Session, az as SessionCollectionListOptions, aB as SessionCollectionListResult, as as SessionConversationMessage, ay as SessionDocumentResult, av as SessionHeapFieldType, aw as SessionHeapFieldValue, ax as SessionHeapVariable, aA as SessionJobListOptions, au as SessionJobRecord, at as SessionTimelineEvent, bp as StreamEvent, br as StreamStats, bq as StreamSubscription, n as Subject, aH as SyncMessage, j as ToolHandler, aa as ToolInfo, aJ as ToolInvokeParams, aK as ToolResultParams, h as ToolSchema, ac as ToolsChangedEvent, U as User, Y as Version, F as VersionTag, V as VersionTracking, W as WSClient, aE as WSClientOptions, aC as WSDisconnectInfo, aD as WSReconnectErrorInfo } from './client-Cq8onk2D.js';
3
- export { BuildGranularAgentSystemPromptInput, GeneratedJobCodeIssue, GranularAgentExecutionCheckpoint, GranularAgentHeapSummaryOptions, GranularAgentReferentFocus, GranularAgentSessionContext, GranularAgentToolInfo, GranularAgentWorkflowFocus, HarnessContinuationDecision, HarnessControllerBudgets, HarnessProjectionOptions, HarnessPromptLike, HarnessVerifierSnapshot, HarnessVerifierSnapshotInput, buildContinuationInstruction, buildGranularAgentCheckpointBlock, buildGranularAgentDomainBlock, buildGranularAgentHeapBlock, buildGranularAgentLoopBlock, buildGranularAgentReferentBlock, buildGranularAgentSessionBlock, buildGranularAgentSystemPrompt, buildGranularAgentToolBlock, buildGranularAgentWorkflowBlock, createHarnessVerifierSnapshot, evaluateContinuation, getCurrentClosureId, getExclusivePromptTarget, hasOpenPrompt, projectConversationReferentFocus, projectConversationReferentSummary, projectHeapSummary, projectLoopSummary, projectWorkflowFocus, projectWorkflowSummary, reviewGeneratedJobCode } from './agent-harness.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, d as SessionTranscriptEntry } from './client-eE9nTfvp.js';
2
+ export { bt as APIError, A as AccessTokenProvider, y as Assignment, z as AssignmentListResponse, X as Build, Z as BuildListResponse, B as BuildPolicy, Q as BuildStatus, C as ConnectOptions, ar as ConversationAppendResult, aq as ConversationMessageInput, ap as ConversationMessageShowRefs, q as ConversationSessionInfo, J as CreateEnvironmentData, w as CreatePermissionProfileData, s as CreateSandboxData, p as CreateSessionOptions, aQ as DefineRelationshipOptions, bu as DeleteResponse, D as DomainState, ae as EffectHandler, ab as EffectInfo, a5 as EffectInvocationMetadata, a4 as EffectInvocationMode, a6 as EffectSchema, a9 as EffectVersionSelector, a7 as EffectWithHandler, ad as EffectsChangedEvent, e as Environment, H as EnvironmentData, am as EnvironmentFeedbackRecord, b6 as EnvironmentImporter, b5 as EnvironmentImporterImportOptions, K as EnvironmentListResponse, b0 as EnvironmentRecordImportSummary, f as EnvironmentSession, b3 as EnvironmentSetupLifecycleStatus, b4 as EnvironmentSetupSummary, b1 as EnvironmentSetupTriggerReason, G as Granular, l as GranularAuth, k as GranularOptions, bs as GraphQLResult, af as InstanceEffectHandler, I as InstanceToolHandler, ao as Job, ak as JobFeedbackInput, aj as JobFeedbackMetadata, al as JobFeedbackRecord, ah as JobFeedbackSentiment, ai as JobFeedbackToolCall, ag as JobStatus, an as JobSubmitResult, L as Manifest, bi as ManifestApprovalRequiredSpec, br as ManifestContent, bg as ManifestDryRunSpec, bl as ManifestEffectDeclaration, bk as ManifestEffectSchema, b9 as ManifestEnumRuleSpec, bn as ManifestEventStreamDef, bm as ManifestEventTypeDef, ba as ManifestFilterBySpec, bp as ManifestImport, N as ManifestListResponse, bo as ManifestOperation, bf as ManifestPostConditionSpec, b7 as ManifestPropertySpec, bj as ManifestRelationshipDef, bh as ManifestReverseSpec, be as ManifestStateMachineSpec, bc as ManifestStateMachineStateSpec, bd as ManifestStateMachineTransitionSpec, b8 as ManifestValidationOperator, bb as ManifestValidationRuleSpec, bq as ManifestVolume, aO as ModelRef, O as OntologyHandle, o as OpenEnvironmentOptions, v as PermissionProfile, x as PermissionProfileListResponse, u as PermissionRules, a8 as PublishEffectsResult, i as PublishToolsResult, aI as RPCRequest, aL as RPCRequestFromServer, aJ as RPCResponse, a$ as RecordImport, a_ as RecordImportItem, aY as RecordImportItemStatus, aW as RecordImportOptions, aZ as RecordImportStats, aX as RecordImportStatus, aV as RecordImportWriteMode, aA as RecordMentionInput, aR as RecordObjectOptions, aS as RecordObjectResult, aT as RecordObjectsChunkInfo, aU as RecordObjectsOptions, az as RecordSearchOptions, ay as RecordSearchResult, m as RecordUserOptions, aP as RelationshipInfo, a3 as ResolvedEffectApprovalRequired, a1 as ResolvedEffectDryRun, a0 as ResolvedEffectPostCondition, a2 as ResolvedEffectReverse, b2 as RunEnvironmentImporterOptions, r as Sandbox, t as SandboxListResponse, $ as SemanticVersionDiff, _ as SemanticVersionDiffEntry, g as Session, aC as SessionCollectionListOptions, aE as SessionCollectionListResult, as as SessionConversationMessage, aB as SessionDocumentResult, av as SessionHeapFieldType, aw as SessionHeapFieldValue, ax as SessionHeapVariable, aD as SessionJobListOptions, au as SessionJobRecord, at as SessionTimelineEvent, bv as StreamEvent, bx as StreamStats, bw as StreamSubscription, n as Subject, aK as SyncMessage, j as ToolHandler, aa as ToolInfo, aM as ToolInvokeParams, aN as ToolResultParams, h as ToolSchema, ac as ToolsChangedEvent, U as User, Y as Version, F as VersionTag, V as VersionTracking, W as WSClient, aH as WSClientOptions, aF as WSDisconnectInfo, aG as WSReconnectErrorInfo } from './client-eE9nTfvp.js';
3
+ export { ConditionIR, ConditionalPolicySpec, LimitPolicySpec, MatchedPolicy, PermissionActionSpec, PermissionPolicySpec, PermissionProfileFile, PolicyDecision, PolicyEvaluationContext, PolicyOutcome, PolicyRuleIR } from '@granular-software/policy-engine';
4
+ export { BuildGranularAgentSystemPromptInput, GeneratedJobCodeIssue, GranularAgentExecutionCheckpoint, GranularAgentHeapSummaryOptions, GranularAgentPromptCapabilities, GranularAgentReferentFocus, GranularAgentSessionContext, GranularAgentToolInfo, GranularAgentWorkflowFocus, GranularReasoningTraceChunkResult, GranularReasoningTraceOptions, HarnessContinuationDecision, HarnessControllerBudgets, HarnessProjectionOptions, HarnessPromptLike, HarnessVerifierSnapshot, HarnessVerifierSnapshotInput, ReviewGeneratedJobCodeOptions, buildContinuationInstruction, buildGranularAgentCheckpointBlock, buildGranularAgentDomainBlock, buildGranularAgentHeapBlock, buildGranularAgentLoopBlock, buildGranularAgentReferentBlock, buildGranularAgentSessionBlock, buildGranularAgentSystemPrompt, buildGranularAgentToolBlock, buildGranularAgentWorkflowBlock, consumeGranularReasoningOnlyChunk, consumeGranularReasoningTraceChunk, createHarnessVerifierSnapshot, evaluateContinuation, getCurrentClosureId, getExclusivePromptTarget, hasOpenPrompt, projectConversationReferentFocus, projectConversationReferentSummary, projectHeapSummary, projectLoopSummary, projectWorkflowFocus, projectWorkflowSummary, reviewGeneratedJobCode, stripGranularReasoningTrace } from './agent-harness.js';
4
5
  import '@automerge/automerge';
5
6
  import '@automerge/automerge/slim';
6
7
 
@@ -36,16 +37,27 @@ interface JobPresentation {
36
37
  changedLists: SessionHeapList[];
37
38
  hasExplicitArtifacts: boolean;
38
39
  }
39
- declare function resolveJobPresentation({ jobId, result, stdout, sessionHeap, allowExplicitArtifacts, }: {
40
+ declare function resolveJobPresentation({ jobId, result, stdout, agentMessages, sessionHeap, allowExplicitArtifacts, }: {
40
41
  jobId: string;
41
42
  result: unknown;
42
43
  stdout?: string[];
44
+ agentMessages?: unknown[];
43
45
  sessionHeap: SessionHeapSnapshot;
44
46
  allowExplicitArtifacts?: boolean;
45
47
  }): JobPresentation;
46
48
 
47
49
  declare function normalizePromptText(value: string): string;
48
50
  declare function extractPromptTokens(value: string): string[];
51
+ interface NormalizedPromptChoiceOption {
52
+ value: string;
53
+ label: string;
54
+ description?: string;
55
+ }
56
+ declare function normalizePromptChoiceOption(option: string | {
57
+ value?: string;
58
+ label?: string;
59
+ description?: string;
60
+ }): NormalizedPromptChoiceOption;
49
61
  declare function scorePromptChoiceMatch(answer: string, answerTokens: string[], option: string | {
50
62
  value?: string;
51
63
  label?: string;
@@ -63,4 +75,4 @@ declare function buildSessionTranscript(input: {
63
75
  sessionHeap?: SessionHeapSnapshot;
64
76
  }): SessionTranscriptEntry[];
65
77
 
66
- export { EffectHandlerContext, EndpointMode, type JobPresentation, ManifestEffectMetamodelSpec, Prompt, ResolvedEffectBehaviors, SessionHeapEntry, SessionHeapList, SessionHeapSnapshot, SessionTranscriptEntry, ToolWithHandler, buildSessionTranscript, extractPromptTokens, invokeRegisteredEffect, isLocalApiUrl, normalizeEffectBehaviors, normalizePrompt, normalizePromptText, normalizePromptType, resolveApiUrl, resolveAuthTokenForApiUrl, resolveJobPresentation, resolvePromptAnswer, scorePromptChoiceMatch };
78
+ export { EffectHandlerContext, EndpointMode, type JobPresentation, ManifestEffectMetamodelSpec, type NormalizedPromptChoiceOption, Prompt, ResolvedEffectBehaviors, SessionHeapEntry, SessionHeapList, SessionHeapSnapshot, SessionTranscriptEntry, ToolWithHandler, buildSessionTranscript, extractPromptTokens, invokeRegisteredEffect, isLocalApiUrl, normalizeEffectBehaviors, normalizePrompt, normalizePromptChoiceOption, normalizePromptText, normalizePromptType, resolveApiUrl, resolveAuthTokenForApiUrl, resolveJobPresentation, resolvePromptAnswer, scorePromptChoiceMatch };