@lovrabet/rabetbase-cli 2.5.1-beta.4 → 2.5.1-beta.5
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/README.md +75 -1
- package/lib/api/api-doc.js +1 -1
- package/lib/api/fetch-model-list.js +1 -1
- package/lib/api/generate-api-file.js +1 -1
- package/lib/api/generate-sdk-config-file.d.ts +0 -1
- package/lib/api/generate-sdk-config-file.js +1 -1
- package/lib/auth/auth-server-ui.js +1 -1
- package/lib/auth/auth-server.js +1 -1
- package/lib/auth/constant.js +1 -1
- package/lib/auth/get-cookie.js +1 -1
- package/lib/auth/get-session-user.js +1 -1
- package/lib/auth/is-session-valid.js +1 -1
- package/lib/auth/login-success-html.js +1 -1
- package/lib/auth/logout.js +1 -1
- package/lib/cli-flags.js +1 -1
- package/lib/cli.js +1 -1
- package/lib/commands/api/generate.js +1 -1
- package/lib/commands/api/index.js +1 -1
- package/lib/commands/api/list.js +1 -1
- package/lib/commands/api/pull.js +1 -1
- package/lib/commands/api/shared.js +1 -1
- package/lib/commands/app/index.js +1 -1
- package/lib/commands/app/list.js +1 -1
- package/lib/commands/app/members-list.js +1 -1
- package/lib/commands/app/remote-directory.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/delete.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/app-config/list.js +1 -1
- package/lib/commands/app-config/set.js +1 -1
- package/lib/commands/app-config/shared.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/bff/create.js +1 -1
- package/lib/commands/bff/delete.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/bff/list.js +1 -1
- package/lib/commands/bff/pull.js +1 -1
- package/lib/commands/bff/push.js +1 -1
- package/lib/commands/bff/status.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/cli-update.js +1 -1
- package/lib/commands/codegen/index.js +1 -1
- package/lib/commands/codegen/sdk.js +1 -1
- package/lib/commands/codegen/sql.js +1 -1
- package/lib/commands/common/app-registry.js +1 -1
- package/lib/commands/common/app-selector.js +1 -1
- package/lib/commands/common/async-task.js +1 -1
- package/lib/commands/common/dry-run.js +1 -1
- package/lib/commands/common/flags.d.ts +2 -0
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/common/validate.js +1 -1
- package/lib/commands/config/delete.js +1 -1
- package/lib/commands/config/get.js +1 -1
- package/lib/commands/config/index.js +1 -1
- package/lib/commands/config/init.d.ts +2 -0
- package/lib/commands/config/init.js +1 -1
- package/lib/commands/config/list.js +1 -1
- package/lib/commands/config/set.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/dataset/business-group-update.js +1 -1
- package/lib/commands/dataset/business-groups.js +1 -1
- package/lib/commands/dataset/capability.js +1 -1
- package/lib/commands/dataset/delete.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/extend-update.js +1 -1
- package/lib/commands/dataset/field-restore.js +1 -1
- package/lib/commands/dataset/field-update.js +1 -1
- package/lib/commands/dataset/generate.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/operations.js +1 -1
- package/lib/commands/dataset/relation-audit.js +1 -1
- package/lib/commands/dataset/relation-create.js +1 -1
- package/lib/commands/dataset/relation-delete.js +1 -1
- package/lib/commands/dataset/relation-shared.js +1 -1
- package/lib/commands/dataset/relation-update.js +1 -1
- package/lib/commands/dataset/relations.js +1 -1
- package/lib/commands/dataset/rename.js +1 -1
- package/lib/commands/dataset/restore.js +1 -1
- package/lib/commands/dataset/user-deleted-field-list.js +1 -1
- package/lib/commands/db/analysis-batching.js +1 -1
- package/lib/commands/db/analyze-batch-plan.js +1 -1
- package/lib/commands/db/analyze-cancel.js +1 -1
- package/lib/commands/db/analyze-start.js +1 -1
- package/lib/commands/db/analyze-status.js +1 -1
- package/lib/commands/db/create.js +1 -1
- package/lib/commands/db/delete.js +1 -1
- package/lib/commands/db/detail.js +1 -1
- package/lib/commands/db/diff-refresh-start.js +1 -1
- package/lib/commands/db/diff-refresh-status.js +1 -1
- package/lib/commands/db/diff.js +1 -1
- package/lib/commands/db/index.js +1 -1
- package/lib/commands/db/list.js +1 -1
- package/lib/commands/db/shared.js +1 -1
- package/lib/commands/db/table-diff-shared.js +1 -1
- package/lib/commands/db/tables.js +1 -1
- package/lib/commands/db/test.js +1 -1
- package/lib/commands/db/update.js +1 -1
- package/lib/commands/deployment/auto-sync.js +1 -1
- package/lib/commands/deployment/index.js +1 -1
- package/lib/commands/deployment/sync.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/issue/index.js +1 -1
- package/lib/commands/issue/nudge.js +1 -1
- package/lib/commands/issue/report.js +1 -1
- package/lib/commands/issue/shared.js +1 -1
- package/lib/commands/kb/create.js +1 -1
- package/lib/commands/kb/delete.js +1 -1
- package/lib/commands/kb/detail.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/kb/list.js +1 -1
- package/lib/commands/kb/search.js +1 -1
- package/lib/commands/kb/shared.js +1 -1
- package/lib/commands/kb/update.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/menu/asset-update.js +1 -1
- package/lib/commands/menu/delete.js +1 -1
- package/lib/commands/menu/external-link-create.js +1 -1
- package/lib/commands/menu/external-link-update.js +1 -1
- package/lib/commands/menu/group-create.js +1 -1
- package/lib/commands/menu/group-update.js +1 -1
- package/lib/commands/menu/index.js +1 -1
- package/lib/commands/menu/list.js +1 -1
- package/lib/commands/menu/move.js +1 -1
- package/lib/commands/menu/regroup-start.js +1 -1
- package/lib/commands/menu/rename.js +1 -1
- package/lib/commands/menu/shared/compare-table.js +1 -1
- package/lib/commands/menu/shared/delete-plan.js +1 -1
- package/lib/commands/menu/shared/facts.js +1 -1
- package/lib/commands/menu/shared/index.js +1 -1
- package/lib/commands/menu/shared/inquirer.js +1 -1
- package/lib/commands/menu/shared/local-pages.js +1 -1
- package/lib/commands/menu/shared/logic.js +1 -1
- package/lib/commands/menu/shared/mutations.js +1 -1
- package/lib/commands/menu/shared/service.js +1 -1
- package/lib/commands/menu/shared/sync-core.js +1 -1
- package/lib/commands/menu/shared/update-core.js +1 -1
- package/lib/commands/menu/shared/valid-url.js +1 -1
- package/lib/commands/menu/sync.js +1 -1
- package/lib/commands/menu/visibility-update.js +1 -1
- package/lib/commands/notification/config-create.js +1 -1
- package/lib/commands/notification/config-delete.js +1 -1
- package/lib/commands/notification/config-list.js +1 -1
- package/lib/commands/notification/config-update.js +1 -1
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/notification/shared.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/page/create.js +1 -1
- package/lib/commands/page/custom/detail.js +1 -1
- package/lib/commands/page/custom/list.js +1 -1
- package/lib/commands/page/custom/publish.js +1 -1
- package/lib/commands/page/custom/shared.js +1 -1
- package/lib/commands/page/custom/syntax.js +1 -1
- package/lib/commands/page/custom/template.js +1 -1
- package/lib/commands/page/custom/update.js +1 -1
- package/lib/commands/page/data-list-status.js +1 -1
- package/lib/commands/page/generate-start.js +1 -1
- package/lib/commands/page/generate-status.js +1 -1
- package/lib/commands/page/index.js +1 -1
- package/lib/commands/page/pull.js +1 -1
- package/lib/commands/page/push.js +1 -1
- package/lib/commands/page/relation-audit.js +1 -1
- package/lib/commands/page/restore.js +1 -1
- package/lib/commands/page/shared.js +1 -1
- package/lib/commands/page/sync.js +1 -1
- package/lib/commands/project/create/enhanced-guided-create.js +1 -1
- package/lib/commands/project/create/format-elapsed.js +1 -1
- package/lib/commands/project/create/main.d.ts +1 -0
- package/lib/commands/project/create/main.js +1 -1
- package/lib/commands/project/create/materialize-project-template.js +1 -1
- package/lib/commands/project/create/project-name.js +1 -1
- package/lib/commands/project/create/project-template-archive.js +1 -1
- package/lib/commands/project/create/project-template-path.js +1 -1
- package/lib/commands/project/create/use-copy-project-template.js +1 -1
- package/lib/commands/project/create/use-format-code.js +1 -1
- package/lib/commands/project/create/use-install-dependencies.js +1 -1
- package/lib/commands/project/domain-routing-sync.d.ts +2 -0
- package/lib/commands/project/domain-routing-sync.js +1 -0
- package/lib/commands/project/index.js +1 -1
- package/lib/commands/project/upgrade.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/delete.js +1 -1
- package/lib/commands/role/detail.js +1 -1
- package/lib/commands/role/index.js +1 -1
- package/lib/commands/role/list.js +1 -1
- package/lib/commands/role/shared.js +1 -1
- package/lib/commands/role/update.js +1 -1
- package/lib/commands/role/user-add.js +1 -1
- package/lib/commands/role/user-remove.js +1 -1
- package/lib/commands/role/user-resolve.js +1 -1
- package/lib/commands/rule/get.d.ts +2 -0
- package/lib/commands/rule/get.js +1 -0
- package/lib/commands/rule/index.d.ts +2 -0
- package/lib/commands/rule/index.js +1 -0
- package/lib/commands/rule/list.d.ts +2 -0
- package/lib/commands/rule/list.js +1 -0
- package/lib/commands/rule/set.d.ts +2 -0
- package/lib/commands/rule/set.js +1 -0
- package/lib/commands/rule/shared.d.ts +43 -0
- package/lib/commands/rule/shared.js +1 -0
- package/lib/commands/run/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/sql/create.js +1 -1
- package/lib/commands/sql/delete.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/sql/list.js +1 -1
- package/lib/commands/sql/pull.js +1 -1
- package/lib/commands/sql/push.js +1 -1
- package/lib/commands/sql/shared.js +1 -1
- package/lib/commands/sql/status.js +1 -1
- package/lib/commands/sql/validate.js +1 -1
- package/lib/commands/task/index.js +1 -1
- package/lib/commands/task/status.js +1 -1
- package/lib/commands/tenant/index.js +1 -1
- package/lib/commands/tenant/members-list.js +1 -1
- package/lib/commands/tenant/shared.js +1 -1
- package/lib/commands/user-account/dingding-sandbox-bind.js +1 -1
- package/lib/commands/user-account/index.js +1 -1
- package/lib/commands/workspace/add.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/commands/workspace/remove.js +1 -1
- package/lib/config/deployment-sync.js +1 -1
- package/lib/config/domain-config.d.ts +37 -1
- package/lib/config/domain-config.js +1 -1
- package/lib/config/project-domain-routing.d.ts +27 -0
- package/lib/config/project-domain-routing.js +1 -0
- package/lib/config/schema.d.ts +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/cdn.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/domain.d.ts +10 -4
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/paths.js +1 -1
- package/lib/constant/region.d.ts +4 -1
- package/lib/constant/region.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/routing-profile.d.ts +43 -49
- package/lib/constant/routing-profile.js +1 -1
- package/lib/context/app-resolver.js +1 -1
- package/lib/context/auth-resolver.js +1 -1
- package/lib/context/config-loader.js +1 -1
- package/lib/context.d.ts +2 -0
- package/lib/context.js +1 -1
- package/lib/core/alias-resolver.js +1 -1
- package/lib/core/api-client.d.ts +37 -0
- package/lib/core/api-client.js +1 -1
- package/lib/core/bff/config.js +1 -1
- package/lib/core/bff/file-system.js +1 -1
- package/lib/core/bff/hash.js +1 -1
- package/lib/core/bff/lock.js +1 -1
- package/lib/core/bff/utils.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/page/file-system.js +1 -1
- package/lib/core/page/hash.js +1 -1
- package/lib/core/page/lock.js +1 -1
- package/lib/core/sql-index-auditor.js +1 -1
- package/lib/core/sql-sync/config.js +1 -1
- package/lib/core/sql-sync/file-system.js +1 -1
- package/lib/core/sql-sync/hash.js +1 -1
- package/lib/core/sql-sync/lock.js +1 -1
- package/lib/core/sql-sync/utils.js +1 -1
- package/lib/core/sql-validator.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/error-output.js +1 -1
- package/lib/framework/explicit-yes.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-alias.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/types.d.ts +0 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/generated/official-routing.d.ts +83 -0
- package/lib/generated/official-routing.js +1 -0
- package/lib/generated/routing-contract.d.ts +9 -0
- package/lib/generated/routing-contract.js +1 -0
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/main.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/telemetry/cli-command-trace.js +1 -1
- package/lib/telemetry/cli-help-trace.js +1 -1
- package/lib/telemetry/ensure-cli-otel-config.js +1 -1
- package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
- package/lib/telemetry/send-cli-trace-log.js +1 -1
- package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
- package/lib/types/index.d.ts +0 -1
- package/lib/utils/ai_config.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cdn-config.js +1 -1
- package/lib/utils/check-sdk-version.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.js +1 -1
- package/lib/utils/config.js +1 -1
- package/lib/utils/entity-with-id.js +1 -1
- package/lib/utils/file-utils.js +1 -1
- package/lib/utils/guides-cdn.js +1 -1
- package/lib/utils/http-client.js +1 -1
- package/lib/utils/is-non-interactive.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/sleep.js +1 -1
- package/lib/utils/template-replacer.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/with-active-cookie.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +2 -1
- package/skills/rabetbase/SKILL.md +16 -13
- package/skills/rabetbase/guides/sdk-client-generation.md +10 -8
- package/skills/rabetbase/references/rabetbase-api-pull.md +16 -11
- package/skills/rabetbase/references/rabetbase-config.md +4 -4
- package/skills/rabetbase/references/rabetbase-doctor.md +2 -1
- package/skills/rabetbase/references/rabetbase-init.md +32 -8
- package/skills/rabetbase/references/rabetbase-kb.md +7 -8
- package/skills/rabetbase/references/rabetbase-project-create.md +33 -8
- package/skills/rabetbase/references/rabetbase-project-domain-routing-sync.md +28 -0
- package/skills/rabetbase/references/rabetbase-rule.md +49 -0
- package/skills/rabetbase.manifest.json +5 -3
- package/lib/config/project-routing.d.ts +0 -30
- package/lib/config/project-routing.js +0 -1
- package/lib/core/kb-search-client.d.ts +0 -30
- package/lib/core/kb-search-client.js +0 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
管理开发者侧当前解析应用下的 `company` 知识库,并检索当前应用可访问的公司与公共知识。所有命令都通过标准工作区、`--app <name>` 或 `--appcode <code>` 解析目标应用。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
企业知识库请求使用独立的 `kbDomain`。当前官方节点的 KB 仍由平台 API 服务承载,因此未显式配置 `kbDomain` 时跟随 `apiDomain`;KB 服务拆分或企业独立部署时可单独覆盖 `kbDomain`。`runtimeDomain` 不参与 rabetbase 企业 KB 路由。当前 rabetbase-cli 没有调用 SkillHub 业务 API,未来新增时必须使用独立的 `skillDomain`。
|
|
6
6
|
|
|
7
7
|
> 边界:`lovrabet kb` 使用运行态 AK/当前应用/当前用户,面向个人知识库和可见知识搜索;`rabetbase kb` 使用开发者登录态,面向公司知识库管理以及公司/公共知识检索。不要用其中一个替代另一个。
|
|
8
8
|
|
|
@@ -37,12 +37,11 @@ rabetbase kb delete --id 60 --yes
|
|
|
37
37
|
|
|
38
38
|
## search
|
|
39
39
|
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
- 无命中是 `total:0/hits:[]` 的成功。HTTP、`no-store`、JSON、字段、rank、score、timing、TopK 或 scope 漂移均以脱敏结构化错误失败;错误不包含查询、正文或后端 body。
|
|
40
|
+
- 调用 `POST /smartapi/knowledge/company-public/search`,请求仅包含 `query`、解析后的 `appCode` 和可选 `topK`。
|
|
41
|
+
- 不传 `userId`,不查询个人知识库;命中 `scope` 只可能为 `COMPANY` 或 `PUBLIC`。
|
|
42
|
+
- `--query` 必填且不能是纯空白;`--topk` 可选,必须是正整数。不传时沿用服务端缺省规则。
|
|
43
|
+
- 输出 `total` 与 `hits`,命中字段为 `scope/title/docId/score/weightedScore/content/jsonPath/jsonData`;无命中时返回空数组。
|
|
44
|
+
- 同时判断 HTTP 状态和平台业务结果;未登录、无权限、参数错误、检索异常或响应字段漂移都会以结构化错误失败。
|
|
46
45
|
|
|
47
46
|
## create
|
|
48
47
|
|
|
@@ -74,4 +73,4 @@ rabetbase kb delete --id 60 --yes
|
|
|
74
73
|
|
|
75
74
|
- 使用 `--env daily` 或 `--env production` 选择 Profile 环境,不通过 URL 参数切换。
|
|
76
75
|
- Production 写操作必须单独取得授权;需求、dry-run 或命令可用不等于写入授权。
|
|
77
|
-
- 输出和错误不得包含 Cookie、Token
|
|
76
|
+
- 输出和错误不得包含 Cookie、Token、AccessKey 或知识正文。
|
|
@@ -16,8 +16,11 @@ rabetbase project create my-project
|
|
|
16
16
|
# 通过 flag 指定
|
|
17
17
|
rabetbase project create --name my-project
|
|
18
18
|
|
|
19
|
-
#
|
|
20
|
-
rabetbase project create
|
|
19
|
+
# 在当前空目录创建指定 AppCode 的工程
|
|
20
|
+
rabetbase project create --current-dir --appcode <code>
|
|
21
|
+
|
|
22
|
+
# 非交互模式
|
|
23
|
+
rabetbase project create my-project --appcode <code>
|
|
21
24
|
```
|
|
22
25
|
|
|
23
26
|
## 参数
|
|
@@ -26,32 +29,54 @@ rabetbase project create my-project --appcode <code> --env production
|
|
|
26
29
|
|------|------|------|------|------|
|
|
27
30
|
| `<project-name>` | positional | 否 | — | 项目名称(也可用 `--name`) |
|
|
28
31
|
| `--name <name>` | string | 否 | — | 项目名称(优先于位置参数) |
|
|
29
|
-
| `--
|
|
32
|
+
| `--current-dir` | boolean | 否 | `false` | 初始化当前空目录;项目名取目录名,不创建子目录 |
|
|
30
33
|
| `--appcode <code>` | string | 否 | — | 绑定的应用 code(跳过交互选择) |
|
|
31
34
|
|
|
32
35
|
## 两种模式
|
|
33
36
|
|
|
34
37
|
1. **交互模式** — 通过提示选择项目配置
|
|
35
|
-
2. **非交互模式**(`--non-interactive` 或非 TTY)—
|
|
38
|
+
2. **非交互模式**(`--non-interactive` 或非 TTY)— 必须提供项目名称,或使用 `--current-dir`;支持 `--appcode` 跳过应用选择
|
|
39
|
+
|
|
40
|
+
## 当前目录创建工程
|
|
41
|
+
|
|
42
|
+
当用户表达“在当前文件夹创建 `app-xxxxxx` 应用工程”等意图时,将其视为授权在当前空目录创建并验证本地工程。使用 `rabetbase project create --current-dir --appcode <code>`。
|
|
43
|
+
|
|
44
|
+
**完成口径:**
|
|
45
|
+
|
|
46
|
+
- 工程绑定目标 AppCode,项目配置、公开路由和 SDK 客户端保持一致。
|
|
47
|
+
- 已获取 Dataset 事实,并确认本地模型配置与返回事实一致。
|
|
48
|
+
- 项目提供的类型检查和构建验证通过。
|
|
49
|
+
- 向用户报告创建结果、Dataset 数量、验证结果及仍需处理的问题。
|
|
50
|
+
|
|
51
|
+
**关键边界:**
|
|
52
|
+
|
|
53
|
+
- 当前目录非空时不得覆盖、移动或删除已有内容,应报告冲突。
|
|
54
|
+
- `needsAgentMerge` 只表示已有 TypeScript 被保留,是检查提示,不代表必须改写文件;仅在模型事实存在差异时合并。
|
|
55
|
+
- `--force --yes` 只用于首次脚手架拉取明确失败,或用户明确要求放弃本地定制的场景。
|
|
56
|
+
- 此意图只授权本地工程创建与平台事实读取,不授权修改线上业务数据或平台资源。
|
|
57
|
+
|
|
58
|
+
`api pull` 的单应用/项目应用清单输出结构见 [`rabetbase-api-pull.md`](rabetbase-api-pull.md),TypeScript 合并规则见 [`sdk-client-generation.md`](../guides/sdk-client-generation.md)。Agent 可根据实际输出选择检查、修复和验证方式。
|
|
36
59
|
|
|
37
60
|
## 提示
|
|
38
61
|
|
|
39
62
|
- `--name` 和位置参数二选一,`--name` 优先
|
|
40
|
-
-
|
|
63
|
+
- `--current-dir` 不可与 `--name` 或位置项目名同时使用
|
|
64
|
+
- `--current-dir` 只接受空目录;创建失败会保留该目录并清理本次暂存内容
|
|
65
|
+
- 非交互模式下缺少项目名且未使用 `--current-dir` 会报错
|
|
41
66
|
- 项目名只接受字母、数字、`-`、`_`,不能传绝对路径、`../`、子目录路径或 Windows 保留名称
|
|
42
67
|
- 交互与非交互模式使用同一创建流程,都会安装依赖、格式化代码并写入项目配置
|
|
43
68
|
- 项目模板从 CDN 下载并校验 SHA-256;CDN 不可用、模板不兼容或校验失败时命令停止,修复后重试
|
|
44
69
|
- 新项目中的 `.rabetbase.json` **只继承**全局中的少量偏好及 `region` / Domain 路由配置,**不会**把全局的 `apps` / `defaultApp` 复制进新项目
|
|
45
|
-
- `src/api/sdk-config.ts` 与 `rabetbase.routing.json` 只生成浏览器可公开的最终路由,不会写入 `cookie`、`accessKey`
|
|
70
|
+
- `src/api/sdk-config.ts` 与 `rabetbase.domain-routing.json` 只生成浏览器可公开的最终路由,不会写入 `cookie`、`accessKey` 等认证配置;Domain 配置变化后用 [`project domain-routing-sync`](rabetbase-project-domain-routing-sync.md) 刷新项目快照。`api.ts` / `client.ts` 仅在缺失时由 CLI 写脚手架,已有文件按 [`sdk-client-generation.md`](../guides/sdk-client-generation.md) 更新;若项目创建时首次拉取失败,按 CLI 提示执行 `rabetbase api pull --force --yes` 完成占位脚手架初始化
|
|
46
71
|
|
|
47
72
|
| 当前有效路由 | `src/api/sdk-config.ts` |
|
|
48
73
|
|--------------|-------------------------|
|
|
49
74
|
| 默认中国大陆节点 | `{}`,由 SDK 使用默认映射 |
|
|
50
|
-
| ID | `{
|
|
75
|
+
| ID | `{ runtimeDomain: "https://runtime.lovrabet.id" }` |
|
|
51
76
|
| Global | `{ runtimeDomain: "https://runtime.lovrabet.ai" }`,兼容 SDK 1.5.3 |
|
|
52
77
|
| 独立部署 | `{ runtimeDomain: "https://…" }` |
|
|
53
78
|
|
|
54
|
-
模板依赖 SDK 1.5.3+。CLI 从统一 Routing Profile 生成 `rabetbase.routing.json`,其中只包含最终 User/App/Runtime Domain
|
|
79
|
+
模板依赖 SDK 1.5.3+。CLI 从统一 Routing Profile 生成 `rabetbase.domain-routing.json`,其中只包含最终 User/App/Runtime Domain、`cdn.libraries`、`cdn.lovrabet`、本地地址和证书 URL,不复制节点注册表。每个官方节点直接配置两个 CDN 地址;中国大陆当前使用 AliCDN,印尼当前使用 Cloudflare cdnjs,任一新节点都可以使用独立 CDN。企业独立部署使用清单中的显式值。
|
|
55
80
|
|
|
56
81
|
## 参考
|
|
57
82
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# project domain-routing-sync
|
|
2
|
+
|
|
3
|
+
根据当前项目最终生效的国家/地区与显式 Domain 配置,生成项目根目录的公开 Domain 路由快照。
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
rabetbase project domain-routing-sync --format compress
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## 行为
|
|
10
|
+
|
|
11
|
+
- 从当前目录向上定位包含 `.rabetbase.json` 的项目根目录。
|
|
12
|
+
- 按项目优先、全局白名单补充的规则解析最终 Domain。
|
|
13
|
+
- 原子覆盖项目根目录的 `rabetbase.domain-routing.json`。
|
|
14
|
+
- 文件中的 `cdn.libraries` 是 React、Day.js、Ant Design 等第三方库的完整基地址,`cdn.lovrabet` 是 Lovrabet 自有资源 origin。
|
|
15
|
+
- 每个官方节点直接配置自己的 `cdn.libraries` 与 `cdn.lovrabet`;中国大陆当前使用 AliCDN,印尼当前使用 Cloudflare cdnjs。任一新节点都可以配置独立 CDN,企业独立部署使用 `lovrabet-routing/v1` 清单中的显式值。
|
|
16
|
+
- 不要求登录或 AppCode,不访问平台,不生成全局副本。
|
|
17
|
+
- 该文件供项目模板与 Vite 消费,不是 React Router、页面 path 或菜单路由配置。
|
|
18
|
+
|
|
19
|
+
生成内容只包含公开信息:User/App/Runtime Domain、资源策略、本地开发 Domain 与可选证书 URL;不会写入 Cookie、AccessKey 等认证配置。
|
|
20
|
+
|
|
21
|
+
## 使用时机
|
|
22
|
+
|
|
23
|
+
- `project create` 会自动完成首次生成,无需紧接着重复执行。
|
|
24
|
+
- 修改项目级 Domain 配置后执行。
|
|
25
|
+
- 全局 Domain 配置变化且当前项目需要采用新结果时执行。
|
|
26
|
+
- 文件缺失或模板提示重新生成时执行。
|
|
27
|
+
|
|
28
|
+
命令必须在 Rabetbase 项目目录或其子目录中运行;找不到项目 `.rabetbase.json` 时会停止,不会在任意目录创建快照。
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# rabetbase rule
|
|
2
|
+
|
|
3
|
+
管理开发者侧当前解析应用的固定 Agent context 规则文件 `RULES.md` 与 `DATABASE.md`。目标应用通过工作区、`--app <name>` 或 `--appcode <code>` 解析。
|
|
4
|
+
|
|
5
|
+
- `RULES.md`:页面、API 等研发时 Agent 使用的全局规则,`contextScope=page-api-development`;DB Agent 不消费。
|
|
6
|
+
- `DATABASE.md`:数据库分析时 DB Agent 使用的规则,`contextScope=database-analysis`;页面、API 等研发 Agent 不消费。
|
|
7
|
+
- 两份规则都在各自对应流程中全程参与 context,但不会跨消费者叠加。
|
|
8
|
+
- 两者统一属于应用级规则库,管理入口保持为单数命名空间 `rabetbase rule`;不要为 `DATABASE.md` 复制一套 `rabetbase db` 写入口。
|
|
9
|
+
|
|
10
|
+
## 服务端合同边界
|
|
11
|
+
|
|
12
|
+
- 只使用现有 KB 域接口:`GET /smartapi/knowledge-base/get-by-app` 与 `POST /smartapi/knowledge-base/save`。
|
|
13
|
+
- 文件名映射为 `scope=rules` 下的规范标题:`rules -> RULES`、`database -> DATABASE`。
|
|
14
|
+
- 不开放任意 scope、标题、重命名或删除,也不调用 admin 列表接口模拟规则管理。
|
|
15
|
+
- CLI 验证持久化结果;规则运行时只在互斥的 context scope 中消费。DB Agent 只消费 `DATABASE.md`、不消费 `RULES.md`;页面、API 等研发 Agent 只消费 `RULES.md`、不消费 `DATABASE.md`。
|
|
16
|
+
|
|
17
|
+
## 命令
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
rabetbase rule list --format compress
|
|
21
|
+
rabetbase rule get --type rules --format compress
|
|
22
|
+
rabetbase rule get --type database --format compress
|
|
23
|
+
rabetbase rule set --type rules --file ./RULES.md --dry-run
|
|
24
|
+
rabetbase rule set --type rules --file ./RULES.md --expected-version 2
|
|
25
|
+
rabetbase rule set --type database --file ./DATABASE.md --dry-run
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## list / get
|
|
29
|
+
|
|
30
|
+
- `list` 固定精确读取两个类型,未配置项显示 `enabled: false`;输出包含 `contextScope`、版本、大小、哈希、时间等元数据,不包含正文。
|
|
31
|
+
- `get --type rules|database` 返回一个文件的完整正文;未配置时返回 `app_rule_not_found`。
|
|
32
|
+
- 响应必须与请求的 appCode、`scope=rules`、规范标题完全一致,否则失败关闭。
|
|
33
|
+
|
|
34
|
+
## set
|
|
35
|
+
|
|
36
|
+
- `--type rules|database` 与 `--file` 必填。
|
|
37
|
+
- 输入必须是可读普通文件、有效 UTF-8、非空且不超过服务端 5 MiB 限制;CLI 逐字发送解码后的内容。
|
|
38
|
+
- `set` 是普通 `write`,建议先 dry-run;正式执行不要求额外 `--yes`。
|
|
39
|
+
- 写前精确回读当前状态;`--expected-version` 可选,只是非原子 read-before-write 断言。服务端保存合同没有 version 条件,不能描述为 compare-and-set。
|
|
40
|
+
- 请求最多提交一次。正常或不确定响应之后都只做一次精确回读;正文哈希必须一致,已有记录还必须证明版本推进。
|
|
41
|
+
- 响应丢失但回读可证明结果时返回 verified 并标记恢复;证据不足时返回 outcome unknown,禁止自动重提。
|
|
42
|
+
- dry-run 和正式结构化输出都不包含新正文,只包含 `contentByteSize`、`contentHash` 等安全元数据。
|
|
43
|
+
|
|
44
|
+
## 最佳实践
|
|
45
|
+
|
|
46
|
+
1. 先执行 `rule list`,确认目标文件是否存在及当前版本。
|
|
47
|
+
2. 已存在时优先带 `--expected-version` 做写前漂移检查。
|
|
48
|
+
3. 使用相同参数先执行 `--dry-run`,检查 appCode、type、大小、哈希和非原子警告。
|
|
49
|
+
4. 正式执行后以返回的 `verification.status=verified` 为准;若为 outcome unknown,不要再次 set,先执行精确 `rule get` 人工核对。
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"name": "rabetbase",
|
|
4
4
|
"packageName": "@lovrabet/rabetbase-cli",
|
|
5
|
-
"packageVersion": "2.5.1-beta.
|
|
6
|
-
"skillVersion": "2.5.1-beta.
|
|
5
|
+
"packageVersion": "2.5.1-beta.5",
|
|
6
|
+
"skillVersion": "2.5.1-beta.5",
|
|
7
7
|
"files": [
|
|
8
8
|
"SKILL.md",
|
|
9
9
|
"guides/backend-function.md",
|
|
@@ -114,10 +114,12 @@
|
|
|
114
114
|
"references/rabetbase-page-restore.md",
|
|
115
115
|
"references/rabetbase-page-sync.md",
|
|
116
116
|
"references/rabetbase-project-create.md",
|
|
117
|
+
"references/rabetbase-project-domain-routing-sync.md",
|
|
117
118
|
"references/rabetbase-project-upgrade.md",
|
|
118
119
|
"references/rabetbase-role-list.md",
|
|
119
120
|
"references/rabetbase-role-user-add.md",
|
|
120
121
|
"references/rabetbase-role-user-resolve.md",
|
|
122
|
+
"references/rabetbase-rule.md",
|
|
121
123
|
"references/rabetbase-run.md",
|
|
122
124
|
"references/rabetbase-schema.md",
|
|
123
125
|
"references/rabetbase-sql-create.md",
|
|
@@ -135,5 +137,5 @@
|
|
|
135
137
|
"references/rabetbase-user-account.md",
|
|
136
138
|
"references/rabetbase-workspace.md"
|
|
137
139
|
],
|
|
138
|
-
"digest": "
|
|
140
|
+
"digest": "ef886c079892159159a97afd2290be056b6e1f016ecb39e9f2e3fd4b105b2422"
|
|
139
141
|
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { LovrabetRegion } from "../constant/region.js";
|
|
2
|
-
export declare const PROJECT_ROUTING_FILE_NAME = "rabetbase.routing.json";
|
|
3
|
-
export declare const PROJECT_ROUTING_PROTOCOL = "lovrabet-project-routing/v1";
|
|
4
|
-
export type ProjectAssetRouting = {
|
|
5
|
-
strategy: "cdn";
|
|
6
|
-
origin: string;
|
|
7
|
-
} | {
|
|
8
|
-
strategy: "bundle";
|
|
9
|
-
};
|
|
10
|
-
export interface ProjectRoutingManifest {
|
|
11
|
-
protocol: typeof PROJECT_ROUTING_PROTOCOL;
|
|
12
|
-
mode: "official" | "independent";
|
|
13
|
-
region: LovrabetRegion | null;
|
|
14
|
-
domains: {
|
|
15
|
-
user: string;
|
|
16
|
-
app: string;
|
|
17
|
-
runtime: string;
|
|
18
|
-
};
|
|
19
|
-
assets: ProjectAssetRouting;
|
|
20
|
-
local: {
|
|
21
|
-
origin: string;
|
|
22
|
-
certificateUrl?: string;
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
/** Resolves only public, final routing facts for generated browser projects. */
|
|
26
|
-
export declare function getProjectRoutingManifest(): ProjectRoutingManifest;
|
|
27
|
-
export declare function writeProjectRoutingManifest(projectRoot: string): {
|
|
28
|
-
path: string;
|
|
29
|
-
manifest: ProjectRoutingManifest;
|
|
30
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(function(_0x579527,_0x414e7d){const _0x261f59=a213_0x334b,_0x4e7d81=_0x579527();while(!![]){try{const _0x5ba89b=-parseInt(_0x261f59(0x1c7))/0x1*(-parseInt(_0x261f59(0x1c5))/0x2)+-parseInt(_0x261f59(0x1ba))/0x3*(parseInt(_0x261f59(0x1bd))/0x4)+-parseInt(_0x261f59(0x1c1))/0x5+parseInt(_0x261f59(0x1b8))/0x6*(-parseInt(_0x261f59(0x1c3))/0x7)+parseInt(_0x261f59(0x1bf))/0x8+parseInt(_0x261f59(0x1c8))/0x9*(-parseInt(_0x261f59(0x1b9))/0xa)+parseInt(_0x261f59(0x1c0))/0xb*(parseInt(_0x261f59(0x1bb))/0xc);if(_0x5ba89b===_0x414e7d)break;else _0x4e7d81['push'](_0x4e7d81['shift']());}catch(_0x32cc26){_0x4e7d81['push'](_0x4e7d81['shift']());}}}(a213_0x29c3,0xa1337));import{writeFileSync}from'node:fs';function a213_0x29c3(){const _0x3e9d0e=['1017dgZNWk','7692fjZRnL','Independent\x20deployment\x20routing\x20requires\x20localDomain\x20and\x20certificateDomain\x20together.','764nRTvSJ','official','8155640ksmOFj','14355tBabNk','859775vddMGO','assets','2571443HRKtNt','/cert/lovrabet-dev.json','78oTrIOs','independent','18701WQVQJq','8582562GLorWH','stringify','utf8','local','12WIoWoW','10ovtIWW'];a213_0x29c3=function(){return _0x3e9d0e;};return a213_0x29c3();}import{join}from'node:path';import{getActiveRegion,getAppDomain,getCertificateDomain,getLocalDomain,getRuntimeDomain,getUserDomain,isIndependentDeployment}from'../constant/domain.js';import{getOfficialRoutingProfile}from'../constant/routing-profile.js';export const PROJECT_ROUTING_FILE_NAME='rabetbase.routing.json';function a213_0x334b(_0x343c05,_0x3fef51){_0x343c05=_0x343c05-0x1b7;const _0x29c379=a213_0x29c3();let _0x334b17=_0x29c379[_0x343c05];return _0x334b17;}export const PROJECT_ROUTING_PROTOCOL='lovrabet-project-routing/v1';export function getProjectRoutingManifest(){const _0x579212=a213_0x334b,_0x1a6652=getActiveRegion(),_0x289b6e=isIndependentDeployment(),_0xb8e49f=getOfficialRoutingProfile(_0x1a6652),_0x364352=getLocalDomain(),_0x41abad=getCertificateDomain();if(!!_0x364352!==!!_0x41abad)throw new Error(_0x579212(0x1bc));return{'protocol':PROJECT_ROUTING_PROTOCOL,'mode':_0x289b6e?_0x579212(0x1c6):_0x579212(0x1be),'region':_0x289b6e?null:_0x1a6652,'domains':{'user':getUserDomain(),'app':getAppDomain(),'runtime':getRuntimeDomain()},'assets':_0xb8e49f[_0x579212(0x1c2)],'local':_0x364352&&_0x41abad?{'origin':_0x364352,'certificateUrl':_0x41abad+_0x579212(0x1c4)}:_0x289b6e?{'origin':'http://localhost'}:_0xb8e49f[_0x579212(0x1b7)]};}export function writeProjectRoutingManifest(_0x415f81){const _0x5b4a81=a213_0x334b,_0x4c429b=getProjectRoutingManifest(),_0x4becf8=join(_0x415f81,PROJECT_ROUTING_FILE_NAME);return writeFileSync(_0x4becf8,JSON[_0x5b4a81(0x1c9)](_0x4c429b,null,0x2)+'\x0a',_0x5b4a81(0x1ca)),{'path':_0x4becf8,'manifest':_0x4c429b};}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
export type KnowledgeSearchScope = "public" | "company";
|
|
2
|
-
export interface KnowledgeSearchHit {
|
|
3
|
-
documentId: string;
|
|
4
|
-
revision: number;
|
|
5
|
-
chunkId: string;
|
|
6
|
-
scope: KnowledgeSearchScope;
|
|
7
|
-
title: string;
|
|
8
|
-
text: string;
|
|
9
|
-
tags: string[];
|
|
10
|
-
rank: number;
|
|
11
|
-
rawScore: number;
|
|
12
|
-
finalScore: number;
|
|
13
|
-
scoreKind: string;
|
|
14
|
-
}
|
|
15
|
-
export interface DevelopmentKnowledgeSearchResult {
|
|
16
|
-
schemaVersion: 2;
|
|
17
|
-
profile: "development";
|
|
18
|
-
total: number;
|
|
19
|
-
strategyFingerprint: string;
|
|
20
|
-
timingsMs: Record<string, number>;
|
|
21
|
-
hits: KnowledgeSearchHit[];
|
|
22
|
-
}
|
|
23
|
-
export interface DevelopmentKnowledgeSearchInput {
|
|
24
|
-
appCode: string;
|
|
25
|
-
cookie: string;
|
|
26
|
-
query: string;
|
|
27
|
-
topK?: number;
|
|
28
|
-
signal?: AbortSignal;
|
|
29
|
-
}
|
|
30
|
-
export declare function searchDevelopmentKnowledge(input: DevelopmentKnowledgeSearchInput): Promise<DevelopmentKnowledgeSearchResult>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const a238_0x240dc9=a238_0x203f;(function(_0x5bd308,_0x475b5c){const _0x47dd27=a238_0x203f,_0x2decd8=_0x5bd308();while(!![]){try{const _0x20d3ac=-parseInt(_0x47dd27(0xdc))/0x1*(parseInt(_0x47dd27(0xdd))/0x2)+-parseInt(_0x47dd27(0xe2))/0x3+parseInt(_0x47dd27(0xf3))/0x4+-parseInt(_0x47dd27(0xf8))/0x5*(parseInt(_0x47dd27(0xe9))/0x6)+-parseInt(_0x47dd27(0xd2))/0x7*(-parseInt(_0x47dd27(0xbb))/0x8)+-parseInt(_0x47dd27(0xb1))/0x9*(-parseInt(_0x47dd27(0xed))/0xa)+-parseInt(_0x47dd27(0xc6))/0xb*(-parseInt(_0x47dd27(0xcd))/0xc);if(_0x20d3ac===_0x475b5c)break;else _0x2decd8['push'](_0x2decd8['shift']());}catch(_0x439b0e){_0x2decd8['push'](_0x2decd8['shift']());}}}(a238_0x50c8,0xe5705));import{getKbDomain}from'../constant/domain.js';import{CliError,CliErrors}from'../errors.js';const RESPONSE_KEYS=['schemaVersion',a238_0x240dc9(0xf6),a238_0x240dc9(0xd9),a238_0x240dc9(0xd4),a238_0x240dc9(0xad),a238_0x240dc9(0xd6)],HIT_KEYS=[a238_0x240dc9(0xc4),a238_0x240dc9(0xf4),a238_0x240dc9(0xef),a238_0x240dc9(0xd1),a238_0x240dc9(0xdf),a238_0x240dc9(0xee),'tags',a238_0x240dc9(0xa9),'rawScore','finalScore','scoreKind'];export async function searchDevelopmentKnowledge(_0x205b44){const _0x4bc2e8=a238_0x240dc9,_0x22fcf1=_0x205b44[_0x4bc2e8(0xe7)]['trim'](),_0x22253a=_0x205b44[_0x4bc2e8(0xe0)]['trim']();if(!_0x22fcf1)throw CliErrors['validation']('Knowledge\x20search\x20appCode\x20is\x20required.');if(!_0x205b44[_0x4bc2e8(0xc3)][_0x4bc2e8(0xeb)]())throw CliErrors[_0x4bc2e8(0xcb)]();if(!_0x22253a)throw CliErrors[_0x4bc2e8(0xc5)](_0x4bc2e8(0xac));validateTopK(_0x205b44[_0x4bc2e8(0xf7)]);const _0x55c8d8=getKbDomain()+_0x4bc2e8(0xab);let _0x2bc810;try{_0x2bc810=await fetch(_0x55c8d8,{'method':_0x4bc2e8(0xd7),'headers':{'Content-Type':_0x4bc2e8(0xda),'Cookie':_0x205b44[_0x4bc2e8(0xc3)],'X-Invoke-Source':_0x4bc2e8(0xd5)},'body':JSON['stringify']({'appCode':_0x22fcf1,'query':_0x22253a,..._0x205b44['topK']!==undefined?{'topK':_0x205b44[_0x4bc2e8(0xf7)]}:{}}),'signal':_0x205b44['signal']});}catch(_0x107474){if(_0x107474 instanceof CliError)throw _0x107474;if(_0x107474 instanceof Error&&_0x107474[_0x4bc2e8(0xd3)]===_0x4bc2e8(0xae))throw _0x107474;throw CliErrors['networkError'](_0x4bc2e8(0xce));}if(!hasNoStore(_0x2bc810['headers']))throw CliErrors[_0x4bc2e8(0xc8)]('SmartCode\x20knowledge\x20search\x20response\x20is\x20missing\x20Cache-Control:\x20no-store.');if(_0x2bc810['status']===0x191)throw CliErrors[_0x4bc2e8(0xcb)]();if(!_0x2bc810['ok'])throw CliErrors['apiError'](_0x4bc2e8(0xbf)+_0x2bc810[_0x4bc2e8(0xf1)]+').');if(!(_0x2bc810[_0x4bc2e8(0xbe)]['get'](_0x4bc2e8(0xb5))??'')[_0x4bc2e8(0xb3)]()[_0x4bc2e8(0xd0)](_0x4bc2e8(0xda)))throw CliErrors['apiError'](_0x4bc2e8(0xaa));let _0x568430;try{_0x568430=await _0x2bc810[_0x4bc2e8(0xc9)]();}catch{throw CliErrors[_0x4bc2e8(0xc8)](_0x4bc2e8(0xde));}return parseDevelopmentSearchResponse(readEnvelopeData(_0x568430),_0x205b44[_0x4bc2e8(0xf7)]);}function readEnvelopeData(_0x3e1506){const _0x3a7db4=a238_0x240dc9,_0x2767ba=requireRecord(_0x3e1506,'response\x20envelope');if(_0x2767ba['success']===![])throw CliErrors['apiError'](_0x3a7db4(0xcf));if(!('data'in _0x2767ba))throw invalidContract(_0x3a7db4(0xb7));return _0x2767ba[_0x3a7db4(0xc7)];}function a238_0x50c8(){const _0x269a7f=['response\x20envelope','scoreKind','rawScore','finalScore','6098968QOoBVa','tags','\x20contract.','headers','SmartCode\x20knowledge\x20search\x20failed\x20(HTTP\x20','string','entries','isSafeInteger','cookie','documentId','validation','20254729RSvdlR','data','apiError','json','sort','authRequired','hits[','12byBDUH','SmartCode\x20knowledge\x20search\x20request\x20failed.','SmartCode\x20knowledge\x20search\x20failed.','includes','scope','7lAjivi','name','hits','cli:rabetbase','timingsMs','POST','map','total','application/json','SmartCode\x20knowledge\x20search\x20returned\x20an\x20invalid\x20','789829LQAdpr','4qbXNEm','SmartCode\x20knowledge\x20search\x20returned\x20invalid\x20JSON.','title','query','cache-control','3286248wvvPla','isFinite','company','schemaVersion','Knowledge\x20search\x20topK\x20must\x20be\x20an\x20integer\x20from\x201\x20through\x2050.','appCode','public','7320714rrQfAw','keys','trim','split','220930avviZV','text','chunkId','score','status','isArray','5036688SDkxGl','revision','object','profile','topK','5sDsVno','development','rank','SmartCode\x20knowledge\x20search\x20returned\x20a\x20non-JSON\x20content\x20type.','/smartapi/knowledge/company-public/search','Knowledge\x20search\x20query\x20is\x20required.','strategyFingerprint','AbortError','get','length','396VvegUp','some','toLowerCase','test','content-type','number'];a238_0x50c8=function(){return _0x269a7f;};return a238_0x50c8();}function validateTopK(_0x67e223){const _0x131eae=a238_0x240dc9;if(_0x67e223!==undefined&&(!Number[_0x131eae(0xc2)](_0x67e223)||_0x67e223<0x1||_0x67e223>0x32))throw CliErrors[_0x131eae(0xc5)](_0x131eae(0xe6));}function hasNoStore(_0xe2a527){const _0x310def=a238_0x240dc9;return(_0xe2a527[_0x310def(0xaf)](_0x310def(0xe1))??'')[_0x310def(0xec)](',')[_0x310def(0xb2)](_0x55b197=>_0x55b197[_0x310def(0xeb)]()[_0x310def(0xb3)]()==='no-store');}function parseDevelopmentSearchResponse(_0x121491,_0x1827a8){const _0x492c6b=a238_0x240dc9,_0xd8da5=requireExactRecord(_0x121491,RESPONSE_KEYS,'response');if(_0xd8da5[_0x492c6b(0xe5)]!==0x2||_0xd8da5['profile']!==_0x492c6b(0xf9))throw invalidContract(_0x492c6b(0xf6));if(!Array[_0x492c6b(0xf2)](_0xd8da5[_0x492c6b(0xd4)])||_0xd8da5[_0x492c6b(0xd4)]['length']>(_0x1827a8??0x32))throw invalidContract(_0x492c6b(0xd4));if(typeof _0xd8da5['strategyFingerprint']!=='string'||!/^sha256:[0-9a-f]{64}$/[_0x492c6b(0xb4)](_0xd8da5[_0x492c6b(0xad)]))throw invalidContract(_0x492c6b(0xad));const _0x528efd=requireRecord(_0xd8da5['timingsMs'],_0x492c6b(0xd6)),_0x214ca1={};for(const [_0x21525e,_0x4acea3]of Object[_0x492c6b(0xc1)](_0x528efd)){if(!/^[A-Za-z][A-Za-z0-9]*$/['test'](_0x21525e)||typeof _0x4acea3!==_0x492c6b(0xb6)||!Number['isFinite'](_0x4acea3)||_0x4acea3<0x0)throw invalidContract(_0x492c6b(0xd6));_0x214ca1[_0x21525e]=_0x4acea3;}const _0x444dc9=_0xd8da5['hits'][_0x492c6b(0xd8)]((_0x171f16,_0x765e25)=>parseHit(_0x171f16,_0x765e25));if(!Number[_0x492c6b(0xc2)](_0xd8da5[_0x492c6b(0xd9)])||_0xd8da5[_0x492c6b(0xd9)]!==_0x444dc9[_0x492c6b(0xb0)])throw invalidContract(_0x492c6b(0xd9));return{'schemaVersion':_0xd8da5[_0x492c6b(0xe5)],'profile':_0xd8da5[_0x492c6b(0xf6)],'total':_0xd8da5['total'],'strategyFingerprint':_0xd8da5[_0x492c6b(0xad)],'timingsMs':_0x214ca1,'hits':_0x444dc9};}function a238_0x203f(_0x3441df,_0x9444ea){_0x3441df=_0x3441df-0xa9;const _0x50c801=a238_0x50c8();let _0x203f90=_0x50c801[_0x3441df];return _0x203f90;}function parseHit(_0xd319b8,_0x322542){const _0x366282=a238_0x240dc9,_0xbd3632=requireExactRecord(_0xd319b8,HIT_KEYS,_0x366282(0xcc)+_0x322542+']'),_0x364e7e=_0x5c63db=>{const _0x1c3392=_0x366282,_0xe1e949=_0xbd3632[_0x5c63db];if(typeof _0xe1e949!==_0x1c3392(0xc0)||!_0xe1e949)throw invalidContract(_0x5c63db);return _0xe1e949;};if(!Number[_0x366282(0xc2)](_0xbd3632[_0x366282(0xf4)])||_0xbd3632['revision']<0x1)throw invalidContract(_0x366282(0xf4));if(_0xbd3632[_0x366282(0xd1)]!==_0x366282(0xe8)&&_0xbd3632[_0x366282(0xd1)]!==_0x366282(0xe4))throw invalidContract(_0x366282(0xd1));if(typeof _0xbd3632[_0x366282(0xdf)]!==_0x366282(0xc0)||typeof _0xbd3632[_0x366282(0xee)]!=='string')throw invalidContract(_0x366282(0xee));if(!Array[_0x366282(0xf2)](_0xbd3632[_0x366282(0xbc)])||_0xbd3632[_0x366282(0xbc)][_0x366282(0xb2)](_0x95759e=>typeof _0x95759e!==_0x366282(0xc0)))throw invalidContract(_0x366282(0xbc));if(!Number[_0x366282(0xc2)](_0xbd3632[_0x366282(0xa9)])||_0xbd3632['rank']!==_0x322542+0x1)throw invalidContract(_0x366282(0xa9));if(!isFiniteNumber(_0xbd3632[_0x366282(0xb9)])||!isFiniteNumber(_0xbd3632[_0x366282(0xba)]))throw invalidContract(_0x366282(0xf0));return{'documentId':_0x364e7e(_0x366282(0xc4)),'revision':_0xbd3632[_0x366282(0xf4)],'chunkId':_0x364e7e(_0x366282(0xef)),'scope':_0xbd3632[_0x366282(0xd1)],'title':_0xbd3632[_0x366282(0xdf)],'text':_0xbd3632[_0x366282(0xee)],'tags':[..._0xbd3632[_0x366282(0xbc)]],'rank':_0xbd3632[_0x366282(0xa9)],'rawScore':_0xbd3632[_0x366282(0xb9)],'finalScore':_0xbd3632[_0x366282(0xba)],'scoreKind':_0x364e7e(_0x366282(0xb8))};}function requireExactRecord(_0x4a2036,_0x5e6d2b,_0x4d7b41){const _0x2c0d82=a238_0x240dc9,_0x519187=requireRecord(_0x4a2036,_0x4d7b41),_0x3ee882=Object[_0x2c0d82(0xea)](_0x519187)[_0x2c0d82(0xca)](),_0x4f4248=[..._0x5e6d2b][_0x2c0d82(0xca)]();if(_0x3ee882['length']!==_0x4f4248[_0x2c0d82(0xb0)]||_0x3ee882[_0x2c0d82(0xb2)]((_0x3f3d02,_0x316348)=>_0x3f3d02!==_0x4f4248[_0x316348]))throw invalidContract(_0x4d7b41);return _0x519187;}function requireRecord(_0x4215dd,_0xa882f4){const _0x31dadd=a238_0x240dc9;if(!_0x4215dd||typeof _0x4215dd!==_0x31dadd(0xf5)||Array[_0x31dadd(0xf2)](_0x4215dd))throw invalidContract(_0xa882f4);return _0x4215dd;}function isFiniteNumber(_0x3b112e){const _0x13d300=a238_0x240dc9;return typeof _0x3b112e===_0x13d300(0xb6)&&Number[_0x13d300(0xe3)](_0x3b112e);}function invalidContract(_0x451113){const _0x15004b=a238_0x240dc9;return CliErrors['apiError'](_0x15004b(0xdb)+_0x451113+_0x15004b(0xbd));}
|