@webskill/sdk 0.22.0 → 0.23.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/agent.d.ts +3 -3
- package/dist/agent.js +168 -45
- package/dist/{approval-DWQlDPbY.js → approval-7CuZS3Z4.js} +3 -3
- package/dist/browser.d.ts +14 -4
- package/dist/browser.js +364 -48
- package/dist/{geometry-wx5ZTYzi.js → geometry-CRhuySKV.js} +8 -1
- package/dist/governance.d.ts +22 -4
- package/dist/governance.js +100 -10
- package/dist/{index-YPd8ZSEa.d.ts → index-7No55dRb.d.ts} +6 -3
- package/dist/{index-BiO9_XRk.d.ts → index-ShvCB5I9.d.ts} +2 -2
- package/dist/{index-CjwdZQOS.d.ts → index-V76_OFj2.d.ts} +92 -12
- package/dist/index.d.ts +4 -4
- package/dist/index.js +10 -8
- package/dist/{linkedDocument-CIuh_Yp0.js → linkedDocument-CZZOl9cO.js} +44 -4
- package/dist/mcp.d.ts +2 -2
- package/dist/node.d.ts +3 -3
- package/dist/node.js +12 -5
- package/dist/{pathSecurity-B1owvJAF.js → pathSecurity-CirkQwWP.js} +12 -1
- package/dist/{skill-CAJMsLod.js → skill-WSUDp6A1.js} +1 -1
- package/dist/{skillVersionStore-B24Jjjry-BY1H7Krp.d.ts → skillVersionStore-S4_HJ_Fl-Cvy9LqVu.d.ts} +35 -4
- package/dist/testing.d.ts +1 -1
- package/dist/{types-CpDRZ0rA-BM5FI9oN.d.ts → types-CpDRZ0rA-BiZBXGm4.d.ts} +8 -1
- package/dist/ui-react.d.ts +3 -3
- package/dist/ui-react.js +28 -19
- package/dist/ui-vue.d.ts +1 -1
- package/dist/ui.d.ts +3 -3
- package/dist/{webSkillApi-Dy-Zjv0y.js → webSkillApi-D5VMUnrv.js} +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { n as messageOf, t as WebSkillError } from "./errors-BDZNpC13.js";
|
|
2
|
-
import { A as SKILL_MANIFEST_FILE, C as keyIdOf, D as verifySkillSignature, E as signaturePayloadBytes, M as buildManifest, N as computeDigest, O as MANIFEST_EXCLUDED_FILES, P as verifyManifest, S as SIGNATURE_SCHEMA_VERSION, T as signSkill, _ as SKILL_NAME_MAX_LENGTH, a as DEFAULT_ARCHIVE_LIMITS, b as parseSkillMarkdown, c as unzipWithLimits, d as stripArchiveRoot, f as SKILL_PACK_FILE, g as checkSkillRules, h as checkDependencyCycles, i as buildCatalog, j as SKILL_SIGNATURE_FILE, k as SKILLS_LOCKFILE, l as detectSkillArchiveShape, m as parseSkillPackManifest, n as SkillDiscovery, o as readResponseWithLimit, p as exportSkills, r as SkillReader, s as resolveArchiveLimits, t as validateSkills, u as detectSkillArchiveShapeFromFs, v as SKILL_NAME_PATTERN, w as readSkillSignature, x as FsTrustedKeyStore, y as isValidSkillName } from "./skill-
|
|
3
|
-
import { a as
|
|
2
|
+
import { A as SKILL_MANIFEST_FILE, C as keyIdOf, D as verifySkillSignature, E as signaturePayloadBytes, M as buildManifest, N as computeDigest, O as MANIFEST_EXCLUDED_FILES, P as verifyManifest, S as SIGNATURE_SCHEMA_VERSION, T as signSkill, _ as SKILL_NAME_MAX_LENGTH, a as DEFAULT_ARCHIVE_LIMITS, b as parseSkillMarkdown, c as unzipWithLimits, d as stripArchiveRoot, f as SKILL_PACK_FILE, g as checkSkillRules, h as checkDependencyCycles, i as buildCatalog, j as SKILL_SIGNATURE_FILE, k as SKILLS_LOCKFILE, l as detectSkillArchiveShape, m as parseSkillPackManifest, n as SkillDiscovery, o as readResponseWithLimit, p as exportSkills, r as SkillReader, s as resolveArchiveLimits, t as validateSkills, u as detectSkillArchiveShapeFromFs, v as SKILL_NAME_PATTERN, w as readSkillSignature, x as FsTrustedKeyStore, y as isValidSkillName } from "./skill-WSUDp6A1.js";
|
|
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
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-
|
|
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-7CuZS3Z4.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-
|
|
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-CZZOl9cO.js";
|
|
10
10
|
import { n as normalizeToolContent, t as mergeCatalogEntries } from "./external-_ZRQe-V9.js";
|
|
11
11
|
import { n as extractChartSpec, t as buildRenderResult } from "./renderResult-D9Q-Vu2x.js";
|
|
12
12
|
import { n as validateUiSpecEvent, r as validateUiSpecNode, t as extractUiSpecEvents } from "./surface-DVGiCmwq.js";
|
|
13
|
-
import { t as createWebSkillApi } from "./webSkillApi-
|
|
13
|
+
import { t as createWebSkillApi } from "./webSkillApi-D5VMUnrv.js";
|
|
14
14
|
|
|
15
15
|
//#region ../core/src/fs/memoryFs.ts
|
|
16
16
|
const ROOT = "/";
|
|
@@ -873,8 +873,10 @@ var FsSessionStore = class {
|
|
|
873
873
|
console.warn(`[webskill] ${skipped.length} session file(s) under ${this.#root} are unreadable (possible data loss from an interrupted write): ${skipped.join(", ")}`);
|
|
874
874
|
}
|
|
875
875
|
metas.sort((a, b) => a.createdAt.localeCompare(b.createdAt));
|
|
876
|
+
const page = takeTailPage(metas, options, "session");
|
|
876
877
|
return {
|
|
877
|
-
...
|
|
878
|
+
...page,
|
|
879
|
+
items: [...page.items].reverse(),
|
|
878
880
|
source: "ok",
|
|
879
881
|
skipped
|
|
880
882
|
};
|
|
@@ -1010,7 +1012,7 @@ var FsToolStepStore = class {
|
|
|
1010
1012
|
* Version of the published `@webskill/sdk` package, injected at build time.
|
|
1011
1013
|
* @stable
|
|
1012
1014
|
*/
|
|
1013
|
-
const SDK_VERSION = "0.
|
|
1015
|
+
const SDK_VERSION = "0.23.0";
|
|
1014
1016
|
|
|
1015
1017
|
//#endregion
|
|
1016
|
-
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, 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 };
|
|
1018
|
+
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 };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { t as WebSkillError } from "./errors-BDZNpC13.js";
|
|
2
|
+
import { unzipSync, zipSync } from "fflate";
|
|
2
3
|
import writeXlsxFile from "write-excel-file/universal";
|
|
3
4
|
|
|
4
5
|
//#region ../runtime/src/tools/types.ts
|
|
@@ -120,6 +121,40 @@ const ROW_PADDING_PT = 4;
|
|
|
120
121
|
*/
|
|
121
122
|
const COLUMN_CHAR_PX = 7;
|
|
122
123
|
const COLUMN_PADDING_PX = 5;
|
|
124
|
+
/**
|
|
125
|
+
* 归档里写死的时间戳(0.23.0 分册 24 FR-24.2)。
|
|
126
|
+
*
|
|
127
|
+
* `write-excel-file` 调 fflate 的 `zip(files, callback)` 时不传 options,
|
|
128
|
+
* mtime 于是缺省成 `new Date()`——同一份规格在不同时刻编出的字节因此不同。
|
|
129
|
+
* ZIP 的时间戳只有 2 秒精度,所以这件事表现为「偶发」而不是「必现」。
|
|
130
|
+
*
|
|
131
|
+
* 取值约束:ZIP 的纪元是 1980 而不是 Unix 的 1970,且 fflate 拒绝纪元 0,
|
|
132
|
+
* 因此必须用本地时区构造,不能用 `Date.UTC`。
|
|
133
|
+
* `verify/scripts/documents.mjs` 里有同值的一份(两处不共享实现——那些脚本
|
|
134
|
+
* 一个仓内包都不引;一致性由 `test/spreadsheetMtimeSingleSource.test.ts` 钉住)。
|
|
135
|
+
*
|
|
136
|
+
* 不导出:它是实现细节,导出就进 api-snapshot,而本册的准入标准是零契约变更。
|
|
137
|
+
*/
|
|
138
|
+
const XLSX_ZIP_MTIME = new Date(1980, 0, 1, 0, 0, 0);
|
|
139
|
+
/**
|
|
140
|
+
* 解包再用固定 mtime 重打包。
|
|
141
|
+
*
|
|
142
|
+
* 不直接改 ZIP 字节里的时间戳字段:那要手写本地文件头与中央目录的偏移解析,
|
|
143
|
+
* 而时间戳在两处各存一份,漏一处就是坏档,坏档还不一定报错(FR-24.4 明令禁止)。
|
|
144
|
+
* `unzipSync` 保留中央目录的条目顺序,`zipSync` 按对象键顺序写回,
|
|
145
|
+
* 所以 OOXML 要求的 `[Content_Types].xml` 居首不会被打乱。
|
|
146
|
+
*/
|
|
147
|
+
function withFixedTimestamps(bytes) {
|
|
148
|
+
return zipSync(unzipSync(bytes), {
|
|
149
|
+
level: 6,
|
|
150
|
+
mtime: XLSX_ZIP_MTIME
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
/** 字节数是唯一无法预先算出的上限,只能编码后查 */
|
|
154
|
+
function assertWithinByteLimit(length) {
|
|
155
|
+
if (length <= SPREADSHEET_LIMITS.bytes) return;
|
|
156
|
+
throw invalid(`The encoded spreadsheet is ${length} bytes (max ${SPREADSHEET_LIMITS.bytes}); reduce the number of rows, sheets or images.`);
|
|
157
|
+
}
|
|
123
158
|
function invalid(message) {
|
|
124
159
|
return new WebSkillError("VALIDATION_FAILED", message);
|
|
125
160
|
}
|
|
@@ -311,8 +346,11 @@ function applyImageSizing(data, images) {
|
|
|
311
346
|
/**
|
|
312
347
|
* 把表格规格编码为 xlsx 字节。
|
|
313
348
|
*
|
|
314
|
-
* 纯函数——不认识产物、run
|
|
315
|
-
*
|
|
349
|
+
* 纯函数——不认识产物、run 与工具,因此工具、脚本能力、测试三个消费面共用同一份实现。
|
|
350
|
+
*
|
|
351
|
+
* 「纯函数」只保证三个消费面走的是同一条代码路径,**不足以**保证输出逐字节相同:
|
|
352
|
+
* 归档格式本身会把编码时刻写进字节。AC-10.8「双消费面逐字节相同」靠的是
|
|
353
|
+
* `withFixedTimestamps()` 把那个时刻拿掉(0.23.0 分册 24)。
|
|
316
354
|
*
|
|
317
355
|
* `resolveImage` 是图片引用的解析出口(0.22.0 分册 20 FR-20.3)。它同样不破坏纯函数性:
|
|
318
356
|
* 给定相同的规格与相同的解析结果,输出逐字节相同。规格里有图片却没给它,是
|
|
@@ -340,8 +378,10 @@ async function encodeSpreadsheet(spec, resolveImage) {
|
|
|
340
378
|
});
|
|
341
379
|
}
|
|
342
380
|
const blob = await writeXlsxFile(payload).toBlob();
|
|
343
|
-
const
|
|
344
|
-
|
|
381
|
+
const encoded = new Uint8Array(await blob.arrayBuffer());
|
|
382
|
+
assertWithinByteLimit(encoded.length);
|
|
383
|
+
const bytes = withFixedTimestamps(encoded);
|
|
384
|
+
assertWithinByteLimit(bytes.length);
|
|
345
385
|
return bytes;
|
|
346
386
|
}
|
|
347
387
|
|
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-CpDRZ0rA-
|
|
2
|
-
import { B as ExternalToolSource, Hr as mergeCatalogEntries, Mn as ToolDisclosure, Pn as ToolResult, z as ExternalSkillProvider } from "./index-
|
|
1
|
+
import { X as JsonSchema, _ as LlmToolSpec, _t as SkillDocument, ht as SkillCatalogEntry } from "./types-CpDRZ0rA-BiZBXGm4.js";
|
|
2
|
+
import { B as ExternalToolSource, Hr as mergeCatalogEntries, Mn as ToolDisclosure, Pn as ToolResult, z as ExternalSkillProvider } from "./index-7No55dRb.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-CpDRZ0rA-
|
|
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-
|
|
3
|
-
import { a as AuditLog,
|
|
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-CpDRZ0rA-BiZBXGm4.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-7No55dRb.js";
|
|
3
|
+
import { a as AuditLog, f as CandidateSkill, h as CandidateStore, r as ApprovalPolicy, x as SkillVersionStore } from "./skillVersionStore-S4_HJ_Fl-Cvy9LqVu.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
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as messageOf, t as WebSkillError } from "./errors-BDZNpC13.js";
|
|
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-
|
|
3
|
-
import { a as
|
|
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
|
+
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-
|
|
6
|
-
import { f as SPREADSHEET_MIME_TYPE } from "./linkedDocument-
|
|
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-7CuZS3Z4.js";
|
|
6
|
+
import { f as SPREADSHEET_MIME_TYPE } from "./linkedDocument-CZZOl9cO.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";
|
|
@@ -2469,7 +2469,14 @@ var ApprovalWorkflow = class {
|
|
|
2469
2469
|
const stagingRoot = (await mkdtemp(path.join(tmpdir(), "webskill-candidate-"))).split(path.sep).join("/");
|
|
2470
2470
|
try {
|
|
2471
2471
|
const skillDir = `${stagingRoot}/${candidate.name}`;
|
|
2472
|
-
for (const file of candidate.files)
|
|
2472
|
+
for (const file of candidate.files) {
|
|
2473
|
+
const target = resolveInsideRoot(skillDir, file.path);
|
|
2474
|
+
if (file.binary === void 0) {
|
|
2475
|
+
await atomicWriteText(this.#fs, target, file.content);
|
|
2476
|
+
continue;
|
|
2477
|
+
}
|
|
2478
|
+
await atomicWriteBinary(this.#fs, target, await this.#store.readCandidateBinary(candidate.id, file.binary.file));
|
|
2479
|
+
}
|
|
2473
2480
|
const report = await validateSkills(this.#fs, [stagingRoot]);
|
|
2474
2481
|
if (!report.ok) {
|
|
2475
2482
|
const errors = report.issues.filter((i) => i.severity === "error");
|
|
@@ -20,6 +20,17 @@ async function atomicWriteText(fs, path, content) {
|
|
|
20
20
|
await fs.writeText(tmp, content);
|
|
21
21
|
await fs.rename(tmp, path);
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* 原子写二进制:与 `atomicWriteText` 逐字对称,只换写入方法(0.23.0 分册 20)。
|
|
25
|
+
*
|
|
26
|
+
* 临时名必须沿用同一条 `ATOMIC_TMP_SUFFIX_PATTERN` 形状——打包与列举侧靠那条正则
|
|
27
|
+
* 排除中断残留,另起一套命名会让残留的临时文件被打进技能包。
|
|
28
|
+
*/
|
|
29
|
+
async function atomicWriteBinary(fs, path, content) {
|
|
30
|
+
const tmp = `${path}.tmp-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`;
|
|
31
|
+
await fs.writeBinary(tmp, content);
|
|
32
|
+
await fs.rename(tmp, path);
|
|
33
|
+
}
|
|
23
34
|
|
|
24
35
|
//#endregion
|
|
25
36
|
//#region ../core/src/fs/pathSecurity.ts
|
|
@@ -62,4 +73,4 @@ function resolveInsideRoot(root, relativePath) {
|
|
|
62
73
|
}
|
|
63
74
|
|
|
64
75
|
//#endregion
|
|
65
|
-
export {
|
|
76
|
+
export { atomicWriteBinary as a, ATOMIC_TMP_SUFFIX_PATTERN as i, normalizePath as n, atomicWriteText as o, resolveInsideRoot as r, isAtomicTempPath as s, assertSafePathSegment as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as messageOf, t as WebSkillError } from "./errors-BDZNpC13.js";
|
|
2
|
-
import {
|
|
2
|
+
import { o as atomicWriteText, r as resolveInsideRoot, s as isAtomicTempPath } from "./pathSecurity-CirkQwWP.js";
|
|
3
3
|
import { parse } from "yaml";
|
|
4
4
|
import { Unzip, UnzipInflate, zipSync } from "fflate";
|
|
5
5
|
|
package/dist/{skillVersionStore-B24Jjjry-BY1H7Krp.d.ts → skillVersionStore-S4_HJ_Fl-Cvy9LqVu.d.ts}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { K as FileSystemProvider, St as SkillManifest, et as Page, ht as SkillCatalogEntry, tt as PageQuery } from "./types-CpDRZ0rA-
|
|
2
|
-
//#region ../governance/dist/skillVersionStore-
|
|
1
|
+
import { K as FileSystemProvider, St as SkillManifest, et as Page, ht as SkillCatalogEntry, tt as PageQuery } from "./types-CpDRZ0rA-BiZBXGm4.js";
|
|
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';
|
|
5
5
|
/** `generated` 是 0.5.0 的技能自动生成来源(需求 12 号 AC-9.1) */
|
|
@@ -8,7 +8,29 @@ type CandidateRisk = 'low' | 'medium' | 'high';
|
|
|
8
8
|
interface CandidateFile {
|
|
9
9
|
path: string;
|
|
10
10
|
kind: 'skill-md' | 'script' | 'reference' | 'asset';
|
|
11
|
+
/**
|
|
12
|
+
* 文件正文。二进制条目为空串——字节存在候选自己的旁路里,见 `binary`。
|
|
13
|
+
* 保持必填 `string`:它的消费方遍布审核 UI、发布链路与测试,
|
|
14
|
+
* 改成联合类型会让每一处都要分支,而其中大多数只关心文本。
|
|
15
|
+
*/
|
|
11
16
|
content: string;
|
|
17
|
+
/** 在场即本条目是二进制,正文在旁路文件里(0.23.0 分册 20) */
|
|
18
|
+
binary?: CandidateBinaryRef;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* 候选二进制旁路里的一份字节(0.23.0 分册 20)。
|
|
22
|
+
*
|
|
23
|
+
* 字节**不内嵌进候选 JSON**:`CandidateStore.list()` 会把目录里每一个 JSON 全文读出来解析,
|
|
24
|
+
* 内嵌等于审批列表每翻一页都要把所有候选的二进制读进内存再做一次 base64 往返。
|
|
25
|
+
*/
|
|
26
|
+
interface CandidateBinaryRef {
|
|
27
|
+
/** 候选二进制目录(`<id>.files/`)下的文件名,不是路径 */
|
|
28
|
+
file: string;
|
|
29
|
+
size: number;
|
|
30
|
+
/** sha-256,十六进制小写;AC-20.1 的「逐字节相同」靠它判 */
|
|
31
|
+
sha256: string;
|
|
32
|
+
/** 来源附件的原始文件名,供审核者辨认(FR-20.10) */
|
|
33
|
+
sourceName: string;
|
|
12
34
|
}
|
|
13
35
|
interface CandidateSkill {
|
|
14
36
|
id: string;
|
|
@@ -97,7 +119,16 @@ declare class CandidateStore {
|
|
|
97
119
|
/** 治理根下该技能是否仍装着;不注入则 published 一律拒删(见 `remove`) */
|
|
98
120
|
isSkillInstalled?: (name: string) => Promise<boolean>;
|
|
99
121
|
});
|
|
100
|
-
|
|
122
|
+
/**
|
|
123
|
+
* 存候选。`binaries` 的键是 `CandidateFile.binary.file`,缺省即本候选全是文本。
|
|
124
|
+
*
|
|
125
|
+
* 落盘顺序是**先字节、后 JSON**(0.23.0 分册 20 §3.2):反过来的话,
|
|
126
|
+
* 崩溃会留下一条指向不存在字节的元数据,而那种候选要到审批安装那一步才暴露——
|
|
127
|
+
* 正是 FR-20.6 要避免的那类「延迟到审批才失败」。
|
|
128
|
+
*/
|
|
129
|
+
save(candidate: CandidateSkill, binaries?: ReadonlyMap<string, Uint8Array>): Promise<void>;
|
|
130
|
+
/** 读回候选旁路里的一份字节(安装时按原样写进技能目录,0.23.0 分册 20 FR-20.8) */
|
|
131
|
+
readCandidateBinary(id: string, file: string): Promise<Uint8Array>;
|
|
101
132
|
get(id: string): Promise<CandidateSkill>;
|
|
102
133
|
/**
|
|
103
134
|
* 候选(= 审批队列)分页。`status` 是端口参数而不是上层 `.filter()`:
|
|
@@ -182,4 +213,4 @@ declare class SkillVersionStore {
|
|
|
182
213
|
}): Promise<SkillVersion>;
|
|
183
214
|
}
|
|
184
215
|
//#endregion
|
|
185
|
-
export {
|
|
216
|
+
export { candidateToCatalogEntry as S, SKILL_VERSION_PAGE_SIZE as _, AuditLog as a, SkillVersionPage as b, CandidateBinaryRef as c, CandidateRisk as d, CandidateSkill as f, CompositeApprovalPolicy as g, CandidateStore as h, AuditEvent as i, CandidateFile as l, CandidateStatus as m, ApprovalDecision as n, AuditQueryFilter as o, CandidateSource as p, ApprovalPolicy as r, CANDIDATE_PAGE_SIZE as s, AlwaysHumanApprovalPolicy as t, CandidatePage as u, SkillState as v, SkillVersionStore as x, SkillVersion as y };
|
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-CpDRZ0rA-
|
|
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-CpDRZ0rA-BiZBXGm4.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
|
|
@@ -416,6 +416,13 @@ declare const isAtomicTempPath: (path: string) => boolean;
|
|
|
416
416
|
* 对崩溃一致性要求极高的场景在浏览器侧需知悉此前提。
|
|
417
417
|
*/
|
|
418
418
|
declare function atomicWriteText(fs: FileSystemProvider, path: string, content: string): Promise<void>;
|
|
419
|
+
/**
|
|
420
|
+
* 原子写二进制:与 `atomicWriteText` 逐字对称,只换写入方法(0.23.0 分册 20)。
|
|
421
|
+
*
|
|
422
|
+
* 临时名必须沿用同一条 `ATOMIC_TMP_SUFFIX_PATTERN` 形状——打包与列举侧靠那条正则
|
|
423
|
+
* 排除中断残留,另起一套命名会让残留的临时文件被打进技能包。
|
|
424
|
+
*/
|
|
425
|
+
declare function atomicWriteBinary(fs: FileSystemProvider, path: string, content: Uint8Array): Promise<void>;
|
|
419
426
|
//#endregion
|
|
420
427
|
//#region src/fs/pathSecurity.d.ts
|
|
421
428
|
/** 统一分隔符为 `/`,去除 `.` 段与重复分隔符(不解析 `..`) */
|
|
@@ -1261,4 +1268,4 @@ interface MemoryStore {
|
|
|
1261
1268
|
transaction?<T>(scope: string, fn: (inner: MemoryStore) => Promise<T>): Promise<T>;
|
|
1262
1269
|
}
|
|
1263
1270
|
//#endregion
|
|
1264
|
-
export { PPTX_MIME as $,
|
|
1271
|
+
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 };
|
package/dist/ui-react.d.ts
CHANGED
|
@@ -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-CpDRZ0rA-
|
|
2
|
-
import { P as DocumentSurfacePort } from "./index-
|
|
3
|
-
import { F as InteractionSpecLabels, J as SurfaceFormTexts, Y as SurfaceHostControlTexts, v as ChartFontSizes } from "./index-
|
|
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-CpDRZ0rA-BiZBXGm4.js";
|
|
2
|
+
import { P as DocumentSurfacePort } from "./index-7No55dRb.js";
|
|
3
|
+
import { F as InteractionSpecLabels, J as SurfaceFormTexts, Y as SurfaceHostControlTexts, v as ChartFontSizes } from "./index-ShvCB5I9.js";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
import React$1, { ComponentType, ReactNode } from "react";
|
|
6
6
|
import "react/jsx-runtime";
|
package/dist/ui-react.js
CHANGED
|
@@ -258,6 +258,8 @@ var ReactBridgeState = class {
|
|
|
258
258
|
streamingRunId = null;
|
|
259
259
|
streamingText = "";
|
|
260
260
|
#listeners = /* @__PURE__ */ new Set();
|
|
261
|
+
/** 待决交互队列,队头即 `pending`(0.23.0 分册 19 FR-19.6) */
|
|
262
|
+
#queue = [];
|
|
261
263
|
#resolvers = /* @__PURE__ */ new Map();
|
|
262
264
|
#surfaceActionResolvers = /* @__PURE__ */ new Map();
|
|
263
265
|
#processedSurfaceActionNonces = /* @__PURE__ */ new Set();
|
|
@@ -301,10 +303,11 @@ var ReactBridgeState = class {
|
|
|
301
303
|
for (const listener of [...this.#listeners]) listener();
|
|
302
304
|
}
|
|
303
305
|
request(input) {
|
|
304
|
-
this.pending = input;
|
|
305
|
-
this.#emit();
|
|
306
306
|
return new Promise((resolve) => {
|
|
307
307
|
this.#resolvers.set(input.id, resolve);
|
|
308
|
+
this.#queue.push(input);
|
|
309
|
+
this.pending = this.#queue[0] ?? null;
|
|
310
|
+
this.#emit();
|
|
308
311
|
});
|
|
309
312
|
}
|
|
310
313
|
/** 组件提交/取消回调 */
|
|
@@ -312,7 +315,8 @@ var ReactBridgeState = class {
|
|
|
312
315
|
const resolver = this.#resolvers.get(response.id);
|
|
313
316
|
if (!resolver) return;
|
|
314
317
|
this.#resolvers.delete(response.id);
|
|
315
|
-
this
|
|
318
|
+
this.#queue = this.#queue.filter((request) => request.id !== response.id);
|
|
319
|
+
this.pending = this.#queue[0] ?? null;
|
|
316
320
|
this.#emit();
|
|
317
321
|
resolver(response);
|
|
318
322
|
}
|
|
@@ -134885,7 +134889,14 @@ async function probeJsonRenderAvailability() {
|
|
|
134885
134889
|
var SpecInteractionChannel = class {
|
|
134886
134890
|
/** 宿主注入的界面文案(本地化);未设时用 FormModel 的英文默认值 */
|
|
134887
134891
|
labelsFor = () => ({});
|
|
134888
|
-
|
|
134892
|
+
/**
|
|
134893
|
+
* 待决交互队列,队头即 `current`(0.23.0 分册 19 FR-19.6)。
|
|
134894
|
+
*
|
|
134895
|
+
* 原本是单槽,新请求到来时把旧请求主动取消。并发子 agent 下那一句
|
|
134896
|
+
* 「正常路径 runtime 串行」不再成立,而主动取消比悬挂还糟:
|
|
134897
|
+
* 子 agent 会收到一个看似正常的 `cancelled: true`,然后把「用户拒绝了」写进结论。
|
|
134898
|
+
*/
|
|
134899
|
+
#queue = [];
|
|
134889
134900
|
#listeners = /* @__PURE__ */ new Set();
|
|
134890
134901
|
#attached = 0;
|
|
134891
134902
|
#failure;
|
|
@@ -134895,7 +134906,7 @@ var SpecInteractionChannel = class {
|
|
|
134895
134906
|
return () => this.#listeners.delete(listener);
|
|
134896
134907
|
};
|
|
134897
134908
|
get current() {
|
|
134898
|
-
return this.#
|
|
134909
|
+
return this.#queue[0]?.session;
|
|
134899
134910
|
}
|
|
134900
134911
|
get isAttached() {
|
|
134901
134912
|
return this.#attached > 0;
|
|
@@ -134911,26 +134922,22 @@ var SpecInteractionChannel = class {
|
|
|
134911
134922
|
this.#attached = Math.max(0, this.#attached - 1);
|
|
134912
134923
|
}
|
|
134913
134924
|
request(input) {
|
|
134914
|
-
if (this.#current) this.#settle({
|
|
134915
|
-
id: this.#current.session.request.id,
|
|
134916
|
-
cancelled: true
|
|
134917
|
-
});
|
|
134918
134925
|
return new Promise((resolve, reject) => {
|
|
134919
134926
|
const session = {
|
|
134920
134927
|
request: input,
|
|
134921
134928
|
spec: interactionToUiSpec(input, this.labelsFor(input))
|
|
134922
134929
|
};
|
|
134923
|
-
this.#
|
|
134930
|
+
this.#queue.push({
|
|
134924
134931
|
session,
|
|
134925
134932
|
resolve,
|
|
134926
134933
|
reject
|
|
134927
|
-
};
|
|
134934
|
+
});
|
|
134928
134935
|
this.#emit();
|
|
134929
134936
|
});
|
|
134930
134937
|
}
|
|
134931
134938
|
/** runtime 交互超时/取消:以 cancelled resolve 挂起的 request(防悬挂 + 残留) */
|
|
134932
134939
|
cancel(id) {
|
|
134933
|
-
if (this.#
|
|
134940
|
+
if (this.#queue.some((entry) => entry.session.request.id === id)) this.#settle({
|
|
134934
134941
|
id,
|
|
134935
134942
|
cancelled: true
|
|
134936
134943
|
});
|
|
@@ -134941,14 +134948,14 @@ var SpecInteractionChannel = class {
|
|
|
134941
134948
|
* 本通道只提供入口:裸用本通道的宿主不调就维持原来的 cancelled 语义。
|
|
134942
134949
|
*/
|
|
134943
134950
|
decline(id) {
|
|
134944
|
-
if (this.#
|
|
134951
|
+
if (this.#queue.some((entry) => entry.session.request.id === id)) this.#settle({
|
|
134945
134952
|
id,
|
|
134946
134953
|
value: false
|
|
134947
134954
|
});
|
|
134948
134955
|
}
|
|
134949
134956
|
/** react 层动作回传:submit 归形提交值,其余意图(cancel)按取消收尾 */
|
|
134950
134957
|
handleAction(event) {
|
|
134951
|
-
const pending = this.#
|
|
134958
|
+
const pending = this.#queue[0];
|
|
134952
134959
|
if (!pending) return;
|
|
134953
134960
|
const { request } = pending.session;
|
|
134954
134961
|
if (event.intent !== "submit") {
|
|
@@ -134967,14 +134974,16 @@ var SpecInteractionChannel = class {
|
|
|
134967
134974
|
/** react 层初始化失败:挂起请求 reject 并记录原因(桥读取后降级 native) */
|
|
134968
134975
|
fail(message) {
|
|
134969
134976
|
this.#failure = message;
|
|
134970
|
-
const
|
|
134971
|
-
this.#
|
|
134977
|
+
const pendings = this.#queue;
|
|
134978
|
+
this.#queue = [];
|
|
134972
134979
|
this.#emit();
|
|
134973
|
-
|
|
134980
|
+
const error = new Error(message);
|
|
134981
|
+
for (const pending of pendings) pending.reject(error);
|
|
134974
134982
|
}
|
|
134975
134983
|
#settle(response) {
|
|
134976
|
-
const
|
|
134977
|
-
|
|
134984
|
+
const index = this.#queue.findIndex((entry) => entry.session.request.id === response.id);
|
|
134985
|
+
if (index < 0) return;
|
|
134986
|
+
const [pending] = this.#queue.splice(index, 1);
|
|
134978
134987
|
this.#emit();
|
|
134979
134988
|
pending?.resolve(response);
|
|
134980
134989
|
}
|
package/dist/ui-vue.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S as UiBridge, b as RenderResultRequest, c as InteractionResponse, s as InteractionRequest } from "./types-CpDRZ0rA-
|
|
1
|
+
import { S as UiBridge, b as RenderResultRequest, c as InteractionResponse, s as InteractionRequest } from "./types-CpDRZ0rA-BiZBXGm4.js";
|
|
2
2
|
import { PropType } from "vue";
|
|
3
3
|
//#region ../ui-vue/dist/index.d.ts
|
|
4
4
|
//#region src/bridgeState.d.ts
|
package/dist/ui.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Nt as UiSpecNode } from "./types-CpDRZ0rA-
|
|
2
|
-
import { Cr as buildRenderResult } from "./index-
|
|
3
|
-
import { $ as UI_PRESET_NAMES, $t as normalizeColumnWidths, A as EvaluateFieldConditionOptions, At as applySuggestion, B as NormalizedColumnWidths, Bt as ensureStyles, C as DEFAULT_INTERACTION_TEXTS, Ct as WEBSKILL_A2UI_CATALOG_ID, D as DOCUMENT_COMPONENTS, Dt as ZodRuntime, E as DESCRIBE_UI_PRESET_TOOL, Et as WebFormBridge, F as InteractionSpecLabels, Ft as collectScopedValues, G as SPEC_TABLE_MIN_COLUMN_VAR, Gt as fromVercelToolResult, H as OpenUiRuntime, Ht as fromA2uiSpecAction, I as InteractionTexts, It as collectSpecActions, J as SurfaceFormTexts, Jt as interactionToUiSpec, K as SPEC_TABLE_MIN_COLUMN_WIDTH, Kt as gaugePercent, L as JsonRenderSpec, Lt as collectValues, M as FieldConditionResult, Mt as chartSpecFromProps, N as FieldOption, Nt as chartToTable, O as DocumentComponentName, Ot as a2uiComponentSchema, P as FormModel, Pt as collectFormScopes, Q as UI_PRESETS, Qt as mountViewerComponents, R as LoadedOpenUiPeers, Rt as createUiCatalogToolSource, S as DEFAULT_CHART_FONT_SIZES, St as ViewerComponentsOptions, T as DEFAULT_SURFACE_HOST_CONTROL_TEXTS, Tt as WEBSKILL_SURFACE_ACTION, U as PLANNED_INCREMENT, Ut as fromA2uiSurfaceAction, V as OpenUiRendererProps, Vt as evaluateFieldCondition, W as RENDER_UI_TOOL, Wt as fromUiSurfaceActionDispatch, X as UI_CATALOG_GROUPS, Xt as loadWebSkillLitCatalog, Y as SurfaceHostControlTexts, Yt as loadOpenUiPeers, Z as UI_CATALOG_PROMPT_BUDGET_BYTES, Zt as mountEchart, _ as CHART_PALETTE, _n as toUiSurfaceActionDispatch, _t as VIEWER_FALLBACK_ATTR, a as A2UI_SURFACE_ACTION, an as renderRenderResult, at as UiComponentDef, b as ColumnWidthsRejection, bn as uiPreset, bt as VercelUiBridge, c as A2uiCatalogDefinition, cn as resolveInteractionTexts, ct as UiPresetName, d as A2uiMessage, dn as shapeInteractionValue, dt as UiSpecIssue, en as normalizeFieldOptions, et as UiActionDef, f as A2uiSpecActionEvent, fn as toA2uiSpecMessages, ft as UiSpecSanitization, g as CATALOG_SCHEMA_MAX, gn as toOpenUiSpecLang, gt as VIEWER_COMPONENT_ATTR, h as CATALOG_PROMPT_MAX, hn as toJsonRenderSpec, ht as VERCEL_INTERACTION_TOOL_NAME, i as A2UI_SPEC_FORM_PATH, in as renderMiniMarkdown, it as UiCatalogToolSourceOptions, j as FieldCondition, jt as buildA2uiCatalogDefinition, k as EchartHandle, kt as a2uiComponentShapes, l as A2uiCatalogHandle, ln as resolveSurfaceFormTexts, lt as UiSpecDegradation, m as CATALOG_BUDGET_STAGE, mn as toEchartsOption, mt as UiSurfaceActionDispatch, n as A2UI_COMMON_TYPES, nn as renderBlocks, nt as UiCatalogInput, o as A2UI_VERSION, on as resolveChartFontSizes, ot as UiFormScope, p as A2uiSpecMessageOptions, pn as toA2uiSurfaceAction, pt as UiSpecValidation, q as SpecColumnMeta, qt as interactionToFormModel, r as A2UI_SPEC_ACTION, rn as renderMiniChart, rt as UiCatalogPromptOptions, s as A2uiCatalogComponent, sn as resolveColumnWidths, st as UiPreset, t as A2UI_BASIC_CATALOG_ID, tn as qualifyFieldName, tt as UiCatalog, u as A2uiComponentShape, un as resolveSurfaceHostControlTexts, ut as UiSpecDegradationCode, v as ChartFontSizes, vn as toVercelToolInvocation, vt as VIEWER_PROPS_ATTR, w as DEFAULT_SURFACE_FORM_TEXTS, wt as WEBSKILL_STYLES_CSS, x as ControlModel, xt as ViewerComponentsHandle, y as CollectedValues, yn as uiCatalog, yt as VercelToolInvocation, z as MAX_CONDITION_DEPTH, zt as defineUiCatalog } from "./index-
|
|
1
|
+
import { Nt as UiSpecNode } from "./types-CpDRZ0rA-BiZBXGm4.js";
|
|
2
|
+
import { Cr as buildRenderResult } from "./index-7No55dRb.js";
|
|
3
|
+
import { $ as UI_PRESET_NAMES, $t as normalizeColumnWidths, A as EvaluateFieldConditionOptions, At as applySuggestion, B as NormalizedColumnWidths, Bt as ensureStyles, C as DEFAULT_INTERACTION_TEXTS, Ct as WEBSKILL_A2UI_CATALOG_ID, D as DOCUMENT_COMPONENTS, Dt as ZodRuntime, E as DESCRIBE_UI_PRESET_TOOL, Et as WebFormBridge, F as InteractionSpecLabels, Ft as collectScopedValues, G as SPEC_TABLE_MIN_COLUMN_VAR, Gt as fromVercelToolResult, H as OpenUiRuntime, Ht as fromA2uiSpecAction, I as InteractionTexts, It as collectSpecActions, J as SurfaceFormTexts, Jt as interactionToUiSpec, K as SPEC_TABLE_MIN_COLUMN_WIDTH, Kt as gaugePercent, L as JsonRenderSpec, Lt as collectValues, M as FieldConditionResult, Mt as chartSpecFromProps, N as FieldOption, Nt as chartToTable, O as DocumentComponentName, Ot as a2uiComponentSchema, P as FormModel, Pt as collectFormScopes, Q as UI_PRESETS, Qt as mountViewerComponents, R as LoadedOpenUiPeers, Rt as createUiCatalogToolSource, S as DEFAULT_CHART_FONT_SIZES, St as ViewerComponentsOptions, T as DEFAULT_SURFACE_HOST_CONTROL_TEXTS, Tt as WEBSKILL_SURFACE_ACTION, U as PLANNED_INCREMENT, Ut as fromA2uiSurfaceAction, V as OpenUiRendererProps, Vt as evaluateFieldCondition, W as RENDER_UI_TOOL, Wt as fromUiSurfaceActionDispatch, X as UI_CATALOG_GROUPS, Xt as loadWebSkillLitCatalog, Y as SurfaceHostControlTexts, Yt as loadOpenUiPeers, Z as UI_CATALOG_PROMPT_BUDGET_BYTES, Zt as mountEchart, _ as CHART_PALETTE, _n as toUiSurfaceActionDispatch, _t as VIEWER_FALLBACK_ATTR, a as A2UI_SURFACE_ACTION, an as renderRenderResult, at as UiComponentDef, b as ColumnWidthsRejection, bn as uiPreset, bt as VercelUiBridge, c as A2uiCatalogDefinition, cn as resolveInteractionTexts, ct as UiPresetName, d as A2uiMessage, dn as shapeInteractionValue, dt as UiSpecIssue, en as normalizeFieldOptions, et as UiActionDef, f as A2uiSpecActionEvent, fn as toA2uiSpecMessages, ft as UiSpecSanitization, g as CATALOG_SCHEMA_MAX, gn as toOpenUiSpecLang, gt as VIEWER_COMPONENT_ATTR, h as CATALOG_PROMPT_MAX, hn as toJsonRenderSpec, ht as VERCEL_INTERACTION_TOOL_NAME, i as A2UI_SPEC_FORM_PATH, in as renderMiniMarkdown, it as UiCatalogToolSourceOptions, j as FieldCondition, jt as buildA2uiCatalogDefinition, k as EchartHandle, kt as a2uiComponentShapes, l as A2uiCatalogHandle, ln as resolveSurfaceFormTexts, lt as UiSpecDegradation, m as CATALOG_BUDGET_STAGE, mn as toEchartsOption, mt as UiSurfaceActionDispatch, n as A2UI_COMMON_TYPES, nn as renderBlocks, nt as UiCatalogInput, o as A2UI_VERSION, on as resolveChartFontSizes, ot as UiFormScope, p as A2uiSpecMessageOptions, pn as toA2uiSurfaceAction, pt as UiSpecValidation, q as SpecColumnMeta, qt as interactionToFormModel, r as A2UI_SPEC_ACTION, rn as renderMiniChart, rt as UiCatalogPromptOptions, s as A2uiCatalogComponent, sn as resolveColumnWidths, st as UiPreset, t as A2UI_BASIC_CATALOG_ID, tn as qualifyFieldName, tt as UiCatalog, u as A2uiComponentShape, un as resolveSurfaceHostControlTexts, ut as UiSpecDegradationCode, v as ChartFontSizes, vn as toVercelToolInvocation, vt as VIEWER_PROPS_ATTR, w as DEFAULT_SURFACE_FORM_TEXTS, wt as WEBSKILL_STYLES_CSS, x as ControlModel, xt as ViewerComponentsHandle, y as CollectedValues, yn as uiCatalog, yt as VercelToolInvocation, z as MAX_CONDITION_DEPTH, zt as defineUiCatalog } from "./index-ShvCB5I9.js";
|
|
4
4
|
export { A2UI_BASIC_CATALOG_ID, A2UI_COMMON_TYPES, A2UI_SPEC_ACTION, A2UI_SPEC_FORM_PATH, A2UI_SURFACE_ACTION, A2UI_VERSION, type A2uiCatalogComponent, type A2uiCatalogDefinition, type A2uiCatalogHandle, type A2uiComponentShape, type A2uiMessage, type A2uiSpecActionEvent, type A2uiSpecMessageOptions, CATALOG_BUDGET_STAGE, CATALOG_PROMPT_MAX, CATALOG_SCHEMA_MAX, CHART_PALETTE, type ChartFontSizes, type CollectedValues, type ColumnWidthsRejection, type ControlModel, DEFAULT_CHART_FONT_SIZES, DEFAULT_INTERACTION_TEXTS, DEFAULT_SURFACE_FORM_TEXTS, DEFAULT_SURFACE_HOST_CONTROL_TEXTS, DESCRIBE_UI_PRESET_TOOL, DOCUMENT_COMPONENTS, type DocumentComponentName, type EchartHandle, type EvaluateFieldConditionOptions, type FieldCondition, type FieldConditionResult, type FieldOption, type FormModel, type InteractionSpecLabels, type InteractionTexts, type JsonRenderSpec, type LoadedOpenUiPeers, MAX_CONDITION_DEPTH, type NormalizedColumnWidths, type OpenUiRendererProps, type OpenUiRuntime, PLANNED_INCREMENT, RENDER_UI_TOOL, SPEC_TABLE_MIN_COLUMN_VAR, SPEC_TABLE_MIN_COLUMN_WIDTH, type SpecColumnMeta, type SurfaceFormTexts, type SurfaceHostControlTexts, UI_CATALOG_GROUPS, UI_CATALOG_PROMPT_BUDGET_BYTES, UI_PRESETS, UI_PRESET_NAMES, type UiActionDef, type UiCatalog, type UiCatalogInput, type UiCatalogPromptOptions, type UiCatalogToolSourceOptions, type UiComponentDef, type UiFormScope, type UiPreset, type UiPresetName, type UiSpecDegradation, type UiSpecDegradationCode, type UiSpecIssue, type UiSpecNode, type UiSpecSanitization, type UiSpecValidation, type UiSurfaceActionDispatch, VERCEL_INTERACTION_TOOL_NAME, VIEWER_COMPONENT_ATTR, VIEWER_FALLBACK_ATTR, VIEWER_PROPS_ATTR, type VercelToolInvocation, VercelUiBridge, type ViewerComponentsHandle, type ViewerComponentsOptions, WEBSKILL_A2UI_CATALOG_ID, WEBSKILL_STYLES_CSS, WEBSKILL_SURFACE_ACTION, WebFormBridge, type ZodRuntime, a2uiComponentSchema, a2uiComponentShapes, applySuggestion, buildA2uiCatalogDefinition, buildRenderResult, chartSpecFromProps, chartToTable, collectFormScopes, collectScopedValues, collectSpecActions, collectValues, createUiCatalogToolSource, defineUiCatalog, ensureStyles, evaluateFieldCondition, fromA2uiSpecAction, fromA2uiSurfaceAction, fromUiSurfaceActionDispatch, fromVercelToolResult, gaugePercent, interactionToFormModel, interactionToUiSpec, loadOpenUiPeers, loadWebSkillLitCatalog, mountEchart, mountViewerComponents, normalizeColumnWidths, normalizeFieldOptions, qualifyFieldName, renderBlocks, renderMiniChart, renderMiniMarkdown, renderRenderResult, resolveChartFontSizes, resolveColumnWidths, resolveInteractionTexts, resolveSurfaceFormTexts, resolveSurfaceHostControlTexts, shapeInteractionValue, toA2uiSpecMessages, toA2uiSurfaceAction, toEchartsOption, toJsonRenderSpec, toOpenUiSpecLang, toUiSurfaceActionDispatch, toVercelToolInvocation, uiCatalog, uiPreset };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as WebSkillError } from "./errors-BDZNpC13.js";
|
|
2
|
-
import { b as parseSkillMarkdown, i as buildCatalog, n as SkillDiscovery, t as validateSkills } from "./skill-
|
|
3
|
-
import { f as WebSkillRuntime } from "./approval-
|
|
2
|
+
import { b as parseSkillMarkdown, i as buildCatalog, n as SkillDiscovery, t as validateSkills } from "./skill-WSUDp6A1.js";
|
|
3
|
+
import { f as WebSkillRuntime } from "./approval-7CuZS3Z4.js";
|
|
4
4
|
|
|
5
5
|
//#region ../runtime/src/facade/webSkillApi.ts
|
|
6
6
|
/**
|