Commit Graph

524 Commits

Author SHA1 Message Date
故璃 61d9a74166 fix: 1.14.3 2026-08-12 17:05:18 +08:00
故璃 69eb759490 refactor(usage): consolidate shared poll logic; migrate freeTrial APIs to bailian-commerce
Dedup:
- shared.ts: extract generic pollConsoleUntilDone (request-builder callback
  absorbs each wrapper convention); pollTelemetryApi becomes a thin wrapper;
  add pollFreeTierBatch
- freetier.ts / stats.ts: drop inline duplicates of extractResponseData,
  polling, model-list paging, free-tier extractors and usage label maps;
  import from shared.ts (behaviour unchanged: freetier keeps its 20-poll
  budget, telemetry keeps 30)

Endpoint migration (broadscope-bailian.freeTrial -> bailian-commerce.freeTrial):
- queryFreeTierQuota, queryFreeTierOnlyStatus, batchActivateFreeTierOnly,
  batchDeactivateFreeTierOnly
- update the console call example and the gateway doc comment to match

Note: verified statically and via dry-run; live calls pending a fresh
console login (session expired).
2026-08-12 16:30:08 +08:00
clh02467605 313966d7a9 feat(mcp): add SSE support with fallback mechanism for MCP connections
- Add McpSseClient implementation for classic HTTP+SSE MCP protocol
- Implement connectBailianMcpWithFallback with Streamable HTTP to SSE fallback
- Add isStreamableHttpUnsupported helper to detect 405 streamableHttp errors
- Update activate-hint logic to handle WebSearch 405 streamableHttp cases
- Replace direct MCP client usage with connection manager in call/tools commands
- Add proper client cleanup with close() calls in finally blocks
- Export new MCP connection utilities and types from core client module
- Add comprehensive tests for SSE client and fallback behavior
2026-08-12 15:44:51 +08:00
故璃 d74d4efcd0 fix(dataset): align validation with the platform data-format rules doc
Reviewed against the official text-tuning data rules; fixes two confirmed
mismatches and fills enforcement gaps:

- thinking: exempt assistant messages carrying tool_calls from the
  THINK_TAG_NOT_LAST check — the spec's tool+thinking combo example puts
  <think> on a non-last assistant and was previously false-flagged
- DPO support matrix: reject image/video content items, tools, tool_calls
  and role:tool (DPO_UNSUPPORTED_ELEMENT); also scan chosen/rejected
- DPO: messages not ending with user upgraded warning -> error
- OpenAI migration: name/weight upgraded warning -> error (spec: must not
  carry); drop dead record-level name branch
- tool_call_id: unmatched tool response upgraded warning -> error
  (one-to-one per spec); new TOOL_CALL_NO_RESPONSE warning for orphan calls
- loss_weight: validate range at message level too; warn when placed on
  anything but the last assistant message (LOSS_WEIGHT_PLACEMENT)
- video params: fps/sample_fps must be within [0.1, 10]
  (INVALID_VIDEO_FPS); mode-mismatched params warned
  (VIDEO_PARAM_MODE_MISMATCH); video_start/video_end type-checked
- zip: skip macOS packaging metadata (__MACOSX/, .DS_Store, ._*) in
  filename constraints and image counting to stop false failures on
  Finder-created archives

Tests 45 -> 59 covering every new/changed rule, including a replica of the
spec's official tool+thinking example.
2026-08-12 10:09:10 +08:00
故璃 e7422bd2e5 fix(dataset): align validation rules with platform data format spec
- Support content array format [{text/image/video}] alongside legacy string
- Add tool role support with tool_calls structure and tool_call_id validation
- Add thinking tag placement check (only in last assistant message)
- Add OpenAI migration guards: warn on unsupported name/weight fields
- Add loss_weight range validation (0.0–1.0)
- Fix size limits: SFT/DPO 200MB, CPT 300MB, media ZIP 2GB
- Enforce data.jsonl at ZIP root (reject nested wrapping folders)
- Add ZIP filename constraints: charset [a-zA-Z0-9_-], length ≤120, uniqueness
- Add .tif to accepted image extensions
- Add DPO_LAST_MSG_NOT_USER warning when messages don't end with user role
- CPT profile now uses dedicated 300MB cap instead of shared default
- Expand unit tests from 19 to 45 covering all new validation paths
2026-08-12 07:48:11 +08:00
zeyu.fz 2d5c49b02e fix(knowledge): 优化quiet和format参数的输出逻辑
- 在file-get命令中,quiet模式下仅输出fileId,避免了多余的结果格式化
- 在kb-info命令中,quiet模式仅输出id,格式化输出逻辑得到简化
- 在kb-stats命令中,去除了quiet判断,确保非"text"格式下正确输出结果
- 在service-get命令中,quiet模式下只输出agent_id,格式化部分调整为独立判断
- 统一了各命令中针对quiet和format参数的处理流程,提升代码一致性和可读性
2026-08-11 20:05:44 +08:00
zeyu.fz 9bd8b60c22 refactor(knowledge-search): 移除对 query-history 功能的支持及相关代码
- 从文档中删除了 query-history 参数及示例
- 删除命令行接口中 query-history 相关 flag 定义
- 移除解析和传递 query-history 的逻辑代码
- 调整测试用例,去除对 query-history 的相关断言和测试
- 更新帮助文档,删除 query-history 相关说明和示例
- 精简接口类型定义,去除 query_history 字段
2026-08-11 19:44:00 +08:00
zeyu.fz 0369bd36b0 fix(knowledge): 修复内容文件读取时的编码和错误提示
- 为知识块添加和更新命令的读取内容文件函数添加了可选的inline flag参数
- 更新readUtf8TextFile以支持根据inline flag生成更友好的ENOENT错误提示
- 确保内容读取时使用严格的UTF-8编码解码方式
- 如果读取文件失败,提供文件路径和权限相关的详细错误信息
- 校验知识块内容长度时保持一致的错误处理逻辑
2026-08-11 17:48:21 +08:00
zeyu.fz 92a978af3c fix(knowledge): 验证并限制查询时间范围为过去时间
- 修改时间参数说明,明确要求起止时间必须为过去时间
- 添加起始时间未来时报错机制,避免无意义查询
- 截断结束时间未来时间至当前时间,保障监控接口正确响应
- 添加测试覆盖,验证时间范围边界行为及错误处理
- 补充对应端到端测试路由映射,完善测试用例组织结构
2026-08-11 17:39:40 +08:00
若麒 ea7b0f016f feat(cli): add bilingual quick-start examples 2026-08-11 15:49:05 +08:00
故璃 9749a11d76 fix(finetune): detect video-kf2v sub-variant from local dataset
finetune video create passed a fixed modality "video" to the profile
validator without probing the data for last_frame_path. This caused a
false KF2V_DATA_MISMATCH error when training kf2v models (wan2.2-kf2v-*)
with datasets that correctly contain last_frame_path.

Add sub-variant detection symmetric to the existing image-i2i upgrade:
when a local file is provided, detectModality() inspects the first record
and upgrades "video" → "video-kf2v" if last_frame_path is present.
2026-08-11 14:50:58 +08:00
故璃 2965080cb7 feat(skills): replace foreign skill dirs containing SKILL.md during fan-out
Previously, fan-out skipped any existing real directory not recorded in
the lock file, treating it as user content. This left stale skill copies
installed by other tools (e.g. npx skills add) permanently out of date.

Now: if the directory contains a SKILL.md, it is recognized as a skill
artifact and replaced with a symlink to the canonical dir. Directories
without SKILL.md are still preserved (user content safety boundary).
2026-08-11 14:29:10 +08:00
zeyu.fz 81959145d7 test(auth): 添加 openApiSource 头和相关测试字段
- 在请求和响应处理中新增 openApiSource 字段
- 更新 e2e 测试以包含 openApiSource 字段验证
- 确保请求头包含 x-dashscope-openapisource 信息
- 在测试数据中添加 openApiSource 的示例值 BailianCLI
2026-08-11 14:23:01 +08:00
zeyu.fz 4343fc87af feat(core): 添加并统一管理 x-dashscope-openapisource 请求头
- 在 headers.ts 中新增 OPEN_API_SOURCE 常量,作为静态的 OpenAPI 源标识
- 在 trackingHeaders 函数中添加 x-dashscope-openapisource 请求头
- 更新 client/index.ts 以导出 OPEN_API_SOURCE
- 在 instrumented-fetch.test.ts 中添加对应请求头的测试,确保其正确添加或省略
- 修改文档注释,明确 x-dashscope-openapisource 与 x-dashscope-source-config 的用途和区别
2026-08-11 14:20:44 +08:00
故璃 1c76749ee5 feat: update datalist validate 2026-08-11 13:33:31 +08:00
zeyu.fz 1b568e8d37 test(knowledge): 补全知识库相关命令参数并增加E2E测试覆盖
- 添加知识库列表、创建、删除及文件删除等命令路由
- 新增知识块、分类、文件相关参数的端到端测试,覆盖文件列表、分类列表、块新增更新及分页等功能
- 增加对知识文档状态上传、等待、轮询参数的实时测试及自清理逻辑
- 新增知识文档列表分页、过滤参数的E2E测试覆盖
- 扩展知识文档上传命令的轮询间隔参数测试,验证无错误
- 补充知识库删除命令的轮询间隔参数传递测试
- 增强知识库列表的分页、名称过滤测试用例
- 丰富知识服务命令的参数全覆盖测试,包括创建、更新、部署、删除及多版本描述等功能
- 添加知识检索命令的重新排序指令与过时参数的实时测试覆盖
2026-08-11 13:17:34 +08:00
故璃 5d1b7aac3a Merge branch 'main' into feat/cli-skill-sync 2026-08-11 10:47:45 +08:00
zeyu.fz e292b20d4b docs(knowledge): 添加知识库各类资源及操作命令手册
- 新增 Chunk 管理命令手册,涵盖添加、列出、更新、删除操作详解
- 新增数据中心集合与分类命令文档,介绍集合创建、查看,分类增删查等功能
- 新增文档管理命令,包含文档上传、导入 OSS、状态查询、删除及标签管理
- 新增数据中心文件管理文档,涵盖文件列表、详情查看、删除等命令说明
- 新增知识库管理命令手册,包含知识库创建、查看、更新、删除和监控
- 各命令均详细说明参数、输出格式及多模式支持(text/quiet/json)
- 提供丰富示例及注意事项,帮助用户正确使用相关命令
2026-08-11 01:02:49 +08:00
zeyu.fz 12e7a22195 test(knowledge): 增加文档相关命令的独立读回验证
- 在 knowledge doc delete 命令中添加异步删除的轮询验证,确保文档从服务器彻底移除
- 为 knowledge doc tag 添加标签设置后,独立调用 file get 验证标签正确应用
- 在知识库更新操作后,通过 info 命令独立验证更新是否成功保存
- 在文件删除和类别删除后,通过独立列表命令验证资源确实被清除
- 对知识块更新及排除标记修改,添加通过列表接口的内容验证步骤
- 对知识服务代理删除操作后,增加独立查询接口确保代理已彻底删除
- 补充 doc delete 备注,明确 doc_id 与 fileId 的区别及异步删除机制说明
- 增加 e2e 路由映射中缺失的 knowledge info 和 knowledge file get 命令支持
2026-08-10 17:37:21 +08:00
zeyu.fz 219d8be80a test(e2e): 修正知识库删除测试中文件名匹配逻辑
- 移除未使用的完整文件名变量
- 使用文件名主干(去掉扩展名)进行文档匹配判断
- 更新断言提示信息以反映主干文件名匹配
- 提升测试对文档名称匹配的准确性与鲁棒性
2026-08-10 16:29:14 +08:00
zeyu.fz ab766d44d3 test(commands): 添加知识文档列表的端到端测试步骤
- 在topic-routes测试文件中新增“knowledge doc list”步骤
- 该步骤用于验证导入的知识库文件是否可见
- 增强了知识库文件相关功能的测试覆盖率
2026-08-10 16:25:01 +08:00
zeyu.fz 1d9852805f fix(knowledge): 修正文档上传接口请求的字段名为 docIds
- 将请求体中的 dataSource.fileIds 改为扁平结构的 docIds 字段
- 移除嵌套的 dataSource 对象,显式指定 sourceType 字段
- 更新相关单元测试以匹配新的请求参数格式和字段名称
- 在知识库删除测试中增加了导入结果和最终状态的断言,确保导入流程完整
- 新增校验导入文件在知识库文档列表中正确显示
- 调整测试中对请求体结构的断言逻辑以适配改动
2026-08-10 16:24:00 +08:00
zeyu.fz 99a3dbae2d Merge remote-tracking branch 'origin/main' into feat/iteration1-w1-foundation 2026-08-10 15:26:18 +08:00
sonicg83 4d84af614b Merge branch 'modelstudioai:main' into codex/usage-token-plan-reset-times 2026-08-07 23:29:01 +08:00
clh02467605 9ae5dc924d docs(cli): update skill installation command from add --name all to init
- Replace `bl skill add --name all` with `bl skill init` across documentation
- Update installation instructions in README, INSTALL, and agent skill guides
- Modify code references in update checker and UI components
- Adjust documentation links and cross-references accordingly
- Revise command examples in protocol and asset files
- Update versioning and setup instructions to reflect new command
- Modify HTML UI rendering for skill installation guidance
- Change internal command constants and execution calls
2026-08-07 17:56:30 +08:00
故璃 946b7029c6 feat: add version 1.14.2 2026-08-07 17:42:31 +08:00
clh02467605 d6cb075629 Merge remote-tracking branch 'refs/remotes/origin/main' into feat/change-skills-install
# Conflicts:
#	README.md
#	README.zh.md
#	packages/cli/README.md
#	packages/cli/README.zh.md
2026-08-07 17:37:43 +08:00
gujieye b9ecd5c43b Merge pull request #143 from modelstudioai/feat/skill-init-commend
feat: add skill init & opt commend flags
2026-08-07 17:26:21 +08:00
故璃 4502424200 feat: add skill init & opt commend flags 2026-08-07 17:17:27 +08:00
若麒 03839766bc docs: update READMEs 2026-08-07 17:15:26 +08:00
故璃 5007b9b574 feat: change output to json 2026-08-07 16:35:47 +08:00
故璃 eb6c2b8e2a Merge branch 'feat/model-finetune-opt' into feat/cli-skill-sync 2026-08-07 14:26:38 +08:00
clh02467605 0e33c70e65 docs: update skill installation instructions to use bl skill add
- Replace all instances of `npx skills add modelstudioai/cli --all -g` with `bl skill add --name all`
- Update installation documentation in INSTALL.md, README.md, and related files
- Modify code references in config/inventory.ts, generate-reference.ts, and other files
- Update HTML UI messages to reflect new installation command
- Correct setup.md to include binary installation option and update subset install instructions
- Adjust versioning documentation to use new skill installation command
- Update all SKILL.md files with consistent installation instructions
2026-08-07 14:09:23 +08:00
故璃 3c64461cca feat: video finetune/deploy/invoke full pipeline + training cost calculation
- Add finetune video create subcommand (wan2.7/2.5/2.2 i2v + kf2v)
- Align video hyperparams with official docs (n_epochs=50, per-model batch_size/max_pixels)
- Add --last-frame flag to video generate for kf2v (image2video endpoint)
- Fix wan2.1-2.6 i2v input format (img_url instead of media[])
- Add training_cost field to finetune get/watch (catalog ft price, API-key domain only)
- Add --aigc-* flags to deploy create (optional, for video LoRA prompt config)
2026-08-07 07:03:01 +08:00
sonicg 24092b423c fix(usage): handle unavailable token plan quotas 2026-08-06 22:47:26 +08:00
故璃 f30fff9065 feat(finetune): clarify model flags; add price estimate & actual cost
- Rename for clarity: finetune --model → --base-model (create/price/
  capability/list); deploy create --model → --model-name, --name →
  --display-name
- Add `finetune price` (console domain) for pre-training cost estimate
  (sft/dpo/cpt)
- Add actual training cost (fee.ts) enriched into finetune get/watch
  from catalog price × reported usage
2026-08-06 15:08:02 +08:00
故璃 a7245c0f62 feat(deploy): add pause/resume commands; JSON-only output for dataset/finetune/deploy
- Add `bl deploy pause` and `bl deploy resume` (console domain, first
  console-auth commands in deploy group) via modelInstance start/stop APIs
- Add core deploy/lifecycle.ts with input-wrapped console gateway calls
- Switch all dataset/finetune/deploy commands to JSON-only output, removing
  text formatting logic
- Expose usage/charge_type in finetune get, model_name/expire_time in
  finetune checkpoints with near-expiry warning
- Update deploy delete hint to suggest `bl deploy pause`
2026-08-06 11:34:48 +08:00
sonicg 752a79e442 fix(usage): handle missing token plan reset times 2026-08-06 09:12:41 +08:00
sonicg 80bdcb83f6 feat(usage): add token plan usage view 2026-08-05 23:28:39 +08:00
zeyu.fz d9e8601a50 feat(knowledge): 支持上传目录路径并递归扫描文件
- 支持上传参数中传入目录路径,递归扫描子目录下文件
- 自动忽略 node_modules、.git 等常见工具目录
- 不支持的文件格式不会报错,跳过并列表提示
- 上传时校验扩展名和大小限制,支持批量文件上传
- 输出中增加跳过的文件列表,verbose 模式下显示详细文件名
- 测试覆盖目录上传、文件跳过和空目录等场景
- 更新相关文档,说明新支持的目录上传功能及注意事项
2026-08-05 22:29:39 +08:00
zeyu.fz e3bb5a7fa0 test(commands): 添加知识库统计接口的E2E测试
- 在topic-routes中新增knowledge stats路由映射
- 在j2-content-ops测试中添加知识库统计命令调用
- 验证接口返回的存储限制和请求速率监控数据结构有效
- 记录存储限制和请求窗口数量作为测试备注
- 引入parseStdoutJson辅助函数解析JSON输出
2026-08-05 20:13:42 +08:00
zeyu.fz ef463e8d5d test(e2e): 优化检索结果标记召回判断并完善服务调优用例
- 新增节点召回标记判断函数 nodesRecallMarker,避免误判 marker 出现位置
- 将所有相关轮询断言替换为基于 nodesRecallMarker 的更严格判断
- 调整删除测试中对误伤判断的断言逻辑,确保准确检测召回标记
- 扩展服务调优用例,增加描述和温度参数调优测试,验证配置持久化
- 添加通过配置文件更新 kb_search_configs 并校验嵌套配置修改生效
- 部署后验证发布版本配置正确包含所有调优项
- 更新流程注释与断言提示,提升测试用例可读性和覆盖度
2026-08-05 19:56:52 +08:00
Gong Shiqi 6338df36be Merge pull request #138 from modelstudioai/feat/update-defmodel
Update default image model to qwen-image-3.0
2026-08-05 19:43:48 +08:00
若麒 cb6740965f chore(release): prepare 1.14.1 2026-08-05 19:35:05 +08:00
zeyu.fz 8ee2c378f5 test(knowledge): 添加多模态与表格型仓库 E2E 测试套件支持
- 新增多模态问答及检索服务的 live E2E 测试用例,支持基于图像参数的功能验证
- 补充表格库的 chunk add/list/delete 闭环测试,验证了 field channel 的必填项和读写一致性
- 增加图片库 chunk list 的 metadata 验证,确保 image_url 数组和可见性标志存在
- 实现带覆盖重导功能的 doc import-oss 测试,确认覆盖后 fileId 变更及旧文件失效
- 编写自有 OSS Bucket 的幂等复用集合创建和获取测试,确保服务端的 tag-based 访问控制支持
- 在 gating 中添加对各类长驻知识库及服务环境变量的就绪检测函数
2026-08-05 18:14:23 +08:00
zeyu.fz 9fc6434a26 Merge remote-tracking branch 'origin/main' into feat/iteration1-w1-foundation 2026-08-05 17:46:12 +08:00
若麒 01ec13aad8 feat: add CLI source config tags 2026-08-05 17:37:14 +08:00
clh02467605 b68ff45fb9 Merge remote-tracking branch 'refs/remotes/origin/main' into feat/update-defmodel 2026-08-05 17:08:44 +08:00
clh02467605 4990b27436 feat: update image default model 2026-08-05 16:58:29 +08:00
故璃 8488b251f7 Merge branch 'main' into feat/deploy-update 2026-08-05 16:11:38 +08:00