mindoodb-app-sdk 0.0.69 → 0.0.70

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/README.md CHANGED
@@ -165,7 +165,7 @@ if (ctx.runtime === "iframe") {
165
165
  }
166
166
  ```
167
167
 
168
- `browserFeatures` says which browser features Haven leaves available to the app: `popups`, `camera`, `microphone`, `geolocation`, `clipboardWrite`, `motion`, `webRtc` and `workers`. `false` means Haven blocks the feature for this app, through the iframe sandbox, its `allow` attribute or the hosted app CSP, and the user has to enable it in the app's settings. The browser cannot report these restrictions to the app itself, so check them in an initial setup instead of letting a call fail silently:
168
+ `browserFeatures` says which browser features Haven leaves available to the app: `popups`, `camera`, `microphone`, `geolocation`, `clipboardWrite`, `motion`, `localFonts`, `webRtc` and `workers`. `false` means Haven blocks the feature for this app, through the iframe sandbox, its `allow` attribute or the hosted app CSP, and the user has to enable it in the app's settings. The browser cannot report these restrictions to the app itself, so check them in an initial setup instead of letting a call fail silently:
169
169
 
170
170
  ```ts
171
171
  const ctx = await session.getLaunchContext();
@@ -766,6 +766,7 @@ function validateMindooDBAppDefinition(raw) {
766
766
  const allowGeolocation = readOptionalBoolean(raw, "allowGeolocation", errors);
767
767
  const allowClipboardWrite = readOptionalBoolean(raw, "allowClipboardWrite", errors);
768
768
  const allowMotion = readOptionalBoolean(raw, "allowMotion", errors);
769
+ const allowLocalFonts = readOptionalBoolean(raw, "allowLocalFonts", errors);
769
770
  const allowWebRtc = readOptionalBoolean(raw, "allowWebRtc", errors);
770
771
  const allowWorkers = readOptionalBoolean(raw, "allowWorkers", errors);
771
772
  const listing = readListing(raw.listing, errors);
@@ -802,6 +803,7 @@ function validateMindooDBAppDefinition(raw) {
802
803
  allowGeolocation,
803
804
  allowClipboardWrite,
804
805
  allowMotion,
806
+ allowLocalFonts,
805
807
  allowWebRtc,
806
808
  allowWorkers,
807
809
  agentToolPrefix,
@@ -1226,6 +1228,47 @@ function bindDragSource(element, options, start, follow) {
1226
1228
  };
1227
1229
  }
1228
1230
 
1231
+ // src/client/agentInput.ts
1232
+ function isPlainObject2(value) {
1233
+ return typeof value === "object" && value !== null && !Array.isArray(value);
1234
+ }
1235
+ function isPlaceholder(value) {
1236
+ if (value === null || value === void 0) return true;
1237
+ if (typeof value === "string") return value.trim() === "";
1238
+ if (Array.isArray(value)) return value.length === 0;
1239
+ if (isPlainObject2(value)) return Object.keys(value).length === 0;
1240
+ return false;
1241
+ }
1242
+ function normalizeValue(value, schema) {
1243
+ if (!isPlainObject2(schema)) return value;
1244
+ if (Array.isArray(value)) {
1245
+ const items = schema.items;
1246
+ return isPlainObject2(items) ? value.map((item) => normalizeValue(item, items)) : value;
1247
+ }
1248
+ if (isPlainObject2(value) && isPlainObject2(schema.properties)) {
1249
+ return normalizeObject(value, schema);
1250
+ }
1251
+ return value;
1252
+ }
1253
+ function normalizeObject(input, schema) {
1254
+ const properties = isPlainObject2(schema.properties) ? schema.properties : {};
1255
+ const required = new Set(Array.isArray(schema.required) ? schema.required.filter((key) => typeof key === "string") : []);
1256
+ const result = {};
1257
+ for (const [key, raw] of Object.entries(input)) {
1258
+ if (!(key in properties)) {
1259
+ result[key] = raw;
1260
+ continue;
1261
+ }
1262
+ const value = normalizeValue(raw, properties[key]);
1263
+ if (!required.has(key) && isPlaceholder(value)) continue;
1264
+ result[key] = value;
1265
+ }
1266
+ return result;
1267
+ }
1268
+ function normalizeAgentToolInput(input, schema) {
1269
+ return isPlainObject2(input) ? normalizeObject(input, schema) : input;
1270
+ }
1271
+
1229
1272
  // src/client/agentTools.ts
1230
1273
  var TOOL_NAME_PATTERN = /^[a-z][a-z0-9_]{0,47}$/;
1231
1274
  var MindooDBAppAgentToolError = class extends Error {
@@ -1303,7 +1346,8 @@ var MindooDBAppAgentApiImpl = class {
1303
1346
  if (!tool) {
1304
1347
  throw new MindooDBAppAgentToolError("NOT_FOUND", `The app has no tool "${name}" (any more).`);
1305
1348
  }
1306
- const result = await tool.execute(input ?? {});
1349
+ const raw = input ?? {};
1350
+ const result = await tool.execute(tool.keepEmptyInput ? raw : normalizeAgentToolInput(raw, tool.inputSchema));
1307
1351
  reply = { protocol: "mindoodb-app-bridge", kind: "agent-result", callId, ok: true, result: toJson(result) };
1308
1352
  } catch (error) {
1309
1353
  reply = {
@@ -3728,6 +3772,7 @@ export {
3728
3772
  normalizeDragStartInput,
3729
3773
  snapshotElementToPng,
3730
3774
  bindDragSource,
3775
+ normalizeAgentToolInput,
3731
3776
  MindooDBAppAgentToolError,
3732
3777
  pageUsers,
3733
3778
  DEFAULT_HAVEN_HOST_SHORTCUTS,
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { M as MindooDBAppAttachmentPreviewMode, a as MindooDBAppDragBindSourceOptions, b as MindooDBAppDragStartInput, c as MindooDBAppDragStartResult, d as MindooDBAppDragPreview, e as MindooDBAppBridge, f as MindooDBAppAgentToolErrorCode, g as MindooDBAppAgentTool, h as MindooDBAppHostShortcutBinding, i as MindooDBAppHostShortcutAction, j as MindooDBAppHostingMode, k as MindooDBAppDefinition, l as MindooDBAppDatabase, m as MindooDBAppDocument, n as MindooDBAppRichTextSpan, o as MindooDBAppRichTextSnapshot, p as MindooDBAppCreateDocumentInput } from './types-ERxyAse_.js';
2
- export { q as MINDOODB_APP_ACCEPTS_MAX, r as MINDOODB_APP_COMPONENTS_MAX, s as MINDOODB_APP_COMPONENT_CONTRACT_PATTERN, t as MINDOODB_APP_DEFINITION_FILE_NAME, u as MINDOODB_APP_DEFINITION_FORMAT, v as MINDOODB_APP_DEFINITION_PERMISSIONS, w as MINDOODB_APP_DEFINITION_REGISTRATION_PERMISSIONS, x as MINDOODB_APP_DEFINITION_VERSION, y as MINDOODB_APP_LISTING_DESCRIPTION_MAX, z as MINDOODB_APP_LISTING_MAX_SCREENSHOTS, A as MINDOODB_APP_LISTING_SUMMARY_MAX, B as MINDOODB_APP_SEAL_SIGNING_DOMAIN, C as MINDOODB_APP_WELL_KNOWN_DRAG_TYPES, D as MindooDBAppAcceptSpec, E as MindooDBAppAccessDecision, F as MindooDBAppAccessTier, G as MindooDBAppAgentApi, H as MindooDBAppAgentRegistration, I as MindooDBAppAgentToolAnnotations, J as MindooDBAppAgentToolDescriptor, K as MindooDBAppAgentToolScope, L as MindooDBAppAttachmentApi, N as MindooDBAppAttachmentChunk, O as MindooDBAppAttachmentInfo, P as MindooDBAppAttachmentPreviewOptions, Q as MindooDBAppAttachmentPreviewSession, R as MindooDBAppAutomergeChangesPatch, S as MindooDBAppAutomergeChangesSince, T as MindooDBAppAutomergeGetOptions, U as MindooDBAppAutomergePatchResult, V as MindooDBAppAutomergeSnapshot, W as MindooDBAppBridgeAgentInvokeMessage, X as MindooDBAppBridgeAgentResultMessage, Y as MindooDBAppBridgeBeforeCloseAck, Z as MindooDBAppBridgeBeforeCloseMessage, _ as MindooDBAppBridgeConnectMessage, $ as MindooDBAppBridgeConnectOptions, a0 as MindooDBAppBridgeConnectedMessage, a1 as MindooDBAppBridgeDragDropMessage, a2 as MindooDBAppBridgeDragLeaveMessage, a3 as MindooDBAppBridgeDragOverMessage, a4 as MindooDBAppBridgeEmbedEventMessage, a5 as MindooDBAppBridgeEmbeddingRequestMessage, a6 as MindooDBAppBridgeErrorPayload, a7 as MindooDBAppBridgeHandshakeErrorMessage, a8 as MindooDBAppBridgeHostFocusChangedMessage, a9 as MindooDBAppBridgeIncomingContentMessage, aa as MindooDBAppBridgeLocaleChangedMessage, ab as MindooDBAppBridgePortMessage, ac as MindooDBAppBridgeQueryResultMessage, ad as MindooDBAppBridgeReminderOpenedMessage, ae as MindooDBAppBridgeRpcError, af as MindooDBAppBridgeRpcMessage, ag as MindooDBAppBridgeRpcRequest, ah as MindooDBAppBridgeRpcSuccess, ai as MindooDBAppBridgeShortcutInvokedMessage, aj as MindooDBAppBridgeShortcutsChangedMessage, ak as MindooDBAppBridgeStreamAbortRequest, al as MindooDBAppBridgeStreamAck, am as MindooDBAppBridgeStreamCloseRequest, an as MindooDBAppBridgeStreamError, ao as MindooDBAppBridgeStreamMessage, ap as MindooDBAppBridgeStreamOpenResult, aq as MindooDBAppBridgeStreamReadRequest, ar as MindooDBAppBridgeStreamWriteRequest, as as MindooDBAppBridgeThemeChangedMessage, at as MindooDBAppBridgeUiPreferencesChangedMessage, au as MindooDBAppBridgeViewChangedMessage, av as MindooDBAppBridgeViewportChangedMessage, aw as MindooDBAppBridgeWorkspaceFocusRequestedMessage, ax as MindooDBAppBrowserFeatures, ay as MindooDBAppCapability, az as MindooDBAppComponentCategory, aA as MindooDBAppComponentChildren, aB as MindooDBAppComponentContract, aC as MindooDBAppComponentFieldValue, aD as MindooDBAppComponentInfo, aE as MindooDBAppComponentIntent, aF as MindooDBAppComponentQuery, aG as MindooDBAppComponentReference, aH as MindooDBAppComponentSpec, aI as MindooDBAppComponentsApi, aJ as MindooDBAppConfiguredViewCategorizationStyle, aK as MindooDBAppConfiguredViewColumn, aL as MindooDBAppConfiguredViewColumnRole, aM as MindooDBAppConfiguredViewExpressionMode, aN as MindooDBAppConfiguredViewFieldExpression, aO as MindooDBAppConfiguredViewFilterDefinition, aP as MindooDBAppConfiguredViewFilterMode, aQ as MindooDBAppConfiguredViewFilterRule, aR as MindooDBAppConfiguredViewFormulaExpression, aS as MindooDBAppConfiguredViewFormulaFilterDefinition, aT as MindooDBAppConfiguredViewPreviewMode, aU as MindooDBAppConfiguredViewRuleFilterDefinition, aV as MindooDBAppConfiguredViewRuleMatchMode, aW as MindooDBAppConfiguredViewRuleOperator, aX as MindooDBAppConfiguredViewValueExpression, aY as MindooDBAppCreateKeyInfo, aZ as MindooDBAppCreateViewInput, a_ as MindooDBAppCreateViewNavigatorInput, a$ as MindooDBAppDatabaseInfo, b0 as MindooDBAppDefinitionDatabase, b1 as MindooDBAppDefinitionListing, b2 as MindooDBAppDefinitionPermission, b3 as MindooDBAppDefinitionRegistrationPermission, b4 as MindooDBAppDefinitionScreenshot, b5 as MindooDBAppDefinitionValidation, b6 as MindooDBAppDirectoryApi, b7 as MindooDBAppDirectoryEntry, b8 as MindooDBAppDocumentApi, b9 as MindooDBAppDocumentHeadCursorResult, ba as MindooDBAppDocumentHistoryEntry, bb as MindooDBAppDocumentListQuery, bc as MindooDBAppDocumentListResult, bd as MindooDBAppDocumentQuery, be as MindooDBAppDocumentRevisionId, bf as MindooDBAppDocumentScanPreset, bg as MindooDBAppDocumentSummary, bh as MindooDBAppDragApi, bi as MindooDBAppDragCancelReason, bj as MindooDBAppDragDropEvent, bk as MindooDBAppDragEffect, bl as MindooDBAppDragHoverResult, bm as MindooDBAppDragOffer, bn as MindooDBAppDragOverEvent, bo as MindooDBAppDragPointer, bp as MindooDBAppDragProfile, bq as MindooDBAppEmbed, br as MindooDBAppEmbedAccessComponent, bs as MindooDBAppEmbedAccessInput, bt as MindooDBAppEmbedAccessPair, bu as MindooDBAppEmbedAccessResult, bv as MindooDBAppEmbedAgentTools, bw as MindooDBAppEmbedAgentToolsEvent, bx as MindooDBAppEmbedCloseReason, by as MindooDBAppEmbedClosedEvent, bz as MindooDBAppEmbedContext, bA as MindooDBAppEmbedDirtyEvent, bB as MindooDBAppEmbedOpenInput, bC as MindooDBAppEmbedRect, bD as MindooDBAppEmbeddingApi, bE as MindooDBAppEmbeddingLookupOptions, bF as MindooDBAppEmbeddingLookupResult, bG as MindooDBAppEmbedsApi, bH as MindooDBAppEntryAttachmentRef, bI as MindooDBAppEntryProvenance, bJ as MindooDBAppExtractDocumentTextInput, bK as MindooDBAppExtractDocumentTextResult, bL as MindooDBAppExtractTextFormat, bM as MindooDBAppExtractionSetup, bN as MindooDBAppFulltextSetup, bO as MindooDBAppHistoricalDocument, bP as MindooDBAppHistoryQuery, bQ as MindooDBAppHostTheme, bR as MindooDBAppIdentityApi, bS as MindooDBAppInaccessibleDocument, bT as MindooDBAppInaccessibleDocumentListQuery, bU as MindooDBAppInaccessibleDocumentListResult, bV as MindooDBAppIncomingContent, bW as MindooDBAppIncomingContentHandler, bX as MindooDBAppIncomingContentInfo, bY as MindooDBAppIncomingItem, bZ as MindooDBAppIncomingItemInfo, b_ as MindooDBAppIncomingResult, b$ as MindooDBAppIncomingSource, c0 as MindooDBAppJsonCounterIncrementPatch, c1 as MindooDBAppJsonListDeletePatch, c2 as MindooDBAppJsonListInsertPatch, c3 as MindooDBAppJsonPatch, c4 as MindooDBAppJsonSetPatch, c5 as MindooDBAppJsonTextMarkPatch, c6 as MindooDBAppJsonTextSplicePatch, c7 as MindooDBAppJsonTextUnmarkPatch, c8 as MindooDBAppJsonUnsetPatch, c9 as MindooDBAppLaunchContext, ca as MindooDBAppListUsersOptions, cb as MindooDBAppListUsersPage, cc as MindooDBAppLiveQuerySubscription, cd as MindooDBAppLocalizedText, ce as MindooDBAppMenuAnchor, cf as MindooDBAppMenuApi, cg as MindooDBAppMenuCommandItem, ch as MindooDBAppMenuDismissReason, ci as MindooDBAppMenuDismissedResult, cj as MindooDBAppMenuItem, ck as MindooDBAppMenuKind, cl as MindooDBAppMenuPlacement, cm as MindooDBAppMenuPointAnchor, cn as MindooDBAppMenuRect, co as MindooDBAppMenuRectAnchor, cp as MindooDBAppMenuSelectionResult, cq as MindooDBAppMenuSeparatorItem, cr as MindooDBAppNotificationSeverity, cs as MindooDBAppNotifyInput, ct as MindooDBAppNotifyResult, cu as MindooDBAppPdfApi, cv as MindooDBAppPdfSignInput, cw as MindooDBAppPdfSignResult, cx as MindooDBAppPdfSignaturePosition, cy as MindooDBAppPdfSigner, cz as MindooDBAppProposeAppInput, cA as MindooDBAppProposeAppResult, cB as MindooDBAppQueryCoverage, cC as MindooDBAppQueryInclude, cD as MindooDBAppQueryIncludeCardinality, cE as MindooDBAppQueryIncludeSlots, cF as MindooDBAppQueryResult, cG as MindooDBAppQueryRow, cH as MindooDBAppQuerySortKey, cI as MindooDBAppQueryTextClause, cJ as MindooDBAppReadableAttachmentStream, cK as MindooDBAppRecipientOptions, cL as MindooDBAppReminder, cM as MindooDBAppReminderOpened, cN as MindooDBAppReminderOpenedHandler, cO as MindooDBAppReminderRequest, cP as MindooDBAppReminderScheduleResult, cQ as MindooDBAppRemindersApi, cR as MindooDBAppResolvedViewDefinition, cS as MindooDBAppResolvedViewSource, cT as MindooDBAppRevisionPhase, cU as MindooDBAppRevisionVerification, cV as MindooDBAppRichTextBlockSpan, cW as MindooDBAppRichTextGetOptions, cX as MindooDBAppRichTextImmutableString, cY as MindooDBAppRichTextMarkRange, cZ as MindooDBAppRichTextMaterializeValue, c_ as MindooDBAppRichTextPatch, c$ as MindooDBAppRichTextScalar, d0 as MindooDBAppRichTextSpliceStep, d1 as MindooDBAppRichTextStep, d2 as MindooDBAppRichTextStepPatch, d3 as MindooDBAppRichTextTextSpan, d4 as MindooDBAppRuntime, d5 as MindooDBAppScanAttachmentOptions, d6 as MindooDBAppScanAttachmentResult, d7 as MindooDBAppScopedDocId, d8 as MindooDBAppScopedDocumentSummary, d9 as MindooDBAppSealIntent, da as MindooDBAppSealedChannelOpenInput, db as MindooDBAppSealedChannelOpenResult, dc as MindooDBAppSealedChannelRequestInput, dd as MindooDBAppSession, de as MindooDBAppShowMenuInput, df as MindooDBAppShowMenuResult, dg as MindooDBAppSignPreview, dh as MindooDBAppSignPreviewScope, di as MindooDBAppSignStatementInput, dj as MindooDBAppSignStatementResult, dk as MindooDBAppStorageApi, dl as MindooDBAppSummarySetup, dm as MindooDBAppTextCursorOptions, dn as MindooDBAppTextCursorPosition, dp as MindooDBAppTextCursorPositionsResult, dq as MindooDBAppTextCursorsResult, dr as MindooDBAppTextEdit, ds as MindooDBAppTextPatch, dt as MindooDBAppThemeMode, du as MindooDBAppTimestampApi, dv as MindooDBAppTimestampInput, dw as MindooDBAppTimestampProvider, dx as MindooDBAppTimestampResult, dy as MindooDBAppUiPreferences, dz as MindooDBAppUpdateDocumentInput, dA as MindooDBAppViewCursorDocumentListResult, dB as MindooDBAppViewCursorResult, dC as MindooDBAppViewEntry, dD as MindooDBAppViewEntryKind, dE as MindooDBAppViewNavigator, dF as MindooDBAppViewNavigatorExpansionState, dG as MindooDBAppViewNavigatorOpenOptions, dH as MindooDBAppViewNavigatorPageOptions, dI as MindooDBAppViewNavigatorPageResult, dJ as MindooDBAppViewNavigatorRangeQuery, dK as MindooDBAppViewNavigatorSelectionState, dL as MindooDBAppViewUpdateStats, dM as MindooDBAppViewport, dN as MindooDBAppWellKnownDragType, dO as MindooDBAppWritableAttachmentStream, dP as mindooDBAppAcceptMatchesType, dQ as mindooDBAppComponentFieldsMatch, dR as resolveMindooDBAppDefinitionUrl, dS as resolveMindooDBAppListingAssetUrl, dT as resolveMindooDBAppLocalizedText, dU as validateMindooDBAppAccepts, dV as validateMindooDBAppComponents, dW as validateMindooDBAppDefinition } from './types-ERxyAse_.js';
1
+ import { M as MindooDBAppAttachmentPreviewMode, a as MindooDBAppDragBindSourceOptions, b as MindooDBAppDragStartInput, c as MindooDBAppDragStartResult, d as MindooDBAppDragPreview, e as MindooDBAppBridge, f as MindooDBAppAgentToolErrorCode, g as MindooDBAppAgentTool, h as MindooDBAppHostShortcutBinding, i as MindooDBAppHostShortcutAction, j as MindooDBAppHostingMode, k as MindooDBAppDefinition, l as MindooDBAppDatabase, m as MindooDBAppDocument, n as MindooDBAppRichTextSpan, o as MindooDBAppRichTextSnapshot, p as MindooDBAppCreateDocumentInput } from './types-7oOzrSr5.js';
2
+ export { q as MINDOODB_APP_ACCEPTS_MAX, r as MINDOODB_APP_COMPONENTS_MAX, s as MINDOODB_APP_COMPONENT_CONTRACT_PATTERN, t as MINDOODB_APP_DEFINITION_FILE_NAME, u as MINDOODB_APP_DEFINITION_FORMAT, v as MINDOODB_APP_DEFINITION_PERMISSIONS, w as MINDOODB_APP_DEFINITION_REGISTRATION_PERMISSIONS, x as MINDOODB_APP_DEFINITION_VERSION, y as MINDOODB_APP_LISTING_DESCRIPTION_MAX, z as MINDOODB_APP_LISTING_MAX_SCREENSHOTS, A as MINDOODB_APP_LISTING_SUMMARY_MAX, B as MINDOODB_APP_SEAL_SIGNING_DOMAIN, C as MINDOODB_APP_WELL_KNOWN_DRAG_TYPES, D as MindooDBAppAcceptSpec, E as MindooDBAppAccessDecision, F as MindooDBAppAccessTier, G as MindooDBAppAgentApi, H as MindooDBAppAgentRegistration, I as MindooDBAppAgentToolAnnotations, J as MindooDBAppAgentToolDescriptor, K as MindooDBAppAgentToolScope, L as MindooDBAppAttachmentApi, N as MindooDBAppAttachmentChunk, O as MindooDBAppAttachmentInfo, P as MindooDBAppAttachmentPreviewOptions, Q as MindooDBAppAttachmentPreviewSession, R as MindooDBAppAutomergeChangesPatch, S as MindooDBAppAutomergeChangesSince, T as MindooDBAppAutomergeGetOptions, U as MindooDBAppAutomergePatchResult, V as MindooDBAppAutomergeSnapshot, W as MindooDBAppBridgeAgentInvokeMessage, X as MindooDBAppBridgeAgentResultMessage, Y as MindooDBAppBridgeBeforeCloseAck, Z as MindooDBAppBridgeBeforeCloseMessage, _ as MindooDBAppBridgeConnectMessage, $ as MindooDBAppBridgeConnectOptions, a0 as MindooDBAppBridgeConnectedMessage, a1 as MindooDBAppBridgeDragDropMessage, a2 as MindooDBAppBridgeDragLeaveMessage, a3 as MindooDBAppBridgeDragOverMessage, a4 as MindooDBAppBridgeEmbedEventMessage, a5 as MindooDBAppBridgeEmbeddingRequestMessage, a6 as MindooDBAppBridgeErrorPayload, a7 as MindooDBAppBridgeHandshakeErrorMessage, a8 as MindooDBAppBridgeHostFocusChangedMessage, a9 as MindooDBAppBridgeIncomingContentMessage, aa as MindooDBAppBridgeLocaleChangedMessage, ab as MindooDBAppBridgePortMessage, ac as MindooDBAppBridgeQueryResultMessage, ad as MindooDBAppBridgeReminderOpenedMessage, ae as MindooDBAppBridgeRpcError, af as MindooDBAppBridgeRpcMessage, ag as MindooDBAppBridgeRpcRequest, ah as MindooDBAppBridgeRpcSuccess, ai as MindooDBAppBridgeShortcutInvokedMessage, aj as MindooDBAppBridgeShortcutsChangedMessage, ak as MindooDBAppBridgeStreamAbortRequest, al as MindooDBAppBridgeStreamAck, am as MindooDBAppBridgeStreamCloseRequest, an as MindooDBAppBridgeStreamError, ao as MindooDBAppBridgeStreamMessage, ap as MindooDBAppBridgeStreamOpenResult, aq as MindooDBAppBridgeStreamReadRequest, ar as MindooDBAppBridgeStreamWriteRequest, as as MindooDBAppBridgeThemeChangedMessage, at as MindooDBAppBridgeUiPreferencesChangedMessage, au as MindooDBAppBridgeViewChangedMessage, av as MindooDBAppBridgeViewportChangedMessage, aw as MindooDBAppBridgeWorkspaceFocusRequestedMessage, ax as MindooDBAppBrowserFeatures, ay as MindooDBAppCapability, az as MindooDBAppComponentCategory, aA as MindooDBAppComponentChildren, aB as MindooDBAppComponentContract, aC as MindooDBAppComponentFieldValue, aD as MindooDBAppComponentInfo, aE as MindooDBAppComponentIntent, aF as MindooDBAppComponentQuery, aG as MindooDBAppComponentReference, aH as MindooDBAppComponentSpec, aI as MindooDBAppComponentsApi, aJ as MindooDBAppConfiguredViewCategorizationStyle, aK as MindooDBAppConfiguredViewColumn, aL as MindooDBAppConfiguredViewColumnRole, aM as MindooDBAppConfiguredViewExpressionMode, aN as MindooDBAppConfiguredViewFieldExpression, aO as MindooDBAppConfiguredViewFilterDefinition, aP as MindooDBAppConfiguredViewFilterMode, aQ as MindooDBAppConfiguredViewFilterRule, aR as MindooDBAppConfiguredViewFormulaExpression, aS as MindooDBAppConfiguredViewFormulaFilterDefinition, aT as MindooDBAppConfiguredViewPreviewMode, aU as MindooDBAppConfiguredViewRuleFilterDefinition, aV as MindooDBAppConfiguredViewRuleMatchMode, aW as MindooDBAppConfiguredViewRuleOperator, aX as MindooDBAppConfiguredViewValueExpression, aY as MindooDBAppCreateKeyInfo, aZ as MindooDBAppCreateViewInput, a_ as MindooDBAppCreateViewNavigatorInput, a$ as MindooDBAppDatabaseInfo, b0 as MindooDBAppDefinitionDatabase, b1 as MindooDBAppDefinitionListing, b2 as MindooDBAppDefinitionPermission, b3 as MindooDBAppDefinitionRegistrationPermission, b4 as MindooDBAppDefinitionScreenshot, b5 as MindooDBAppDefinitionValidation, b6 as MindooDBAppDirectoryApi, b7 as MindooDBAppDirectoryEntry, b8 as MindooDBAppDocumentApi, b9 as MindooDBAppDocumentHeadCursorResult, ba as MindooDBAppDocumentHistoryEntry, bb as MindooDBAppDocumentListQuery, bc as MindooDBAppDocumentListResult, bd as MindooDBAppDocumentQuery, be as MindooDBAppDocumentRevisionId, bf as MindooDBAppDocumentScanPreset, bg as MindooDBAppDocumentSummary, bh as MindooDBAppDragApi, bi as MindooDBAppDragCancelReason, bj as MindooDBAppDragDropEvent, bk as MindooDBAppDragEffect, bl as MindooDBAppDragHoverResult, bm as MindooDBAppDragOffer, bn as MindooDBAppDragOverEvent, bo as MindooDBAppDragPointer, bp as MindooDBAppDragProfile, bq as MindooDBAppEmbed, br as MindooDBAppEmbedAccessComponent, bs as MindooDBAppEmbedAccessInput, bt as MindooDBAppEmbedAccessPair, bu as MindooDBAppEmbedAccessResult, bv as MindooDBAppEmbedAgentTools, bw as MindooDBAppEmbedAgentToolsEvent, bx as MindooDBAppEmbedCloseReason, by as MindooDBAppEmbedClosedEvent, bz as MindooDBAppEmbedContext, bA as MindooDBAppEmbedDirtyEvent, bB as MindooDBAppEmbedOpenInput, bC as MindooDBAppEmbedRect, bD as MindooDBAppEmbeddingApi, bE as MindooDBAppEmbeddingLookupOptions, bF as MindooDBAppEmbeddingLookupResult, bG as MindooDBAppEmbedsApi, bH as MindooDBAppEntryAttachmentRef, bI as MindooDBAppEntryProvenance, bJ as MindooDBAppExtractDocumentTextInput, bK as MindooDBAppExtractDocumentTextResult, bL as MindooDBAppExtractTextFormat, bM as MindooDBAppExtractionSetup, bN as MindooDBAppFulltextSetup, bO as MindooDBAppHistoricalDocument, bP as MindooDBAppHistoryQuery, bQ as MindooDBAppHostTheme, bR as MindooDBAppIdentityApi, bS as MindooDBAppInaccessibleDocument, bT as MindooDBAppInaccessibleDocumentListQuery, bU as MindooDBAppInaccessibleDocumentListResult, bV as MindooDBAppIncomingContent, bW as MindooDBAppIncomingContentHandler, bX as MindooDBAppIncomingContentInfo, bY as MindooDBAppIncomingItem, bZ as MindooDBAppIncomingItemInfo, b_ as MindooDBAppIncomingResult, b$ as MindooDBAppIncomingSource, c0 as MindooDBAppJsonCounterIncrementPatch, c1 as MindooDBAppJsonListDeletePatch, c2 as MindooDBAppJsonListInsertPatch, c3 as MindooDBAppJsonPatch, c4 as MindooDBAppJsonSetPatch, c5 as MindooDBAppJsonTextMarkPatch, c6 as MindooDBAppJsonTextSplicePatch, c7 as MindooDBAppJsonTextUnmarkPatch, c8 as MindooDBAppJsonUnsetPatch, c9 as MindooDBAppLaunchContext, ca as MindooDBAppListUsersOptions, cb as MindooDBAppListUsersPage, cc as MindooDBAppLiveQuerySubscription, cd as MindooDBAppLocalizedText, ce as MindooDBAppMenuAnchor, cf as MindooDBAppMenuApi, cg as MindooDBAppMenuCommandItem, ch as MindooDBAppMenuDismissReason, ci as MindooDBAppMenuDismissedResult, cj as MindooDBAppMenuItem, ck as MindooDBAppMenuKind, cl as MindooDBAppMenuPlacement, cm as MindooDBAppMenuPointAnchor, cn as MindooDBAppMenuRect, co as MindooDBAppMenuRectAnchor, cp as MindooDBAppMenuSelectionResult, cq as MindooDBAppMenuSeparatorItem, cr as MindooDBAppNotificationSeverity, cs as MindooDBAppNotifyInput, ct as MindooDBAppNotifyResult, cu as MindooDBAppPdfApi, cv as MindooDBAppPdfSignInput, cw as MindooDBAppPdfSignResult, cx as MindooDBAppPdfSignaturePosition, cy as MindooDBAppPdfSigner, cz as MindooDBAppProposeAppInput, cA as MindooDBAppProposeAppResult, cB as MindooDBAppQueryCoverage, cC as MindooDBAppQueryInclude, cD as MindooDBAppQueryIncludeCardinality, cE as MindooDBAppQueryIncludeSlots, cF as MindooDBAppQueryResult, cG as MindooDBAppQueryRow, cH as MindooDBAppQuerySortKey, cI as MindooDBAppQueryTextClause, cJ as MindooDBAppReadableAttachmentStream, cK as MindooDBAppRecipientOptions, cL as MindooDBAppReminder, cM as MindooDBAppReminderOpened, cN as MindooDBAppReminderOpenedHandler, cO as MindooDBAppReminderRequest, cP as MindooDBAppReminderScheduleResult, cQ as MindooDBAppRemindersApi, cR as MindooDBAppResolvedViewDefinition, cS as MindooDBAppResolvedViewSource, cT as MindooDBAppRevisionPhase, cU as MindooDBAppRevisionVerification, cV as MindooDBAppRichTextBlockSpan, cW as MindooDBAppRichTextGetOptions, cX as MindooDBAppRichTextImmutableString, cY as MindooDBAppRichTextMarkRange, cZ as MindooDBAppRichTextMaterializeValue, c_ as MindooDBAppRichTextPatch, c$ as MindooDBAppRichTextScalar, d0 as MindooDBAppRichTextSpliceStep, d1 as MindooDBAppRichTextStep, d2 as MindooDBAppRichTextStepPatch, d3 as MindooDBAppRichTextTextSpan, d4 as MindooDBAppRuntime, d5 as MindooDBAppScanAttachmentOptions, d6 as MindooDBAppScanAttachmentResult, d7 as MindooDBAppScopedDocId, d8 as MindooDBAppScopedDocumentSummary, d9 as MindooDBAppSealIntent, da as MindooDBAppSealedChannelOpenInput, db as MindooDBAppSealedChannelOpenResult, dc as MindooDBAppSealedChannelRequestInput, dd as MindooDBAppSession, de as MindooDBAppShowMenuInput, df as MindooDBAppShowMenuResult, dg as MindooDBAppSignPreview, dh as MindooDBAppSignPreviewScope, di as MindooDBAppSignStatementInput, dj as MindooDBAppSignStatementResult, dk as MindooDBAppStorageApi, dl as MindooDBAppSummarySetup, dm as MindooDBAppTextCursorOptions, dn as MindooDBAppTextCursorPosition, dp as MindooDBAppTextCursorPositionsResult, dq as MindooDBAppTextCursorsResult, dr as MindooDBAppTextEdit, ds as MindooDBAppTextPatch, dt as MindooDBAppThemeMode, du as MindooDBAppTimestampApi, dv as MindooDBAppTimestampInput, dw as MindooDBAppTimestampProvider, dx as MindooDBAppTimestampResult, dy as MindooDBAppUiPreferences, dz as MindooDBAppUpdateDocumentInput, dA as MindooDBAppViewCursorDocumentListResult, dB as MindooDBAppViewCursorResult, dC as MindooDBAppViewEntry, dD as MindooDBAppViewEntryKind, dE as MindooDBAppViewNavigator, dF as MindooDBAppViewNavigatorExpansionState, dG as MindooDBAppViewNavigatorOpenOptions, dH as MindooDBAppViewNavigatorPageOptions, dI as MindooDBAppViewNavigatorPageResult, dJ as MindooDBAppViewNavigatorRangeQuery, dK as MindooDBAppViewNavigatorSelectionState, dL as MindooDBAppViewUpdateStats, dM as MindooDBAppViewport, dN as MindooDBAppWellKnownDragType, dO as MindooDBAppWritableAttachmentStream, dP as mindooDBAppAcceptMatchesType, dQ as mindooDBAppComponentFieldsMatch, dR as resolveMindooDBAppDefinitionUrl, dS as resolveMindooDBAppListingAssetUrl, dT as resolveMindooDBAppLocalizedText, dU as validateMindooDBAppAccepts, dV as validateMindooDBAppComponents, dW as validateMindooDBAppDefinition } from './types-7oOzrSr5.js';
3
3
  export { M as MINDOODB_APP_BUNDLE_ARCHIVE_FILE_NAME, a as MINDOODB_APP_BUNDLE_MANIFEST_FILE_NAME, b as MINDOODB_APP_BUNDLE_MANIFEST_FORMAT, c as MINDOODB_APP_BUNDLE_MANIFEST_VERSION, d as MindooDBAppBundleArchive, e as MindooDBAppBundleFileEntry, f as MindooDBAppBundleHash, g as MindooDBAppBundleManifest, h as MindooDBAppBundleManifestValidation, i as buildMindooDBAppBundleContentHashInput, j as isMindooDBAppBundleHash, n as normalizeMindooDBAppBundlePath, v as validateMindooDBAppBundleManifest } from './appBundleManifest-B0xfpaXG.js';
4
4
  import { MindooDBAppBooleanExpression } from 'mindoodb-view-language';
5
5
  export { MindooDBAppBooleanExpression, MindooDBAppExpression, MindooDBAppFilterDefinition, MindooDBAppViewCategoryChildrenPageRequest, MindooDBAppViewColumn, MindooDBAppViewColumnRole, MindooDBAppViewDefinition, MindooDBAppViewExpansionState, MindooDBAppViewExpressionBase, MindooDBAppViewExpressionDatePart, MindooDBAppViewExpressionOperation, MindooDBAppViewFieldExpression, MindooDBAppViewIfExpression, MindooDBAppViewLetExpression, MindooDBAppViewLiteralExpression, MindooDBAppViewLookupByPath, MindooDBAppViewOperationExpression, MindooDBAppViewOriginExpression, MindooDBAppViewPageRequest, MindooDBAppViewPageResult, MindooDBAppViewRow, MindooDBAppViewSortDirection, MindooDBAppViewTotalMode, MindooDBAppViewValueExpressionRef, MindooDBAppViewVariableExpression, createViewLanguage } from 'mindoodb-view-language';
@@ -206,7 +206,9 @@ declare function createMindooDBAppBridge(): MindooDBAppBridge;
206
206
  * Only descriptors cross the bridge. `execute` stays in the app and runs when
207
207
  * Haven forwards an agent's call; the outcome goes back as one `agent-result`
208
208
  * message per call. A tool that throws {@link MindooDBAppAgentToolError}
209
- * reports its code; any other exception becomes `FAILED`.
209
+ * reports its code; any other exception becomes `FAILED`. Placeholder values
210
+ * agents send for optional fields are removed first ({@link normalizeAgentToolInput}),
211
+ * unless the tool sets `keepEmptyInput`.
210
212
  *
211
213
  * @module agentTools
212
214
  */
@@ -218,6 +220,30 @@ declare class MindooDBAppAgentToolError extends Error {
218
220
  constructor(code: MindooDBAppAgentToolErrorCode, message: string, requiredAction?: string);
219
221
  }
220
222
 
223
+ /**
224
+ * Placeholder values some agent clients send for optional fields.
225
+ *
226
+ * Several agents (Goose, for one) fill every optional property of a tool's
227
+ * input schema: `""` for strings, `[]` for arrays, an object of such
228
+ * placeholders for objects. A tool that reads "present" as "chosen" then
229
+ * rejects the call ("pass only one of …") or acts on an empty id. Before a
230
+ * call reaches `execute`, the SDK removes these placeholders from optional
231
+ * properties, guided by the schema, so tools see the input the agent meant.
232
+ *
233
+ * Only values that cannot carry a choice are removed: `null`, blank strings,
234
+ * empty arrays and objects left empty after their own placeholders are gone.
235
+ * Numbers and booleans stay, since `0` and `false` are real values; tools
236
+ * decide whether a zero means "not set" for them. Required properties and
237
+ * properties the schema does not declare are kept as sent.
238
+ *
239
+ * @module agentInput
240
+ */
241
+ /**
242
+ * Returns `input` without the placeholder values agents send for optional
243
+ * properties of `schema` (see the module comment). Does not change `input`.
244
+ */
245
+ declare function normalizeAgentToolInput(input: Record<string, unknown>, schema: Record<string, unknown>): Record<string, unknown>;
246
+
221
247
  /**
222
248
  * A reference tool for an app's edit language ("ops_guide"), so the edit tools
223
249
  * themselves can keep short descriptions.
@@ -697,4 +723,4 @@ declare function inheritDocumentEncryption(parent: Pick<MindooDBAppDocument, "de
697
723
  */
698
724
  declare function watchWordChunks(database: MindooDBAppDatabase, parentId: string, listener: (docIds: string[]) => void): Promise<() => Promise<void>>;
699
725
 
700
- export { type CreateMindooDBRichTextHandleOptions, type CreateMindooDBTextBufferOptions, DEFAULT_DRAG_LONG_PRESS_MS, DEFAULT_DRAG_POINTER_THRESHOLD_PX, DEFAULT_HAVEN_HOST_SHORTCUTS, DEFAULT_HAVEN_URL, type HavenAppLandingPage, type HavenStorageShimHandle, type InstallHavenStorageShimOptions, type ListingBlock, type ListingInline, MINDOODB_APP_HOSTING_QUERY_PARAM, MINDOODB_APP_LAUNCH_ID_QUERY_PARAM, MINDOODB_APP_MAX_DRAG_PAYLOAD_BYTES, MINDOODB_APP_MAX_DRAG_PREVIEW_BYTES, MINDOODB_APP_MAX_DRAG_PREVIEW_EDGE, MINDOODB_APP_MAX_DRAG_TYPES, MINDOODB_APP_VALUE_TAG, MINDOODB_CUSTOM_DOCUMENT_ID_PATTERN, MINDOODB_DOCUMENT_ID_PREFIX_PATTERN, MINIMAL_DRAG_PREVIEW_PNG, type MindooDBAppAgentGuideField, type MindooDBAppAgentGuideGroup, type MindooDBAppAgentGuideOp, type MindooDBAppAgentGuideOptions, MindooDBAppAgentTool, MindooDBAppAgentToolError, MindooDBAppAgentToolErrorCode, type MindooDBAppAtomicValue, MindooDBAppAttachmentPreviewMode, MindooDBAppBridge, type MindooDBAppCounterValue, MindooDBAppCreateDocumentInput, MindooDBAppDatabase, MindooDBAppDefinition, MindooDBAppDocument, MindooDBAppDragBindSourceOptions, MindooDBAppDragInputError, MindooDBAppDragPreview, MindooDBAppDragStartInput, MindooDBAppDragStartResult, MindooDBAppHostShortcutAction, MindooDBAppHostShortcutBinding, MindooDBAppHostingMode, MindooDBAppRichTextSnapshot, MindooDBAppRichTextSpan, type MindooDBAppTimestampValue, type MindooDBAppTypedValue, MindooDBAppValue, MindooDBRichTextHandle, type MindooDBRichTextHandleChangeListener, type MindooDBRichTextHandleFlushResult, MindooDBTextBuffer, type MindooDBTextBufferFlushResult, type RenderHavenAppLandingPageOptions, abbreviateCanonicalName, agentGuideExamples, agentGuideSignatureIndex, applyHostedDocumentOverscrollContain, assertValidMindooDBCreateIds, bindDragSource, buildHavenAppInstallUrl, canPreviewAttachment, createAgentGuideTool, createMindooDBAppBridge, createMindooDBRichTextHandle, createMindooDBTextBuffer, expandAbbreviatedName, inheritDocumentEncryption, installHavenStorageShim, installHostShortcutCapture, isHostShortcutAction, isHostedBundleRuntime, isLaunchedByHaven, isMindooDBAppDragType, isValidMindooDBDocumentId, listingMarkdownToPlainText, matchHostShortcut, mindooDBDocumentId, normalizeDragAccepts, normalizeDragPointerInput, normalizeDragStartInput, parseListingMarkdown, queryDocuments, readMindooDBAppHostingMode, readMindooDBAppLaunchId, releaseMindooDBAppBridgeSessions, renderAgentGuideGroup, renderHavenAppLandingPage, resolveCurrentHavenAppUrl, sanitizeHostShortcutBindings, sanitizeListingHref, snapshotElementToPng, watchWordChunks };
726
+ export { type CreateMindooDBRichTextHandleOptions, type CreateMindooDBTextBufferOptions, DEFAULT_DRAG_LONG_PRESS_MS, DEFAULT_DRAG_POINTER_THRESHOLD_PX, DEFAULT_HAVEN_HOST_SHORTCUTS, DEFAULT_HAVEN_URL, type HavenAppLandingPage, type HavenStorageShimHandle, type InstallHavenStorageShimOptions, type ListingBlock, type ListingInline, MINDOODB_APP_HOSTING_QUERY_PARAM, MINDOODB_APP_LAUNCH_ID_QUERY_PARAM, MINDOODB_APP_MAX_DRAG_PAYLOAD_BYTES, MINDOODB_APP_MAX_DRAG_PREVIEW_BYTES, MINDOODB_APP_MAX_DRAG_PREVIEW_EDGE, MINDOODB_APP_MAX_DRAG_TYPES, MINDOODB_APP_VALUE_TAG, MINDOODB_CUSTOM_DOCUMENT_ID_PATTERN, MINDOODB_DOCUMENT_ID_PREFIX_PATTERN, MINIMAL_DRAG_PREVIEW_PNG, type MindooDBAppAgentGuideField, type MindooDBAppAgentGuideGroup, type MindooDBAppAgentGuideOp, type MindooDBAppAgentGuideOptions, MindooDBAppAgentTool, MindooDBAppAgentToolError, MindooDBAppAgentToolErrorCode, type MindooDBAppAtomicValue, MindooDBAppAttachmentPreviewMode, MindooDBAppBridge, type MindooDBAppCounterValue, MindooDBAppCreateDocumentInput, MindooDBAppDatabase, MindooDBAppDefinition, MindooDBAppDocument, MindooDBAppDragBindSourceOptions, MindooDBAppDragInputError, MindooDBAppDragPreview, MindooDBAppDragStartInput, MindooDBAppDragStartResult, MindooDBAppHostShortcutAction, MindooDBAppHostShortcutBinding, MindooDBAppHostingMode, MindooDBAppRichTextSnapshot, MindooDBAppRichTextSpan, type MindooDBAppTimestampValue, type MindooDBAppTypedValue, MindooDBAppValue, MindooDBRichTextHandle, type MindooDBRichTextHandleChangeListener, type MindooDBRichTextHandleFlushResult, MindooDBTextBuffer, type MindooDBTextBufferFlushResult, type RenderHavenAppLandingPageOptions, abbreviateCanonicalName, agentGuideExamples, agentGuideSignatureIndex, applyHostedDocumentOverscrollContain, assertValidMindooDBCreateIds, bindDragSource, buildHavenAppInstallUrl, canPreviewAttachment, createAgentGuideTool, createMindooDBAppBridge, createMindooDBRichTextHandle, createMindooDBTextBuffer, expandAbbreviatedName, inheritDocumentEncryption, installHavenStorageShim, installHostShortcutCapture, isHostShortcutAction, isHostedBundleRuntime, isLaunchedByHaven, isMindooDBAppDragType, isValidMindooDBDocumentId, listingMarkdownToPlainText, matchHostShortcut, mindooDBDocumentId, normalizeAgentToolInput, normalizeDragAccepts, normalizeDragPointerInput, normalizeDragStartInput, parseListingMarkdown, queryDocuments, readMindooDBAppHostingMode, readMindooDBAppLaunchId, releaseMindooDBAppBridgeSessions, renderAgentGuideGroup, renderHavenAppLandingPage, resolveCurrentHavenAppUrl, sanitizeHostShortcutBindings, sanitizeListingHref, snapshotElementToPng, watchWordChunks };
package/dist/index.js CHANGED
@@ -36,6 +36,7 @@ import {
36
36
  mindooDBAppAcceptMatchesType,
37
37
  mindooDBAppComponentFieldsMatch,
38
38
  mindooDBDocumentId,
39
+ normalizeAgentToolInput,
39
40
  normalizeDragAccepts,
40
41
  normalizeDragPointerInput,
41
42
  normalizeDragStartInput,
@@ -48,7 +49,7 @@ import {
48
49
  validateMindooDBAppAccepts,
49
50
  validateMindooDBAppComponents,
50
51
  validateMindooDBAppDefinition
51
- } from "./chunk-CPLTKZS3.js";
52
+ } from "./chunk-P7SOHCEQ.js";
52
53
  import {
53
54
  MINDOODB_APP_BUNDLE_ARCHIVE_FILE_NAME,
54
55
  MINDOODB_APP_BUNDLE_MANIFEST_FILE_NAME,
@@ -1426,6 +1427,7 @@ export {
1426
1427
  mindooDBAppAcceptMatchesType,
1427
1428
  mindooDBAppComponentFieldsMatch,
1428
1429
  mindooDBDocumentId,
1430
+ normalizeAgentToolInput,
1429
1431
  normalizeDragAccepts,
1430
1432
  normalizeDragPointerInput,
1431
1433
  normalizeDragStartInput,
@@ -1,4 +1,4 @@
1
- import { aD as MindooDBAppComponentInfo, bC as MindooDBAppEmbedRect, bv as MindooDBAppEmbedAgentTools, bE as MindooDBAppEmbeddingLookupOptions, bF as MindooDBAppEmbeddingLookupResult, bt as MindooDBAppEmbedAccessPair, J as MindooDBAppAgentToolDescriptor, f as MindooDBAppAgentToolErrorCode, X as MindooDBAppBridgeAgentResultMessage, W as MindooDBAppBridgeAgentInvokeMessage, a_ as MindooDBAppCreateViewNavigatorInput, dE as MindooDBAppViewNavigator, ag as MindooDBAppBridgeRpcRequest, bQ as MindooDBAppHostTheme, ay as MindooDBAppCapability, dz as MindooDBAppUpdateDocumentInput, m as MindooDBAppDocument, k as MindooDBAppDefinition, L as MindooDBAppAttachmentApi, e as MindooDBAppBridge, dd as MindooDBAppSession, cz as MindooDBAppProposeAppInput, dM as MindooDBAppViewport, dy as MindooDBAppUiPreferences, cF as MindooDBAppQueryResult, dL as MindooDBAppViewUpdateStats, ab as MindooDBAppBridgePortMessage, a$ as MindooDBAppDatabaseInfo, cv as MindooDBAppPdfSignInput, bs as MindooDBAppEmbedAccessInput, bx as MindooDBAppEmbedCloseReason, a6 as MindooDBAppBridgeErrorPayload, c9 as MindooDBAppLaunchContext, b8 as MindooDBAppDocumentApi, dG as MindooDBAppViewNavigatorOpenOptions, bR as MindooDBAppIdentityApi, du as MindooDBAppTimestampApi, b6 as MindooDBAppDirectoryApi, bN as MindooDBAppFulltextSetup, bM as MindooDBAppExtractionSetup, dl as MindooDBAppSummarySetup, cA as MindooDBAppProposeAppResult, b$ as MindooDBAppIncomingSource, c as MindooDBAppDragStartResult, bp as MindooDBAppDragProfile, b_ as MindooDBAppIncomingResult, cL as MindooDBAppReminder } from '../types-ERxyAse_.js';
1
+ import { aD as MindooDBAppComponentInfo, bC as MindooDBAppEmbedRect, bv as MindooDBAppEmbedAgentTools, bE as MindooDBAppEmbeddingLookupOptions, bF as MindooDBAppEmbeddingLookupResult, bt as MindooDBAppEmbedAccessPair, J as MindooDBAppAgentToolDescriptor, f as MindooDBAppAgentToolErrorCode, X as MindooDBAppBridgeAgentResultMessage, W as MindooDBAppBridgeAgentInvokeMessage, a_ as MindooDBAppCreateViewNavigatorInput, dE as MindooDBAppViewNavigator, ag as MindooDBAppBridgeRpcRequest, bQ as MindooDBAppHostTheme, ay as MindooDBAppCapability, dz as MindooDBAppUpdateDocumentInput, m as MindooDBAppDocument, k as MindooDBAppDefinition, L as MindooDBAppAttachmentApi, e as MindooDBAppBridge, dd as MindooDBAppSession, cz as MindooDBAppProposeAppInput, dM as MindooDBAppViewport, dy as MindooDBAppUiPreferences, cF as MindooDBAppQueryResult, dL as MindooDBAppViewUpdateStats, ab as MindooDBAppBridgePortMessage, a$ as MindooDBAppDatabaseInfo, cv as MindooDBAppPdfSignInput, bs as MindooDBAppEmbedAccessInput, bx as MindooDBAppEmbedCloseReason, a6 as MindooDBAppBridgeErrorPayload, c9 as MindooDBAppLaunchContext, b8 as MindooDBAppDocumentApi, dG as MindooDBAppViewNavigatorOpenOptions, bR as MindooDBAppIdentityApi, du as MindooDBAppTimestampApi, b6 as MindooDBAppDirectoryApi, bN as MindooDBAppFulltextSetup, bM as MindooDBAppExtractionSetup, dl as MindooDBAppSummarySetup, cA as MindooDBAppProposeAppResult, b$ as MindooDBAppIncomingSource, c as MindooDBAppDragStartResult, bp as MindooDBAppDragProfile, b_ as MindooDBAppIncomingResult, cL as MindooDBAppReminder } from '../types-7oOzrSr5.js';
2
2
  import * as mindoodb from 'mindoodb';
3
3
  import 'mindoodb-view-language';
4
4
 
@@ -4,7 +4,7 @@ import {
4
4
  mindooDBAppComponentFieldsMatch,
5
5
  pageUsers,
6
6
  releaseMindooDBAppBridgeSessions
7
- } from "../chunk-CPLTKZS3.js";
7
+ } from "../chunk-P7SOHCEQ.js";
8
8
 
9
9
  // src/testing/index.ts
10
10
  import * as Automerge from "@automerge/automerge";
@@ -2261,7 +2261,15 @@ Allow?`),
2261
2261
  const link = document.createElement("a");
2262
2262
  link.textContent = name;
2263
2263
  link.download = name;
2264
- link.href = URL.createObjectURL(new Blob([data.slice().buffer], { type: mimeType }));
2264
+ link.href = "#";
2265
+ link.addEventListener("click", () => {
2266
+ const url2 = URL.createObjectURL(new Blob([data.slice().buffer], { type: mimeType }));
2267
+ link.href = url2;
2268
+ setTimeout(() => {
2269
+ URL.revokeObjectURL(url2);
2270
+ link.href = "#";
2271
+ }, 0);
2272
+ });
2265
2273
  return link;
2266
2274
  }
2267
2275
  const openCalls = /* @__PURE__ */ new Set();
@@ -2784,6 +2792,7 @@ function createDefaultLaunchContext(patch) {
2784
2792
  geolocation: false,
2785
2793
  clipboardWrite: false,
2786
2794
  motion: false,
2795
+ localFonts: false,
2787
2796
  webRtc: false,
2788
2797
  workers: false
2789
2798
  },
@@ -4697,6 +4706,7 @@ function createDatabaseHandle(definition, peers, directoryUsers = () => [], loca
4697
4706
  );
4698
4707
  persistMockAutomergeDocument(document2, mergedDoc);
4699
4708
  document2.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
4709
+ notifyLiveQueries();
4700
4710
  const mergedHeads = document2.heads ? [...document2.heads] : [];
4701
4711
  let changesSince;
4702
4712
  if (patch.replicaHeads?.length) {
@@ -93,6 +93,13 @@ interface MindooDBAppDefinition {
93
93
  * read the compass. iOS still asks the user (`DeviceOrientationEvent.requestPermission`).
94
94
  */
95
95
  allowMotion?: boolean;
96
+ /**
97
+ * The user's installed fonts (Permissions-Policy `local-fonts`, `window.queryLocalFonts`),
98
+ * e.g. to show documents in their real fonts. The browser still asks the user once.
99
+ * Not needed for Haven: it delegates `local-fonts` to every app frame; only hosts that
100
+ * gate it per app read this field.
101
+ */
102
+ allowLocalFonts?: boolean;
96
103
  allowWebRtc?: boolean;
97
104
  allowWorkers?: boolean;
98
105
  /**
@@ -455,6 +462,12 @@ interface MindooDBAppBrowserFeatures {
455
462
  * iOS still asks the user. Definition field `allowMotion`.
456
463
  */
457
464
  motion: boolean;
465
+ /**
466
+ * `window.queryLocalFonts` (the user's installed fonts). The browser still asks the
467
+ * user once. Haven allows it for every app; definition field `allowLocalFonts` only
468
+ * matters for hosts that gate it per app. Absent from hosts older than this field.
469
+ */
470
+ localFonts?: boolean;
458
471
  /** `RTCPeerConnection`. Blocked only for hosted apps. Definition field `allowWebRtc`. */
459
472
  webRtc: boolean;
460
473
  /** `new Worker`, shared and service workers. Blocked only for hosted apps. Definition field `allowWorkers`. */
@@ -1510,6 +1523,13 @@ interface MindooDBAppAgentToolDescriptor {
1510
1523
  /** One agent tool an app offers. `execute` runs inside the app; its result must be JSON. */
1511
1524
  interface MindooDBAppAgentTool extends MindooDBAppAgentToolDescriptor {
1512
1525
  execute(input: Record<string, unknown>): Promise<unknown>;
1526
+ /**
1527
+ * Pass blank strings, empty arrays and empty objects in optional fields through
1528
+ * to `execute`. By default the SDK drops them, because some agents send them for
1529
+ * every optional field they do not mean to set. Set it when such a value is a
1530
+ * real choice for this tool (say, `""` to clear a field).
1531
+ */
1532
+ keepEmptyInput?: boolean;
1513
1533
  }
1514
1534
  /** Haven's answer to {@link MindooDBAppAgentApi.registerTools}. */
1515
1535
  interface MindooDBAppAgentRegistration {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mindoodb-app-sdk",
3
- "version": "0.0.69",
3
+ "version": "0.0.70",
4
4
  "engines": {
5
5
  "node": ">=22.13.0"
6
6
  },
@@ -45,7 +45,7 @@
45
45
  },
46
46
  "peerDependencies": {
47
47
  "@automerge/automerge": "^3.3.2",
48
- "mindoodb": ">=0.0.75"
48
+ "mindoodb": ">=0.0.76"
49
49
  },
50
50
  "peerDependenciesMeta": {
51
51
  "@automerge/automerge": {
@@ -57,7 +57,7 @@
57
57
  },
58
58
  "devDependencies": {
59
59
  "@automerge/automerge": "^3.5.0",
60
- "mindoodb": "^0.0.75",
60
+ "mindoodb": "^0.0.76",
61
61
  "@types/node": "25.5.0",
62
62
  "jsdom": "^29.0.1",
63
63
  "tsup": "^8.5.1",