sino-bc-cli 1.0.0-beta.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.
Files changed (123) hide show
  1. package/README.md +256 -0
  2. package/dist/affordance/auth.md +31 -0
  3. package/dist/affordance/bill.md +48 -0
  4. package/dist/affordance/biz-line-ai-strategy.md +35 -0
  5. package/dist/affordance/biz-line-metrics.md +47 -0
  6. package/dist/affordance/biz-line.md +84 -0
  7. package/dist/affordance/common-file.md +25 -0
  8. package/dist/affordance/dashboard.md +75 -0
  9. package/dist/affordance/dict.md +28 -0
  10. package/dist/affordance/document.md +67 -0
  11. package/dist/affordance/im.md +91 -0
  12. package/dist/affordance/invoice.md +49 -0
  13. package/dist/affordance/media.md +17 -0
  14. package/dist/affordance/organization.md +47 -0
  15. package/dist/affordance/project-analysis.md +95 -0
  16. package/dist/affordance/project.md +321 -0
  17. package/dist/affordance/quota.md +19 -0
  18. package/dist/affordance/reconciliation.md +41 -0
  19. package/dist/affordance/report.md +75 -0
  20. package/dist/affordance/sso-team-group.md +30 -0
  21. package/dist/affordance/task.md +148 -0
  22. package/dist/affordance/tenant.md +17 -0
  23. package/dist/affordance/user.md +41 -0
  24. package/dist/affordance/wallet.md +100 -0
  25. package/dist/api-doc/README.md +67 -0
  26. package/dist/api-doc/custom/template.md +0 -0
  27. package/dist/api-doc/oapi/auth.md +61 -0
  28. package/dist/api-doc/oapi/bill.md +130 -0
  29. package/dist/api-doc/oapi/biz-line-ai-strategy.md +119 -0
  30. package/dist/api-doc/oapi/biz-line-metrics.md +419 -0
  31. package/dist/api-doc/oapi/biz-line.md +382 -0
  32. package/dist/api-doc/oapi/common-file.md +50 -0
  33. package/dist/api-doc/oapi/dashboard.md +218 -0
  34. package/dist/api-doc/oapi/dict.md +49 -0
  35. package/dist/api-doc/oapi/document.md +182 -0
  36. package/dist/api-doc/oapi/im.md +278 -0
  37. package/dist/api-doc/oapi/invoice.md +129 -0
  38. package/dist/api-doc/oapi/media.md +17 -0
  39. package/dist/api-doc/oapi/organization.md +94 -0
  40. package/dist/api-doc/oapi/project-analysis.md +364 -0
  41. package/dist/api-doc/oapi/project.md +1114 -0
  42. package/dist/api-doc/oapi/quota.md +21 -0
  43. package/dist/api-doc/oapi/reconciliation.md +98 -0
  44. package/dist/api-doc/oapi/report.md +254 -0
  45. package/dist/api-doc/oapi/sso-team-group.md +54 -0
  46. package/dist/api-doc/oapi/task.md +528 -0
  47. package/dist/api-doc/oapi/tenant.md +17 -0
  48. package/dist/api-doc/oapi/user.md +98 -0
  49. package/dist/api-doc/oapi/wallet.md +275 -0
  50. package/dist/generated/api-catalog.json +39681 -0
  51. package/dist/generated/api-directory-index.json +1509 -0
  52. package/dist/index.js +2 -0
  53. package/dist/skill-manifest.json +336 -0
  54. package/dist/skills/biz-line-strategy-generate/SKILL.md +122 -0
  55. package/dist/skills/biz-line-strategy-generate/references/ai-strategy-prompt.md +50 -0
  56. package/dist/skills/biz-line-strategy-generate/references/api-flow.md +155 -0
  57. package/dist/skills/biz-line-strategy-generate/references/four-strategies.md +58 -0
  58. package/dist/skills/biz-line-strategy-generate/references/metrics.md +119 -0
  59. package/dist/skills/biz-line-strategy-generate/references/output-excel.md +63 -0
  60. package/dist/skills/biz-line-strategy-generate/references/runtime.md +127 -0
  61. package/dist/skills/biz-line-strategy-generate/references/spec.md +500 -0
  62. package/dist/skills/biz-line-strategy-generate/scripts/ai_strategy.py +89 -0
  63. package/dist/skills/biz-line-strategy-generate/scripts/build_report.py +629 -0
  64. package/dist/skills/biz-line-strategy-generate/scripts/cleanup.py +87 -0
  65. package/dist/skills/biz-line-strategy-generate/scripts/cli_json.py +705 -0
  66. package/dist/skills/biz-line-strategy-generate/scripts/fetch_data.py +449 -0
  67. package/dist/skills/biz-line-strategy-generate/scripts/run_workflow.py +402 -0
  68. package/dist/skills/biz-line-strategy-generate/scripts/strategy_output.py +556 -0
  69. package/dist/skills/biz-line-strategy-generate/scripts/submit_tags.py +32 -0
  70. package/dist/skills/biz-line-strategy-generate/scripts/summarize.py +932 -0
  71. package/dist/skills/biz-line-strategy-generate/scripts/test_ai_strategy.py +235 -0
  72. package/dist/skills/biz-line-strategy-generate/scripts/test_cli_json.py +97 -0
  73. package/dist/skills/biz-line-strategy-generate/scripts/test_database_output.py +904 -0
  74. package/dist/skills/biz-line-strategy-generate/scripts/test_pipeline.py +253 -0
  75. package/dist/skills/biz-line-strategy-generate/scripts/test_strategy_rules.py +224 -0
  76. package/dist/skills/biz-line-strategy-generate/scripts/test_tag_submission.py +238 -0
  77. package/dist/skills/biz-line-strategy-generate/scripts/test_workflow.py +1233 -0
  78. package/dist/skills/sino-bc-cli/SKILL.md +62 -0
  79. package/dist/skills/sino-bc-cli/domains/sino-bc-auth/SKILL.md +36 -0
  80. package/dist/skills/sino-bc-cli/domains/sino-bc-bill/SKILL.md +48 -0
  81. package/dist/skills/sino-bc-cli/domains/sino-bc-biz-line/SKILL.md +58 -0
  82. package/dist/skills/sino-bc-cli/domains/sino-bc-biz-line/references/common-mistakes.md +7 -0
  83. package/dist/skills/sino-bc-cli/domains/sino-bc-biz-line/references/enums.md +13 -0
  84. package/dist/skills/sino-bc-cli/domains/sino-bc-biz-line-ai-strategy/SKILL.md +46 -0
  85. package/dist/skills/sino-bc-cli/domains/sino-bc-biz-line-metrics/SKILL.md +46 -0
  86. package/dist/skills/sino-bc-cli/domains/sino-bc-common-file/SKILL.md +44 -0
  87. package/dist/skills/sino-bc-cli/domains/sino-bc-dashboard/SKILL.md +50 -0
  88. package/dist/skills/sino-bc-cli/domains/sino-bc-dict/SKILL.md +48 -0
  89. package/dist/skills/sino-bc-cli/domains/sino-bc-document/SKILL.md +53 -0
  90. package/dist/skills/sino-bc-cli/domains/sino-bc-im/SKILL.md +62 -0
  91. package/dist/skills/sino-bc-cli/domains/sino-bc-invoice/SKILL.md +48 -0
  92. package/dist/skills/sino-bc-cli/domains/sino-bc-media/SKILL.md +40 -0
  93. package/dist/skills/sino-bc-cli/domains/sino-bc-organization/SKILL.md +46 -0
  94. package/dist/skills/sino-bc-cli/domains/sino-bc-project/SKILL.md +112 -0
  95. package/dist/skills/sino-bc-cli/domains/sino-bc-project-analysis/SKILL.md +61 -0
  96. package/dist/skills/sino-bc-cli/domains/sino-bc-project-analysis/references/analysis-workflow.md +21 -0
  97. package/dist/skills/sino-bc-cli/domains/sino-bc-project-analysis/references/filters-and-metrics.md +30 -0
  98. package/dist/skills/sino-bc-cli/domains/sino-bc-quota/SKILL.md +44 -0
  99. package/dist/skills/sino-bc-cli/domains/sino-bc-reconciliation/SKILL.md +47 -0
  100. package/dist/skills/sino-bc-cli/domains/sino-bc-report/SKILL.md +53 -0
  101. package/dist/skills/sino-bc-cli/domains/sino-bc-sso-team-group/SKILL.md +45 -0
  102. package/dist/skills/sino-bc-cli/domains/sino-bc-task/SKILL.md +73 -0
  103. package/dist/skills/sino-bc-cli/domains/sino-bc-task/references/state-machine.md +18 -0
  104. package/dist/skills/sino-bc-cli/domains/sino-bc-tenant/SKILL.md +34 -0
  105. package/dist/skills/sino-bc-cli/domains/sino-bc-user/SKILL.md +57 -0
  106. package/dist/skills/sino-bc-cli/domains/sino-bc-wallet/SKILL.md +55 -0
  107. package/dist/skills/sino-bc-cli/references/domain-index/module-8534789.md +53 -0
  108. package/dist/skills/sino-bc-cli/references/domain-index/module-8551546.md +70 -0
  109. package/dist/skills/sino-bc-cli/references/domain-index/module-8562638.md +13 -0
  110. package/dist/skills/sino-bc-cli/references/domain-index/module-8566367.md +13 -0
  111. package/dist/skills/sino-bc-cli/references/domain-index/module-8581524.md +17 -0
  112. package/dist/skills/sino-bc-cli/references/domain-index/module-8601540.md +13 -0
  113. package/dist/skills/sino-bc-cli/references/domain-index/module-8614891.md +33 -0
  114. package/dist/skills/sino-bc-cli/references/domain-index/module-8621792.md +17 -0
  115. package/dist/skills/sino-bc-shared/SKILL.md +31 -0
  116. package/dist/skills/sino-bc-shared/references/auth-recovery.md +36 -0
  117. package/dist/skills/sino-bc-shared/references/config-and-env.md +60 -0
  118. package/dist/skills/sino-bc-shared/references/output-contract.md +86 -0
  119. package/dist/skills/sino-bc-shared/references/skill-lifecycle.md +17 -0
  120. package/dist/skills/sino-bc-shared/references/tenant-context.md +21 -0
  121. package/dist/skills/sino-bc-shared/references/write-approval.md +16 -0
  122. package/package.json +70 -0
  123. package/scripts/postinstall.cjs +36 -0
@@ -0,0 +1,17 @@
1
+ # 技能安装、升级与恢复
2
+
3
+ `/init` 只安装或刷新技能,不问网关、不写令牌。
4
+
5
+ 升级已安装的 CLI 用 `/update`(核对安装格式后拉取 latest,并自动 `/init`)。只刷新本机技能仍用 `/init`。默认通用根为 `~/.agents/skills`,本机存在 `~/.claude` 时另装 `~/.claude/skills`;其它路径用 `sino-bc-cli /skill target add|list|remove` 显式管理。
6
+
7
+ 每个目标下 API 域位于 `sino-bc-cli/domains/<name>/`,shared 和专家顶层独立。具体查询从导航索引按需读取域,策略生成等任务直接选专家;根导航只提供概览。安装会整目录替换 `sino-bc-cli`、`sino-bc-shared`,专家按有效旧名单与当前名单的并集清理并重新安装。旧名单不存在、损坏、不可读或无法识别时降级当前包专家名单;无法识别的退役专家保留。同名目录中的本地修改会被替换,缺失目录重新安装;不按前缀删除其它技能。新包先校验暂存,旧目录备份后替换;成功保存新专家名单,失败恢复原内容并保留未完成的恢复信息。任一目标失败即未完成,查看 `target list` 的完整性或恢复状态并重试原操作。`/init` 可继续已有 add 事务的目标登记,不新增凭证或业务配置;remove/uninstall 的失败必须重试对应命令。
8
+
9
+ 新通用目标成功后,清理未登记的历史位置 `~/.codex/skills`、`~/.cursor/skills`:固定目录整清理,专家沿用上述名单并集及降级规则;仅剩 shared 或专家也会处理。已登记或实际路径属于生效目标的目录只刷新,不作为旧位置清理;范围外技能、凭证和配置保留。清理失败或中断后重试 `/init`,按原事务快照继续,不扩大范围;实际删除失败仍报告未完成。
10
+
11
+ ## 移除与卸载
12
+
13
+ `/skill target remove <目录>` 清理已登记目标并移除登记,失败时保留恢复信息,重试该命令;不要用 `/init` 代替删除恢复。
14
+
15
+ `/uninstall` 清理身份、受管技能和配置,默认随后卸载全局 npm 包。`--keep-cli` 只保留 CLI,不保留配置。非交互环境缺少 `--yes` 时返回 `confirmation_required`(退出码 10);TTY 会展示清理范围并询问。执行前明确用户已授权该清理范围,不能套用“普通 write 无需确认”。卸载失败按提示重试原命令,技能清理失败时不会继续删除配置或 npm 包。
16
+
17
+ `/skill target list` 检查安装完整性及恢复状态;操作忙或冲突时处理提示后重试原操作,不手动扩大删除范围。首次跨安装格式的升级步骤以当前 CLI 提示和 README 为准,不能自动降级旧包。
@@ -0,0 +1,21 @@
1
+ # 主体上下文
2
+
3
+ 首次处理接口 `_meta.tenant=true`、需要建立或重新绑定时,先执行 `sino-bc-cli /auth status --json`,从成功信封的 `data.authContextId` 取得认证上下文,再执行 `sino-bc-cli /tenant list` 查询当前身份的完整可用主体列表。`data.localStatus` 仅为本地判断;`refresh_needed` 时由后续真实调用自动尝试刷新,不预先登录,其它状态按[环境与配置](config-and-env.md)处理。按任务明确的主体在候选中匹配:唯一匹配时自动绑定,有歧义或目标不可用时向用户澄清。每次 `/tenant list` 都现查,不缓存全局选择。
4
+
5
+ 在当前任务或对话中成对保存主体 ID 与认证上下文,每次调用显式传入 `--corporation-id <主体ID> --auth-context-id <认证上下文ID>`;跨主体任务按调用分别绑定。两个 flag 不放进 `--data`,不写全局主体配置,也不能从 `identity-cache.json` 的 passport map 回填。接口 schema 声明的业务字段仍放 `--data`,例如 `user +tenant-info` 的 `corporationId`、项目分析的 `corporationIdList`,不能用上下文 flag 代替。
6
+
7
+ 当前任务已按上述步骤建立的完整绑定,在目标主体与认证上下文未变时可复用;不要求每次调用重新运行 `/auth status` 或 `/tenant list`。目标主体变化时重新查询并唯一匹配,不能沿用其他主体的绑定。
8
+
9
+ 重新登录或 `authContextId` 变化后,清除整对旧绑定,重新执行 `/auth status --json` 和 `/tenant list`,按任务目标唯一匹配后重新绑定;不能保留旧主体 ID、只换认证标记。正常同身份令牌续期、仅更新 RT 或修改网关地址不会使已有绑定失效。
10
+
11
+ | 失败原因 | 处理方式 |
12
+ | --- | --- |
13
+ | `context_required` | 可补齐已有完整有效绑定;没有有效绑定时按上面的步骤确定主体 |
14
+ | `auth_context_changed` | 清除整对旧绑定,重新查询并匹配当前身份的主体 |
15
+ | `auth_required` | 先按[鉴权恢复](auth-recovery.md)完成授权,再建立主体绑定 |
16
+ | `no_available_corporation` | 停止并告知用户联系管理员;不要补 flag 重试,也不要再走 `/tenant list` 绑定 |
17
+ | `corporation_required`(17000048) | 服务端报告缺主体:查看当前身份与可用主体,成对补齐参数,只继续当前失败操作;已带齐仍失败时核对 `/schema` 与 CLI 版本,停止反复选主体并交由维护者核验接口 tenant 标识;如需升级 CLI,按已有升级授权及[技能生命周期](skill-lifecycle.md)处理,不据此自行同步或修改契约 |
18
+
19
+ 前四项来自 `error.params[].reason`;`corporation_required` 是 `error.type=api` 的服务端错误。CLI 不自动选择主体、补认证标记或改变 catalog 的 tenant 标识。`--yes` 不能绕过主体校验或空列表阻断。
20
+
21
+ `corporation_forbidden` 是权限拒绝,不是缺少参数;按[鉴权恢复](auth-recovery.md)核对当前任务的主体与权限,不切换到其他主体绕过。
@@ -0,0 +1,16 @@
1
+ # 高风险写确认
2
+
3
+ 确认门只适用于 catalog `risk=high-risk-write` 的业务 Shortcut 与 `api <name>`,接口标记为 ⚠️。普通 `write` 在必要参数与校验通过后直接执行,不需要 `--yes`。`/uninstall` 等生命周期命令沿用各自确认规则,不按业务风险分类推断。
4
+
5
+ 发业务请求前须通过身份、主体、path、method 和输入形状等校验;校验失败不是待确认。真实调用缺少主体绑定时可能先探查主体列表,仍不得发送该业务请求。`--yes` 表示已获用户确认,不能绕过这些校验。
6
+
7
+ | 调用方式 | 行为 |
8
+ | --- | --- |
9
+ | `--dry-run` | 可选的本地请求组装检查,不发 HTTP、不刷新令牌、不探查主体列表;不能证明真实写入成功 |
10
+ | 高风险写未传 `--yes`,TTY | 展示动作与关键参数,交互确认 |
11
+ | 高风险写未传 `--yes`,非 TTY | 返回 `confirmation_required`,退出码 10,尚未执行该业务写入 |
12
+ | 高风险写已传 `--yes` | 必要校验通过后执行已确认的动作 |
13
+
14
+ Agent 必须确认用户已明确授权本次动作、目标主体及关键参数;已有授权且范围未变时可沿用,不机械重复询问。缺少授权或操作范围变化时,说明动作与关键参数并取得明确同意,再在命令末尾追加 `--yes`;不得为消除报错而静默追加。不要把文档示例 ID 当作真实数据提交。
15
+
16
+ 主体校验失败时按[主体上下文](tenant-context.md)处理;`/uninstall` 等命令转[技能生命周期](skill-lifecycle.md),不能因同为退出码 10 就按业务风险分类处理。
package/package.json ADDED
@@ -0,0 +1,70 @@
1
+ {
2
+ "name": "sino-bc-cli",
3
+ "version": "1.0.0-beta.0",
4
+ "description": "BeyondClick CLI - 命令行工具集合,提供快捷访问 BeyondClick 平台的命令行接口",
5
+ "preferGlobal": true,
6
+ "bin": {
7
+ "sino-bc-cli": "dist/index.js"
8
+ },
9
+ "main": "dist/index.js",
10
+ "files": [
11
+ "dist/",
12
+ "README.md",
13
+ "LICENSE",
14
+ "scripts/postinstall.cjs"
15
+ ],
16
+ "publishConfig": {
17
+ "access": "public",
18
+ "registry": "https://registry.npmjs.org/"
19
+ },
20
+ "scripts": {
21
+ "build": "node --experimental-strip-types scripts/build.ts",
22
+ "build:no-mangle": "node --experimental-strip-types scripts/build.ts --no-mangle",
23
+ "typecheck": "tsc --noEmit",
24
+ "test": "node --require ts-node/register --test \"tests/**/*.test.ts\"",
25
+ "sync-api-doc": "node --require ts-node/register src/catalog/sync/run-sync.ts",
26
+ "dev": "ts-node src/index.ts",
27
+ "start": "node dist/index.js",
28
+ "clean": "rimraf dist",
29
+ "rebuild": "npm run clean && npm run build",
30
+ "postinstall": "node scripts/postinstall.cjs",
31
+ "prepublishOnly": "npm run sync-api-doc && npm run rebuild",
32
+ "prepack": "npm run build",
33
+ "publish:local": "node --experimental-strip-types scripts/publish.ts",
34
+ "publish:local:dry": "node --experimental-strip-types scripts/publish.ts --dry-run",
35
+ "publish:beta": "node --experimental-strip-types scripts/publish.ts --tag beta",
36
+ "publish:beta:dry": "node --experimental-strip-types scripts/publish.ts --tag beta --dry-run",
37
+ "sync-skill-index": "node --require ts-node/register scripts/sync-skill-index.ts"
38
+ },
39
+ "engines": {
40
+ "node": ">=24.0.0"
41
+ },
42
+ "keywords": [
43
+ "beyondclick",
44
+ "cli",
45
+ "command-line",
46
+ "sino-bc-cli"
47
+ ],
48
+ "author": "BeyondClick",
49
+ "license": "MIT",
50
+ "dependencies": {
51
+ "@napi-rs/keyring": "^2.0.0",
52
+ "axios": "^1.7.0",
53
+ "chalk": "^4.1.2",
54
+ "commonmark": "0.31.2",
55
+ "dayjs": "^1.11.11",
56
+ "fs-native-extensions": "^1.5.1",
57
+ "lodash": "^4.17.21",
58
+ "open": "^8.4.2"
59
+ },
60
+ "devDependencies": {
61
+ "@types/lodash": "^4.17.5",
62
+ "@types/node": "^22.0.0",
63
+ "esbuild": "^0.28.2",
64
+ "javascript-obfuscator": "^5.6.0",
65
+ "rimraf": "^5.0.7",
66
+ "ts-node": "^10.9.2",
67
+ "typescript": "^5.5.0"
68
+ },
69
+ "sinoBcSkillFormat": 3
70
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * npm 安装后自动注册 Agent 技能
3
+ * 使用 .cjs:scripts/package.json 为 "type": "module",.js 无法使用 require
4
+ * dist 不存在时(本地尚未 build)静默跳过,避免打断 npm install
5
+ * 注册失败也不让安装失败,用户可随后执行 sino-bc-cli /init
6
+ */
7
+ 'use strict';
8
+
9
+ const { existsSync } = require('fs');
10
+ const { join } = require('path');
11
+ const { spawnSync } = require('child_process');
12
+
13
+ const cliEntry = join(__dirname, '..', 'dist', 'index.js');
14
+
15
+ if (!existsSync(cliEntry)) {
16
+ process.exit(0);
17
+ }
18
+
19
+ const result = spawnSync(process.execPath, [cliEntry, '/init', '--quiet'], {
20
+ encoding: 'utf8',
21
+ stdio: ['ignore', 'pipe', 'pipe'],
22
+ // update 的内部 init 租约随当前环境传递,脚本不生成或扩大授权。
23
+ env: { ...process.env },
24
+ windowsHide: true,
25
+ });
26
+
27
+ if (result.error || result.status !== 0) {
28
+ let detail = result.error?.message ?? String(result.stderr ?? '').trim();
29
+ try {
30
+ const failure = JSON.parse(detail);
31
+ detail = [failure.error?.message, JSON.stringify(failure.error?.details)].filter(Boolean).join(' ');
32
+ } catch { /* 启动失败可能不是 JSON,保留其错误信息供排障。 */ }
33
+ console.warn(`[sino-bc-cli] 技能自动注册未完成,请手动执行: sino-bc-cli /init;${detail || `退出码 ${result.status}`}`);
34
+ }
35
+
36
+ process.exit(0);