@bendyline/docblocks 2.7.14 → 2.7.16

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.
@@ -14,7 +14,7 @@ This notice is included in the published npm tarball. Transitive packages instal
14
14
 
15
15
  | Package | Version | License | Source |
16
16
  | --- | --- | --- | --- |
17
- | @bendyline/squisq | 2.13.13 | MIT | https://github.com/bendyline/squisq |
17
+ | @bendyline/squisq | 2.13.15 | MIT | https://github.com/bendyline/squisq |
18
18
  | @bendyline/squisq-graph | 2.13.1 | MIT | https://github.com/bendyline/squisq |
19
19
  | @types/debug | 4.1.12 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
20
20
  | @types/hast | 3.0.4 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
@@ -133,7 +133,7 @@ This notice is included in the published npm tarball. Transitive packages instal
133
133
  Package-local license, copying, and notice files are reproduced below. Where a published package omits its repository license, the reviewed aggregate or README identified in `Source files` supplies the retained material.
134
134
 
135
135
  ==============================================================================
136
- Components: @bendyline/squisq-graph@2.13.1, @bendyline/squisq@2.13.13
136
+ Components: @bendyline/squisq-graph@2.13.1, @bendyline/squisq@2.13.15
137
137
  Source files: node_modules/@bendyline/squisq-graph/LICENSE, node_modules/@bendyline/squisq/LICENSE
138
138
  ==============================================================================
139
139
  MIT License
@@ -189,7 +189,7 @@ repository license, the pinned upstream copy is vendored and identified below.
189
189
  COMPONENTS
190
190
 
191
191
  ==============================================================================
192
- Components: @bendyline/squisq@2.13.13
192
+ Components: @bendyline/squisq@2.13.15
193
193
  Source files: node_modules/@bendyline/squisq/NOTICE.md
194
194
  ==============================================================================
195
195
  # Third-Party Notices for @bendyline/squisq
@@ -220,7 +220,7 @@ third-party license texts for bundled code and data are shipped in
220
220
  THIRD_PARTY_LICENSES.txt.
221
221
 
222
222
  ==============================================================================
223
- Components: @bendyline/squisq@2.13.13
223
+ Components: @bendyline/squisq@2.13.15
224
224
  Source files: node_modules/@bendyline/squisq/THIRD_PARTY_LICENSES.txt
225
225
  ==============================================================================
226
226
  THIRD-PARTY LICENSES FOR @bendyline/squisq
@@ -322,6 +322,23 @@ interface AiModelInfo {
322
322
  readonly availability?: 'available' | 'unavailable' | 'download-required' | 'downloading';
323
323
  /** Native readiness explanation, suitable for the model picker. */
324
324
  readonly unavailableReason?: string;
325
+ /** How well this model does DocBlocks' own work, when the provider has measured it. */
326
+ readonly docbench?: AiModelDocbench;
327
+ }
328
+ /**
329
+ * A model's docbench result: a judged 0–100 score for DocBlocks' document
330
+ * work (review, writing, diagrams, slides, study aids, narration), measured
331
+ * per build and engine by the provider's published benchmark.
332
+ */
333
+ interface AiModelDocbench {
334
+ /** 0–100. */
335
+ readonly score: number;
336
+ /** Rank band within its round; models in one band are not reliably different. */
337
+ readonly band: number;
338
+ /** The docbench version that measured it; scores compare only within one. */
339
+ readonly version: string;
340
+ /** Per-family scores, 0–100, keyed by family id (`review`, `writing`, …). */
341
+ readonly families: Readonly<Record<string, number>>;
325
342
  }
326
343
  /**
327
344
  * How a downloadable model fits this device's memory, as the provider judged
@@ -349,6 +366,11 @@ interface AiModelDownloadInfo {
349
366
  readonly score: number | null;
350
367
  /** The provider's one recommendation for this device. */
351
368
  readonly recommended: boolean;
369
+ /**
370
+ * Measured quality on DocBlocks' work. When the provider has measured any
371
+ * candidate, `score` and `recommended` rank by it among models that fit.
372
+ */
373
+ readonly docbench?: AiModelDocbench;
352
374
  }
353
375
  type AiStatus = {
354
376
  readonly kind: 'unavailable';
@@ -1149,6 +1171,12 @@ interface ElectronWorkspaceInfo {
1149
1171
  * never default. Hosts that cannot tell omit it.
1150
1172
  */
1151
1173
  isDefault?: boolean;
1174
+ /**
1175
+ * True when the platform deletes this workspace's files along with the app
1176
+ * (Android's private "On this device" storage). The shell warns while it is
1177
+ * open and offers to move its documents into a folder that outlives the app.
1178
+ */
1179
+ deletedWithApp?: boolean;
1152
1180
  }
1153
1181
  /** Workspace-management operations exposed to the renderer. */
1154
1182
  interface DocBlocksHostWorkspacesAPI {
@@ -1171,6 +1199,11 @@ interface DocBlocksHostWorkspacesAPI {
1171
1199
  register(workspaceId: string): Promise<void>;
1172
1200
  /** Remove a workspace from the trusted whitelist. */
1173
1201
  unregister(id: string): Promise<void>;
1202
+ /**
1203
+ * Make a listed workspace the one the host opens by default from now on.
1204
+ * Hosts whose default is fixed omit it.
1205
+ */
1206
+ setDefault?(id: string): Promise<void>;
1174
1207
  }
1175
1208
  /** Shell operations — reveal in Finder/Explorer, open external URLs. */
1176
1209
  interface DocBlocksHostShellAPI {
@@ -1580,4 +1613,4 @@ declare function parseHostEnvironment(value: unknown): HostEnvironment | null;
1580
1613
  */
1581
1614
  declare function deriveHostCapabilities(host: unknown): HostCapabilities;
1582
1615
 
1583
- export { type AiReviewMode as $, AI_IMAGE_ASPECTS as A, type AiImageModelFit as B, type AiImagePhase as C, type AiImagePreferences as D, type AiImagePreferencesPatch as E, type AiImageProgress as F, type AiImageRequest as G, type AiImageResult as H, type AiImageStyle as I, type AiImageUnavailableReason as J, type AiImagesAPI as K, type AiKnowledgeAPI as L, type AiKnowledgeAction as M, type AiKnowledgeCatalog as N, type AiKnowledgePassage as O, type AiKnowledgeState as P, type AiModelDownloadInfo as Q, type AiModelFit as R, type AiModelInfo as S, type AiModelInstallEvent as T, type AiModelInstallHandle as U, type AiPreferences as V, type AiPreferencesPatch as W, type AiProgress as X, type AiProviderInfo as Y, type AiResponseFormat as Z, type AiResult as _, AI_IMAGE_FIT_VERDICTS as a, type SpeechPreferences as a$, type AiSearchHit as a0, type AiSearchQuery as a1, type AiSearchResult as a2, type AiSpeechAudio as a3, type AiStatus as a4, type AiSynthesizeRequest as a5, type AiTranscribeRequest as a6, type AiTranscript as a7, type AiUnavailableReason as a8, type DocBlocksHostAPI as a9, type GitRemoteInfo as aA, type GitRepoDetection as aB, type GitResult as aC, type GitRevision as aD, type GitStatus as aE, HOST_PLATFORMS as aF, HOST_SURFACE_KINDS as aG, type HostCapabilities as aH, type HostCloseReason as aI, type HostEnvironment as aJ, type HostExportTargetGrant as aK, type HostPinnedDocument as aL, type HostPlatform as aM, type HostPrepareCloseRequest as aN, type HostPrepareCloseResult as aO, type HostSurfaceKind as aP, type MenuCommand as aQ, NO_HOST_CAPABILITIES as aR, type OpenRequest as aS, type SpeechAudioChunk as aT, type SpeechCatalog as aU, type SpeechError as aV, type SpeechErrorCode as aW, type SpeechInstallEvent as aX, type SpeechInstallHandle as aY, type SpeechModelInfo as aZ, type SpeechModelKind as a_, type DocBlocksHostAiAPI as aa, type DocBlocksHostClipboardAPI as ab, type DocBlocksHostExportAPI as ac, type DocBlocksHostExternalAPI as ad, type DocBlocksHostFfmpegAPI as ae, type DocBlocksHostFsAPI as af, type DocBlocksHostGitAPI as ag, type DocBlocksHostLifecycleAPI as ah, type DocBlocksHostMenuAPI as ai, type DocBlocksHostShellAPI as aj, type DocBlocksHostSpeechAPI as ak, type DocBlocksHostUpdaterAPI as al, type DocBlocksHostWorkspacesAPI as am, type ElectronWorkspaceInfo as an, type ExternalBinaryCommitResult as ao, type GitBranchInfo as ap, type GitCapabilities as aq, type GitCloneHandle as ar, type GitCloneProgress as as, type GitError as at, type GitErrorCode as au, type GitFileAtRevision as av, type GitFileChange as aw, type GitFileStatusCode as ax, type GitLogEntry as ay, type GitLogOptions as az, AI_IMAGE_WIRE_LIMITS as b, type SpeechPreferencesPatch as b0, type SpeechProgress as b1, type SpeechReadiness as b2, type SpeechReadinessState as b3, type SpeechResult as b4, type SpeechSegment as b5, type SpeechStatus as b6, type SpeechSynthesisHandle as b7, type SpeechSynthesisSummary as b8, type SpeechSynthesizeEvent as b9, parseAiKnowledgeState as bA, parseHostEnvironment as bB, type SpeechSynthesizeRequest as ba, type SpeechTranscribeRequest as bb, type SpeechTranscript as bc, type SpeechVoiceInfo as bd, type SpeechWord as be, type SpeechWordTiming as bf, type UpdateCheckResult as bg, type UpdateInstallResult as bh, type UpdaterStatus as bi, deriveHostCapabilities as bj, isAiImageAspect as bk, isAiImageModelId as bl, knowledgeChatEvent as bm, knowledgeSources as bn, parseAiImageAccess as bo, parseAiImageEvent as bp, parseAiImageInstallEvent as bq, parseAiImageModel as br, parseAiImageModelList as bs, parseAiImagePreferences as bt, parseAiImagePreferencesPatch as bu, parseAiImageRequest as bv, parseAiImageResult as bw, parseAiImageStyle as bx, parseAiImageStyleList as by, parseAiKnowledgeAction as bz, type AiChatCompletion as c, type AiChatEvent as d, type AiChatEvidence as e, type AiChatHandle as f, type AiChatKnowledge as g, type AiChatKnowledgeSource as h, type AiChatMessage as i, type AiChatProgress as j, type AiChatPurpose as k, type AiChatRequest as l, type AiConnectionStep as m, type AiEnsureWorkspaceHandle as n, type AiError as o, type AiErrorCode as p, type AiFactCheck as q, type AiFactCheckRequest as r, type AiFactCheckSentence as s, type AiImageAccess as t, type AiImageAspect as u, type AiImageEvent as v, type AiImageHandle as w, type AiImageInstallEvent as x, type AiImageInstallHandle as y, type AiImageModel as z };
1616
+ export { type AiResult as $, AI_IMAGE_ASPECTS as A, type AiImageModelFit as B, type AiImagePhase as C, type AiImagePreferences as D, type AiImagePreferencesPatch as E, type AiImageProgress as F, type AiImageRequest as G, type AiImageResult as H, type AiImageStyle as I, type AiImageUnavailableReason as J, type AiImagesAPI as K, type AiKnowledgeAPI as L, type AiKnowledgeAction as M, type AiKnowledgeCatalog as N, type AiKnowledgePassage as O, type AiKnowledgeState as P, type AiModelDocbench as Q, type AiModelDownloadInfo as R, type AiModelFit as S, type AiModelInfo as T, type AiModelInstallEvent as U, type AiModelInstallHandle as V, type AiPreferences as W, type AiPreferencesPatch as X, type AiProgress as Y, type AiProviderInfo as Z, type AiResponseFormat as _, AI_IMAGE_FIT_VERDICTS as a, type SpeechModelKind as a$, type AiReviewMode as a0, type AiSearchHit as a1, type AiSearchQuery as a2, type AiSearchResult as a3, type AiSpeechAudio as a4, type AiStatus as a5, type AiSynthesizeRequest as a6, type AiTranscribeRequest as a7, type AiTranscript as a8, type AiUnavailableReason as a9, type GitLogOptions as aA, type GitRemoteInfo as aB, type GitRepoDetection as aC, type GitResult as aD, type GitRevision as aE, type GitStatus as aF, HOST_PLATFORMS as aG, HOST_SURFACE_KINDS as aH, type HostCapabilities as aI, type HostCloseReason as aJ, type HostEnvironment as aK, type HostExportTargetGrant as aL, type HostPinnedDocument as aM, type HostPlatform as aN, type HostPrepareCloseRequest as aO, type HostPrepareCloseResult as aP, type HostSurfaceKind as aQ, type MenuCommand as aR, NO_HOST_CAPABILITIES as aS, type OpenRequest as aT, type SpeechAudioChunk as aU, type SpeechCatalog as aV, type SpeechError as aW, type SpeechErrorCode as aX, type SpeechInstallEvent as aY, type SpeechInstallHandle as aZ, type SpeechModelInfo as a_, type DocBlocksHostAPI as aa, type DocBlocksHostAiAPI as ab, type DocBlocksHostClipboardAPI as ac, type DocBlocksHostExportAPI as ad, type DocBlocksHostExternalAPI as ae, type DocBlocksHostFfmpegAPI as af, type DocBlocksHostFsAPI as ag, type DocBlocksHostGitAPI as ah, type DocBlocksHostLifecycleAPI as ai, type DocBlocksHostMenuAPI as aj, type DocBlocksHostShellAPI as ak, type DocBlocksHostSpeechAPI as al, type DocBlocksHostUpdaterAPI as am, type DocBlocksHostWorkspacesAPI as an, type ElectronWorkspaceInfo as ao, type ExternalBinaryCommitResult as ap, type GitBranchInfo as aq, type GitCapabilities as ar, type GitCloneHandle as as, type GitCloneProgress as at, type GitError as au, type GitErrorCode as av, type GitFileAtRevision as aw, type GitFileChange as ax, type GitFileStatusCode as ay, type GitLogEntry as az, AI_IMAGE_WIRE_LIMITS as b, type SpeechPreferences as b0, type SpeechPreferencesPatch as b1, type SpeechProgress as b2, type SpeechReadiness as b3, type SpeechReadinessState as b4, type SpeechResult as b5, type SpeechSegment as b6, type SpeechStatus as b7, type SpeechSynthesisHandle as b8, type SpeechSynthesisSummary as b9, parseAiKnowledgeAction as bA, parseAiKnowledgeState as bB, parseHostEnvironment as bC, type SpeechSynthesizeEvent as ba, type SpeechSynthesizeRequest as bb, type SpeechTranscribeRequest as bc, type SpeechTranscript as bd, type SpeechVoiceInfo as be, type SpeechWord as bf, type SpeechWordTiming as bg, type UpdateCheckResult as bh, type UpdateInstallResult as bi, type UpdaterStatus as bj, deriveHostCapabilities as bk, isAiImageAspect as bl, isAiImageModelId as bm, knowledgeChatEvent as bn, knowledgeSources as bo, parseAiImageAccess as bp, parseAiImageEvent as bq, parseAiImageInstallEvent as br, parseAiImageModel as bs, parseAiImageModelList as bt, parseAiImagePreferences as bu, parseAiImagePreferencesPatch as bv, parseAiImageRequest as bw, parseAiImageResult as bx, parseAiImageStyle as by, parseAiImageStyleList as bz, type AiChatCompletion as c, type AiChatEvent as d, type AiChatEvidence as e, type AiChatHandle as f, type AiChatKnowledge as g, type AiChatKnowledgeSource as h, type AiChatMessage as i, type AiChatProgress as j, type AiChatPurpose as k, type AiChatRequest as l, type AiConnectionStep as m, type AiEnsureWorkspaceHandle as n, type AiError as o, type AiErrorCode as p, type AiFactCheck as q, type AiFactCheckRequest as r, type AiFactCheckSentence as s, type AiImageAccess as t, type AiImageAspect as u, type AiImageEvent as v, type AiImageHandle as w, type AiImageInstallEvent as x, type AiImageInstallHandle as y, type AiImageModel as z };
@@ -173,6 +173,8 @@ var AI_WIRE_LIMITS = Object.freeze({
173
173
  factCheckSentenceCharacters: 1e3,
174
174
  factCheckDetails: 16,
175
175
  modelEntries: 200,
176
+ /** docbench families per model; the v1 pack has six. */
177
+ docbenchFamilies: 16,
176
178
  contextWindowCeiling: 8e6,
177
179
  downloadBytesCeiling: Number.MAX_SAFE_INTEGER
178
180
  });
@@ -264,14 +266,41 @@ function parseAiProgress(value) {
264
266
  if (value.percent !== null && !isFiniteInRange(value.percent, 0, 100)) return null;
265
267
  return { phase: value.phase, message: value.message, percent: value.percent };
266
268
  }
269
+ function parseAiModelDocbench(value) {
270
+ if (!isRecord2(value) || !hasExactKeys(value, ["score", "band", "version", "families"])) {
271
+ return null;
272
+ }
273
+ if (!isFiniteInRange(value.score, 0, 100)) return null;
274
+ if (!isNonNegativeInteger(value.band, AI_WIRE_LIMITS.modelEntries) || value.band === 0) {
275
+ return null;
276
+ }
277
+ if (!isBoundedString(value.version, AI_WIRE_LIMITS.progressPhaseCharacters, 1)) return null;
278
+ if (!isRecord2(value.families)) return null;
279
+ const entries = Object.entries(value.families);
280
+ if (entries.length > AI_WIRE_LIMITS.docbenchFamilies) return null;
281
+ const families = {};
282
+ for (const [id, score] of entries) {
283
+ if (!isBoundedString(id, AI_WIRE_LIMITS.progressPhaseCharacters, 1)) return null;
284
+ if (!isFiniteInRange(score, 0, 100)) return null;
285
+ families[id] = score;
286
+ }
287
+ return { score: value.score, band: value.band, version: value.version, families };
288
+ }
289
+ function docbenchField(value) {
290
+ if (value.docbench === void 0) return {};
291
+ const docbench = parseAiModelDocbench(value.docbench);
292
+ return docbench ? { docbench } : null;
293
+ }
267
294
  function parseAiModelInfo(value) {
268
295
  if (!isRecord2(value)) return null;
269
296
  if (!hasKeysWithin(
270
297
  value,
271
298
  ["id", "label", "local", "contextWindow", "isDefault"],
272
- ["availability", "unavailableReason"]
299
+ ["availability", "unavailableReason", "docbench"]
273
300
  ))
274
301
  return null;
302
+ const docbench = docbenchField(value);
303
+ if (!docbench) return null;
275
304
  if (!isBoundedString(value.id, HOST_WIRE_LIMITS.identifierCharacters, 1)) return null;
276
305
  if (!isBoundedString(value.label, HOST_WIRE_LIMITS.labelCharacters, 1)) return null;
277
306
  if (typeof value.local !== "boolean") return null;
@@ -298,7 +327,8 @@ function parseAiModelInfo(value) {
298
327
  },
299
328
  ...value.unavailableReason === void 0 ? {} : {
300
329
  unavailableReason: value.unavailableReason
301
- }
330
+ },
331
+ ...docbench
302
332
  };
303
333
  }
304
334
  function parseAiModelInfoList(value) {
@@ -320,18 +350,15 @@ function parseAiModelFit(value) {
320
350
  }
321
351
  function parseAiModelDownloadInfo(value) {
322
352
  if (!isRecord2(value)) return null;
323
- if (!hasExactKeys(value, [
324
- "id",
325
- "label",
326
- "contextWindow",
327
- "downloadBytes",
328
- "state",
329
- "fit",
330
- "score",
331
- "recommended"
332
- ])) {
353
+ if (!hasKeysWithin(
354
+ value,
355
+ ["id", "label", "contextWindow", "downloadBytes", "state", "fit", "score", "recommended"],
356
+ ["docbench"]
357
+ )) {
333
358
  return null;
334
359
  }
360
+ const docbench = docbenchField(value);
361
+ if (!docbench) return null;
335
362
  const fit = value.fit === null ? null : parseAiModelFit(value.fit);
336
363
  if (value.fit !== null && !fit) return null;
337
364
  if (value.score !== null && !isNonNegativeInteger(value.score, 100)) return null;
@@ -353,7 +380,8 @@ function parseAiModelDownloadInfo(value) {
353
380
  state: value.state,
354
381
  fit,
355
382
  score: value.score,
356
- recommended: value.recommended
383
+ recommended: value.recommended,
384
+ ...docbench
357
385
  };
358
386
  }
359
387
  function parseAiModelDownloadInfoList(value) {
@@ -1678,6 +1706,62 @@ function parseAiImageInstallEvent(value, parse = parseAiImageModel) {
1678
1706
  return null;
1679
1707
  }
1680
1708
 
1709
+ // src/host/ai-transport.ts
1710
+ var LOCAL_ENGINE_MODEL = /^(?:mlx|llama-cpp|ollama|ds4):/u;
1711
+ function isLocalEngineModel(model) {
1712
+ return LOCAL_ENGINE_MODEL.test(model);
1713
+ }
1714
+ function buildChatCompletionBody(request, options = {}) {
1715
+ const maxTokens = request.maxTokens ?? (request.purpose === "write" && isLocalEngineModel(request.model) ? request.contextWindow : void 0);
1716
+ return {
1717
+ model: request.model,
1718
+ messages: [...request.messages],
1719
+ ...request.purpose === "write" ? {} : { reasoning_effort: "none" },
1720
+ ...request.temperature === void 0 ? {} : { temperature: request.temperature },
1721
+ ...maxTokens == null ? {} : { max_tokens: maxTokens },
1722
+ ...options.seed === void 0 ? {} : { seed: options.seed },
1723
+ ...request.responseFormat ? {
1724
+ response_format: {
1725
+ type: "json_schema",
1726
+ json_schema: {
1727
+ name: request.responseFormat.name,
1728
+ schema: { ...request.responseFormat.schema },
1729
+ strict: true
1730
+ }
1731
+ }
1732
+ } : {}
1733
+ };
1734
+ }
1735
+
1736
+ // src/host/ai-provider-models.ts
1737
+ function readRanking(value) {
1738
+ if (typeof value !== "object" || value === null) return null;
1739
+ const { score, recommended } = value;
1740
+ return {
1741
+ score: typeof score === "number" && Number.isInteger(score) && score >= 0 && score <= 100 ? score : null,
1742
+ recommended: recommended === true
1743
+ };
1744
+ }
1745
+ function providerModelRanking(entry) {
1746
+ return readRanking(entry.docbench_recommendation) ?? readRanking(entry.recommendation) ?? { score: null, recommended: false };
1747
+ }
1748
+ function providerModelDocbench(entry) {
1749
+ const value = entry.docbench;
1750
+ if (typeof value !== "object" || value === null) return void 0;
1751
+ const { score, band, version, families } = value;
1752
+ return parseAiModelDocbench({
1753
+ score,
1754
+ band,
1755
+ version,
1756
+ families: families === void 0 ? {} : families
1757
+ }) ?? void 0;
1758
+ }
1759
+ function sortModelDownloads(models) {
1760
+ return [...models].sort(
1761
+ (a, b) => Number(b.recommended) - Number(a.recommended) || (b.score ?? -1) - (a.score ?? -1)
1762
+ );
1763
+ }
1764
+
1681
1765
  // src/host/index.ts
1682
1766
  function rawHost() {
1683
1767
  if (typeof globalThis === "undefined") return null;
@@ -1720,6 +1804,7 @@ export {
1720
1804
  AI_WIRE_LIMITS,
1721
1805
  parseAiError,
1722
1806
  parseAiProgress,
1807
+ parseAiModelDocbench,
1723
1808
  parseAiModelInfo,
1724
1809
  parseAiModelInfoList,
1725
1810
  parseAiModelDownloadInfo,
@@ -1777,6 +1862,11 @@ export {
1777
1862
  parseAiImageResult,
1778
1863
  parseAiImageEvent,
1779
1864
  parseAiImageInstallEvent,
1865
+ isLocalEngineModel,
1866
+ buildChatCompletionBody,
1867
+ providerModelRanking,
1868
+ providerModelDocbench,
1869
+ sortModelDownloads,
1780
1870
  hasDocBlocksHost,
1781
1871
  getHostCapabilities,
1782
1872
  hostSupports,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  FILE_SYSTEM_TRANSFER_LIMITS,
3
3
  maybeGetDocBlocksHost
4
- } from "./chunk-OIBDXKQN.js";
4
+ } from "./chunk-OXEMTJRJ.js";
5
5
  import {
6
6
  parseFileSystemCapabilities
7
7
  } from "./chunk-245W57QP.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  HostFileSystemProviderV2
3
- } from "./chunk-P5VP6XMH.js";
3
+ } from "./chunk-WIC3ASFS.js";
4
4
  import {
5
5
  ELECTRON_FILE_SYSTEM_V2_CAPABILITIES,
6
6
  maybeGetDocBlocksHost
7
- } from "./chunk-OIBDXKQN.js";
7
+ } from "./chunk-OXEMTJRJ.js";
8
8
 
9
9
  // src/filesystem/electron-provider-v2.ts
10
10
  var ElectronFileSystemProviderV2 = class extends HostFileSystemProviderV2 {
@@ -4,7 +4,7 @@ export { isElectronHost } from '../host/index.js';
4
4
  import '../v2-pBdrFAlW.js';
5
5
  import '../workspace-path-CWVrcuPL.js';
6
6
  import '../filesystem-v2-CYPHqoIw.js';
7
- import '../capabilities-yyRj0hyP.js';
7
+ import '../capabilities-rfOUYj1Y.js';
8
8
 
9
9
  /** Compatibility entry point retaining the Electron backend's exact guarantees. */
10
10
  declare class ElectronFileSystemProviderV2 extends HostFileSystemProviderV2 {
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  ElectronFileSystemProvider,
3
3
  ElectronFileSystemProviderV2
4
- } from "../chunk-C6J65F5C.js";
5
- import "../chunk-P5VP6XMH.js";
4
+ } from "../chunk-XC7766WT.js";
5
+ import "../chunk-WIC3ASFS.js";
6
6
  import {
7
7
  isElectronHost
8
- } from "../chunk-OIBDXKQN.js";
8
+ } from "../chunk-OXEMTJRJ.js";
9
9
  import "../chunk-245W57QP.js";
10
10
  import "../chunk-V5SWLUZY.js";
11
11
  import "../chunk-73OOROXH.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  HostFileSystemProviderV2
3
- } from "../chunk-P5VP6XMH.js";
3
+ } from "../chunk-WIC3ASFS.js";
4
4
  import {
5
5
  ELECTRON_FILE_SYSTEM_V2_CAPABILITIES,
6
6
  maybeGetDocBlocksHost
7
- } from "../chunk-OIBDXKQN.js";
7
+ } from "../chunk-OXEMTJRJ.js";
8
8
  import "../chunk-245W57QP.js";
9
9
  import "../chunk-V5SWLUZY.js";
10
10
  import "../chunk-73OOROXH.js";
@@ -15,7 +15,7 @@ export { ElectronFileSystemProvider, ElectronFileSystemProviderV2 } from './elec
15
15
  export { isElectronHost } from '../host/index.js';
16
16
  import '../host-provider-v2-C2g9R17A.js';
17
17
  import '../filesystem-v2-CYPHqoIw.js';
18
- import '../capabilities-yyRj0hyP.js';
18
+ import '../capabilities-rfOUYj1Y.js';
19
19
 
20
20
  /** Immediate article/folder suggestions from an already bounded listing. */
21
21
  declare function suggestWikiArticles(files: readonly {
@@ -50,11 +50,11 @@ import "../chunk-3GSMJ4MQ.js";
50
50
  import {
51
51
  ElectronFileSystemProvider,
52
52
  ElectronFileSystemProviderV2
53
- } from "../chunk-C6J65F5C.js";
54
- import "../chunk-P5VP6XMH.js";
53
+ } from "../chunk-XC7766WT.js";
54
+ import "../chunk-WIC3ASFS.js";
55
55
  import {
56
56
  isElectronHost
57
- } from "../chunk-OIBDXKQN.js";
57
+ } from "../chunk-OXEMTJRJ.js";
58
58
  import "../chunk-245W57QP.js";
59
59
  import "../chunk-V5SWLUZY.js";
60
60
  import "../chunk-73OOROXH.js";
@@ -1,5 +1,5 @@
1
- import { d as AiChatEvent, g as AiChatKnowledge, j as AiChatProgress, l as AiChatRequest, o as AiError, q as AiFactCheck, r as AiFactCheckRequest, Q as AiModelDownloadInfo, S as AiModelInfo, T as AiModelInstallEvent, V as AiPreferences, W as AiPreferencesPatch, X as AiProgress, a4 as AiStatus, aT as SpeechAudioChunk, aU as SpeechCatalog, aV as SpeechError, aX as SpeechInstallEvent, aZ as SpeechModelInfo, a_ as SpeechModelKind, b4 as SpeechResult, a$ as SpeechPreferences, b0 as SpeechPreferencesPatch, b1 as SpeechProgress, b2 as SpeechReadiness, b6 as SpeechStatus, b8 as SpeechSynthesisSummary, b9 as SpeechSynthesizeEvent, ba as SpeechSynthesizeRequest, bb as SpeechTranscribeRequest, bc as SpeechTranscript, bd as SpeechVoiceInfo, aS as OpenRequest, aL as HostPinnedDocument, a9 as DocBlocksHostAPI, aH as HostCapabilities, aJ as HostEnvironment } from '../capabilities-yyRj0hyP.js';
2
- export { A as AI_IMAGE_ASPECTS, a as AI_IMAGE_FIT_VERDICTS, b as AI_IMAGE_WIRE_LIMITS, c as AiChatCompletion, e as AiChatEvidence, f as AiChatHandle, h as AiChatKnowledgeSource, i as AiChatMessage, k as AiChatPurpose, m as AiConnectionStep, n as AiEnsureWorkspaceHandle, p as AiErrorCode, s as AiFactCheckSentence, t as AiImageAccess, u as AiImageAspect, v as AiImageEvent, w as AiImageHandle, x as AiImageInstallEvent, y as AiImageInstallHandle, z as AiImageModel, B as AiImageModelFit, C as AiImagePhase, D as AiImagePreferences, E as AiImagePreferencesPatch, F as AiImageProgress, G as AiImageRequest, H as AiImageResult, I as AiImageStyle, J as AiImageUnavailableReason, K as AiImagesAPI, L as AiKnowledgeAPI, M as AiKnowledgeAction, N as AiKnowledgeCatalog, O as AiKnowledgePassage, P as AiKnowledgeState, R as AiModelFit, U as AiModelInstallHandle, Y as AiProviderInfo, Z as AiResponseFormat, _ as AiResult, $ as AiReviewMode, a0 as AiSearchHit, a1 as AiSearchQuery, a2 as AiSearchResult, a3 as AiSpeechAudio, a5 as AiSynthesizeRequest, a6 as AiTranscribeRequest, a7 as AiTranscript, a8 as AiUnavailableReason, aa as DocBlocksHostAiAPI, ab as DocBlocksHostClipboardAPI, ac as DocBlocksHostExportAPI, ad as DocBlocksHostExternalAPI, ae as DocBlocksHostFfmpegAPI, af as DocBlocksHostFsAPI, ag as DocBlocksHostGitAPI, ah as DocBlocksHostLifecycleAPI, ai as DocBlocksHostMenuAPI, aj as DocBlocksHostShellAPI, ak as DocBlocksHostSpeechAPI, al as DocBlocksHostUpdaterAPI, am as DocBlocksHostWorkspacesAPI, an as ElectronWorkspaceInfo, ao as ExternalBinaryCommitResult, ap as GitBranchInfo, aq as GitCapabilities, ar as GitCloneHandle, as as GitCloneProgress, at as GitError, au as GitErrorCode, av as GitFileAtRevision, aw as GitFileChange, ax as GitFileStatusCode, ay as GitLogEntry, az as GitLogOptions, aA as GitRemoteInfo, aB as GitRepoDetection, aC as GitResult, aD as GitRevision, aE as GitStatus, aF as HOST_PLATFORMS, aG as HOST_SURFACE_KINDS, aI as HostCloseReason, aK as HostExportTargetGrant, aM as HostPlatform, aN as HostPrepareCloseRequest, aO as HostPrepareCloseResult, aP as HostSurfaceKind, aQ as MenuCommand, aR as NO_HOST_CAPABILITIES, aW as SpeechErrorCode, aY as SpeechInstallHandle, b3 as SpeechReadinessState, b5 as SpeechSegment, b7 as SpeechSynthesisHandle, be as SpeechWord, bf as SpeechWordTiming, bg as UpdateCheckResult, bh as UpdateInstallResult, bi as UpdaterStatus, bj as deriveHostCapabilities, bk as isAiImageAspect, bl as isAiImageModelId, bm as knowledgeChatEvent, bn as knowledgeSources, bo as parseAiImageAccess, bp as parseAiImageEvent, bq as parseAiImageInstallEvent, br as parseAiImageModel, bs as parseAiImageModelList, bt as parseAiImagePreferences, bu as parseAiImagePreferencesPatch, bv as parseAiImageRequest, bw as parseAiImageResult, bx as parseAiImageStyle, by as parseAiImageStyleList, bz as parseAiKnowledgeAction, bA as parseAiKnowledgeState, bB as parseHostEnvironment } from '../capabilities-yyRj0hyP.js';
1
+ import { d as AiChatEvent, g as AiChatKnowledge, j as AiChatProgress, l as AiChatRequest, o as AiError, q as AiFactCheck, r as AiFactCheckRequest, Q as AiModelDocbench, R as AiModelDownloadInfo, T as AiModelInfo, U as AiModelInstallEvent, W as AiPreferences, X as AiPreferencesPatch, Y as AiProgress, a5 as AiStatus, aU as SpeechAudioChunk, aV as SpeechCatalog, aW as SpeechError, aY as SpeechInstallEvent, a_ as SpeechModelInfo, a$ as SpeechModelKind, b5 as SpeechResult, b0 as SpeechPreferences, b1 as SpeechPreferencesPatch, b2 as SpeechProgress, b3 as SpeechReadiness, b7 as SpeechStatus, b9 as SpeechSynthesisSummary, ba as SpeechSynthesizeEvent, bb as SpeechSynthesizeRequest, bc as SpeechTranscribeRequest, bd as SpeechTranscript, be as SpeechVoiceInfo, aT as OpenRequest, aM as HostPinnedDocument, k as AiChatPurpose, _ as AiResponseFormat, aa as DocBlocksHostAPI, aI as HostCapabilities, aK as HostEnvironment } from '../capabilities-rfOUYj1Y.js';
2
+ export { A as AI_IMAGE_ASPECTS, a as AI_IMAGE_FIT_VERDICTS, b as AI_IMAGE_WIRE_LIMITS, c as AiChatCompletion, e as AiChatEvidence, f as AiChatHandle, h as AiChatKnowledgeSource, i as AiChatMessage, m as AiConnectionStep, n as AiEnsureWorkspaceHandle, p as AiErrorCode, s as AiFactCheckSentence, t as AiImageAccess, u as AiImageAspect, v as AiImageEvent, w as AiImageHandle, x as AiImageInstallEvent, y as AiImageInstallHandle, z as AiImageModel, B as AiImageModelFit, C as AiImagePhase, D as AiImagePreferences, E as AiImagePreferencesPatch, F as AiImageProgress, G as AiImageRequest, H as AiImageResult, I as AiImageStyle, J as AiImageUnavailableReason, K as AiImagesAPI, L as AiKnowledgeAPI, M as AiKnowledgeAction, N as AiKnowledgeCatalog, O as AiKnowledgePassage, P as AiKnowledgeState, S as AiModelFit, V as AiModelInstallHandle, Z as AiProviderInfo, $ as AiResult, a0 as AiReviewMode, a1 as AiSearchHit, a2 as AiSearchQuery, a3 as AiSearchResult, a4 as AiSpeechAudio, a6 as AiSynthesizeRequest, a7 as AiTranscribeRequest, a8 as AiTranscript, a9 as AiUnavailableReason, ab as DocBlocksHostAiAPI, ac as DocBlocksHostClipboardAPI, ad as DocBlocksHostExportAPI, ae as DocBlocksHostExternalAPI, af as DocBlocksHostFfmpegAPI, ag as DocBlocksHostFsAPI, ah as DocBlocksHostGitAPI, ai as DocBlocksHostLifecycleAPI, aj as DocBlocksHostMenuAPI, ak as DocBlocksHostShellAPI, al as DocBlocksHostSpeechAPI, am as DocBlocksHostUpdaterAPI, an as DocBlocksHostWorkspacesAPI, ao as ElectronWorkspaceInfo, ap as ExternalBinaryCommitResult, aq as GitBranchInfo, ar as GitCapabilities, as as GitCloneHandle, at as GitCloneProgress, au as GitError, av as GitErrorCode, aw as GitFileAtRevision, ax as GitFileChange, ay as GitFileStatusCode, az as GitLogEntry, aA as GitLogOptions, aB as GitRemoteInfo, aC as GitRepoDetection, aD as GitResult, aE as GitRevision, aF as GitStatus, aG as HOST_PLATFORMS, aH as HOST_SURFACE_KINDS, aJ as HostCloseReason, aL as HostExportTargetGrant, aN as HostPlatform, aO as HostPrepareCloseRequest, aP as HostPrepareCloseResult, aQ as HostSurfaceKind, aR as MenuCommand, aS as NO_HOST_CAPABILITIES, aX as SpeechErrorCode, aZ as SpeechInstallHandle, b4 as SpeechReadinessState, b6 as SpeechSegment, b8 as SpeechSynthesisHandle, bf as SpeechWord, bg as SpeechWordTiming, bh as UpdateCheckResult, bi as UpdateInstallResult, bj as UpdaterStatus, bk as deriveHostCapabilities, bl as isAiImageAspect, bm as isAiImageModelId, bn as knowledgeChatEvent, bo as knowledgeSources, bp as parseAiImageAccess, bq as parseAiImageEvent, br as parseAiImageInstallEvent, bs as parseAiImageModel, bt as parseAiImageModelList, bu as parseAiImagePreferences, bv as parseAiImagePreferencesPatch, bw as parseAiImageRequest, bx as parseAiImageResult, by as parseAiImageStyle, bz as parseAiImageStyleList, bA as parseAiKnowledgeAction, bB as parseAiKnowledgeState, bC as parseHostEnvironment } from '../capabilities-rfOUYj1Y.js';
3
3
  export { D as DocBlocksHostFsV2API, E as ELECTRON_FILE_SYSTEM_V2_CAPABILITIES, F as FILE_SYSTEM_TRANSFER_LIMITS, H as HostFileSystemReadTransfer, a as HostFileSystemV2OpenRequest, b as HostFileSystemV2Result, c as HostFileSystemV2WatchMessage } from '../filesystem-v2-CYPHqoIw.js';
4
4
  import '../types-BIaQ_gYW.js';
5
5
  import '../v2-pBdrFAlW.js';
@@ -46,11 +46,15 @@ declare const AI_WIRE_LIMITS: Readonly<{
46
46
  factCheckSentenceCharacters: 1000;
47
47
  factCheckDetails: 16;
48
48
  modelEntries: 200;
49
+ /** docbench families per model; the v1 pack has six. */
50
+ docbenchFamilies: 16;
49
51
  contextWindowCeiling: 8000000;
50
52
  downloadBytesCeiling: number;
51
53
  }>;
52
54
  declare function parseAiError(value: unknown): AiError | null;
53
55
  declare function parseAiProgress(value: unknown): AiProgress | null;
56
+ /** A measured docbench result: bounded scores, a positive band, and a version. */
57
+ declare function parseAiModelDocbench(value: unknown): AiModelDocbench | null;
54
58
  declare function parseAiModelInfo(value: unknown): AiModelInfo | null;
55
59
  declare function parseAiModelInfoList(value: unknown): AiModelInfo[] | null;
56
60
  declare function parseAiModelDownloadInfo(value: unknown): AiModelDownloadInfo | null;
@@ -174,6 +178,109 @@ declare function parseOpenExternalUrl(value: unknown): string | null;
174
178
  /** True only for the packaged renderer origin or the exact configured dev origin. */
175
179
  declare function isTrustedRendererUrl(value: unknown, developmentOrigin?: string): boolean;
176
180
 
181
+ /**
182
+ * The OpenAI-compatible chat body DocBlocks sends for one {@link AiChatRequest}.
183
+ *
184
+ * The desktop host sends it to Gezel, and the docbench task pack sends it to
185
+ * the model under test, so a benchmark measures exactly the request a person's
186
+ * editor makes. The rules here are product policy, each evaluated against real
187
+ * models before it was adopted:
188
+ *
189
+ * - Only `write` may reason. Every other purpose sends `reasoning_effort:
190
+ * 'none'`: a thinking model asked for a quiz or a review spent its whole
191
+ * explicit cap reasoning and returned no JSON.
192
+ * - A local writing request without its own cap may use the whole context
193
+ * window, so a long draft is not cut short by an engine default.
194
+ * - Structured output is asked for only when the caller gave a schema.
195
+ *
196
+ * Streaming options and knowledge passages are the transport's business, not
197
+ * the body's; callers add them.
198
+ */
199
+
200
+ /** A chat message as DocBlocks writes one; a transport may carry a wider message type. */
201
+ interface ChatCompletionMessage {
202
+ readonly role: 'system' | 'user' | 'assistant';
203
+ readonly content: string;
204
+ }
205
+ interface ChatCompletionBodyInput<Message = ChatCompletionMessage> {
206
+ /** Qualified provider model id, such as `llama-cpp:gemma4-e4b-q4`. */
207
+ readonly model: string;
208
+ /** Sent as given: the body copies the list, never the messages. */
209
+ readonly messages: readonly Message[];
210
+ readonly purpose?: AiChatPurpose;
211
+ readonly temperature?: number;
212
+ readonly maxTokens?: number;
213
+ readonly responseFormat?: AiResponseFormat;
214
+ /** The model's context window, used as a local writing request's default cap. */
215
+ readonly contextWindow?: number | null;
216
+ }
217
+ interface ChatCompletionBodyOptions {
218
+ /**
219
+ * A sampling seed. The product never sends one; a benchmark does, so a
220
+ * repeated trial is a different sample and a re-run is the same one.
221
+ */
222
+ readonly seed?: number;
223
+ }
224
+ interface ChatCompletionBody<Message = ChatCompletionMessage> {
225
+ model: string;
226
+ messages: Message[];
227
+ reasoning_effort?: 'none';
228
+ temperature?: number;
229
+ max_tokens?: number;
230
+ seed?: number;
231
+ response_format?: {
232
+ type: 'json_schema';
233
+ json_schema: {
234
+ name: string;
235
+ schema: Record<string, unknown>;
236
+ strict: true;
237
+ };
238
+ };
239
+ }
240
+ /** Whether a qualified model id names an on-device engine. */
241
+ declare function isLocalEngineModel(model: string): boolean;
242
+ /** The request body for `request`, without streaming options. */
243
+ declare function buildChatCompletionBody<Message = ChatCompletionMessage>(request: ChatCompletionBodyInput<Message>, options?: ChatCompletionBodyOptions): ChatCompletionBody<Message>;
244
+
245
+ /**
246
+ * Reading Gezel's model ratings into the AI wire types.
247
+ *
248
+ * Every host that lists Gezel models for Settings (the desktop connector, the
249
+ * mobile host) reads the same three things from each entry: Gezel's general
250
+ * `recommendation`, its `docbench_recommendation` (the same question ranked
251
+ * by measured quality on DocBlocks' own work), and the `docbench` result.
252
+ * They read them here, so the two surfaces cannot disagree about which
253
+ * ranking wins or what a malformed field becomes.
254
+ */
255
+
256
+ /** How a provider rates one model for this device. */
257
+ interface ProviderModelRanking {
258
+ /** 0–100, or null when the provider sent no usable rating. */
259
+ readonly score: number | null;
260
+ readonly recommended: boolean;
261
+ }
262
+ /** The rating fields a Gezel model entry may carry; unknown until read. */
263
+ interface ProviderModelRatings {
264
+ readonly recommendation?: unknown;
265
+ readonly docbench_recommendation?: unknown;
266
+ readonly docbench?: unknown;
267
+ }
268
+ /**
269
+ * Gezel's rating of a model for this device. The docbench ranking wins when
270
+ * Gezel sent one (it does once anything in the catalog is measured): the
271
+ * general ranking weighs the curated agent-work score, and DocBlocks never
272
+ * runs an agent.
273
+ */
274
+ declare function providerModelRanking(entry: ProviderModelRatings): ProviderModelRanking;
275
+ /**
276
+ * The model's docbench result, bounded as it must be to cross the host
277
+ * boundary; undefined when absent or malformed. A result without family
278
+ * scores still reads, with none.
279
+ */
280
+ declare function providerModelDocbench(entry: ProviderModelRatings): AiModelDocbench | undefined;
281
+ /** Best match first: the recommendation, then by score. Unrated entries keep the provider's order. */
282
+ declare function sortModelDownloads<T extends Pick<AiModelDownloadInfo, 'recommended' | 'score'>>(models: readonly T[]): T[];
283
+
177
284
  /**
178
285
  * Host bridge — shared types + runtime access for the Electron desktop
179
286
  * host. The renderer calls `getDocBlocksHost()` to reach the preload
@@ -202,4 +309,4 @@ declare function getDocBlocksHost(): DocBlocksHostAPI;
202
309
  /** Return the host API, or null if not running under Electron. */
203
310
  declare function maybeGetDocBlocksHost(): DocBlocksHostAPI | null;
204
311
 
205
- export { AI_WIRE_LIMITS, AiChatEvent, AiChatKnowledge, AiChatProgress, AiChatRequest, AiError, AiFactCheck, AiFactCheckRequest, AiModelDownloadInfo, AiModelInfo, AiModelInstallEvent, AiPreferences, AiPreferencesPatch, AiProgress, AiStatus, DocBlocksHostAPI, EXPORT_TRANSFER_LIMITS, HOST_WIRE_LIMITS, HostCapabilities, HostEnvironment, HostPinnedDocument, MAX_HOST_PINNED_DOCUMENTS, OpenRequest, SPEECH_WIRE_LIMITS, SUPPORT_EMAIL_ADDRESS, SpeechAudioChunk, SpeechCatalog, SpeechError, SpeechInstallEvent, SpeechModelInfo, SpeechModelKind, SpeechPreferences, SpeechPreferencesPatch, SpeechProgress, SpeechReadiness, SpeechResult, SpeechStatus, SpeechSynthesisSummary, SpeechSynthesizeEvent, SpeechSynthesizeRequest, SpeechTranscribeRequest, SpeechTranscript, SpeechVoiceInfo, getDocBlocksHost, getHostCapabilities, getHostEnvironment, hasDocBlocksHost, hostSupports, isBoundedBytePayload, isBoundedString, isElectronHost, isSpeechModelId, isTrustedRendererUrl, maybeGetDocBlocksHost, parseAiChatEvent, parseAiChatKnowledge, parseAiChatProgress, parseAiChatRequest, parseAiError, parseAiFactCheck, parseAiFactCheckRequest, parseAiModelDownloadInfo, parseAiModelDownloadInfoList, parseAiModelInfo, parseAiModelInfoList, parseAiModelInstallEvent, parseAiPreferences, parseAiPreferencesPatch, parseAiProgress, parseAiStatus, parseExternalHttpUrl, parseOpenExternalUrl, parseOpenRequest, parsePinnedMenuDocuments, parseSpeechAudioChunk, parseSpeechCatalog, parseSpeechError, parseSpeechInstallEvent, parseSpeechModelInfo, parseSpeechModelKind, parseSpeechNullResult, parseSpeechPreferences, parseSpeechPreferencesPatch, parseSpeechProgress, parseSpeechReadiness, parseSpeechResult, parseSpeechStatus, parseSpeechSynthesisSummary, parseSpeechSynthesizeEvent, parseSpeechSynthesizeRequest, parseSpeechTranscribeRequest, parseSpeechTranscript, parseSpeechVoiceInfo, parseSupportMailtoUrl };
312
+ export { AI_WIRE_LIMITS, AiChatEvent, AiChatKnowledge, AiChatProgress, AiChatPurpose, AiChatRequest, AiError, AiFactCheck, AiFactCheckRequest, AiModelDocbench, AiModelDownloadInfo, AiModelInfo, AiModelInstallEvent, AiPreferences, AiPreferencesPatch, AiProgress, AiResponseFormat, AiStatus, type ChatCompletionBody, type ChatCompletionBodyInput, type ChatCompletionBodyOptions, type ChatCompletionMessage, DocBlocksHostAPI, EXPORT_TRANSFER_LIMITS, HOST_WIRE_LIMITS, HostCapabilities, HostEnvironment, HostPinnedDocument, MAX_HOST_PINNED_DOCUMENTS, OpenRequest, type ProviderModelRanking, type ProviderModelRatings, SPEECH_WIRE_LIMITS, SUPPORT_EMAIL_ADDRESS, SpeechAudioChunk, SpeechCatalog, SpeechError, SpeechInstallEvent, SpeechModelInfo, SpeechModelKind, SpeechPreferences, SpeechPreferencesPatch, SpeechProgress, SpeechReadiness, SpeechResult, SpeechStatus, SpeechSynthesisSummary, SpeechSynthesizeEvent, SpeechSynthesizeRequest, SpeechTranscribeRequest, SpeechTranscript, SpeechVoiceInfo, buildChatCompletionBody, getDocBlocksHost, getHostCapabilities, getHostEnvironment, hasDocBlocksHost, hostSupports, isBoundedBytePayload, isBoundedString, isElectronHost, isLocalEngineModel, isSpeechModelId, isTrustedRendererUrl, maybeGetDocBlocksHost, parseAiChatEvent, parseAiChatKnowledge, parseAiChatProgress, parseAiChatRequest, parseAiError, parseAiFactCheck, parseAiFactCheckRequest, parseAiModelDocbench, parseAiModelDownloadInfo, parseAiModelDownloadInfoList, parseAiModelInfo, parseAiModelInfoList, parseAiModelInstallEvent, parseAiPreferences, parseAiPreferencesPatch, parseAiProgress, parseAiStatus, parseExternalHttpUrl, parseOpenExternalUrl, parseOpenRequest, parsePinnedMenuDocuments, parseSpeechAudioChunk, parseSpeechCatalog, parseSpeechError, parseSpeechInstallEvent, parseSpeechModelInfo, parseSpeechModelKind, parseSpeechNullResult, parseSpeechPreferences, parseSpeechPreferencesPatch, parseSpeechProgress, parseSpeechReadiness, parseSpeechResult, parseSpeechStatus, parseSpeechSynthesisSummary, parseSpeechSynthesizeEvent, parseSpeechSynthesizeRequest, parseSpeechTranscribeRequest, parseSpeechTranscript, parseSpeechVoiceInfo, parseSupportMailtoUrl, providerModelDocbench, providerModelRanking, sortModelDownloads };
@@ -9,6 +9,7 @@ import {
9
9
  HOST_SURFACE_KINDS,
10
10
  NO_HOST_CAPABILITIES,
11
11
  SPEECH_WIRE_LIMITS,
12
+ buildChatCompletionBody,
12
13
  deriveHostCapabilities,
13
14
  getDocBlocksHost,
14
15
  getHostCapabilities,
@@ -18,6 +19,7 @@ import {
18
19
  isAiImageAspect,
19
20
  isAiImageModelId,
20
21
  isElectronHost,
22
+ isLocalEngineModel,
21
23
  isSpeechModelId,
22
24
  knowledgeChatEvent,
23
25
  knowledgeSources,
@@ -42,6 +44,7 @@ import {
42
44
  parseAiImageStyleList,
43
45
  parseAiKnowledgeAction,
44
46
  parseAiKnowledgeState,
47
+ parseAiModelDocbench,
45
48
  parseAiModelDownloadInfo,
46
49
  parseAiModelDownloadInfoList,
47
50
  parseAiModelInfo,
@@ -70,8 +73,11 @@ import {
70
73
  parseSpeechSynthesizeRequest,
71
74
  parseSpeechTranscribeRequest,
72
75
  parseSpeechTranscript,
73
- parseSpeechVoiceInfo
74
- } from "../chunk-OIBDXKQN.js";
76
+ parseSpeechVoiceInfo,
77
+ providerModelDocbench,
78
+ providerModelRanking,
79
+ sortModelDownloads
80
+ } from "../chunk-OXEMTJRJ.js";
75
81
  import {
76
82
  EXPORT_TRANSFER_LIMITS,
77
83
  HOST_WIRE_LIMITS,
@@ -101,6 +107,7 @@ export {
101
107
  NO_HOST_CAPABILITIES,
102
108
  SPEECH_WIRE_LIMITS,
103
109
  SUPPORT_EMAIL_ADDRESS,
110
+ buildChatCompletionBody,
104
111
  deriveHostCapabilities,
105
112
  getDocBlocksHost,
106
113
  getHostCapabilities,
@@ -112,6 +119,7 @@ export {
112
119
  isBoundedBytePayload,
113
120
  isBoundedString,
114
121
  isElectronHost,
122
+ isLocalEngineModel,
115
123
  isSpeechModelId,
116
124
  isTrustedRendererUrl,
117
125
  knowledgeChatEvent,
@@ -137,6 +145,7 @@ export {
137
145
  parseAiImageStyleList,
138
146
  parseAiKnowledgeAction,
139
147
  parseAiKnowledgeState,
148
+ parseAiModelDocbench,
140
149
  parseAiModelDownloadInfo,
141
150
  parseAiModelDownloadInfoList,
142
151
  parseAiModelInfo,
@@ -170,5 +179,8 @@ export {
170
179
  parseSpeechTranscribeRequest,
171
180
  parseSpeechTranscript,
172
181
  parseSpeechVoiceInfo,
173
- parseSupportMailtoUrl
182
+ parseSupportMailtoUrl,
183
+ providerModelDocbench,
184
+ providerModelRanking,
185
+ sortModelDownloads
174
186
  };
@@ -312,6 +312,7 @@ declare function parseMobileBootstrap(value: unknown): {
312
312
  name: string;
313
313
  id: string;
314
314
  rootPath: string;
315
+ deletedWithApp?: boolean | undefined;
315
316
  }[];
316
317
  folderPicker: boolean;
317
318
  capabilities: FileSystemProviderCapabilities;
@@ -385,6 +386,7 @@ declare function parseMobilePickedFolder(input: unknown): {
385
386
  name: string;
386
387
  id: string;
387
388
  rootPath: string;
389
+ deletedWithApp?: boolean | undefined;
388
390
  } | null;
389
391
 
390
392
  export { MOBILE_STORAGE_LIMITS, type MobileExportRequest, type MobileFsRequest, type MobileNativeSend, createMobileFileSystemBridge, encodeMobileBytes, parseMobileBootstrap, parseMobileExportOutcome, parseMobileExportRequest, parseMobileExportToken, parseMobileOpenRequests, parseMobilePickedFolder, parseMobileResult };
@@ -244,7 +244,12 @@ function createMobileFileSystemBridge(send, capabilities) {
244
244
  };
245
245
  return bridge;
246
246
  }
247
- var workspace = z.object({ id, name: z.string().min(1).max(1024), rootPath: z.string().min(1).max(4096) }).strict();
247
+ var workspace = z.object({
248
+ id,
249
+ name: z.string().min(1).max(1024),
250
+ rootPath: z.string().min(1).max(4096),
251
+ deletedWithApp: z.boolean().optional()
252
+ }).strict();
248
253
  function parseMobileBootstrap(value) {
249
254
  return z.object({
250
255
  env: z.object({
package/dist/index.d.ts CHANGED
@@ -7,10 +7,10 @@ export { IndexedDBContentContainer, IndexedDBFileSystemProvider, IndexedDBFileSy
7
7
  export { NativeFileSystemMovePathState, NativeFileSystemMoveRecoveryError, NativeFileSystemMoveRecoveryState, NativeFileSystemProvider, NativeFileSystemProviderV2, isNativeFileSystemSupported, loadDirectoryHandle, openNativeFolder, removeDirectoryHandle, restoreNativeFolder, storeDirectoryHandle } from './filesystem/native.js';
8
8
  export { ElectronFileSystemProvider, ElectronFileSystemProviderV2 } from './filesystem/electron.js';
9
9
  export { DOCUMENT_RECOVERY_JOURNAL_SCHEMA_VERSION, DOCUMENT_RECOVERY_JOURNAL_STORAGE_KEY, DocumentCommitConflictError, DocumentCommitRequest, DocumentCommitResult, DocumentCommitTarget, DocumentConflictStrategy, DocumentExternalChangeResult, DocumentExternalSnapshot, DocumentExternalVersion, DocumentRecoveryAcknowledgement, DocumentRecoveryJournal, DocumentRecoveryJournalOptions, DocumentRecoveryRecord, DocumentRecoveryStorage, DocumentRecoveryWrite, DocumentRecoveryWriteFailure, DocumentRecoveryWriteResult, DocumentSaveReason, DocumentSession, DocumentSessionConflict, DocumentSessionConflictError, DocumentSessionEditScope, DocumentSessionLifecycle, DocumentSessionOptions, DocumentSessionSnapshot, DocumentSessionStatus, DocumentSessionTransition, FileSystemDocumentTargetOptions, createFileSystemDocumentTarget, getDefaultDocumentRecoveryStorage } from './document/index.js';
10
- export { D as DEFAULT_WORKSPACE_ID, E as ElectronWorkspaceReconciliation, T as TransientOrigin, W as WorkspaceDescriptor, e as ensureDefaultWorkspace, g as getTransientWorkspace, a as getWorkspace, l as listWorkspaces, p as parsePersistedWorkspaceList, r as reconcileElectronWorkspaceDescriptors, b as registerTransientWorkspace, c as removeWorkspace, s as saveWorkspace, t as touchWorkspace, u as unregisterTransientWorkspace } from './reconcile-electron-FvgF5oC7.js';
11
- export { AI_WIRE_LIMITS, EXPORT_TRANSFER_LIMITS, HOST_WIRE_LIMITS, MAX_HOST_PINNED_DOCUMENTS, SPEECH_WIRE_LIMITS, SUPPORT_EMAIL_ADDRESS, getDocBlocksHost, getHostCapabilities, getHostEnvironment, hasDocBlocksHost, hostSupports, isBoundedBytePayload, isBoundedString, isElectronHost, isSpeechModelId, isTrustedRendererUrl, maybeGetDocBlocksHost, parseAiChatEvent, parseAiChatKnowledge, parseAiChatProgress, parseAiChatRequest, parseAiError, parseAiFactCheck, parseAiFactCheckRequest, parseAiModelDownloadInfo, parseAiModelDownloadInfoList, parseAiModelInfo, parseAiModelInfoList, parseAiModelInstallEvent, parseAiPreferences, parseAiPreferencesPatch, parseAiProgress, parseAiStatus, parseExternalHttpUrl, parseOpenExternalUrl, parseOpenRequest, parsePinnedMenuDocuments, parseSpeechAudioChunk, parseSpeechCatalog, parseSpeechError, parseSpeechInstallEvent, parseSpeechModelInfo, parseSpeechModelKind, parseSpeechNullResult, parseSpeechPreferences, parseSpeechPreferencesPatch, parseSpeechProgress, parseSpeechReadiness, parseSpeechResult, parseSpeechStatus, parseSpeechSynthesisSummary, parseSpeechSynthesizeEvent, parseSpeechSynthesizeRequest, parseSpeechTranscribeRequest, parseSpeechTranscript, parseSpeechVoiceInfo, parseSupportMailtoUrl } from './host/index.js';
10
+ export { D as DEFAULT_WORKSPACE_ID, E as ElectronWorkspaceReconciliation, T as TransientOrigin, W as WorkspaceDescriptor, e as ensureDefaultWorkspace, g as getTransientWorkspace, a as getWorkspace, l as listWorkspaces, p as parsePersistedWorkspaceList, r as reconcileElectronWorkspaceDescriptors, b as registerTransientWorkspace, c as removeWorkspace, s as saveWorkspace, t as touchWorkspace, u as unregisterTransientWorkspace } from './reconcile-electron-DtP-HC39.js';
11
+ export { AI_WIRE_LIMITS, ChatCompletionBody, ChatCompletionBodyInput, ChatCompletionBodyOptions, ChatCompletionMessage, EXPORT_TRANSFER_LIMITS, HOST_WIRE_LIMITS, MAX_HOST_PINNED_DOCUMENTS, ProviderModelRanking, ProviderModelRatings, SPEECH_WIRE_LIMITS, SUPPORT_EMAIL_ADDRESS, buildChatCompletionBody, getDocBlocksHost, getHostCapabilities, getHostEnvironment, hasDocBlocksHost, hostSupports, isBoundedBytePayload, isBoundedString, isElectronHost, isLocalEngineModel, isSpeechModelId, isTrustedRendererUrl, maybeGetDocBlocksHost, parseAiChatEvent, parseAiChatKnowledge, parseAiChatProgress, parseAiChatRequest, parseAiError, parseAiFactCheck, parseAiFactCheckRequest, parseAiModelDocbench, parseAiModelDownloadInfo, parseAiModelDownloadInfoList, parseAiModelInfo, parseAiModelInfoList, parseAiModelInstallEvent, parseAiPreferences, parseAiPreferencesPatch, parseAiProgress, parseAiStatus, parseExternalHttpUrl, parseOpenExternalUrl, parseOpenRequest, parsePinnedMenuDocuments, parseSpeechAudioChunk, parseSpeechCatalog, parseSpeechError, parseSpeechInstallEvent, parseSpeechModelInfo, parseSpeechModelKind, parseSpeechNullResult, parseSpeechPreferences, parseSpeechPreferencesPatch, parseSpeechProgress, parseSpeechReadiness, parseSpeechResult, parseSpeechStatus, parseSpeechSynthesisSummary, parseSpeechSynthesizeEvent, parseSpeechSynthesizeRequest, parseSpeechTranscribeRequest, parseSpeechTranscript, parseSpeechVoiceInfo, parseSupportMailtoUrl, providerModelDocbench, providerModelRanking, sortModelDownloads } from './host/index.js';
12
12
  export { SHARED_DOCUMENT_LIMITS, SharedDocumentHashParseResult, SharedDocumentMode, SharedDocumentPayload, createSharedDocumentHash, createSharedDocumentUrl, parseSharedDocumentHash } from './share/index.js';
13
- export { A as AI_IMAGE_ASPECTS, a as AI_IMAGE_FIT_VERDICTS, b as AI_IMAGE_WIRE_LIMITS, c as AiChatCompletion, d as AiChatEvent, e as AiChatEvidence, f as AiChatHandle, g as AiChatKnowledge, h as AiChatKnowledgeSource, i as AiChatMessage, j as AiChatProgress, k as AiChatPurpose, l as AiChatRequest, m as AiConnectionStep, n as AiEnsureWorkspaceHandle, o as AiError, p as AiErrorCode, q as AiFactCheck, r as AiFactCheckRequest, s as AiFactCheckSentence, t as AiImageAccess, u as AiImageAspect, v as AiImageEvent, w as AiImageHandle, x as AiImageInstallEvent, y as AiImageInstallHandle, z as AiImageModel, B as AiImageModelFit, C as AiImagePhase, D as AiImagePreferences, E as AiImagePreferencesPatch, F as AiImageProgress, G as AiImageRequest, H as AiImageResult, I as AiImageStyle, J as AiImageUnavailableReason, K as AiImagesAPI, L as AiKnowledgeAPI, M as AiKnowledgeAction, N as AiKnowledgeCatalog, O as AiKnowledgePassage, P as AiKnowledgeState, Q as AiModelDownloadInfo, R as AiModelFit, S as AiModelInfo, T as AiModelInstallEvent, U as AiModelInstallHandle, V as AiPreferences, W as AiPreferencesPatch, X as AiProgress, Y as AiProviderInfo, Z as AiResponseFormat, _ as AiResult, $ as AiReviewMode, a0 as AiSearchHit, a1 as AiSearchQuery, a2 as AiSearchResult, a3 as AiSpeechAudio, a4 as AiStatus, a5 as AiSynthesizeRequest, a6 as AiTranscribeRequest, a7 as AiTranscript, a8 as AiUnavailableReason, a9 as DocBlocksHostAPI, aa as DocBlocksHostAiAPI, ab as DocBlocksHostClipboardAPI, ac as DocBlocksHostExportAPI, ad as DocBlocksHostExternalAPI, ae as DocBlocksHostFfmpegAPI, af as DocBlocksHostFsAPI, ag as DocBlocksHostGitAPI, ah as DocBlocksHostLifecycleAPI, ai as DocBlocksHostMenuAPI, aj as DocBlocksHostShellAPI, ak as DocBlocksHostSpeechAPI, al as DocBlocksHostUpdaterAPI, am as DocBlocksHostWorkspacesAPI, an as ElectronWorkspaceInfo, ao as ExternalBinaryCommitResult, ap as GitBranchInfo, aq as GitCapabilities, ar as GitCloneHandle, as as GitCloneProgress, at as GitError, au as GitErrorCode, av as GitFileAtRevision, aw as GitFileChange, ax as GitFileStatusCode, ay as GitLogEntry, az as GitLogOptions, aA as GitRemoteInfo, aB as GitRepoDetection, aC as GitResult, aD as GitRevision, aE as GitStatus, aF as HOST_PLATFORMS, aG as HOST_SURFACE_KINDS, aH as HostCapabilities, aI as HostCloseReason, aJ as HostEnvironment, aK as HostExportTargetGrant, aL as HostPinnedDocument, aM as HostPlatform, aN as HostPrepareCloseRequest, aO as HostPrepareCloseResult, aP as HostSurfaceKind, aQ as MenuCommand, aR as NO_HOST_CAPABILITIES, aS as OpenRequest, aT as SpeechAudioChunk, aU as SpeechCatalog, aV as SpeechError, aW as SpeechErrorCode, aX as SpeechInstallEvent, aY as SpeechInstallHandle, aZ as SpeechModelInfo, a_ as SpeechModelKind, a$ as SpeechPreferences, b0 as SpeechPreferencesPatch, b1 as SpeechProgress, b2 as SpeechReadiness, b3 as SpeechReadinessState, b4 as SpeechResult, b5 as SpeechSegment, b6 as SpeechStatus, b7 as SpeechSynthesisHandle, b8 as SpeechSynthesisSummary, b9 as SpeechSynthesizeEvent, ba as SpeechSynthesizeRequest, bb as SpeechTranscribeRequest, bc as SpeechTranscript, bd as SpeechVoiceInfo, be as SpeechWord, bf as SpeechWordTiming, bg as UpdateCheckResult, bh as UpdateInstallResult, bi as UpdaterStatus, bj as deriveHostCapabilities, bk as isAiImageAspect, bl as isAiImageModelId, bm as knowledgeChatEvent, bn as knowledgeSources, bo as parseAiImageAccess, bp as parseAiImageEvent, bq as parseAiImageInstallEvent, br as parseAiImageModel, bs as parseAiImageModelList, bt as parseAiImagePreferences, bu as parseAiImagePreferencesPatch, bv as parseAiImageRequest, bw as parseAiImageResult, bx as parseAiImageStyle, by as parseAiImageStyleList, bz as parseAiKnowledgeAction, bA as parseAiKnowledgeState, bB as parseHostEnvironment } from './capabilities-yyRj0hyP.js';
13
+ export { A as AI_IMAGE_ASPECTS, a as AI_IMAGE_FIT_VERDICTS, b as AI_IMAGE_WIRE_LIMITS, c as AiChatCompletion, d as AiChatEvent, e as AiChatEvidence, f as AiChatHandle, g as AiChatKnowledge, h as AiChatKnowledgeSource, i as AiChatMessage, j as AiChatProgress, k as AiChatPurpose, l as AiChatRequest, m as AiConnectionStep, n as AiEnsureWorkspaceHandle, o as AiError, p as AiErrorCode, q as AiFactCheck, r as AiFactCheckRequest, s as AiFactCheckSentence, t as AiImageAccess, u as AiImageAspect, v as AiImageEvent, w as AiImageHandle, x as AiImageInstallEvent, y as AiImageInstallHandle, z as AiImageModel, B as AiImageModelFit, C as AiImagePhase, D as AiImagePreferences, E as AiImagePreferencesPatch, F as AiImageProgress, G as AiImageRequest, H as AiImageResult, I as AiImageStyle, J as AiImageUnavailableReason, K as AiImagesAPI, L as AiKnowledgeAPI, M as AiKnowledgeAction, N as AiKnowledgeCatalog, O as AiKnowledgePassage, P as AiKnowledgeState, Q as AiModelDocbench, R as AiModelDownloadInfo, S as AiModelFit, T as AiModelInfo, U as AiModelInstallEvent, V as AiModelInstallHandle, W as AiPreferences, X as AiPreferencesPatch, Y as AiProgress, Z as AiProviderInfo, _ as AiResponseFormat, $ as AiResult, a0 as AiReviewMode, a1 as AiSearchHit, a2 as AiSearchQuery, a3 as AiSearchResult, a4 as AiSpeechAudio, a5 as AiStatus, a6 as AiSynthesizeRequest, a7 as AiTranscribeRequest, a8 as AiTranscript, a9 as AiUnavailableReason, aa as DocBlocksHostAPI, ab as DocBlocksHostAiAPI, ac as DocBlocksHostClipboardAPI, ad as DocBlocksHostExportAPI, ae as DocBlocksHostExternalAPI, af as DocBlocksHostFfmpegAPI, ag as DocBlocksHostFsAPI, ah as DocBlocksHostGitAPI, ai as DocBlocksHostLifecycleAPI, aj as DocBlocksHostMenuAPI, ak as DocBlocksHostShellAPI, al as DocBlocksHostSpeechAPI, am as DocBlocksHostUpdaterAPI, an as DocBlocksHostWorkspacesAPI, ao as ElectronWorkspaceInfo, ap as ExternalBinaryCommitResult, aq as GitBranchInfo, ar as GitCapabilities, as as GitCloneHandle, at as GitCloneProgress, au as GitError, av as GitErrorCode, aw as GitFileAtRevision, ax as GitFileChange, ay as GitFileStatusCode, az as GitLogEntry, aA as GitLogOptions, aB as GitRemoteInfo, aC as GitRepoDetection, aD as GitResult, aE as GitRevision, aF as GitStatus, aG as HOST_PLATFORMS, aH as HOST_SURFACE_KINDS, aI as HostCapabilities, aJ as HostCloseReason, aK as HostEnvironment, aL as HostExportTargetGrant, aM as HostPinnedDocument, aN as HostPlatform, aO as HostPrepareCloseRequest, aP as HostPrepareCloseResult, aQ as HostSurfaceKind, aR as MenuCommand, aS as NO_HOST_CAPABILITIES, aT as OpenRequest, aU as SpeechAudioChunk, aV as SpeechCatalog, aW as SpeechError, aX as SpeechErrorCode, aY as SpeechInstallEvent, aZ as SpeechInstallHandle, a_ as SpeechModelInfo, a$ as SpeechModelKind, b0 as SpeechPreferences, b1 as SpeechPreferencesPatch, b2 as SpeechProgress, b3 as SpeechReadiness, b4 as SpeechReadinessState, b5 as SpeechResult, b6 as SpeechSegment, b7 as SpeechStatus, b8 as SpeechSynthesisHandle, b9 as SpeechSynthesisSummary, ba as SpeechSynthesizeEvent, bb as SpeechSynthesizeRequest, bc as SpeechTranscribeRequest, bd as SpeechTranscript, be as SpeechVoiceInfo, bf as SpeechWord, bg as SpeechWordTiming, bh as UpdateCheckResult, bi as UpdateInstallResult, bj as UpdaterStatus, bk as deriveHostCapabilities, bl as isAiImageAspect, bm as isAiImageModelId, bn as knowledgeChatEvent, bo as knowledgeSources, bp as parseAiImageAccess, bq as parseAiImageEvent, br as parseAiImageInstallEvent, bs as parseAiImageModel, bt as parseAiImageModelList, bu as parseAiImagePreferences, bv as parseAiImagePreferencesPatch, bw as parseAiImageRequest, bx as parseAiImageResult, by as parseAiImageStyle, bz as parseAiImageStyleList, bA as parseAiKnowledgeAction, bB as parseAiKnowledgeState, bC as parseHostEnvironment } from './capabilities-rfOUYj1Y.js';
14
14
  export { D as DocBlocksHostFsV2API, E as ELECTRON_FILE_SYSTEM_V2_CAPABILITIES, F as FILE_SYSTEM_TRANSFER_LIMITS, H as HostFileSystemReadTransfer, a as HostFileSystemV2OpenRequest, b as HostFileSystemV2Result, c as HostFileSystemV2WatchMessage } from './filesystem-v2-CYPHqoIw.js';
15
15
  import '@bendyline/squisq/markdown';
16
16
  import '@bendyline/squisq/storage';
package/dist/index.js CHANGED
@@ -70,8 +70,8 @@ import "./chunk-3GSMJ4MQ.js";
70
70
  import {
71
71
  ElectronFileSystemProvider,
72
72
  ElectronFileSystemProviderV2
73
- } from "./chunk-C6J65F5C.js";
74
- import "./chunk-P5VP6XMH.js";
73
+ } from "./chunk-XC7766WT.js";
74
+ import "./chunk-WIC3ASFS.js";
75
75
  import {
76
76
  AI_IMAGE_ASPECTS,
77
77
  AI_IMAGE_FIT_VERDICTS,
@@ -83,6 +83,7 @@ import {
83
83
  HOST_SURFACE_KINDS,
84
84
  NO_HOST_CAPABILITIES,
85
85
  SPEECH_WIRE_LIMITS,
86
+ buildChatCompletionBody,
86
87
  deriveHostCapabilities,
87
88
  getDocBlocksHost,
88
89
  getHostCapabilities,
@@ -92,6 +93,7 @@ import {
92
93
  isAiImageAspect,
93
94
  isAiImageModelId,
94
95
  isElectronHost,
96
+ isLocalEngineModel,
95
97
  isSpeechModelId,
96
98
  knowledgeChatEvent,
97
99
  knowledgeSources,
@@ -116,6 +118,7 @@ import {
116
118
  parseAiImageStyleList,
117
119
  parseAiKnowledgeAction,
118
120
  parseAiKnowledgeState,
121
+ parseAiModelDocbench,
119
122
  parseAiModelDownloadInfo,
120
123
  parseAiModelDownloadInfoList,
121
124
  parseAiModelInfo,
@@ -144,8 +147,11 @@ import {
144
147
  parseSpeechSynthesizeRequest,
145
148
  parseSpeechTranscribeRequest,
146
149
  parseSpeechTranscript,
147
- parseSpeechVoiceInfo
148
- } from "./chunk-OIBDXKQN.js";
150
+ parseSpeechVoiceInfo,
151
+ providerModelDocbench,
152
+ providerModelRanking,
153
+ sortModelDownloads
154
+ } from "./chunk-OXEMTJRJ.js";
149
155
  import "./chunk-245W57QP.js";
150
156
  import {
151
157
  EXPORT_TRANSFER_LIMITS,
@@ -252,6 +258,7 @@ export {
252
258
  SQUISQ_RUNTIME_DIRECTORY_NAME,
253
259
  SUPPORT_EMAIL_ADDRESS,
254
260
  WORKSPACE_ROOT,
261
+ buildChatCompletionBody,
255
262
  createDbkWorkspaceSnapshot,
256
263
  createFileMediaProvider,
257
264
  createFileSystemDocumentTarget,
@@ -290,6 +297,7 @@ export {
290
297
  isFileSystemMoveStateError,
291
298
  isFileSystemPartialMoveError,
292
299
  isIgnoredWorkspaceEntryName,
300
+ isLocalEngineModel,
293
301
  isMarkdownFileName,
294
302
  isNativeFileSystemSupported,
295
303
  isQuotaExceededError,
@@ -325,6 +333,7 @@ export {
325
333
  parseAiImageStyleList,
326
334
  parseAiKnowledgeAction,
327
335
  parseAiKnowledgeState,
336
+ parseAiModelDocbench,
328
337
  parseAiModelDownloadInfo,
329
338
  parseAiModelDownloadInfoList,
330
339
  parseAiModelInfo,
@@ -363,6 +372,8 @@ export {
363
372
  parseSpeechVoiceInfo,
364
373
  parseSupportMailtoUrl,
365
374
  parseWorkspacePath,
375
+ providerModelDocbench,
376
+ providerModelRanking,
366
377
  reconcileElectronWorkspaceDescriptors,
367
378
  registerTransientWorkspace,
368
379
  removeDirectoryHandle,
@@ -374,6 +385,7 @@ export {
374
385
  rewriteCompanionReferences,
375
386
  saveWorkspace,
376
387
  serializeFsError,
388
+ sortModelDownloads,
377
389
  storeDirectoryHandle,
378
390
  suggestWikiArticles,
379
391
  touchWorkspace,
@@ -1,5 +1,5 @@
1
- import { A as ArtifactRef, C as ComparisonResult, a as ConversionResult, D as DocumentSource, I as InspectionResult, M as MaterializationOptions, b as McpDiagnostic, c as McpErrorResult, P as PreviewResult } from '../types-d0yvHUJz.js';
2
- export { d as AppliedOption, e as AppliedOptionValue, f as ApplyInferredThemeResult, g as ArtifactDocumentSource, h as AssetSummary, i as AuthoringContextResult, j as AuthoringGoal, k as AuthoringSyntaxSummary, l as AuthoringTemplateSummary, B as BlockSummary, m as BundleAssetContentSource, n as BundleAssetRef, o as BundleDocumentSource, p as ComparisonCategory, q as ComparisonChange, r as ComparisonMetric, s as ComparisonStatus, t as ConversionFidelity, u as ConvertDocumentResult, v as DOCBLOCKS_MCP_TOOL_NAMES, w as DOCBLOCKS_MCP_WIRE_VERSION, x as DescribeTemplateResult, y as DescribeThemeResult, z as DescribedTemplate, E as DiagnosticLocation, F as DiagnosticSeverity, G as DiagnosticStage, H as DocBlocksMcpToolName, J as DocBlocksMcpWireVersion, K as DocumentItemSummary, L as DocumentMetadataSummary, N as DocumentStatistics, O as EngineVersion, Q as FileDocumentSource, R as FormatCapabilitySummary, S as FormatDirectionCapability, T as InferThemeResult, U as InferredLayoutSummary, V as InspectPptxLayoutsResult, W as LinkSummary, X as ListFormatsResult, Y as ListRootsResult, Z as ListTemplatesResult, _ as ListThemesResult, $ as ListTransformStylesResult, a0 as MarkdownDocumentSource, a1 as McpErrorDetail, a2 as McpSuccessResult, a3 as OutlineEntry, a4 as PptxLayoutSummary, a5 as PptxSlideSize, a6 as PreviewItem, a7 as PreviewItemKind, a8 as RecommendTemplatesResult, a9 as RootGrantSummary, aa as SaveArtifactResult, ab as SavedArtifactDestination, ac as SourceRange, ad as TableSummary, ae as TemplateAuthoringRole, af as TemplateBodyPolicy, ag as TemplateContentProfile, ah as TemplateInputSummary, ai as TemplateRecommendation, aj as TemplateSummary, ak as ThemeCatalogEntry, al as ThemeDescription, am as ThemeDescriptionColors, an as ThemeSummary, ao as TransformStyleSummary } from '../types-d0yvHUJz.js';
1
+ import { A as ArtifactRef, C as ComparisonResult, a as ConversionResult, D as DocumentSource, I as InspectionResult, M as MaterializationOptions, b as McpDiagnostic, c as McpErrorResult, P as PreviewResult } from '../types-B3PA-vCZ.js';
2
+ export { d as AppliedOption, e as AppliedOptionValue, f as ApplyInferredThemeResult, g as ArtifactDocumentSource, h as AssetSummary, i as AuthoringContextResult, j as AuthoringGoal, k as AuthoringSyntaxSummary, l as AuthoringTemplateSummary, B as BlockSummary, m as BundleAssetContentSource, n as BundleAssetRef, o as BundleDocumentSource, p as ComparisonCategory, q as ComparisonChange, r as ComparisonMetric, s as ComparisonStatus, t as ConversionFidelity, u as ConvertDocumentResult, v as DOCBLOCKS_MCP_TOOL_NAMES, w as DOCBLOCKS_MCP_WIRE_VERSION, x as DescribeTemplateResult, y as DescribeThemeResult, z as DescribedTemplate, E as DiagnosticLocation, F as DiagnosticSeverity, G as DiagnosticStage, H as DocBlocksMcpToolName, J as DocBlocksMcpWireVersion, K as DocumentItemSummary, L as DocumentMetadataSummary, N as DocumentStatistics, O as EngineVersion, Q as FileDocumentSource, R as FormatCapabilitySummary, S as FormatDirectionCapability, T as InferThemeResult, U as InferredLayoutSummary, V as InspectPptxLayoutsResult, W as LinkSummary, X as ListFormatsResult, Y as ListRootsResult, Z as ListTemplatesResult, _ as ListThemesResult, $ as ListTransformStylesResult, a0 as MarkdownDocumentSource, a1 as McpErrorDetail, a2 as McpSuccessResult, a3 as OutlineEntry, a4 as PptxLayoutSummary, a5 as PptxSlideSize, a6 as PreviewItem, a7 as PreviewItemKind, a8 as RecommendTemplatesResult, a9 as RootGrantSummary, aa as SaveArtifactResult, ab as SavedArtifactDestination, ac as SourceRange, ad as TableSummary, ae as TemplateAuthoringRole, af as TemplateBodyPolicy, ag as TemplateContentProfile, ah as TemplateInputSummary, ai as TemplateListShape, aj as TemplateRecommendation, ak as TemplateSummary, al as ThemeCatalogEntry, am as ThemeDescription, an as ThemeDescriptionColors, ao as ThemeSummary, ap as TransformStyleSummary } from '../types-B3PA-vCZ.js';
3
3
  import '../workspace-path-CWVrcuPL.js';
4
4
 
5
5
  /** Quantitative limits for untrusted MCP payloads. */
package/dist/mcp/zod.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { z as z$1 } from 'zod/v4';
3
- import { H as DocBlocksMcpToolName } from '../types-d0yvHUJz.js';
3
+ import { H as DocBlocksMcpToolName } from '../types-B3PA-vCZ.js';
4
4
  import '../workspace-path-CWVrcuPL.js';
5
5
 
6
6
  /** Canonical Zod projection of the exact MCP wire contract for protocol SDKs. */
@@ -4212,6 +4212,22 @@ declare const authoringTemplateSummarySchema: z.ZodObject<{
4212
4212
  safeForContentFirst: boolean;
4213
4213
  placement: "heading";
4214
4214
  }>;
4215
+ declare const templateListShapeSchema: z.ZodObject<{
4216
+ shape: z.ZodString;
4217
+ templateId: z.ZodString;
4218
+ confidence: z.ZodEnum<["strong", "weak"]>;
4219
+ reason: z.ZodString;
4220
+ }, "strict", z.ZodTypeAny, {
4221
+ templateId: string;
4222
+ shape: string;
4223
+ confidence: "strong" | "weak";
4224
+ reason: string;
4225
+ }, {
4226
+ templateId: string;
4227
+ shape: string;
4228
+ confidence: "strong" | "weak";
4229
+ reason: string;
4230
+ }>;
4215
4231
  declare const templateContentProfileSchema: z.ZodObject<{
4216
4232
  hasImage: z.ZodBoolean;
4217
4233
  imageCount: z.ZodNumber;
@@ -4226,6 +4242,22 @@ declare const templateContentProfileSchema: z.ZodObject<{
4226
4242
  hasAsciiDiagram: z.ZodBoolean;
4227
4243
  hasTimeline: z.ZodBoolean;
4228
4244
  hasTree: z.ZodBoolean;
4245
+ listShape: z.ZodNullable<z.ZodObject<{
4246
+ shape: z.ZodString;
4247
+ templateId: z.ZodString;
4248
+ confidence: z.ZodEnum<["strong", "weak"]>;
4249
+ reason: z.ZodString;
4250
+ }, "strict", z.ZodTypeAny, {
4251
+ templateId: string;
4252
+ shape: string;
4253
+ confidence: "strong" | "weak";
4254
+ reason: string;
4255
+ }, {
4256
+ templateId: string;
4257
+ shape: string;
4258
+ confidence: "strong" | "weak";
4259
+ reason: string;
4260
+ }>>;
4229
4261
  }, "strict", z.ZodTypeAny, {
4230
4262
  wordCount: number;
4231
4263
  hasImage: boolean;
@@ -4240,6 +4272,12 @@ declare const templateContentProfileSchema: z.ZodObject<{
4240
4272
  hasAsciiDiagram: boolean;
4241
4273
  hasTimeline: boolean;
4242
4274
  hasTree: boolean;
4275
+ listShape: {
4276
+ templateId: string;
4277
+ shape: string;
4278
+ confidence: "strong" | "weak";
4279
+ reason: string;
4280
+ } | null;
4243
4281
  }, {
4244
4282
  wordCount: number;
4245
4283
  hasImage: boolean;
@@ -4254,6 +4292,12 @@ declare const templateContentProfileSchema: z.ZodObject<{
4254
4292
  hasAsciiDiagram: boolean;
4255
4293
  hasTimeline: boolean;
4256
4294
  hasTree: boolean;
4295
+ listShape: {
4296
+ templateId: string;
4297
+ shape: string;
4298
+ confidence: "strong" | "weak";
4299
+ reason: string;
4300
+ } | null;
4257
4301
  }>;
4258
4302
  declare const templateRecommendationSchema: z.ZodObject<{
4259
4303
  blockId: z.ZodString;
@@ -4272,6 +4316,22 @@ declare const templateRecommendationSchema: z.ZodObject<{
4272
4316
  hasAsciiDiagram: z.ZodBoolean;
4273
4317
  hasTimeline: z.ZodBoolean;
4274
4318
  hasTree: z.ZodBoolean;
4319
+ listShape: z.ZodNullable<z.ZodObject<{
4320
+ shape: z.ZodString;
4321
+ templateId: z.ZodString;
4322
+ confidence: z.ZodEnum<["strong", "weak"]>;
4323
+ reason: z.ZodString;
4324
+ }, "strict", z.ZodTypeAny, {
4325
+ templateId: string;
4326
+ shape: string;
4327
+ confidence: "strong" | "weak";
4328
+ reason: string;
4329
+ }, {
4330
+ templateId: string;
4331
+ shape: string;
4332
+ confidence: "strong" | "weak";
4333
+ reason: string;
4334
+ }>>;
4275
4335
  }, "strict", z.ZodTypeAny, {
4276
4336
  wordCount: number;
4277
4337
  hasImage: boolean;
@@ -4286,6 +4346,12 @@ declare const templateRecommendationSchema: z.ZodObject<{
4286
4346
  hasAsciiDiagram: boolean;
4287
4347
  hasTimeline: boolean;
4288
4348
  hasTree: boolean;
4349
+ listShape: {
4350
+ templateId: string;
4351
+ shape: string;
4352
+ confidence: "strong" | "weak";
4353
+ reason: string;
4354
+ } | null;
4289
4355
  }, {
4290
4356
  wordCount: number;
4291
4357
  hasImage: boolean;
@@ -4300,6 +4366,12 @@ declare const templateRecommendationSchema: z.ZodObject<{
4300
4366
  hasAsciiDiagram: boolean;
4301
4367
  hasTimeline: boolean;
4302
4368
  hasTree: boolean;
4369
+ listShape: {
4370
+ templateId: string;
4371
+ shape: string;
4372
+ confidence: "strong" | "weak";
4373
+ reason: string;
4374
+ } | null;
4303
4375
  }>;
4304
4376
  recommendedTemplateIds: z.ZodArray<z.ZodString, "many">;
4305
4377
  }, "strict", z.ZodTypeAny, {
@@ -4319,6 +4391,12 @@ declare const templateRecommendationSchema: z.ZodObject<{
4319
4391
  hasAsciiDiagram: boolean;
4320
4392
  hasTimeline: boolean;
4321
4393
  hasTree: boolean;
4394
+ listShape: {
4395
+ templateId: string;
4396
+ shape: string;
4397
+ confidence: "strong" | "weak";
4398
+ reason: string;
4399
+ } | null;
4322
4400
  };
4323
4401
  recommendedTemplateIds: string[];
4324
4402
  }, {
@@ -4338,6 +4416,12 @@ declare const templateRecommendationSchema: z.ZodObject<{
4338
4416
  hasAsciiDiagram: boolean;
4339
4417
  hasTimeline: boolean;
4340
4418
  hasTree: boolean;
4419
+ listShape: {
4420
+ templateId: string;
4421
+ shape: string;
4422
+ confidence: "strong" | "weak";
4423
+ reason: string;
4424
+ } | null;
4341
4425
  };
4342
4426
  recommendedTemplateIds: string[];
4343
4427
  }>;
@@ -4359,6 +4443,22 @@ declare const recommendTemplatesResultSchema: z.ZodObject<{
4359
4443
  hasAsciiDiagram: z.ZodBoolean;
4360
4444
  hasTimeline: z.ZodBoolean;
4361
4445
  hasTree: z.ZodBoolean;
4446
+ listShape: z.ZodNullable<z.ZodObject<{
4447
+ shape: z.ZodString;
4448
+ templateId: z.ZodString;
4449
+ confidence: z.ZodEnum<["strong", "weak"]>;
4450
+ reason: z.ZodString;
4451
+ }, "strict", z.ZodTypeAny, {
4452
+ templateId: string;
4453
+ shape: string;
4454
+ confidence: "strong" | "weak";
4455
+ reason: string;
4456
+ }, {
4457
+ templateId: string;
4458
+ shape: string;
4459
+ confidence: "strong" | "weak";
4460
+ reason: string;
4461
+ }>>;
4362
4462
  }, "strict", z.ZodTypeAny, {
4363
4463
  wordCount: number;
4364
4464
  hasImage: boolean;
@@ -4373,6 +4473,12 @@ declare const recommendTemplatesResultSchema: z.ZodObject<{
4373
4473
  hasAsciiDiagram: boolean;
4374
4474
  hasTimeline: boolean;
4375
4475
  hasTree: boolean;
4476
+ listShape: {
4477
+ templateId: string;
4478
+ shape: string;
4479
+ confidence: "strong" | "weak";
4480
+ reason: string;
4481
+ } | null;
4376
4482
  }, {
4377
4483
  wordCount: number;
4378
4484
  hasImage: boolean;
@@ -4387,6 +4493,12 @@ declare const recommendTemplatesResultSchema: z.ZodObject<{
4387
4493
  hasAsciiDiagram: boolean;
4388
4494
  hasTimeline: boolean;
4389
4495
  hasTree: boolean;
4496
+ listShape: {
4497
+ templateId: string;
4498
+ shape: string;
4499
+ confidence: "strong" | "weak";
4500
+ reason: string;
4501
+ } | null;
4390
4502
  }>;
4391
4503
  recommendedTemplateIds: z.ZodArray<z.ZodString, "many">;
4392
4504
  }, "strict", z.ZodTypeAny, {
@@ -4406,6 +4518,12 @@ declare const recommendTemplatesResultSchema: z.ZodObject<{
4406
4518
  hasAsciiDiagram: boolean;
4407
4519
  hasTimeline: boolean;
4408
4520
  hasTree: boolean;
4521
+ listShape: {
4522
+ templateId: string;
4523
+ shape: string;
4524
+ confidence: "strong" | "weak";
4525
+ reason: string;
4526
+ } | null;
4409
4527
  };
4410
4528
  recommendedTemplateIds: string[];
4411
4529
  }, {
@@ -4425,6 +4543,12 @@ declare const recommendTemplatesResultSchema: z.ZodObject<{
4425
4543
  hasAsciiDiagram: boolean;
4426
4544
  hasTimeline: boolean;
4427
4545
  hasTree: boolean;
4546
+ listShape: {
4547
+ templateId: string;
4548
+ shape: string;
4549
+ confidence: "strong" | "weak";
4550
+ reason: string;
4551
+ } | null;
4428
4552
  };
4429
4553
  recommendedTemplateIds: string[];
4430
4554
  }>, "many">;
@@ -4449,6 +4573,12 @@ declare const recommendTemplatesResultSchema: z.ZodObject<{
4449
4573
  hasAsciiDiagram: boolean;
4450
4574
  hasTimeline: boolean;
4451
4575
  hasTree: boolean;
4576
+ listShape: {
4577
+ templateId: string;
4578
+ shape: string;
4579
+ confidence: "strong" | "weak";
4580
+ reason: string;
4581
+ } | null;
4452
4582
  };
4453
4583
  recommendedTemplateIds: string[];
4454
4584
  }[];
@@ -4472,6 +4602,12 @@ declare const recommendTemplatesResultSchema: z.ZodObject<{
4472
4602
  hasAsciiDiagram: boolean;
4473
4603
  hasTimeline: boolean;
4474
4604
  hasTree: boolean;
4605
+ listShape: {
4606
+ templateId: string;
4607
+ shape: string;
4608
+ confidence: "strong" | "weak";
4609
+ reason: string;
4610
+ } | null;
4475
4611
  };
4476
4612
  recommendedTemplateIds: string[];
4477
4613
  }[];
@@ -4688,6 +4824,22 @@ declare const authoringContextResultSchema: z.ZodObject<{
4688
4824
  hasAsciiDiagram: z.ZodBoolean;
4689
4825
  hasTimeline: z.ZodBoolean;
4690
4826
  hasTree: z.ZodBoolean;
4827
+ listShape: z.ZodNullable<z.ZodObject<{
4828
+ shape: z.ZodString;
4829
+ templateId: z.ZodString;
4830
+ confidence: z.ZodEnum<["strong", "weak"]>;
4831
+ reason: z.ZodString;
4832
+ }, "strict", z.ZodTypeAny, {
4833
+ templateId: string;
4834
+ shape: string;
4835
+ confidence: "strong" | "weak";
4836
+ reason: string;
4837
+ }, {
4838
+ templateId: string;
4839
+ shape: string;
4840
+ confidence: "strong" | "weak";
4841
+ reason: string;
4842
+ }>>;
4691
4843
  }, "strict", z.ZodTypeAny, {
4692
4844
  wordCount: number;
4693
4845
  hasImage: boolean;
@@ -4702,6 +4854,12 @@ declare const authoringContextResultSchema: z.ZodObject<{
4702
4854
  hasAsciiDiagram: boolean;
4703
4855
  hasTimeline: boolean;
4704
4856
  hasTree: boolean;
4857
+ listShape: {
4858
+ templateId: string;
4859
+ shape: string;
4860
+ confidence: "strong" | "weak";
4861
+ reason: string;
4862
+ } | null;
4705
4863
  }, {
4706
4864
  wordCount: number;
4707
4865
  hasImage: boolean;
@@ -4716,6 +4874,12 @@ declare const authoringContextResultSchema: z.ZodObject<{
4716
4874
  hasAsciiDiagram: boolean;
4717
4875
  hasTimeline: boolean;
4718
4876
  hasTree: boolean;
4877
+ listShape: {
4878
+ templateId: string;
4879
+ shape: string;
4880
+ confidence: "strong" | "weak";
4881
+ reason: string;
4882
+ } | null;
4719
4883
  }>;
4720
4884
  recommendedTemplateIds: z.ZodArray<z.ZodString, "many">;
4721
4885
  }, "strict", z.ZodTypeAny, {
@@ -4735,6 +4899,12 @@ declare const authoringContextResultSchema: z.ZodObject<{
4735
4899
  hasAsciiDiagram: boolean;
4736
4900
  hasTimeline: boolean;
4737
4901
  hasTree: boolean;
4902
+ listShape: {
4903
+ templateId: string;
4904
+ shape: string;
4905
+ confidence: "strong" | "weak";
4906
+ reason: string;
4907
+ } | null;
4738
4908
  };
4739
4909
  recommendedTemplateIds: string[];
4740
4910
  }, {
@@ -4754,6 +4924,12 @@ declare const authoringContextResultSchema: z.ZodObject<{
4754
4924
  hasAsciiDiagram: boolean;
4755
4925
  hasTimeline: boolean;
4756
4926
  hasTree: boolean;
4927
+ listShape: {
4928
+ templateId: string;
4929
+ shape: string;
4930
+ confidence: "strong" | "weak";
4931
+ reason: string;
4932
+ } | null;
4757
4933
  };
4758
4934
  recommendedTemplateIds: string[];
4759
4935
  }>, "many">;
@@ -4822,6 +4998,12 @@ declare const authoringContextResultSchema: z.ZodObject<{
4822
4998
  hasAsciiDiagram: boolean;
4823
4999
  hasTimeline: boolean;
4824
5000
  hasTree: boolean;
5001
+ listShape: {
5002
+ templateId: string;
5003
+ shape: string;
5004
+ confidence: "strong" | "weak";
5005
+ reason: string;
5006
+ } | null;
4825
5007
  };
4826
5008
  recommendedTemplateIds: string[];
4827
5009
  }[];
@@ -4903,6 +5085,12 @@ declare const authoringContextResultSchema: z.ZodObject<{
4903
5085
  hasAsciiDiagram: boolean;
4904
5086
  hasTimeline: boolean;
4905
5087
  hasTree: boolean;
5088
+ listShape: {
5089
+ templateId: string;
5090
+ shape: string;
5091
+ confidence: "strong" | "weak";
5092
+ reason: string;
5093
+ } | null;
4906
5094
  };
4907
5095
  recommendedTemplateIds: string[];
4908
5096
  }[];
@@ -6061,4 +6249,4 @@ declare const materializationOptionsSchema: z.ZodDiscriminatedUnion<"ifExists",
6061
6249
  expectedSha256: string;
6062
6250
  }>]>;
6063
6251
 
6064
- export { DOCBLOCKS_MCP_TOOL_OUTPUT_SCHEMAS, DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS, MAX_MARKDOWN_CHARACTERS, MAX_PATH_CHARACTERS, applyInferredThemeResultSchema, artifactRefSchema, artifactUriSchema, authoringContextResultSchema, authoringTemplateSummarySchema, bundleAssetSchema, bundleDocumentSourceSchema, comparisonResultSchema, conversionResultSchema, convertDocumentResultSchema, describeTemplateResultSchema, describeThemeResultSchema, diagnosticSchema, documentSourceSchema, formatCapabilitySummarySchema, formatDirectionCapabilitySchema, formatInputSchema, formatSchema, inferThemeResultSchema, inferredLayoutSummarySchema, inspectPptxLayoutsResultSchema, inspectionResultSchema, listFormatsResultSchema, listRootsResultSchema, listTemplatesResultSchema, listThemesResultSchema, listTransformStylesResultSchema, materializationOptionsSchema, mcpErrorDetailSchema, mcpErrorResultSchema, pptxLayoutSummarySchema, previewResultSchema, recommendTemplatesResultSchema, rootGrantSummarySchema, saveArtifactResultSchema, templateContentProfileSchema, templateInputSummarySchema, templateRecommendationSchema, templateSummarySchema, themeCatalogEntrySchema, themeDescriptionSchema, toolOutputSchema, transformStyleSummarySchema };
6252
+ export { DOCBLOCKS_MCP_TOOL_OUTPUT_SCHEMAS, DOCBLOCKS_MCP_TOOL_RESULT_SCHEMAS, MAX_MARKDOWN_CHARACTERS, MAX_PATH_CHARACTERS, applyInferredThemeResultSchema, artifactRefSchema, artifactUriSchema, authoringContextResultSchema, authoringTemplateSummarySchema, bundleAssetSchema, bundleDocumentSourceSchema, comparisonResultSchema, conversionResultSchema, convertDocumentResultSchema, describeTemplateResultSchema, describeThemeResultSchema, diagnosticSchema, documentSourceSchema, formatCapabilitySummarySchema, formatDirectionCapabilitySchema, formatInputSchema, formatSchema, inferThemeResultSchema, inferredLayoutSummarySchema, inspectPptxLayoutsResultSchema, inspectionResultSchema, listFormatsResultSchema, listRootsResultSchema, listTemplatesResultSchema, listThemesResultSchema, listTransformStylesResultSchema, materializationOptionsSchema, mcpErrorDetailSchema, mcpErrorResultSchema, pptxLayoutSummarySchema, previewResultSchema, recommendTemplatesResultSchema, rootGrantSummarySchema, saveArtifactResultSchema, templateContentProfileSchema, templateInputSummarySchema, templateListShapeSchema, templateRecommendationSchema, templateSummarySchema, themeCatalogEntrySchema, themeDescriptionSchema, toolOutputSchema, transformStyleSummarySchema };
package/dist/mcp/zod.js CHANGED
@@ -462,6 +462,12 @@ var authoringTemplateSummarySchema = templateSummarySchema.extend({
462
462
  placement: z.literal("heading"),
463
463
  annotationExample: boundedString
464
464
  }).strict();
465
+ var templateListShapeSchema = z.object({
466
+ shape: idSchema,
467
+ templateId: idSchema,
468
+ confidence: z.enum(["strong", "weak"]),
469
+ reason: boundedString
470
+ }).strict();
465
471
  var templateContentProfileSchema = z.object({
466
472
  hasImage: z.boolean(),
467
473
  imageCount: nonNegativeSafeIntegerSchema,
@@ -475,7 +481,8 @@ var templateContentProfileSchema = z.object({
475
481
  hasCompoundBody: z.boolean(),
476
482
  hasAsciiDiagram: z.boolean(),
477
483
  hasTimeline: z.boolean(),
478
- hasTree: z.boolean()
484
+ hasTree: z.boolean(),
485
+ listShape: templateListShapeSchema.nullable()
479
486
  }).strict();
480
487
  var templateRecommendationSchema = z.object({
481
488
  blockId: idSchema,
@@ -758,6 +765,7 @@ export {
758
765
  saveArtifactResultSchema,
759
766
  templateContentProfileSchema,
760
767
  templateInputSummarySchema,
768
+ templateListShapeSchema,
761
769
  templateRecommendationSchema,
762
770
  templateSummarySchema,
763
771
  themeCatalogEntrySchema,
@@ -1,5 +1,5 @@
1
1
  import { d as FileSystemProvider } from './types-BIaQ_gYW.js';
2
- import { an as ElectronWorkspaceInfo, aJ as HostEnvironment } from './capabilities-yyRj0hyP.js';
2
+ import { ao as ElectronWorkspaceInfo, aK as HostEnvironment } from './capabilities-rfOUYj1Y.js';
3
3
 
4
4
  /**
5
5
  * Origin of a transient workspace — records where its contents came from and
@@ -411,6 +411,27 @@ interface TemplateContentProfile {
411
411
  readonly hasAsciiDiagram: boolean;
412
412
  readonly hasTimeline: boolean;
413
413
  readonly hasTree: boolean;
414
+ /**
415
+ * What the block's list is a picture of, when its body is one list; null
416
+ * otherwise. It is the linked Squisq classifier's reading of the heading
417
+ * and the items, so it says what convert_document will draw.
418
+ */
419
+ readonly listShape: TemplateListShape | null;
420
+ }
421
+ /** The relationship among a list's items, and the template that draws it. */
422
+ interface TemplateListShape {
423
+ /** The relationship: sequence, timeline, figures, cycle, hierarchy, plain… */
424
+ readonly shape: string;
425
+ /** The template that draws it; `list` for a plain list. */
426
+ readonly templateId: string;
427
+ /**
428
+ * `strong`: the author's own words or structure say so, and automatic
429
+ * template selection applies it. `weak`: plausible; only an annotation on
430
+ * the heading applies it.
431
+ */
432
+ readonly confidence: 'strong' | 'weak';
433
+ /** What the reading rests on. */
434
+ readonly reason: string;
414
435
  }
415
436
  interface TemplateRecommendation {
416
437
  readonly blockId: string;
@@ -495,4 +516,4 @@ type MaterializationOptions = {
495
516
  readonly expectedSha256: string;
496
517
  };
497
518
 
498
- export { type ListTransformStylesResult as $, type ArtifactRef as A, type BlockSummary as B, type ComparisonResult as C, type DocumentSource as D, type DiagnosticLocation as E, type DiagnosticSeverity as F, type DiagnosticStage as G, type DocBlocksMcpToolName as H, type InspectionResult as I, type DocBlocksMcpWireVersion as J, type DocumentItemSummary as K, type DocumentMetadataSummary as L, type MaterializationOptions as M, type DocumentStatistics as N, type EngineVersion as O, type PreviewResult as P, type FileDocumentSource as Q, type FormatCapabilitySummary as R, type FormatDirectionCapability as S, type InferThemeResult as T, type InferredLayoutSummary as U, type InspectPptxLayoutsResult as V, type LinkSummary as W, type ListFormatsResult as X, type ListRootsResult as Y, type ListTemplatesResult as Z, type ListThemesResult as _, type ConversionResult as a, type MarkdownDocumentSource as a0, type McpErrorDetail as a1, type McpSuccessResult as a2, type OutlineEntry as a3, type PptxLayoutSummary as a4, type PptxSlideSize as a5, type PreviewItem as a6, type PreviewItemKind as a7, type RecommendTemplatesResult as a8, type RootGrantSummary as a9, type SaveArtifactResult as aa, type SavedArtifactDestination as ab, type SourceRange as ac, type TableSummary as ad, type TemplateAuthoringRole as ae, type TemplateBodyPolicy as af, type TemplateContentProfile as ag, type TemplateInputSummary as ah, type TemplateRecommendation as ai, type TemplateSummary as aj, type ThemeCatalogEntry as ak, type ThemeDescription as al, type ThemeDescriptionColors as am, type ThemeSummary as an, type TransformStyleSummary as ao, type McpDiagnostic as b, type McpErrorResult as c, type AppliedOption as d, type AppliedOptionValue as e, type ApplyInferredThemeResult as f, type ArtifactDocumentSource as g, type AssetSummary as h, type AuthoringContextResult as i, type AuthoringGoal as j, type AuthoringSyntaxSummary as k, type AuthoringTemplateSummary as l, type BundleAssetContentSource as m, type BundleAssetRef as n, type BundleDocumentSource as o, type ComparisonCategory as p, type ComparisonChange as q, type ComparisonMetric as r, type ComparisonStatus as s, type ConversionFidelity as t, type ConvertDocumentResult as u, DOCBLOCKS_MCP_TOOL_NAMES as v, DOCBLOCKS_MCP_WIRE_VERSION as w, type DescribeTemplateResult as x, type DescribeThemeResult as y, type DescribedTemplate as z };
519
+ export { type ListTransformStylesResult as $, type ArtifactRef as A, type BlockSummary as B, type ComparisonResult as C, type DocumentSource as D, type DiagnosticLocation as E, type DiagnosticSeverity as F, type DiagnosticStage as G, type DocBlocksMcpToolName as H, type InspectionResult as I, type DocBlocksMcpWireVersion as J, type DocumentItemSummary as K, type DocumentMetadataSummary as L, type MaterializationOptions as M, type DocumentStatistics as N, type EngineVersion as O, type PreviewResult as P, type FileDocumentSource as Q, type FormatCapabilitySummary as R, type FormatDirectionCapability as S, type InferThemeResult as T, type InferredLayoutSummary as U, type InspectPptxLayoutsResult as V, type LinkSummary as W, type ListFormatsResult as X, type ListRootsResult as Y, type ListTemplatesResult as Z, type ListThemesResult as _, type ConversionResult as a, type MarkdownDocumentSource as a0, type McpErrorDetail as a1, type McpSuccessResult as a2, type OutlineEntry as a3, type PptxLayoutSummary as a4, type PptxSlideSize as a5, type PreviewItem as a6, type PreviewItemKind as a7, type RecommendTemplatesResult as a8, type RootGrantSummary as a9, type SaveArtifactResult as aa, type SavedArtifactDestination as ab, type SourceRange as ac, type TableSummary as ad, type TemplateAuthoringRole as ae, type TemplateBodyPolicy as af, type TemplateContentProfile as ag, type TemplateInputSummary as ah, type TemplateListShape as ai, type TemplateRecommendation as aj, type TemplateSummary as ak, type ThemeCatalogEntry as al, type ThemeDescription as am, type ThemeDescriptionColors as an, type ThemeSummary as ao, type TransformStyleSummary as ap, type McpDiagnostic as b, type McpErrorResult as c, type AppliedOption as d, type AppliedOptionValue as e, type ApplyInferredThemeResult as f, type ArtifactDocumentSource as g, type AssetSummary as h, type AuthoringContextResult as i, type AuthoringGoal as j, type AuthoringSyntaxSummary as k, type AuthoringTemplateSummary as l, type BundleAssetContentSource as m, type BundleAssetRef as n, type BundleDocumentSource as o, type ComparisonCategory as p, type ComparisonChange as q, type ComparisonMetric as r, type ComparisonStatus as s, type ConversionFidelity as t, type ConvertDocumentResult as u, DOCBLOCKS_MCP_TOOL_NAMES as v, DOCBLOCKS_MCP_WIRE_VERSION as w, type DescribeTemplateResult as x, type DescribeThemeResult as y, type DescribedTemplate as z };
@@ -1,9 +1,9 @@
1
- export { D as DEFAULT_WORKSPACE_ID, E as ElectronWorkspaceReconciliation, T as TransientOrigin, W as WorkspaceDescriptor, e as ensureDefaultWorkspace, g as getTransientWorkspace, a as getWorkspace, l as listWorkspaces, p as parsePersistedWorkspaceList, r as reconcileElectronWorkspaceDescriptors, b as registerTransientWorkspace, c as removeWorkspace, s as saveWorkspace, t as touchWorkspace, u as unregisterTransientWorkspace } from '../reconcile-electron-FvgF5oC7.js';
1
+ export { D as DEFAULT_WORKSPACE_ID, E as ElectronWorkspaceReconciliation, T as TransientOrigin, W as WorkspaceDescriptor, e as ensureDefaultWorkspace, g as getTransientWorkspace, a as getWorkspace, l as listWorkspaces, p as parsePersistedWorkspaceList, r as reconcileElectronWorkspaceDescriptors, b as registerTransientWorkspace, c as removeWorkspace, s as saveWorkspace, t as touchWorkspace, u as unregisterTransientWorkspace } from '../reconcile-electron-DtP-HC39.js';
2
2
  import { ContentContainer } from '@bendyline/squisq/storage';
3
3
  import { o as FileSystemProviderV2 } from '../v2-pBdrFAlW.js';
4
4
  import { a as WorkspacePath } from '../workspace-path-CWVrcuPL.js';
5
5
  import '../types-BIaQ_gYW.js';
6
- import '../capabilities-yyRj0hyP.js';
6
+ import '../capabilities-rfOUYj1Y.js';
7
7
  import '../filesystem-v2-CYPHqoIw.js';
8
8
 
9
9
  declare const WORKSPACE_BACKUP_MANIFEST = "docblocks-backup.json";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bendyline/docblocks",
3
- "version": "2.7.14",
3
+ "version": "2.7.16",
4
4
  "description": "Core data structures and filesystem abstractions for DocBlocks",
5
5
  "license": "MIT",
6
6
  "author": "Bendyline",
@@ -126,7 +126,7 @@
126
126
  "typecheck": "tsc --noEmit"
127
127
  },
128
128
  "dependencies": {
129
- "@bendyline/squisq": "2.13.13",
129
+ "@bendyline/squisq": "2.13.15",
130
130
  "zod": "3.25.76"
131
131
  }
132
132
  }