@hcmai/sdk 0.2.1 → 0.3.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.d.ts +13 -1
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1698,11 +1698,17 @@ declare function createHttpClient(opts: HttpClientOptions): AxiosInstance;
|
|
|
1698
1698
|
* - `GET {base}/skills.json` 目录 manifest
|
|
1699
1699
|
* - `GET {base}/skills/{id}.md` 技能原文
|
|
1700
1700
|
* - `GET {base}/skills/{id}/references/{path}` 技能自带的参考文件
|
|
1701
|
+
* - `GET {base}/skills/{id}/files?path=...` 完整 Skill 目录中的原始文件
|
|
1701
1702
|
*
|
|
1702
1703
|
* 🔴 `{base}` 是 `'/api'` 或 `''`,由 {@link resolveChironBase} 探出来。真实部署只把
|
|
1703
1704
|
* `/api/**` 路由给后端,根路径归前端 SPA——`GET /skills.json` 在客户环境上拿回来的是
|
|
1704
1705
|
* 一段 HTML。而老版本后端只有根路径。两种都要能连上,所以先探再用,不写死。
|
|
1705
1706
|
*/
|
|
1707
|
+
interface ChironSkillFile {
|
|
1708
|
+
path: string;
|
|
1709
|
+
bytes: number;
|
|
1710
|
+
sha256: string;
|
|
1711
|
+
}
|
|
1706
1712
|
interface ChironSkill {
|
|
1707
1713
|
id: string;
|
|
1708
1714
|
title: string;
|
|
@@ -1715,6 +1721,8 @@ interface ChironSkill {
|
|
|
1715
1721
|
/** 安装本技能前必须同时安装的其他 Chiron 技能 id;旧服务端缺省时视为空。 */
|
|
1716
1722
|
requires?: string[];
|
|
1717
1723
|
bytes: number;
|
|
1724
|
+
/** 新服务端提供完整 Skill 目录;旧服务端缺省时只消费 SKILL.md。 */
|
|
1725
|
+
files?: ChironSkillFile[];
|
|
1718
1726
|
markdownUrl: string;
|
|
1719
1727
|
/**
|
|
1720
1728
|
* 技能自带的参考文件相对路径(相对 `<skill>/references/`)。SKILL.md 正文用
|
|
@@ -1756,6 +1764,8 @@ interface ChironManifest {
|
|
|
1756
1764
|
declare function resolveChironBase(http: AxiosInstance): Promise<string>;
|
|
1757
1765
|
declare function fetchSkillCatalog(http: AxiosInstance, base: string): Promise<ChironManifest>;
|
|
1758
1766
|
declare function fetchSkillMarkdown(http: AxiosInstance, id: string, base: string): Promise<string>;
|
|
1767
|
+
/** 取完整 Skill 目录中的任意原始文件;`relativePath` 始终按 query 参数传递。 */
|
|
1768
|
+
declare function fetchSkillFile(http: AxiosInstance, id: string, relativePath: string, base: string): Promise<Buffer>;
|
|
1759
1769
|
/** 取技能自带的参考文件原文。`relativePath` 相对 `<skill>/references/`。 */
|
|
1760
1770
|
declare function fetchSkillReference(http: AxiosInstance, id: string, relativePath: string, base: string): Promise<string>;
|
|
1761
1771
|
/**
|
|
@@ -1765,6 +1775,8 @@ declare function fetchSkillReference(http: AxiosInstance, id: string, relativePa
|
|
|
1765
1775
|
* 安装写出技能目录之外。不要因为「服务端已经校验过」就省掉——CLI 可以指向任何 endpoint。
|
|
1766
1776
|
*/
|
|
1767
1777
|
declare function assertSafeReferencePath(relativePath: string): void;
|
|
1778
|
+
/** 完整 Skill 目录相对路径约束;允许有限深度之外的目录,但拒绝任何穿越和反斜线。 */
|
|
1779
|
+
declare function assertSafeSkillFilePath(relativePath: string): void;
|
|
1768
1780
|
/** 归一 references 字段:旧服务端缺省时视为空,逐条过白名单。 */
|
|
1769
1781
|
declare function normalizeReferences(raw: unknown, skillId: string): string[];
|
|
1770
1782
|
declare function flattenSkills(manifest: ChironManifest): ChironSkill[];
|
|
@@ -1836,4 +1848,4 @@ declare function resetSettingItem(http: AxiosInstance, domain: string, namespace
|
|
|
1836
1848
|
*/
|
|
1837
1849
|
declare function parseSettingAssignment(raw: string): SettingWrite;
|
|
1838
1850
|
|
|
1839
|
-
export { type ActionHttpMethod, type ActionInput, type ActionMeta, type ActionResult, type ActionScope, type AnyStreamEvent, type ApprovalConfirmPayload, type ApprovalRejectPayload, type AttachmentMeta, type AuthScheme, type BootstrapReconcileResult, type BootstrapTenantRequest, type BootstrapTenantResult, type CacheClearResult, type CacheStats, type ChangePasswordInput, type ChironCategory, type ChironManifest, type ChironSkill, type ChironStage, type ClearMetaCacheOpts, CliError, CliErrorCode, type CliErrorInit, type ClientAuthContext, type ClientCredentialsInput, type ConnectionMessage, type ControlChannelEnvelope, type ConversationListItem, type ConversationListResult, type ConversationState, type CreateResult, type CreatedConversation, DEFAULT_AGENT_ID, DEFAULT_SESSION_TTL_SECONDS, type DescribeOpts, type EnvConfig, ExitCode, type FieldMeta, type Fixture, type FormatOptions, type GlobalConfig, HcmClient, type HcmClientOpts, type HttpClientOptions, type IdentityMeta, type ImportClient, type ImportOptions, type ImportResult, type InteractionAnswerPayload, type InteractionRequest, type InteractionResolved, type ListTenantMetaOpts, type LoginOutcome, MINI_CONTEXT_FILE, MINI_CONTEXT_KIND, MINI_CONTEXT_VERSION, MINI_PULL_MANIFEST_FILE, MINI_REMOTE_ROOT, MINI_STATE_DIR, type MessageClass, type MessageCreatePayload, type MessageStreamHandle, type MigrationSummary, type MiniFileSnapshot, type MiniInitArgs, type MiniLocalFile, type MiniLocalStatus, type MiniPreviewTarget, type MiniProjectContext, type MiniPullArgs, type MiniPullManifest, type MiniPullResult, type MiniPushArgs, type MiniPushConflict, type MiniPushOperation, type MiniPushPlanItem, type MiniPushResult, type MiniSmokeCheckArgs, type MiniSmokeFetch, type MiniSmokeFetchResponse, type MiniSmokeResult, type MiniSmokeTargetKind, type MiniSmokeTargetResult, type MiniStatusEntry, type MiniSurface, type MiniTemplateArgs, type MiniTemplateKind, type MiniValidationResult, type MiniVerifyAgentReport, type MiniVerifyBrowserAcceptance, type MiniVerifyChangedFile, type MiniVerifyNextAction, type MiniVerifyPlan, type MiniVerifyPreviewUrl, type MiniVerifyReport, type MiniVerifySummary, type MiniWritableTemplateConfig, type ModelDescription, type ModelQueryDsl, type OneShotOpts, type OneShotResult, type OneShotToolCall, type OutputFormat, PASSWORD_CHANGE_REQUIRED, PROACTIVE_REFRESH_MARGIN_SECONDS, type PairingLoginInput, type ParsedPlaceholder, type PasswordChangeChallenge, type PasswordLoginInput, type PatLoginInput, type Principal, type ProfileConfig, type QueryResult, RefStore, type RefreshInput, type RelationMeta, type RemoveResult, type ResponseCompletedPayload, type ResponseFailedPayload, type ResponsePartDeltaPayload, type ResponseStartedPayload, type ResumeSummary, type ResumeTurn, type RowResult, type RowStatus, SDK_VERSION, type SaveMetaResult, type SendMessageOpts, type SettingItem, type SettingWrite, type StreamCancelPayload, type StreamCommand, type StreamCommandEnvelope, type StreamCommandType, type StreamEventEnvelope, type StreamEventType, type TaskProgressPayload, type TenantMetaEntry, type TimelineItemLite, type TokenRecord, TokenStore, type ToolCallFailedPayload, type ToolCallResultPayload, type ToolCallStartedPayload, type V4RenderSink, type V4StreamEventType, type WorkspaceFileContent, type WorkspaceFileItem, type WorkspaceFileListResult, WsClient, type WsClientOpts, absoluteDownloadUrl, archiveDir, assertSafeReferencePath, assertSafeSkillId, bootstrapTenant, buildAnswer, buildConfirm, buildInterrupt, buildMiniAppTemplateFiles, buildMiniPreviewTargets, buildMiniVerifyAgentReport, buildReject, buildResumeSummary, buildSteer, camelizeKeys, changePassword, classifyMessage, clearMetaCache, clearModelCache, conversationStateFile, create, createConversation, createHttpClient, createV4Reducer, createWorkspaceFile, credentialsFile, defaultDownloadDir, defaultMiniRequiredScopes, deleteEnv, deleteIdentity, deleteTenantMeta, deleteWorkspaceFile, deriveNamelessToolLabel, describePrincipal, detectDelegationPause, detectDirectInteractionPending, detectPasswordChangeChallenge, displayWidth, downloadDocument, ensureSessionFresh, envDir, envFile, envsDir, exitCodeFor, extractNextSteps, fetchConversationTimeline, fetchConversationTimelineStrict, fetchRecentConversations, fetchSkillCatalog, fetchSkillMarkdown, fetchSkillReference, filterByStage, findLastAssistantSeq, flattenSkills, formatMiniVerifyReport, formatObject, formatRows, fromAxiosError, getCacheStats, getMiniStatus, getSettingDomain, getTenantMeta, globalConfigFile, guessMimeType, hcmConfigDir, identitiesDir, identityDir, identityMetaFile, inferEnvName, inferMiniWritableTemplateOptionsFromModel, initMiniAppProject, isDelegationToolName, isServerSlidingSession, listEnvs, listIdentities, listProfiles, listTenantMeta, listWorkspaceFiles, loadConversationState, loadEnv, loadGlobalConfig, loadIdentity, loadProfile, loadWorkspaceFileContent, loginClientCredentials, loginPairing, loginPassword, loginPat, matchSkills, migrateLegacyProfiles, needsRefresh, normalizeReferences, oneShot, parseConfirmToolName, parseFixture, parseInteractionRequest, parseInteractionResolved, parsePlaceholder, parseSettingAssignment, parseSkillFrontmatter, parseSkillRequirements, patchSettingDomain, profileDir, profileFile, pullMiniAppProject, pushMiniAppProject, readMiniContext, readPullManifest, refreshToken, remove, replHistoryFile, resetSettingItem, resolveActiveEnv, resolveActiveIdentity, resolveActiveProfile, resolveAllSkillsInstallOrder, resolveChironBase, resolveRefs, resolveSkillInstallOrder, runImport, runMiniSmokeChecks, saveConversationState, saveEnv, saveGlobalConfig, saveIdentity, saveProfile, saveTenantMeta, saveWorkspaceFileContent, sendMessageAndStream, snakeToCamel, toJson, toOrigin, toPrincipal, toTable, toYaml, truncateDisplay, update, uploadDocument, validateMiniProject };
|
|
1851
|
+
export { type ActionHttpMethod, type ActionInput, type ActionMeta, type ActionResult, type ActionScope, type AnyStreamEvent, type ApprovalConfirmPayload, type ApprovalRejectPayload, type AttachmentMeta, type AuthScheme, type BootstrapReconcileResult, type BootstrapTenantRequest, type BootstrapTenantResult, type CacheClearResult, type CacheStats, type ChangePasswordInput, type ChironCategory, type ChironManifest, type ChironSkill, type ChironSkillFile, type ChironStage, type ClearMetaCacheOpts, CliError, CliErrorCode, type CliErrorInit, type ClientAuthContext, type ClientCredentialsInput, type ConnectionMessage, type ControlChannelEnvelope, type ConversationListItem, type ConversationListResult, type ConversationState, type CreateResult, type CreatedConversation, DEFAULT_AGENT_ID, DEFAULT_SESSION_TTL_SECONDS, type DescribeOpts, type EnvConfig, ExitCode, type FieldMeta, type Fixture, type FormatOptions, type GlobalConfig, HcmClient, type HcmClientOpts, type HttpClientOptions, type IdentityMeta, type ImportClient, type ImportOptions, type ImportResult, type InteractionAnswerPayload, type InteractionRequest, type InteractionResolved, type ListTenantMetaOpts, type LoginOutcome, MINI_CONTEXT_FILE, MINI_CONTEXT_KIND, MINI_CONTEXT_VERSION, MINI_PULL_MANIFEST_FILE, MINI_REMOTE_ROOT, MINI_STATE_DIR, type MessageClass, type MessageCreatePayload, type MessageStreamHandle, type MigrationSummary, type MiniFileSnapshot, type MiniInitArgs, type MiniLocalFile, type MiniLocalStatus, type MiniPreviewTarget, type MiniProjectContext, type MiniPullArgs, type MiniPullManifest, type MiniPullResult, type MiniPushArgs, type MiniPushConflict, type MiniPushOperation, type MiniPushPlanItem, type MiniPushResult, type MiniSmokeCheckArgs, type MiniSmokeFetch, type MiniSmokeFetchResponse, type MiniSmokeResult, type MiniSmokeTargetKind, type MiniSmokeTargetResult, type MiniStatusEntry, type MiniSurface, type MiniTemplateArgs, type MiniTemplateKind, type MiniValidationResult, type MiniVerifyAgentReport, type MiniVerifyBrowserAcceptance, type MiniVerifyChangedFile, type MiniVerifyNextAction, type MiniVerifyPlan, type MiniVerifyPreviewUrl, type MiniVerifyReport, type MiniVerifySummary, type MiniWritableTemplateConfig, type ModelDescription, type ModelQueryDsl, type OneShotOpts, type OneShotResult, type OneShotToolCall, type OutputFormat, PASSWORD_CHANGE_REQUIRED, PROACTIVE_REFRESH_MARGIN_SECONDS, type PairingLoginInput, type ParsedPlaceholder, type PasswordChangeChallenge, type PasswordLoginInput, type PatLoginInput, type Principal, type ProfileConfig, type QueryResult, RefStore, type RefreshInput, type RelationMeta, type RemoveResult, type ResponseCompletedPayload, type ResponseFailedPayload, type ResponsePartDeltaPayload, type ResponseStartedPayload, type ResumeSummary, type ResumeTurn, type RowResult, type RowStatus, SDK_VERSION, type SaveMetaResult, type SendMessageOpts, type SettingItem, type SettingWrite, type StreamCancelPayload, type StreamCommand, type StreamCommandEnvelope, type StreamCommandType, type StreamEventEnvelope, type StreamEventType, type TaskProgressPayload, type TenantMetaEntry, type TimelineItemLite, type TokenRecord, TokenStore, type ToolCallFailedPayload, type ToolCallResultPayload, type ToolCallStartedPayload, type V4RenderSink, type V4StreamEventType, type WorkspaceFileContent, type WorkspaceFileItem, type WorkspaceFileListResult, WsClient, type WsClientOpts, absoluteDownloadUrl, archiveDir, assertSafeReferencePath, assertSafeSkillFilePath, assertSafeSkillId, bootstrapTenant, buildAnswer, buildConfirm, buildInterrupt, buildMiniAppTemplateFiles, buildMiniPreviewTargets, buildMiniVerifyAgentReport, buildReject, buildResumeSummary, buildSteer, camelizeKeys, changePassword, classifyMessage, clearMetaCache, clearModelCache, conversationStateFile, create, createConversation, createHttpClient, createV4Reducer, createWorkspaceFile, credentialsFile, defaultDownloadDir, defaultMiniRequiredScopes, deleteEnv, deleteIdentity, deleteTenantMeta, deleteWorkspaceFile, deriveNamelessToolLabel, describePrincipal, detectDelegationPause, detectDirectInteractionPending, detectPasswordChangeChallenge, displayWidth, downloadDocument, ensureSessionFresh, envDir, envFile, envsDir, exitCodeFor, extractNextSteps, fetchConversationTimeline, fetchConversationTimelineStrict, fetchRecentConversations, fetchSkillCatalog, fetchSkillFile, fetchSkillMarkdown, fetchSkillReference, filterByStage, findLastAssistantSeq, flattenSkills, formatMiniVerifyReport, formatObject, formatRows, fromAxiosError, getCacheStats, getMiniStatus, getSettingDomain, getTenantMeta, globalConfigFile, guessMimeType, hcmConfigDir, identitiesDir, identityDir, identityMetaFile, inferEnvName, inferMiniWritableTemplateOptionsFromModel, initMiniAppProject, isDelegationToolName, isServerSlidingSession, listEnvs, listIdentities, listProfiles, listTenantMeta, listWorkspaceFiles, loadConversationState, loadEnv, loadGlobalConfig, loadIdentity, loadProfile, loadWorkspaceFileContent, loginClientCredentials, loginPairing, loginPassword, loginPat, matchSkills, migrateLegacyProfiles, needsRefresh, normalizeReferences, oneShot, parseConfirmToolName, parseFixture, parseInteractionRequest, parseInteractionResolved, parsePlaceholder, parseSettingAssignment, parseSkillFrontmatter, parseSkillRequirements, patchSettingDomain, profileDir, profileFile, pullMiniAppProject, pushMiniAppProject, readMiniContext, readPullManifest, refreshToken, remove, replHistoryFile, resetSettingItem, resolveActiveEnv, resolveActiveIdentity, resolveActiveProfile, resolveAllSkillsInstallOrder, resolveChironBase, resolveRefs, resolveSkillInstallOrder, runImport, runMiniSmokeChecks, saveConversationState, saveEnv, saveGlobalConfig, saveIdentity, saveProfile, saveTenantMeta, saveWorkspaceFileContent, sendMessageAndStream, snakeToCamel, toJson, toOrigin, toPrincipal, toTable, toYaml, truncateDisplay, update, uploadDocument, validateMiniProject };
|
package/dist/index.js
CHANGED
|
@@ -5038,6 +5038,16 @@ async function fetchSkillMarkdown(http, id, base) {
|
|
|
5038
5038
|
});
|
|
5039
5039
|
return String(resp.data ?? "");
|
|
5040
5040
|
}
|
|
5041
|
+
async function fetchSkillFile(http, id, relativePath, base) {
|
|
5042
|
+
assertSafeSkillId(id);
|
|
5043
|
+
assertSafeSkillFilePath(relativePath);
|
|
5044
|
+
const resp = await http.get(`${base}/skills/${encodeURIComponent(id)}/files`, {
|
|
5045
|
+
params: { path: relativePath },
|
|
5046
|
+
responseType: "arraybuffer",
|
|
5047
|
+
transformResponse: [(data) => data]
|
|
5048
|
+
});
|
|
5049
|
+
return Buffer.from(resp.data ?? []);
|
|
5050
|
+
}
|
|
5041
5051
|
async function fetchSkillReference(http, id, relativePath, base) {
|
|
5042
5052
|
assertSafeReferencePath(relativePath);
|
|
5043
5053
|
const encoded = relativePath.split("/").map(encodeURIComponent).join("/");
|
|
@@ -5053,6 +5063,14 @@ function assertSafeReferencePath(relativePath) {
|
|
|
5053
5063
|
throw invalid(`\u53C2\u8003\u6587\u4EF6\u8DEF\u5F84\u4E0D\u5408\u6CD5\uFF1A${JSON.stringify(relativePath)}`);
|
|
5054
5064
|
}
|
|
5055
5065
|
}
|
|
5066
|
+
function assertSafeSkillFilePath(relativePath) {
|
|
5067
|
+
const segments = relativePath?.split("/") ?? [];
|
|
5068
|
+
if (!relativePath || relativePath.length > 512 || relativePath.startsWith("/") || relativePath.includes("\\") || segments.some(
|
|
5069
|
+
(segment) => !segment || segment === "." || segment === ".." || !/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/.test(segment)
|
|
5070
|
+
)) {
|
|
5071
|
+
throw invalid(`\u975E\u6CD5 Skill \u6587\u4EF6\u8DEF\u5F84: "${relativePath}"`);
|
|
5072
|
+
}
|
|
5073
|
+
}
|
|
5056
5074
|
function normalizeReferences(raw, skillId) {
|
|
5057
5075
|
if (raw === void 0 || raw === null) return [];
|
|
5058
5076
|
if (!Array.isArray(raw)) throw invalid(`\u6280\u80FD ${skillId} \u7684 references \u53EA\u80FD\u662F\u5B57\u7B26\u4E32\u6570\u7EC4`);
|
|
@@ -5221,6 +5239,7 @@ export {
|
|
|
5221
5239
|
absoluteDownloadUrl,
|
|
5222
5240
|
archiveDir,
|
|
5223
5241
|
assertSafeReferencePath,
|
|
5242
|
+
assertSafeSkillFilePath,
|
|
5224
5243
|
assertSafeSkillId,
|
|
5225
5244
|
bootstrapTenant,
|
|
5226
5245
|
buildAnswer,
|
|
@@ -5267,6 +5286,7 @@ export {
|
|
|
5267
5286
|
fetchConversationTimelineStrict,
|
|
5268
5287
|
fetchRecentConversations,
|
|
5269
5288
|
fetchSkillCatalog,
|
|
5289
|
+
fetchSkillFile,
|
|
5270
5290
|
fetchSkillMarkdown,
|
|
5271
5291
|
fetchSkillReference,
|
|
5272
5292
|
filterByStage,
|