@webskill/sdk 0.28.1 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -3,14 +3,13 @@ import { A as SKILL_MANIFEST_FILE, C as keyIdOf, D as verifySkillSignature, E as
3
3
  import { a as atomicWriteBinary, i as ATOMIC_TMP_SUFFIX_PATTERN, n as normalizePath, o as atomicWriteText, r as resolveInsideRoot, s as isAtomicTempPath, t as assertSafePathSegment } from "./pathSecurity-CirkQwWP.js";
4
4
  import { t as assertRemoteUrlAllowed } from "./urlSafety-CiSuCJvX.js";
5
5
  import { n as sanitizeUntrustedLine, t as UNTRUSTED_LINE_LIMIT } from "./untrustedText-BIaRvPZK.js";
6
- import { a as FILE_MIME_TYPES, c as TEXT_EXTENSIONS, d as extractedDocumentFormat, f as formatAttachmentText, i as DWG_MIME_TYPES, l as XLSX_MIME, n as BINARY_EXTENSIONS, o as IMAGE_MIME_TYPES, r as DOCX_MIME, s as PPTX_MIME, t as ATTACHMENT_TEXT_LIMIT, u as classifyAttachment } from "./kind-Dc8x0HWz.js";
7
- import { $ as READ_SKILL_FILE_TOOL, A as BEHAVIOR_RECORDS_KEY, B as renderUserProfileContext, C as extractTodoTraceEvents, D as VISION_SLOW_THRESHOLD_MS, E as VISION_MAX_CONCURRENCY, F as readProfileEntries, G as schemaToForm, H as EMPTY_USER_PROFILE, I as readUserProfile, J as ASK_USER_INPUT_SCHEMA, K as createScriptContext, L as sampleBehaviorRecords, M as appendBehaviorRecords, N as mergeProfileEntries, O as clampVisionConcurrency, P as readBehaviorRecords, Q as READ_SKILL_FILE_INPUT_SCHEMA, R as USER_PROFILE_NO_INVENTION_RULE, S as extractSkillCandidate, T as VISION_DEFAULT_CONCURRENCY, U as SerializingMemoryStore, V as DEFAULT_USER_PROFILE_LIMITS, W as EventBus, X as ASK_USER_TOOL, Y as ASK_USER_MAX_FIELDS, Z as ASK_USER_TOOL_NAME, _ as FsRunSnapshotStore, a as networkPolicyLibSource, at as scriptToolName, b as DEFAULT_LOOP_LIMITS, c as bridgeError, ct as ProgressiveRouter, d as FsMemoryStore, dt as xmlRenderer, et as READ_SKILL_FILE_TOOL_NAME, f as WebSkillRuntime, g as redactToolStepArgs, h as SENSITIVE_ANNOTATION, i as isNetworkAllowed, it as schemaSourceLabel, j as USER_PROFILE_KEY, k as runVisionBatch, l as parseBridgeRequest, lt as escapeXml, m as AgentLoop, n as normalizeErrorCode, nt as formatSkillScriptManifest, o as networkUrlHost, ot as resolveToolName, p as summarizeRunUsage, q as ASK_USER_FIELD_TYPES, r as normalizeToolError, rt as listSkillScripts, s as UPLOAD_FILES_UNAVAILABLE, st as toLlmToolSpec, t as CapabilityApproval, tt as ALLOWED_TOOLS_EXCLUSION_REASON, u as FsArtifactStore, ut as renderAvailableSkillsXml, v as RUN_SNAPSHOT_SCHEMA_VERSION, w as TraceRecorder, x as MAX_TOOL_STEP_ARG_BYTES, y as isUnsupportedRunSnapshot, z as USER_PROFILE_PROMPT_HEADER } from "./approval-5BmspsRi.js";
6
+ import { A as extractedDocumentFormat, C as FILE_MIME_TYPES, D as XLSX_MIME, E as TEXT_EXTENSIONS, O as XLS_MIME, S as DWG_MIME_TYPES, T as PPTX_MIME, _ as DEFAULT_MAX_UPLOAD_FILE_BYTES, a as UNSUPPORTED_DOCUMENT_MESSAGE, b as BINARY_EXTENSIONS, c as toBase64, d as SPREADSHEET_LIMITS, f as SPREADSHEET_MIME_TYPE, g as DEFAULT_MAX_DOCUMENT_TEXT_BYTES, h as DEFAULT_MAX_DOCUMENT_BYTES, i as SUPPORTED_DOCUMENT_MIME, j as formatAttachmentText, k as classifyAttachment, l as encodeSpreadsheet, m as DEFAULT_MAX_DATA_SOURCE_BYTES, n as READ_LINKED_DOCUMENT_TOOL, p as XLSX_UNSUPPORTED, r as READ_LINKED_DOCUMENT_TOOL_NAME, s as isBytesOnlyDocument, t as BYTES_ONLY_DOCUMENT_MIME, u as SPREADSHEET_EXTENSION, v as TEXT_BUDGETED_CONTENT_TYPES, w as IMAGE_MIME_TYPES, x as DOCX_MIME, y as ATTACHMENT_TEXT_LIMIT } from "./linkedDocument-GE-VV_Gj.js";
7
+ import { $ as READ_SKILL_FILE_TOOL, A as BEHAVIOR_RECORDS_KEY, B as renderUserProfileContext, C as extractTodoTraceEvents, D as VISION_SLOW_THRESHOLD_MS, E as VISION_MAX_CONCURRENCY, F as readProfileEntries, G as schemaToForm, H as EMPTY_USER_PROFILE, I as readUserProfile, J as ASK_USER_INPUT_SCHEMA, K as createScriptContext, L as sampleBehaviorRecords, M as appendBehaviorRecords, N as mergeProfileEntries, O as clampVisionConcurrency, P as readBehaviorRecords, Q as READ_SKILL_FILE_INPUT_SCHEMA, R as USER_PROFILE_NO_INVENTION_RULE, S as extractSkillCandidate, T as VISION_DEFAULT_CONCURRENCY, U as SerializingMemoryStore, V as DEFAULT_USER_PROFILE_LIMITS, W as EventBus, X as ASK_USER_TOOL, Y as ASK_USER_MAX_FIELDS, Z as ASK_USER_TOOL_NAME, _ as FsRunSnapshotStore, a as networkPolicyLibSource, at as scriptToolName, b as DEFAULT_LOOP_LIMITS, c as bridgeError, ct as ProgressiveRouter, d as FsMemoryStore, dt as xmlRenderer, et as READ_SKILL_FILE_TOOL_NAME, f as WebSkillRuntime, g as redactToolStepArgs, h as SENSITIVE_ANNOTATION, i as isNetworkAllowed, it as schemaSourceLabel, j as USER_PROFILE_KEY, k as runVisionBatch, l as parseBridgeRequest, lt as escapeXml, m as AgentLoop, n as normalizeErrorCode, nt as formatSkillScriptManifest, o as networkUrlHost, ot as resolveToolName, p as summarizeRunUsage, q as ASK_USER_FIELD_TYPES, r as normalizeToolError, rt as listSkillScripts, s as UPLOAD_FILES_UNAVAILABLE, st as toLlmToolSpec, t as CapabilityApproval, tt as ALLOWED_TOOLS_EXCLUSION_REASON, u as FsArtifactStore, ut as renderAvailableSkillsXml, v as RUN_SNAPSHOT_SCHEMA_VERSION, w as TraceRecorder, x as MAX_TOOL_STEP_ARG_BYTES, y as isUnsupportedRunSnapshot, z as USER_PROFILE_PROMPT_HEADER } from "./approval-DnUytrkq.js";
8
8
  import { a as GoogleGenAiClient, c as findUnpairedToolCalls, d as partsToText, f as promptText, i as toVercelToolSpecs, l as interruptedToolResult, n as fromVercelResult, o as AnthropicClient, p as textParts, r as fromVercelStreamPart, s as OpenAiCompatibleClient, u as sealToolCallPairs } from "./llm-eIQNO9tr.js";
9
- import { _ as DEFAULT_MAX_UPLOAD_FILE_BYTES, a as UNSUPPORTED_DOCUMENT_MESSAGE, c as toBase64, d as SPREADSHEET_LIMITS, f as SPREADSHEET_MIME_TYPE, g as DEFAULT_MAX_DOCUMENT_TEXT_BYTES, h as DEFAULT_MAX_DOCUMENT_BYTES, i as SUPPORTED_DOCUMENT_MIME, l as encodeSpreadsheet, m as DEFAULT_MAX_DATA_SOURCE_BYTES, n as READ_LINKED_DOCUMENT_TOOL, p as XLSX_UNSUPPORTED, r as READ_LINKED_DOCUMENT_TOOL_NAME, s as isBytesOnlyDocument, t as BYTES_ONLY_DOCUMENT_MIME, u as SPREADSHEET_EXTENSION, v as TEXT_BUDGETED_CONTENT_TYPES } from "./linkedDocument-0iiVPd5t.js";
10
9
  import { n as normalizeToolContent, t as mergeCatalogEntries } from "./external-_ZRQe-V9.js";
11
10
  import { n as extractChartSpec, t as buildRenderResult } from "./renderResult-2v3WQzs_.js";
12
11
  import { n as validateUiSpecEvent, r as validateUiSpecNode, t as extractUiSpecEvents } from "./surface-DVGiCmwq.js";
13
- import { t as createWebSkillApi } from "./webSkillApi-rX2e3SVB.js";
12
+ import { t as createWebSkillApi } from "./webSkillApi-TeWPPFDn.js";
14
13
 
15
14
  //#region ../core/src/fs/memoryFs.ts
16
15
  const ROOT = "/";
@@ -1018,7 +1017,7 @@ var FsToolStepStore = class {
1018
1017
  * Version of the published `@webskill/sdk` package, injected at build time.
1019
1018
  * @stable
1020
1019
  */
1021
- const SDK_VERSION = "0.28.1";
1020
+ const SDK_VERSION = "0.29.0";
1022
1021
 
1023
1022
  //#endregion
1024
- export { ALLOWED_TOOLS_EXCLUSION_REASON, ASK_USER_FIELD_TYPES, ASK_USER_INPUT_SCHEMA, ASK_USER_MAX_FIELDS, ASK_USER_TOOL, ASK_USER_TOOL_NAME, ATOMIC_TMP_SUFFIX_PATTERN, ATTACHMENT_TEXT_LIMIT, AgentLoop, AnthropicClient, BEHAVIOR_RECORDS_KEY, BINARY_EXTENSIONS, BYTES_ONLY_DOCUMENT_MIME, CapabilityApproval, DEFAULT_ARCHIVE_LIMITS, DEFAULT_LOOP_LIMITS, DEFAULT_MAX_DATA_SOURCE_BYTES, DEFAULT_MAX_DOCUMENT_BYTES, DEFAULT_MAX_DOCUMENT_TEXT_BYTES, DEFAULT_MAX_UPLOAD_FILE_BYTES, DEFAULT_USER_PROFILE_LIMITS, DOCX_MIME, DWG_MIME_TYPES, EMPTY_USER_PROFILE, EventBus, FILE_MIME_TYPES, FS_SESSION_PAGE_SIZE, FsArtifactStore, FsMemoryStore, FsRunSnapshotStore, FsRunTraceStore, FsSessionStore, FsToolStepStore, FsTrustedKeyStore, FullDisclosureRouter, GoogleGenAiClient, HookRunner, IMAGE_MIME_TYPES, MANIFEST_EXCLUDED_FILES, MAX_TOOL_STEP_ARG_BYTES, MemoryFS, OpenAiCompatibleClient, PPTX_MIME, ProgressiveRouter, READ_LINKED_DOCUMENT_TOOL, READ_LINKED_DOCUMENT_TOOL_NAME, READ_SKILL_FILE_INPUT_SCHEMA, READ_SKILL_FILE_TOOL, READ_SKILL_FILE_TOOL_NAME, RUN_SNAPSHOT_SCHEMA_VERSION, RUN_TRACE_SCHEMA_VERSION, SDK_VERSION, SENSITIVE_ANNOTATION, SESSION_SCHEMA_VERSION, SIGNATURE_SCHEMA_VERSION, SKILLS_LOCKFILE, SKILL_MANIFEST_FILE, SKILL_NAME_MAX_LENGTH, SKILL_NAME_PATTERN, SKILL_PACK_FILE, SKILL_SIGNATURE_FILE, SPREADSHEET_EXTENSION, SPREADSHEET_LIMITS, SPREADSHEET_MIME_TYPE, SUPPORTED_DOCUMENT_MIME, SerializingMemoryStore, SkillDiscovery, SkillReader, TEXT_BUDGETED_CONTENT_TYPES, TEXT_EXTENSIONS, TraceRecorder, UNSUPPORTED_DOCUMENT_MESSAGE, UNTRUSTED_LINE_LIMIT, UPLOAD_FILES_UNAVAILABLE, USER_PROFILE_EXPORT_VERSION, USER_PROFILE_KEY, USER_PROFILE_NO_INVENTION_RULE, USER_PROFILE_PROMPT_HEADER, USER_PROFILE_REFINE_PROMPT, VISION_DEFAULT_CONCURRENCY, VISION_MAX_CONCURRENCY, VISION_SLOW_THRESHOLD_MS, WebSkillError, WebSkillRuntime, XLSX_MIME, XLSX_UNSUPPORTED, appendBehaviorRecords, applyUserProfileImport, assertRemoteUrlAllowed, assertSafePathSegment, atomicWriteBinary, atomicWriteText, bridgeError, buildCatalog, buildManifest, buildRenderResult, checkDependencyCycles, checkSkillRules, clampVisionConcurrency, classifyAttachment, computeDigest, createScriptContext, createWebSkillApi, detectSkillArchiveShape, detectSkillArchiveShapeFromFs, diffUserProfile, encodeSpreadsheet, escapeXml, exportSkills, exportUserProfile, extractChartSpec, extractSkillCandidate, extractTodoTraceEvents, extractUiSpecEvents, extractedDocumentFormat, findUnpairedToolCalls, formatAttachmentText, formatSkillScriptManifest, fromVercelResult, fromVercelStreamPart, interruptedToolResult, isAtomicTempPath, isBytesOnlyDocument, isNetworkAllowed, isUnsupportedRunSnapshot, isValidSkillName, jsonRenderer, keyIdOf, listSkillScripts, mergeCatalogEntries, mergeProfileEntries, messageOf, networkPolicyLibSource, networkUrlHost, normalizeErrorCode, normalizePath, normalizeToolContent, normalizeToolError, parseBridgeRequest, parseSkillMarkdown, parseSkillPackManifest, parseUserProfileExport, partsToText, readBehaviorRecords, readProfileEntries, readResponseWithLimit, readSkillSignature, readUserProfile, redactToolStepArgs, refineUserProfile, renderAvailableSkillsXml, renderCatalogJson, renderUserProfileContext, resolveArchiveLimits, resolveInsideRoot, resolveToolName, runVisionBatch, sampleBehaviorRecords, sanitizeUntrustedLine, schemaSourceLabel, schemaToForm, scriptToolName, sealToolCallPairs, signSkill, signaturePayloadBytes, stripArchiveRoot, summarizeRunUsage, summarizeToolCalls, textParts, toBase64, toLlmToolSpec, toRecordDigests, toVercelToolSpecs, unzipWithLimits, validateSkills, validateUiSpecEvent, validateUiSpecNode, verifyManifest, verifySkillSignature, xmlRenderer };
1023
+ export { ALLOWED_TOOLS_EXCLUSION_REASON, ASK_USER_FIELD_TYPES, ASK_USER_INPUT_SCHEMA, ASK_USER_MAX_FIELDS, ASK_USER_TOOL, ASK_USER_TOOL_NAME, ATOMIC_TMP_SUFFIX_PATTERN, ATTACHMENT_TEXT_LIMIT, AgentLoop, AnthropicClient, BEHAVIOR_RECORDS_KEY, BINARY_EXTENSIONS, BYTES_ONLY_DOCUMENT_MIME, CapabilityApproval, DEFAULT_ARCHIVE_LIMITS, DEFAULT_LOOP_LIMITS, DEFAULT_MAX_DATA_SOURCE_BYTES, DEFAULT_MAX_DOCUMENT_BYTES, DEFAULT_MAX_DOCUMENT_TEXT_BYTES, DEFAULT_MAX_UPLOAD_FILE_BYTES, DEFAULT_USER_PROFILE_LIMITS, DOCX_MIME, DWG_MIME_TYPES, EMPTY_USER_PROFILE, EventBus, FILE_MIME_TYPES, FS_SESSION_PAGE_SIZE, FsArtifactStore, FsMemoryStore, FsRunSnapshotStore, FsRunTraceStore, FsSessionStore, FsToolStepStore, FsTrustedKeyStore, FullDisclosureRouter, GoogleGenAiClient, HookRunner, IMAGE_MIME_TYPES, MANIFEST_EXCLUDED_FILES, MAX_TOOL_STEP_ARG_BYTES, MemoryFS, OpenAiCompatibleClient, PPTX_MIME, ProgressiveRouter, READ_LINKED_DOCUMENT_TOOL, READ_LINKED_DOCUMENT_TOOL_NAME, READ_SKILL_FILE_INPUT_SCHEMA, READ_SKILL_FILE_TOOL, READ_SKILL_FILE_TOOL_NAME, RUN_SNAPSHOT_SCHEMA_VERSION, RUN_TRACE_SCHEMA_VERSION, SDK_VERSION, SENSITIVE_ANNOTATION, SESSION_SCHEMA_VERSION, SIGNATURE_SCHEMA_VERSION, SKILLS_LOCKFILE, SKILL_MANIFEST_FILE, SKILL_NAME_MAX_LENGTH, SKILL_NAME_PATTERN, SKILL_PACK_FILE, SKILL_SIGNATURE_FILE, SPREADSHEET_EXTENSION, SPREADSHEET_LIMITS, SPREADSHEET_MIME_TYPE, SUPPORTED_DOCUMENT_MIME, SerializingMemoryStore, SkillDiscovery, SkillReader, TEXT_BUDGETED_CONTENT_TYPES, TEXT_EXTENSIONS, TraceRecorder, UNSUPPORTED_DOCUMENT_MESSAGE, UNTRUSTED_LINE_LIMIT, UPLOAD_FILES_UNAVAILABLE, USER_PROFILE_EXPORT_VERSION, USER_PROFILE_KEY, USER_PROFILE_NO_INVENTION_RULE, USER_PROFILE_PROMPT_HEADER, USER_PROFILE_REFINE_PROMPT, VISION_DEFAULT_CONCURRENCY, VISION_MAX_CONCURRENCY, VISION_SLOW_THRESHOLD_MS, WebSkillError, WebSkillRuntime, XLSX_MIME, XLSX_UNSUPPORTED, XLS_MIME, appendBehaviorRecords, applyUserProfileImport, assertRemoteUrlAllowed, assertSafePathSegment, atomicWriteBinary, atomicWriteText, bridgeError, buildCatalog, buildManifest, buildRenderResult, checkDependencyCycles, checkSkillRules, clampVisionConcurrency, classifyAttachment, computeDigest, createScriptContext, createWebSkillApi, detectSkillArchiveShape, detectSkillArchiveShapeFromFs, diffUserProfile, encodeSpreadsheet, escapeXml, exportSkills, exportUserProfile, extractChartSpec, extractSkillCandidate, extractTodoTraceEvents, extractUiSpecEvents, extractedDocumentFormat, findUnpairedToolCalls, formatAttachmentText, formatSkillScriptManifest, fromVercelResult, fromVercelStreamPart, interruptedToolResult, isAtomicTempPath, isBytesOnlyDocument, isNetworkAllowed, isUnsupportedRunSnapshot, isValidSkillName, jsonRenderer, keyIdOf, listSkillScripts, mergeCatalogEntries, mergeProfileEntries, messageOf, networkPolicyLibSource, networkUrlHost, normalizeErrorCode, normalizePath, normalizeToolContent, normalizeToolError, parseBridgeRequest, parseSkillMarkdown, parseSkillPackManifest, parseUserProfileExport, partsToText, readBehaviorRecords, readProfileEntries, readResponseWithLimit, readSkillSignature, readUserProfile, redactToolStepArgs, refineUserProfile, renderAvailableSkillsXml, renderCatalogJson, renderUserProfileContext, resolveArchiveLimits, resolveInsideRoot, resolveToolName, runVisionBatch, sampleBehaviorRecords, sanitizeUntrustedLine, schemaSourceLabel, schemaToForm, scriptToolName, sealToolCallPairs, signSkill, signaturePayloadBytes, stripArchiveRoot, summarizeRunUsage, summarizeToolCalls, textParts, toBase64, toLlmToolSpec, toRecordDigests, toVercelToolSpecs, unzipWithLimits, validateSkills, validateUiSpecEvent, validateUiSpecNode, verifyManifest, verifySkillSignature, xmlRenderer };
@@ -2,6 +2,116 @@ import { t as WebSkillError } from "./errors-BDZNpC13.js";
2
2
  import { unzipSync, zipSync } from "fflate";
3
3
  import writeXlsxFile from "write-excel-file/universal";
4
4
 
5
+ //#region ../core/src/attachment/kind.ts
6
+ /** 可作为图片分片外发的 MIME 类型 @experimental */
7
+ const IMAGE_MIME_TYPES = [
8
+ "image/png",
9
+ "image/jpeg",
10
+ "image/webp",
11
+ "image/gif"
12
+ ];
13
+ /**
14
+ * 可按文本读取的扩展名。accept 白名单与判定白名单共用这一份——
15
+ * 0.5.x 两处不一致,`log`/`yaml`/`yml` 能通过判定却在文件选择器里选不到。
16
+ */
17
+ const TEXT_EXTENSIONS = [
18
+ "txt",
19
+ "md",
20
+ "csv",
21
+ "json",
22
+ "log",
23
+ "yaml",
24
+ "yml"
25
+ ];
26
+ /** 非文本非图片但仍可整体外发的类型(provider 的 file 分片) @experimental */
27
+ const FILE_MIME_TYPES = ["application/pdf"];
28
+ /**
29
+ * 需要**客户端先抽取成文本**才能外发的类型(FR-23.9 / 0.13.0 FR-12.5 / 0.22.0 分册 18)。
30
+ * 不走直通的 `file`:docx / xlsx / pptx 发给 provider 会被当成二进制垃圾。
31
+ */
32
+ const DOCX_MIME = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
33
+ const XLS_MIME = "application/vnd.ms-excel";
34
+ const XLSX_MIME = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
35
+ const PPTX_MIME = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
36
+ /** 文本类附件进模型上下文的字符上限(0.6.0) @experimental */
37
+ const ATTACHMENT_TEXT_LIMIT = 32 * 1024;
38
+ /**
39
+ * DWG 图纸的 MIME。没有官方注册值,各家各发一套,浏览器上传时更常见的是空串。
40
+ * @experimental
41
+ */
42
+ const DWG_MIME_TYPES = [
43
+ "image/vnd.dwg",
44
+ "application/acad",
45
+ "application/x-acad",
46
+ "application/dwg",
47
+ "application/x-dwg",
48
+ "drawing/dwg"
49
+ ];
50
+ /**
51
+ * 只存字节、不进上下文的扩展名。仍然是**白名单制**:
52
+ * 新增 `binary` 类别不等于任意二进制放行(AC-19.18)。
53
+ * @experimental
54
+ */
55
+ const BINARY_EXTENSIONS = ["dwg"];
56
+ const TEXT_EXTENSION_SET = new Set(TEXT_EXTENSIONS);
57
+ const IMAGE_MIME_SET = new Set(IMAGE_MIME_TYPES);
58
+ const FILE_MIME_SET = new Set(FILE_MIME_TYPES);
59
+ const EXTRACTED_MIME_SET = /* @__PURE__ */ new Set([
60
+ DOCX_MIME,
61
+ XLS_MIME,
62
+ XLSX_MIME,
63
+ PPTX_MIME
64
+ ]);
65
+ const EXTRACTED_EXTENSION_SET = /* @__PURE__ */ new Set([
66
+ "docx",
67
+ "xls",
68
+ "xlsx",
69
+ "pptx"
70
+ ]);
71
+ const BINARY_MIME_SET = new Set(DWG_MIME_TYPES);
72
+ const BINARY_EXTENSION_SET = new Set(BINARY_EXTENSIONS);
73
+ /** 下载与上传都常把认不出的类型标成它,此时只能看扩展名 */
74
+ const OPAQUE_MIME = "application/octet-stream";
75
+ function extensionOf(fileName) {
76
+ return fileName.split(".").pop()?.toLowerCase() ?? "";
77
+ }
78
+ /**
79
+ * 三种待抽取格式共用 `document-text` 这一种 kind,选抽取器时要按格式再分一次。
80
+ * 下载列表与上传入口必须得出同一结论(AC-20.17),所以只能在这里一份。
81
+ * @experimental
82
+ */
83
+ function extractedDocumentFormat(contentType, fileName) {
84
+ const type = contentType.toLowerCase();
85
+ const ext = extensionOf(fileName);
86
+ if (type === "" || type === OPAQUE_MIME) return ext === "xls" || ext === "xlsx" ? "xlsx" : ext === "pptx" ? "pptx" : "docx";
87
+ if (type === "application/vnd.ms-excel" || type === "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") return "xlsx";
88
+ if (type === "application/vnd.openxmlformats-officedocument.presentationml.presentation") return "pptx";
89
+ return "docx";
90
+ }
91
+ /** 分类集中一处,不散落在各 UI 分支里 @experimental */ function classifyAttachment(contentType, fileName) {
92
+ const type = contentType.toLowerCase();
93
+ if (IMAGE_MIME_SET.has(type)) return "image";
94
+ if (BINARY_MIME_SET.has(type)) return "binary";
95
+ if (EXTRACTED_MIME_SET.has(type)) return "document-text";
96
+ if (FILE_MIME_SET.has(type)) return "file";
97
+ if (type.startsWith("text/") || type === "application/json") return "text";
98
+ if (type === "" && TEXT_EXTENSION_SET.has(extensionOf(fileName))) return "text";
99
+ if ((type === "" || type === OPAQUE_MIME) && EXTRACTED_EXTENSION_SET.has(extensionOf(fileName))) return "document-text";
100
+ if ((type === "" || type === OPAQUE_MIME) && BINARY_EXTENSION_SET.has(extensionOf(fileName))) return "binary";
101
+ }
102
+ /**
103
+ * 文本类附件进模型上下文的最终形态。两条入口共用,差别只有出处那一段(0.14.0 D-20-6)。
104
+ * @experimental
105
+ */
106
+ function formatAttachmentText(input) {
107
+ const limit = input.limit ?? 32768;
108
+ const clipped = input.body.length > limit ? `${input.body.slice(0, limit)}\n[truncated]` : input.body;
109
+ const bodyOnly = input.kind === "document-text" ? ", body text only" : "";
110
+ const from = input.origin === "download" ? ", from this device's downloads" : "";
111
+ return `--- Attachment: ${input.name} (${input.contentType}${bodyOnly}${from}) ---\n${clipped}`;
112
+ }
113
+
114
+ //#endregion
5
115
  //#region ../runtime/src/tools/types.ts
6
116
  /**
7
117
  * 参与 `toolResultMaxBytes` 截断的分片类型(FR-23.3)。**判据的单一来源。**
@@ -421,7 +531,7 @@ function isBytesOnlyDocument(mime, url) {
421
531
  return ((url.split(/[?#]/)[0] ?? "").split(".").pop() ?? "").toLowerCase() === "dwg";
422
532
  }
423
533
  /** 引擎侧固定流程(§2.3)用到的错误文案,集中一处便于判据引用 */
424
- const UNSUPPORTED_DOCUMENT_MESSAGE = `Only PDF (${SUPPORTED_DOCUMENT_MIME.pdf}), Word (${SUPPORTED_DOCUMENT_MIME.docx}), Excel (${SUPPORTED_DOCUMENT_MIME.xlsx}), PowerPoint (${SUPPORTED_DOCUMENT_MIME.pptx}) and plain text documents can be read.`;
534
+ const UNSUPPORTED_DOCUMENT_MESSAGE = `Only PDF (${SUPPORTED_DOCUMENT_MIME.pdf}), Word (${SUPPORTED_DOCUMENT_MIME.docx}), Excel (${SUPPORTED_DOCUMENT_MIME.xlsx} or ${XLS_MIME}), PowerPoint (${SUPPORTED_DOCUMENT_MIME.pptx}) and plain text documents can be read.`;
425
535
  const READ_LINKED_DOCUMENT_INPUT_SCHEMA = {
426
536
  type: "object",
427
537
  properties: { url: {
@@ -455,4 +565,4 @@ function fromBase64(data) {
455
565
  }
456
566
 
457
567
  //#endregion
458
- export { DEFAULT_MAX_UPLOAD_FILE_BYTES as _, UNSUPPORTED_DOCUMENT_MESSAGE as a, toBase64 as c, SPREADSHEET_LIMITS as d, SPREADSHEET_MIME_TYPE as f, DEFAULT_MAX_DOCUMENT_TEXT_BYTES as g, DEFAULT_MAX_DOCUMENT_BYTES as h, SUPPORTED_DOCUMENT_MIME as i, encodeSpreadsheet as l, DEFAULT_MAX_DATA_SOURCE_BYTES as m, READ_LINKED_DOCUMENT_TOOL as n, fromBase64 as o, XLSX_UNSUPPORTED as p, READ_LINKED_DOCUMENT_TOOL_NAME as r, isBytesOnlyDocument as s, BYTES_ONLY_DOCUMENT_MIME as t, SPREADSHEET_EXTENSION as u, TEXT_BUDGETED_CONTENT_TYPES as v };
568
+ export { extractedDocumentFormat as A, FILE_MIME_TYPES as C, XLSX_MIME as D, TEXT_EXTENSIONS as E, XLS_MIME as O, DWG_MIME_TYPES as S, PPTX_MIME as T, DEFAULT_MAX_UPLOAD_FILE_BYTES as _, UNSUPPORTED_DOCUMENT_MESSAGE as a, BINARY_EXTENSIONS as b, toBase64 as c, SPREADSHEET_LIMITS as d, SPREADSHEET_MIME_TYPE as f, DEFAULT_MAX_DOCUMENT_TEXT_BYTES as g, DEFAULT_MAX_DOCUMENT_BYTES as h, SUPPORTED_DOCUMENT_MIME as i, formatAttachmentText as j, classifyAttachment as k, encodeSpreadsheet as l, DEFAULT_MAX_DATA_SOURCE_BYTES as m, READ_LINKED_DOCUMENT_TOOL as n, fromBase64 as o, XLSX_UNSUPPORTED as p, READ_LINKED_DOCUMENT_TOOL_NAME as r, isBytesOnlyDocument as s, BYTES_ONLY_DOCUMENT_MIME as t, SPREADSHEET_EXTENSION as u, TEXT_BUDGETED_CONTENT_TYPES as v, IMAGE_MIME_TYPES as w, DOCX_MIME as x, ATTACHMENT_TEXT_LIMIT as y };
package/dist/mcp.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { X as JsonSchema, _ as LlmToolSpec, _t as SkillDocument, ht as SkillCatalogEntry } from "./types-wKp3YBSM-167azx1H.js";
2
- import { B as ExternalToolSource, Hr as mergeCatalogEntries, Mn as ToolDisclosure, Pn as ToolResult, z as ExternalSkillProvider } from "./index-DU8sKyQq.js";
1
+ import { X as JsonSchema, _ as LlmToolSpec, _t as SkillDocument, ht as SkillCatalogEntry } from "./types-wKp3YBSM-D7w-ZbsB.js";
2
+ import { B as ExternalToolSource, Hr as mergeCatalogEntries, Mn as ToolDisclosure, Pn as ToolResult, z as ExternalSkillProvider } from "./index-Cngzg2WS.js";
3
3
  import { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
4
4
  import { JSONRPCMessage } from "@modelcontextprotocol/sdk/types.js";
5
5
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
package/dist/node.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { G as FileStat, It as VerifyResult, K as FileSystemProvider, N as ArchiveLimits, Ot as SkillsLockfile, Pt as UnsignedPolicy, S as UiBridge, St as SkillManifest, X as JsonSchema, at as SKILL_MANIFEST_FILE, b as RenderResultRequest, c as InteractionResponse, it as SKILLS_LOCKFILE, jt as TrustedKeyStore, q as FileWriteStream, s as InteractionRequest, ut as SignatureAuditSink, vt as SkillInstallSource, xt as SkillManagerPort } from "./types-wKp3YBSM-167azx1H.js";
2
- import { $t as SchemaInferer, H as FsArtifactStore, Pn as ToolResult, Tr as createScriptContext, U as FsMemoryStore, b as BridgeCapabilities, en as ScriptExecutionContext, gr as WebSkillRuntimeDeps, hr as WebSkillRuntime, jn as ToolDefinition, m as ApprovalScope, tn as ScriptExecutor, ut as NetworkPolicy } from "./index-DU8sKyQq.js";
3
- import { a as AuditLog, f as CandidateSkill, h as CandidateStore, r as ApprovalPolicy, x as SkillVersionStore } from "./skillVersionStore-S4_HJ_Fl-DzZM_UIw.js";
1
+ import { G as FileStat, It as VerifyResult, K as FileSystemProvider, N as ArchiveLimits, Ot as SkillsLockfile, Pt as UnsignedPolicy, S as UiBridge, St as SkillManifest, X as JsonSchema, at as SKILL_MANIFEST_FILE, b as RenderResultRequest, c as InteractionResponse, it as SKILLS_LOCKFILE, jt as TrustedKeyStore, q as FileWriteStream, s as InteractionRequest, ut as SignatureAuditSink, vt as SkillInstallSource, xt as SkillManagerPort } from "./types-wKp3YBSM-D7w-ZbsB.js";
2
+ import { $t as SchemaInferer, H as FsArtifactStore, Pn as ToolResult, Tr as createScriptContext, U as FsMemoryStore, b as BridgeCapabilities, en as ScriptExecutionContext, gr as WebSkillRuntimeDeps, hr as WebSkillRuntime, jn as ToolDefinition, m as ApprovalScope, tn as ScriptExecutor, ut as NetworkPolicy } from "./index-Cngzg2WS.js";
3
+ import { a as AuditLog, f as CandidateSkill, h as CandidateStore, r as ApprovalPolicy, x as SkillVersionStore } from "./skillVersionStore-S4_HJ_Fl-AiNsSSdO.js";
4
4
  import { n as LlmEnvConfig, s as probeLlmCapabilities, t as LlmCapabilities } from "./env-AK3cSMEA-Dli6QU5E.js";
5
5
  import { Readable, Writable } from "node:stream";
6
6
  //#region ../node/dist/index.d.ts
package/dist/node.js CHANGED
@@ -2,8 +2,8 @@ import { n as messageOf, t as WebSkillError } from "./errors-BDZNpC13.js";
2
2
  import { A as SKILL_MANIFEST_FILE, D as verifySkillSignature, M as buildManifest, O as MANIFEST_EXCLUDED_FILES, P as verifyManifest, b as parseSkillMarkdown, c as unzipWithLimits, f as SKILL_PACK_FILE, k as SKILLS_LOCKFILE, m as parseSkillPackManifest, o as readResponseWithLimit, p as exportSkills, s as resolveArchiveLimits, t as validateSkills, w as readSkillSignature, y as isValidSkillName } from "./skill-WSUDp6A1.js";
3
3
  import { a as atomicWriteBinary, o as atomicWriteText, r as resolveInsideRoot, s as isAtomicTempPath, t as assertSafePathSegment } from "./pathSecurity-CirkQwWP.js";
4
4
  import { t as assertRemoteUrlAllowed } from "./urlSafety-CiSuCJvX.js";
5
- import { K as createScriptContext, a as networkPolicyLibSource, c as bridgeError, d as FsMemoryStore, f as WebSkillRuntime, l as parseBridgeRequest, r as normalizeToolError, s as UPLOAD_FILES_UNAVAILABLE, t as CapabilityApproval, u as FsArtifactStore } from "./approval-5BmspsRi.js";
6
- import { f as SPREADSHEET_MIME_TYPE } from "./linkedDocument-0iiVPd5t.js";
5
+ import { f as SPREADSHEET_MIME_TYPE } from "./linkedDocument-GE-VV_Gj.js";
6
+ import { K as createScriptContext, a as networkPolicyLibSource, c as bridgeError, d as FsMemoryStore, f as WebSkillRuntime, l as parseBridgeRequest, r as normalizeToolError, s as UPLOAD_FILES_UNAVAILABLE, t as CapabilityApproval, u as FsArtifactStore } from "./approval-DnUytrkq.js";
7
7
  import { n as normalizeToolContent } from "./external-_ZRQe-V9.js";
8
8
  import { i as probeLlmCapabilities } from "./env-Bj1MI2Ww.js";
9
9
  import { t as AUDIT_EVENT_TYPES } from "./eventTypes-DcTQXSV1.js";
@@ -1,4 +1,4 @@
1
- import { K as FileSystemProvider, St as SkillManifest, et as Page, ht as SkillCatalogEntry, tt as PageQuery } from "./types-wKp3YBSM-167azx1H.js";
1
+ import { K as FileSystemProvider, St as SkillManifest, et as Page, ht as SkillCatalogEntry, tt as PageQuery } from "./types-wKp3YBSM-D7w-ZbsB.js";
2
2
  //#region ../governance/dist/skillVersionStore-S4_HJ_Fl.d.ts
3
3
  //#region src/types.d.ts
4
4
  type CandidateStatus = 'draft' | 'pending-review' | 'approved' | 'published' | 'rejected';
package/dist/testing.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { S as UiBridge, c as InteractionResponse, l as LlmClient, m as LlmStreamEvent, n as ArtifactStore, p as LlmResponse, s as InteractionRequest, t as Artifact, u as LlmCompleteInput, v as MemoryStore } from "./types-wKp3YBSM-167azx1H.js";
1
+ import { S as UiBridge, c as InteractionResponse, l as LlmClient, m as LlmStreamEvent, n as ArtifactStore, p as LlmResponse, s as InteractionRequest, t as Artifact, u as LlmCompleteInput, v as MemoryStore } from "./types-wKp3YBSM-D7w-ZbsB.js";
2
2
  import { a as loadGoogleConfigFromEnv, i as loadAnthropicConfigFromEnv, n as LlmEnvConfig, o as loadLlmConfigFromEnv, r as ProviderEnvConfig } from "./env-AK3cSMEA-Dli6QU5E.js";
3
3
  //#region ../runtime/dist/testing.d.ts
4
4
  //#region src/llm/mockLlmClient.d.ts
@@ -521,6 +521,7 @@ declare const FILE_MIME_TYPES: readonly ["application/pdf"];
521
521
  * 不走直通的 `file`:docx / xlsx / pptx 发给 provider 会被当成二进制垃圾。
522
522
  */
523
523
  declare const DOCX_MIME = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
524
+ declare const XLS_MIME = "application/vnd.ms-excel";
524
525
  declare const XLSX_MIME = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
525
526
  declare const PPTX_MIME = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
526
527
  /** 文本类附件进模型上下文的字符上限(0.6.0) @experimental */
@@ -1276,4 +1277,4 @@ interface MemoryStore {
1276
1277
  transaction?<T>(scope: string, fn: (inner: MemoryStore) => Promise<T>): Promise<T>;
1277
1278
  }
1278
1279
  //#endregion
1279
- export { PPTX_MIME as $, exportSkills as $t, extractSkillCandidate as A, TrustedKey as At, DOCX_MIME as B, assertRemoteUrlAllowed as Bt, UiSpecActionCapability as C, verifySkillSignature as Cn, SkillMetadata as Ct, UiSpecSnapshot as D, SkillSource as Dt, UiSpecPatch as E, SkillSignature as Et, BINARY_EXTENSIONS as F, ValidationReport as Ft, FileStat as G, buildManifest as Gt, DiscoveryResult as H, atomicWriteBinary as Ht, CatalogRenderer as I, VerifyResult as It, FsTrustedKeyStore as J, classifyAttachment as Jt, FileSystemProvider as K, checkDependencyCycles as Kt, ChatAttachmentKind as L, WebSkillError as Lt, ATTACHMENT_TEXT_LIMIT as M, UNTRUSTED_LINE_LIMIT as Mt, ArchiveLimits as N, UiSpecNode as Nt, UiSurfaceActionRequest as O, SkillsLockfile as Ot, AttachmentTextInput as P, UnsignedPolicy as Pt, MemoryFS as Q, escapeXml as Qt, CryptoKeyLike as R, WebSkillErrorCode as Rt, UiBridge as S, verifyManifest as Sn, SkillManifest as St, UiSpecEvent as T, SkillReader as Tt, ExtractedDocumentFormat as U, atomicWriteText as Ut, DWG_MIME_TYPES as V, assertSafePathSegment as Vt, FILE_MIME_TYPES as W, buildCatalog as Wt, JsonSchema as X, detectSkillArchiveShape as Xt, IMAGE_MIME_TYPES as Y, computeDigest as Yt, MANIFEST_EXCLUDED_FILES as Z, detectSkillArchiveShapeFromFs as Zt, LlmToolSpec as _, signSkill as _n, SkillDocument as _t, InteractionOrigin as a, keyIdOf as an, SKILL_MANIFEST_FILE as at, RenderResultRequest as b, unzipWithLimits as bn, SkillLocation as bt, InteractionResponse as c, parseSkillMarkdown as cn, SKILL_PACK_FILE as ct, LlmContentPart as d, readSkillSignature as dn, SignatureVerdict as dt, extractedDocumentFormat as en, Page as et, LlmMessage as f, renderAvailableSkillsXml as fn, SkillArchiveDetection as ft, LlmToolCall as g, sanitizeUntrustedLine as gn, SkillDiscovery as gt, LlmTokenUsage as h, resolveInsideRoot as hn, SkillCatalogEntry as ht, FormField as i, jsonRenderer as in, SKILLS_LOCKFILE as it, ATOMIC_TMP_SUFFIX_PATTERN as j, TrustedKeyStore as jt, UiSurfaceActionResponse as k, TEXT_EXTENSIONS as kt, LlmClient as l, parseSkillPackManifest as ln, SKILL_SIGNATURE_FILE as lt, LlmStreamEvent as m, resolveArchiveLimits as mn, SkillCatalog as mt, ArtifactStore as n, isAtomicTempPath as nn, RemoteUrlPolicy as nt, InteractionPolicy as o, messageOf as on, SKILL_NAME_MAX_LENGTH as ot, LlmResponse as p, renderCatalogJson as pn, SkillArchiveShape as pt, FileWriteStream as q, checkSkillRules as qt, ChartSpec as r, isValidSkillName as rn, SIGNATURE_SCHEMA_VERSION as rt, InteractionRequest as s, normalizePath as sn, SKILL_NAME_PATTERN as st, Artifact as t, formatAttachmentText as tn, PageQuery as tt, LlmCompleteInput as u, readResponseWithLimit as un, SignatureAuditSink as ut, MemoryStore as v, signaturePayloadBytes as vn, SkillInstallSource as vt, UiSpecDrafts as w, xmlRenderer as wn, SkillPackManifest as wt, SkillCandidateMarker as x, validateSkills as xn, SkillManagerPort as xt, RenderBlock as y, stripArchiveRoot as yn, SkillIssue as yt, DEFAULT_ARCHIVE_LIMITS as z, XLSX_MIME as zt };
1280
+ export { PPTX_MIME as $, escapeXml as $t, extractSkillCandidate as A, TrustedKey as At, DOCX_MIME as B, XLS_MIME as Bt, UiSpecActionCapability as C, verifyManifest as Cn, SkillMetadata as Ct, UiSpecSnapshot as D, SkillSource as Dt, UiSpecPatch as E, SkillSignature as Et, BINARY_EXTENSIONS as F, ValidationReport as Ft, FileStat as G, buildCatalog as Gt, DiscoveryResult as H, assertSafePathSegment as Ht, CatalogRenderer as I, VerifyResult as It, FsTrustedKeyStore as J, checkSkillRules as Jt, FileSystemProvider as K, buildManifest as Kt, ChatAttachmentKind as L, WebSkillError as Lt, ATTACHMENT_TEXT_LIMIT as M, UNTRUSTED_LINE_LIMIT as Mt, ArchiveLimits as N, UiSpecNode as Nt, UiSurfaceActionRequest as O, SkillsLockfile as Ot, AttachmentTextInput as P, UnsignedPolicy as Pt, MemoryFS as Q, detectSkillArchiveShapeFromFs as Qt, CryptoKeyLike as R, WebSkillErrorCode as Rt, UiBridge as S, validateSkills as Sn, SkillManifest as St, UiSpecEvent as T, xmlRenderer as Tn, SkillReader as Tt, ExtractedDocumentFormat as U, atomicWriteBinary as Ut, DWG_MIME_TYPES as V, assertRemoteUrlAllowed as Vt, FILE_MIME_TYPES as W, atomicWriteText as Wt, JsonSchema as X, computeDigest as Xt, IMAGE_MIME_TYPES as Y, classifyAttachment as Yt, MANIFEST_EXCLUDED_FILES as Z, detectSkillArchiveShape as Zt, LlmToolSpec as _, sanitizeUntrustedLine as _n, SkillDocument as _t, InteractionOrigin as a, jsonRenderer as an, SKILL_MANIFEST_FILE as at, RenderResultRequest as b, stripArchiveRoot as bn, SkillLocation as bt, InteractionResponse as c, normalizePath as cn, SKILL_PACK_FILE as ct, LlmContentPart as d, readResponseWithLimit as dn, SignatureVerdict as dt, exportSkills as en, Page as et, LlmMessage as f, readSkillSignature as fn, SkillArchiveDetection as ft, LlmToolCall as g, resolveInsideRoot as gn, SkillDiscovery as gt, LlmTokenUsage as h, resolveArchiveLimits as hn, SkillCatalogEntry as ht, FormField as i, isValidSkillName as in, SKILLS_LOCKFILE as it, ATOMIC_TMP_SUFFIX_PATTERN as j, TrustedKeyStore as jt, UiSurfaceActionResponse as k, TEXT_EXTENSIONS as kt, LlmClient as l, parseSkillMarkdown as ln, SKILL_SIGNATURE_FILE as lt, LlmStreamEvent as m, renderCatalogJson as mn, SkillCatalog as mt, ArtifactStore as n, formatAttachmentText as nn, RemoteUrlPolicy as nt, InteractionPolicy as o, keyIdOf as on, SKILL_NAME_MAX_LENGTH as ot, LlmResponse as p, renderAvailableSkillsXml as pn, SkillArchiveShape as pt, FileWriteStream as q, checkDependencyCycles as qt, ChartSpec as r, isAtomicTempPath as rn, SIGNATURE_SCHEMA_VERSION as rt, InteractionRequest as s, messageOf as sn, SKILL_NAME_PATTERN as st, Artifact as t, extractedDocumentFormat as tn, PageQuery as tt, LlmCompleteInput as u, parseSkillPackManifest as un, SignatureAuditSink as ut, MemoryStore as v, signSkill as vn, SkillInstallSource as vt, UiSpecDrafts as w, verifySkillSignature as wn, SkillPackManifest as wt, SkillCandidateMarker as x, unzipWithLimits as xn, SkillManagerPort as xt, RenderBlock as y, signaturePayloadBytes as yn, SkillIssue as yt, DEFAULT_ARCHIVE_LIMITS as z, XLSX_MIME as zt };
@@ -1,6 +1,6 @@
1
- import { C as UiSpecActionCapability, D as UiSpecSnapshot, Nt as UiSpecNode, O as UiSurfaceActionRequest, S as UiBridge, T as UiSpecEvent, b as RenderResultRequest, c as InteractionResponse, k as UiSurfaceActionResponse, s as InteractionRequest, w as UiSpecDrafts } from "./types-wKp3YBSM-167azx1H.js";
2
- import { P as DocumentSurfacePort } from "./index-DU8sKyQq.js";
3
- import { H as InteractionSpecLabels, nt as SurfaceFormTexts, rt as SurfaceHostControlTexts, v as ChartColors, y as ChartFontSizes } from "./index-DJeYqzlE.js";
1
+ import { C as UiSpecActionCapability, D as UiSpecSnapshot, Nt as UiSpecNode, O as UiSurfaceActionRequest, S as UiBridge, T as UiSpecEvent, b as RenderResultRequest, c as InteractionResponse, k as UiSurfaceActionResponse, s as InteractionRequest, w as UiSpecDrafts } from "./types-wKp3YBSM-D7w-ZbsB.js";
2
+ import { P as DocumentSurfacePort } from "./index-Cngzg2WS.js";
3
+ import { H as InteractionSpecLabels, nt as SurfaceFormTexts, rt as SurfaceHostControlTexts, v as ChartColors, y as ChartFontSizes } from "./index-C3t1jKAs.js";
4
4
  import { z } from "zod";
5
5
  import React$1, { ComponentType, ReactNode } from "react";
6
6
  import "react/jsx-runtime";