@lovrabet/lovrabet-cli 2.3.3 → 2.3.4-beta.2

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 (185) hide show
  1. package/README.md +16 -3
  2. package/lib/cli.js +1 -1
  3. package/lib/commands/api-doc/index.js +1 -1
  4. package/lib/commands/app/cache.js +1 -1
  5. package/lib/commands/app/definitions.js +1 -1
  6. package/lib/commands/app/eligibility.js +1 -1
  7. package/lib/commands/app/mock-loader.js +1 -1
  8. package/lib/commands/app/remote-source.js +1 -1
  9. package/lib/commands/app/shared.js +1 -1
  10. package/lib/commands/app-config/get.js +1 -1
  11. package/lib/commands/app-config/index.js +1 -1
  12. package/lib/commands/approval/index.js +1 -1
  13. package/lib/commands/artifact/index.js +1 -1
  14. package/lib/commands/auth/device.js +1 -1
  15. package/lib/commands/auth/index.js +1 -1
  16. package/lib/commands/auth/prompt.js +1 -1
  17. package/lib/commands/bff/detail.js +1 -1
  18. package/lib/commands/bff/exec.js +1 -1
  19. package/lib/commands/bff/index.js +1 -1
  20. package/lib/commands/cli-skill/index.js +1 -1
  21. package/lib/commands/common/config-policy.js +1 -1
  22. package/lib/commands/common/constraints.js +1 -1
  23. package/lib/commands/common/flags.js +1 -1
  24. package/lib/commands/common/local-file.js +1 -1
  25. package/lib/commands/config/definitions.js +1 -1
  26. package/lib/commands/config/init.d.ts +1 -1
  27. package/lib/commands/config/init.js +1 -1
  28. package/lib/commands/config/shared.js +1 -1
  29. package/lib/commands/data/index.js +1 -1
  30. package/lib/commands/dataset/detail.js +1 -1
  31. package/lib/commands/dataset/index.js +1 -1
  32. package/lib/commands/dataset/list.js +1 -1
  33. package/lib/commands/dataset/sdk-doc.js +1 -1
  34. package/lib/commands/doctor.js +1 -1
  35. package/lib/commands/file/index.js +1 -1
  36. package/lib/commands/init.js +1 -1
  37. package/lib/commands/kb/index.js +1 -1
  38. package/lib/commands/logs/index.js +1 -1
  39. package/lib/commands/notification/config-list.js +1 -1
  40. package/lib/commands/notification/index.js +1 -1
  41. package/lib/commands/notification/shared.js +1 -1
  42. package/lib/commands/ocr/index.js +1 -1
  43. package/lib/commands/permit/dataset-get.js +1 -1
  44. package/lib/commands/permit/dataset-set.js +1 -1
  45. package/lib/commands/permit/index.js +1 -1
  46. package/lib/commands/permit/page-get.js +1 -1
  47. package/lib/commands/permit/page-set.js +1 -1
  48. package/lib/commands/permit/role-menus-set.js +1 -1
  49. package/lib/commands/permit/role-menus.js +1 -1
  50. package/lib/commands/permit/shared.js +1 -1
  51. package/lib/commands/personal-bff/index.js +1 -1
  52. package/lib/commands/registry.js +1 -1
  53. package/lib/commands/role/create.js +1 -1
  54. package/lib/commands/role/delete.js +1 -1
  55. package/lib/commands/role/detail.js +1 -1
  56. package/lib/commands/role/index.js +1 -1
  57. package/lib/commands/role/list.js +1 -1
  58. package/lib/commands/role/shared.js +1 -1
  59. package/lib/commands/role/update.js +1 -1
  60. package/lib/commands/role/user-add.js +1 -1
  61. package/lib/commands/role/user-remove.js +1 -1
  62. package/lib/commands/schedule/index.js +1 -1
  63. package/lib/commands/schema.js +1 -1
  64. package/lib/commands/service/dynamic.js +1 -1
  65. package/lib/commands/service/function-name-adapter.js +1 -1
  66. package/lib/commands/service/index.js +1 -1
  67. package/lib/commands/service/registry.js +1 -1
  68. package/lib/commands/skill/commands/create.js +1 -1
  69. package/lib/commands/skill/commands/diagram.js +1 -1
  70. package/lib/commands/skill/commands/install.js +1 -1
  71. package/lib/commands/skill/commands/list.js +1 -1
  72. package/lib/commands/skill/commands/push.js +1 -1
  73. package/lib/commands/skill/commands/validate.js +1 -1
  74. package/lib/commands/skill/diagram.js +1 -1
  75. package/lib/commands/skill/flags.js +1 -1
  76. package/lib/commands/skill/index.js +1 -1
  77. package/lib/commands/skill/manifest-helpers.js +1 -1
  78. package/lib/commands/skill/push-execute.js +1 -1
  79. package/lib/commands/skill/push-flow-helpers.js +1 -1
  80. package/lib/commands/skill/push-retarget.js +1 -1
  81. package/lib/commands/skill/scopes.js +1 -1
  82. package/lib/commands/skill/summary.js +1 -1
  83. package/lib/commands/skill/templates.js +1 -1
  84. package/lib/commands/skill/validate.js +1 -1
  85. package/lib/commands/sql/detail.js +1 -1
  86. package/lib/commands/sql/exec.js +1 -1
  87. package/lib/commands/sql/index.js +1 -1
  88. package/lib/commands/update.js +1 -1
  89. package/lib/commands/user-account/bind.js +1 -1
  90. package/lib/commands/user-account/index.js +1 -1
  91. package/lib/commands/workspace/index.js +1 -1
  92. package/lib/config/domain-config.d.ts +2 -2
  93. package/lib/config/domain-config.js +1 -1
  94. package/lib/config/schema.d.ts +1 -1
  95. package/lib/config/schema.js +1 -1
  96. package/lib/constant/app.js +1 -1
  97. package/lib/constant/auth-mode.js +1 -1
  98. package/lib/constant/cli.js +1 -1
  99. package/lib/constant/defaults.js +1 -1
  100. package/lib/constant/distribution.js +1 -1
  101. package/lib/constant/domain.d.ts +4 -0
  102. package/lib/constant/domain.js +1 -1
  103. package/lib/constant/env.js +1 -1
  104. package/lib/constant/output.js +1 -1
  105. package/lib/constant/product.js +1 -1
  106. package/lib/constant/region.d.ts +1 -1
  107. package/lib/constant/region.js +1 -1
  108. package/lib/constant/risk.js +1 -1
  109. package/lib/constant/url.js +1 -1
  110. package/lib/context.js +1 -1
  111. package/lib/core/api-client.js +1 -1
  112. package/lib/core/db-resolver.js +1 -1
  113. package/lib/core/kb-search-client.d.ts +7 -1
  114. package/lib/core/kb-search-client.js +1 -1
  115. package/lib/core/sdk-client.js +1 -1
  116. package/lib/errors.js +1 -1
  117. package/lib/framework/build-all-flags.js +1 -1
  118. package/lib/framework/dryrun.js +1 -1
  119. package/lib/framework/flags.js +1 -1
  120. package/lib/framework/help.js +1 -1
  121. package/lib/framework/index.js +1 -1
  122. package/lib/framework/output.js +1 -1
  123. package/lib/framework/preparse.js +1 -1
  124. package/lib/framework/rate-limit.js +1 -1
  125. package/lib/framework/raw-flags.js +1 -1
  126. package/lib/framework/response.js +1 -1
  127. package/lib/framework/runner-confirmation.js +1 -1
  128. package/lib/framework/runner-error.js +1 -1
  129. package/lib/framework/runner.js +1 -1
  130. package/lib/framework/schema-export.js +1 -1
  131. package/lib/framework/service-order.js +1 -1
  132. package/lib/framework/types.js +1 -1
  133. package/lib/generated/build-info.d.ts +4 -4
  134. package/lib/generated/build-info.js +1 -1
  135. package/lib/generated/official-routing.d.ts +12 -3
  136. package/lib/generated/official-routing.js +1 -1
  137. package/lib/generated/routing-contract.d.ts +2 -2
  138. package/lib/generated/routing-contract.js +1 -1
  139. package/lib/help.js +1 -1
  140. package/lib/postinstall.js +1 -1
  141. package/lib/runtime/confirmation.js +1 -1
  142. package/lib/runtime/event.js +1 -1
  143. package/lib/runtime/index.js +1 -1
  144. package/lib/runtime/queue.js +1 -1
  145. package/lib/runtime/resolve.js +1 -1
  146. package/lib/skills/builtin-skill.js +1 -1
  147. package/lib/skills/npx-skills-add.d.ts +5 -0
  148. package/lib/skills/npx-skills-add.js +1 -1
  149. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  150. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  151. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  152. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  153. package/lib/skills/runtime-skill-sync/links.js +1 -1
  154. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  155. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  156. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  157. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  158. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  159. package/lib/skills/runtime-skill-sync/push.js +1 -1
  160. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  161. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  162. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  163. package/lib/skills/runtime-skill-sync.js +1 -1
  164. package/lib/skills/skill-presence.js +1 -1
  165. package/lib/utils/access-key-redaction.js +1 -1
  166. package/lib/utils/apply-jq-filter.js +1 -1
  167. package/lib/utils/cli-version-check.js +1 -1
  168. package/lib/utils/cli-version-policy.js +1 -1
  169. package/lib/utils/logger.js +1 -1
  170. package/lib/utils/lossless-json.js +1 -1
  171. package/lib/utils/params.js +1 -1
  172. package/lib/utils/positive-safe-integer.js +1 -1
  173. package/lib/utils/redaction.js +1 -1
  174. package/lib/utils/update-notice.js +1 -1
  175. package/lib/utils/version.js +1 -1
  176. package/lib/utils/write-cli-side-channel.js +1 -1
  177. package/package.json +1 -1
  178. package/skills/lovrabet/SKILL.md +4 -2
  179. package/skills/lovrabet/guides/troubleshooting.md +1 -1
  180. package/skills/lovrabet/references/lovrabet-config-commands.md +8 -7
  181. package/skills/lovrabet/references/lovrabet-config.md +4 -3
  182. package/skills/lovrabet/references/lovrabet-doctor.md +1 -1
  183. package/skills/lovrabet/references/lovrabet-kb-workflow.md +14 -2
  184. package/skills/lovrabet/references/lovrabet-service-tree.md +1 -1
  185. package/skills/lovrabet.manifest.json +3 -3
@@ -1 +1 @@
1
- function a162_0x58d4(_0x4417f7,_0x33d2ac){_0x4417f7=_0x4417f7-0x7b;const _0x43a578=a162_0x43a5();let _0x58d4a3=_0x43a578[_0x4417f7];return _0x58d4a3;}function a162_0x43a5(){const _0x38165d=['isSafeInteger','1396230ZJaexy','648gmicvW','262416lOlEIV','test','77dYOZsM','8VzCADR','140568HSwXah','34600ZsJMxX','4zsqJmU','81715gWZJZc','7163292EafZKa','number','11KtWnGV','1122265IpfiAK','string'];a162_0x43a5=function(){return _0x38165d;};return a162_0x43a5();}(function(_0x1544a5,_0x57d820){const _0x61c356=a162_0x58d4,_0x36f395=_0x1544a5();while(!![]){try{const _0x409488=parseInt(_0x61c356(0x87))/0x1*(parseInt(_0x61c356(0x83))/0x2)+parseInt(_0x61c356(0x7e))/0x3+-parseInt(_0x61c356(0x86))/0x4*(-parseInt(_0x61c356(0x7b))/0x5)+-parseInt(_0x61c356(0x80))/0x6+-parseInt(_0x61c356(0x82))/0x7*(-parseInt(_0x61c356(0x84))/0x8)+parseInt(_0x61c356(0x7f))/0x9*(-parseInt(_0x61c356(0x85))/0xa)+-parseInt(_0x61c356(0x8a))/0xb*(parseInt(_0x61c356(0x88))/0xc);if(_0x409488===_0x57d820)break;else _0x36f395['push'](_0x36f395['shift']());}catch(_0x4386af){_0x36f395['push'](_0x36f395['shift']());}}}(a162_0x43a5,0x4e2cf));export function normalizePositiveSafeInteger(_0x3cb92f){const _0x1562f0=a162_0x58d4;if(typeof _0x3cb92f===_0x1562f0(0x89))return Number[_0x1562f0(0x7d)](_0x3cb92f)&&_0x3cb92f>0x0?_0x3cb92f:undefined;if(typeof _0x3cb92f!==_0x1562f0(0x7c)||!/^\d+$/[_0x1562f0(0x81)](_0x3cb92f))return undefined;const _0x9306c4=Number(_0x3cb92f);return Number[_0x1562f0(0x7d)](_0x9306c4)&&_0x9306c4>0x0?_0x9306c4:undefined;}
1
+ (function(_0x285172,_0x1bd1fa){const _0x31b4bb=a162_0x58a0,_0x556956=_0x285172();while(!![]){try{const _0x5a69dd=parseInt(_0x31b4bb(0x1c1))/0x1+parseInt(_0x31b4bb(0x1c0))/0x2*(parseInt(_0x31b4bb(0x1b7))/0x3)+-parseInt(_0x31b4bb(0x1b8))/0x4*(-parseInt(_0x31b4bb(0x1bd))/0x5)+-parseInt(_0x31b4bb(0x1be))/0x6+-parseInt(_0x31b4bb(0x1bf))/0x7+-parseInt(_0x31b4bb(0x1bb))/0x8*(parseInt(_0x31b4bb(0x1c3))/0x9)+parseInt(_0x31b4bb(0x1c2))/0xa*(-parseInt(_0x31b4bb(0x1bc))/0xb);if(_0x5a69dd===_0x1bd1fa)break;else _0x556956['push'](_0x556956['shift']());}catch(_0x1d403d){_0x556956['push'](_0x556956['shift']());}}}(a162_0x4b21,0xc2bf4));export function normalizePositiveSafeInteger(_0x4cff63){const _0x492cee=a162_0x58a0;if(typeof _0x4cff63===_0x492cee(0x1ba))return Number[_0x492cee(0x1c4)](_0x4cff63)&&_0x4cff63>0x0?_0x4cff63:undefined;if(typeof _0x4cff63!=='string'||!/^\d+$/[_0x492cee(0x1b9)](_0x4cff63))return undefined;const _0x248d48=Number(_0x4cff63);return Number[_0x492cee(0x1c4)](_0x248d48)&&_0x248d48>0x0?_0x248d48:undefined;}function a162_0x58a0(_0x1e2665,_0x2ec3b5){_0x1e2665=_0x1e2665-0x1b7;const _0x4b21e4=a162_0x4b21();let _0x58a07c=_0x4b21e4[_0x1e2665];return _0x58a07c;}function a162_0x4b21(){const _0x4193dc=['532505DZCllE','5211222JRDjau','1984297nlemyQ','4574JQPvhu','647357GZXpuK','744950XXqDDO','768024MhVumX','isSafeInteger','1191TGISZz','52ZnypmC','test','number','16ZevVyX','121SoKqCJ'];a162_0x4b21=function(){return _0x4193dc;};return a162_0x4b21();}
@@ -1 +1 @@
1
- const a163_0x4ac741=a163_0x4200;(function(_0x18b7f5,_0x34d8db){const _0x4b26e6=a163_0x4200,_0x1cb6b2=_0x18b7f5();while(!![]){try{const _0x40a405=-parseInt(_0x4b26e6(0x1b4))/0x1*(parseInt(_0x4b26e6(0x1c2))/0x2)+parseInt(_0x4b26e6(0x1b8))/0x3*(-parseInt(_0x4b26e6(0x1b3))/0x4)+parseInt(_0x4b26e6(0x1ad))/0x5*(-parseInt(_0x4b26e6(0x1b6))/0x6)+parseInt(_0x4b26e6(0x1b5))/0x7+parseInt(_0x4b26e6(0x1ba))/0x8+-parseInt(_0x4b26e6(0x1bb))/0x9*(parseInt(_0x4b26e6(0x1af))/0xa)+parseInt(_0x4b26e6(0x1bd))/0xb;if(_0x40a405===_0x34d8db)break;else _0x1cb6b2['push'](_0x1cb6b2['shift']());}catch(_0x42435a){_0x1cb6b2['push'](_0x1cb6b2['shift']());}}}(a163_0x1a4c,0x2f6f4));const REDACTED_VALUE=a163_0x4ac741(0x1ab),SENSITIVE_KEY_PATTERN=/(?:access.?key|api.?key|authorization|cookie|credential|password|passwd|private.?key|secret|token|webhook)/i,SENSITIVE_FLAG_NAMES=new Set(['comment',a163_0x4ac741(0x1bf)]),SENSITIVE_VALUE_KEYS=new Set([a163_0x4ac741(0x1b1)]);export function isSensitiveKey(_0x443adb){const _0x913b49=a163_0x4ac741,_0x38e7d2=_0x443adb[_0x913b49(0x1bc)](/_/g,'-')[_0x913b49(0x1ae)]();return SENSITIVE_KEY_PATTERN[_0x913b49(0x1b7)](_0x38e7d2);}export function isSensitiveFlagName(_0x1c499c){const _0x517b0d=a163_0x4ac741,_0x4754c2=_0x1c499c[_0x517b0d(0x1bc)](/_/g,'-')[_0x517b0d(0x1ae)]();return isSensitiveKey(_0x4754c2)||SENSITIVE_FLAG_NAMES[_0x517b0d(0x1ac)](_0x4754c2);}function a163_0x4200(_0x1480ff,_0x53ab13){_0x1480ff=_0x1480ff-0x1ab;const _0x1a4c57=a163_0x1a4c();let _0x420017=_0x1a4c57[_0x1480ff];return _0x420017;}function redactVariableValues(_0x22858d){const _0x26b1de=a163_0x4ac741;if(Array[_0x26b1de(0x1c0)](_0x22858d))return _0x22858d['map'](_0x1acf66=>redactVariableValues(_0x1acf66));if(_0x22858d&&typeof _0x22858d===_0x26b1de(0x1b2))return Object['fromEntries'](Object['entries'](_0x22858d)[_0x26b1de(0x1c1)](([_0x38d169,_0x4bb949])=>[_0x38d169,redactVariableValues(_0x4bb949)]));return REDACTED_VALUE;}export function redactSensitiveValue(_0x445dd8){const _0x474ee9=a163_0x4ac741;if(Array[_0x474ee9(0x1c0)](_0x445dd8))return _0x445dd8['map'](_0x4cb793=>redactSensitiveValue(_0x4cb793));if(!_0x445dd8||typeof _0x445dd8!==_0x474ee9(0x1b2))return _0x445dd8;const _0x32a64f={};for(const [_0x4a08e0,_0x45c7f2]of Object[_0x474ee9(0x1be)](_0x445dd8)){const _0x2f544c=_0x4a08e0[_0x474ee9(0x1bc)](/_/g,'-')['toLowerCase']();_0x32a64f[_0x4a08e0]=_0x2f544c===_0x474ee9(0x1bf)?redactVariableValues(_0x45c7f2):SENSITIVE_VALUE_KEYS['has'](_0x2f544c)||isSensitiveKey(_0x4a08e0)?REDACTED_VALUE:redactSensitiveValue(_0x45c7f2);}return _0x32a64f;}export function redactCommandArgv(_0x35d9e3){const _0x39f43d=a163_0x4ac741,_0x3052fa=[];let _0x3af7bf=![];for(const _0x4bc043 of _0x35d9e3){if(_0x3af7bf){_0x3052fa['push'](REDACTED_VALUE),_0x3af7bf=![];continue;}const _0x8eb8dc=_0x4bc043[_0x39f43d(0x1b9)](/^--([^=]+)(?:=(.*))?$/);if(!_0x8eb8dc||!isSensitiveFlagName(_0x8eb8dc[0x1]??'')){_0x3052fa[_0x39f43d(0x1b0)](_0x4bc043);continue;}_0x3052fa[_0x39f43d(0x1b0)]('--'+_0x8eb8dc[0x1]+(_0x8eb8dc[0x2]===undefined?'':'='+REDACTED_VALUE)),_0x8eb8dc[0x2]===undefined&&(_0x3af7bf=!![]);}return _0x3052fa;}function a163_0x1a4c(){const _0x468ed6=['has','14975xCsOFr','toLowerCase','10SODFYD','push','comment','object','4QGJRhi','67KIfBVK','2687342DRtnPG','66cKGJVB','test','274407GIThPd','match','596288wxtDYg','658530evlezh','replace','1699137qVEZpJ','entries','variables','isArray','map','6598kxMXzK','[REDACTED]'];a163_0x1a4c=function(){return _0x468ed6;};return a163_0x1a4c();}export{REDACTED_VALUE};
1
+ const a163_0x35798b=a163_0x3137;(function(_0x3e663f,_0xcce76d){const _0x1da63f=a163_0x3137,_0x1637ec=_0x3e663f();while(!![]){try{const _0x4633ea=parseInt(_0x1da63f(0x10a))/0x1+-parseInt(_0x1da63f(0x10b))/0x2*(-parseInt(_0x1da63f(0xfb))/0x3)+-parseInt(_0x1da63f(0xfe))/0x4+parseInt(_0x1da63f(0x104))/0x5*(-parseInt(_0x1da63f(0x103))/0x6)+parseInt(_0x1da63f(0x111))/0x7+parseInt(_0x1da63f(0x10c))/0x8*(parseInt(_0x1da63f(0x10e))/0x9)+-parseInt(_0x1da63f(0x109))/0xa;if(_0x4633ea===_0xcce76d)break;else _0x1637ec['push'](_0x1637ec['shift']());}catch(_0x3caccb){_0x1637ec['push'](_0x1637ec['shift']());}}}(a163_0x54ef,0x1c9a5));const REDACTED_VALUE=a163_0x35798b(0x107),SENSITIVE_KEY_PATTERN=/(?:access.?key|api.?key|authorization|cookie|credential|password|passwd|private.?key|secret|token|webhook)/i,SENSITIVE_FLAG_NAMES=new Set(['comment','variables']),SENSITIVE_VALUE_KEYS=new Set([a163_0x35798b(0x110)]);function a163_0x54ef(){const _0x3d3c4f=['map','entries','[REDACTED]','match','1638470juBQjP','60790msasmS','2tbJAlk','72NSSuuU','object','130068dAMwap','push','comment','1039360QFniZK','replace','397446NsMROv','variables','has','352204FmymwI','test','fromEntries','isArray','toLowerCase','306SBnSmS','10075IEHXtY'];a163_0x54ef=function(){return _0x3d3c4f;};return a163_0x54ef();}export function isSensitiveKey(_0x4f9881){const _0x3c7d96=a163_0x35798b,_0x396ce0=_0x4f9881[_0x3c7d96(0xfa)](/_/g,'-')['toLowerCase']();return SENSITIVE_KEY_PATTERN[_0x3c7d96(0xff)](_0x396ce0);}export function isSensitiveFlagName(_0xad3a38){const _0x30b317=a163_0x35798b,_0x45035e=_0xad3a38[_0x30b317(0xfa)](/_/g,'-')[_0x30b317(0x102)]();return isSensitiveKey(_0x45035e)||SENSITIVE_FLAG_NAMES['has'](_0x45035e);}function redactVariableValues(_0x3d021c){const _0x17e59f=a163_0x35798b;if(Array[_0x17e59f(0x101)](_0x3d021c))return _0x3d021c['map'](_0x15b3bc=>redactVariableValues(_0x15b3bc));if(_0x3d021c&&typeof _0x3d021c===_0x17e59f(0x10d))return Object[_0x17e59f(0x100)](Object['entries'](_0x3d021c)[_0x17e59f(0x105)](([_0x12786a,_0x1de0cc])=>[_0x12786a,redactVariableValues(_0x1de0cc)]));return REDACTED_VALUE;}export function redactSensitiveValue(_0x5e6b0e){const _0x4001bd=a163_0x35798b;if(Array[_0x4001bd(0x101)](_0x5e6b0e))return _0x5e6b0e[_0x4001bd(0x105)](_0x3ae9dc=>redactSensitiveValue(_0x3ae9dc));if(!_0x5e6b0e||typeof _0x5e6b0e!==_0x4001bd(0x10d))return _0x5e6b0e;const _0x271989={};for(const [_0x37f551,_0x2775f8]of Object[_0x4001bd(0x106)](_0x5e6b0e)){const _0x1fc881=_0x37f551[_0x4001bd(0xfa)](/_/g,'-')[_0x4001bd(0x102)]();_0x271989[_0x37f551]=_0x1fc881===_0x4001bd(0xfc)?redactVariableValues(_0x2775f8):SENSITIVE_VALUE_KEYS[_0x4001bd(0xfd)](_0x1fc881)||isSensitiveKey(_0x37f551)?REDACTED_VALUE:redactSensitiveValue(_0x2775f8);}return _0x271989;}function a163_0x3137(_0x36e5fc,_0x451851){_0x36e5fc=_0x36e5fc-0xfa;const _0x54efc6=a163_0x54ef();let _0x313773=_0x54efc6[_0x36e5fc];return _0x313773;}export function redactCommandArgv(_0x3e35f4){const _0x51733c=a163_0x35798b,_0x3bcb2b=[];let _0x2aa7e7=![];for(const _0x1a822b of _0x3e35f4){if(_0x2aa7e7){_0x3bcb2b[_0x51733c(0x10f)](REDACTED_VALUE),_0x2aa7e7=![];continue;}const _0x4fcca2=_0x1a822b[_0x51733c(0x108)](/^--([^=]+)(?:=(.*))?$/);if(!_0x4fcca2||!isSensitiveFlagName(_0x4fcca2[0x1]??'')){_0x3bcb2b['push'](_0x1a822b);continue;}_0x3bcb2b[_0x51733c(0x10f)]('--'+_0x4fcca2[0x1]+(_0x4fcca2[0x2]===undefined?'':'='+REDACTED_VALUE)),_0x4fcca2[0x2]===undefined&&(_0x2aa7e7=!![]);}return _0x3bcb2b;}export{REDACTED_VALUE};
@@ -1 +1 @@
1
- function a164_0x36a3(_0x449489,_0x2240ed){_0x449489=_0x449489-0x13c;const _0x11e913=a164_0x11e9();let _0x36a352=_0x11e913[_0x449489];return _0x36a352;}(function(_0x444a66,_0x3083eb){const _0x1d1a92=a164_0x36a3,_0x41421a=_0x444a66();while(!![]){try{const _0x251b19=parseInt(_0x1d1a92(0x143))/0x1*(parseInt(_0x1d1a92(0x13c))/0x2)+-parseInt(_0x1d1a92(0x146))/0x3+parseInt(_0x1d1a92(0x145))/0x4+-parseInt(_0x1d1a92(0x14f))/0x5+parseInt(_0x1d1a92(0x141))/0x6*(-parseInt(_0x1d1a92(0x142))/0x7)+-parseInt(_0x1d1a92(0x13f))/0x8+parseInt(_0x1d1a92(0x151))/0x9*(parseInt(_0x1d1a92(0x153))/0xa);if(_0x251b19===_0x3083eb)break;else _0x41421a['push'](_0x41421a['shift']());}catch(_0x341b38){_0x41421a['push'](_0x41421a['shift']());}}}(a164_0x11e9,0x40ba6));import{mkdir,readFile,writeFile}from'node:fs/promises';import{homedir}from'node:os';import{dirname,join}from'node:path';import{LOVRABET_NPM_PACKAGE_NAME}from'../constant/distribution.js';import{CLI_BIN_NAME}from'../constant/cli.js';import{checkCliVersion,getCliUpgradeCommand}from'../utils/cli-version-check.js';const UPDATE_NOTICE_TTL_MS=0x18*0x3c*0x3c*0x3e8;function isUpdateNoticeDisabled(){const _0xd3f5a7=a164_0x36a3,_0x260d2a=process.env.LOVRABET_NO_UPDATE_NOTICE?.['trim']()[_0xd3f5a7(0x14c)]();return _0x260d2a==='1'||_0x260d2a===_0xd3f5a7(0x13e)||_0x260d2a===_0xd3f5a7(0x150);}function cacheRoot(){return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),'.cache');}export function getUpdateNoticeCachePath(){const _0x4683a4=a164_0x36a3;return join(cacheRoot(),_0x4683a4(0x147),'update-check.json');}function a164_0x11e9(){const _0xba5374=['lastNotifiedAt','\x20is\x20recommended,\x20current\x20','now','parse','toLowerCase','utf8','currentVersion','714190hscQNd','yes','826047xigwuo','join','30weZWvO','909742MGpIVN','lastNotifiedVersion','true','2796136XGeoTs','upgradeMessage','52542bHaBax','63txNRhm','1Wboiwe','stableVersion','2010940wAsZuh','1189983drJefi','lovrabet-cli'];a164_0x11e9=function(){return _0xba5374;};return a164_0x11e9();}async function readUpdateNoticeCache(){const _0x817a3b=a164_0x36a3;try{const _0x432534=await readFile(getUpdateNoticeCachePath(),_0x817a3b(0x14d)),_0x55a585=JSON[_0x817a3b(0x14b)](_0x432534);if(!_0x55a585||typeof _0x55a585!=='object')return{};return _0x55a585;}catch{return{};}}async function writeUpdateNoticeCache(_0x394dee){const _0x12a664=a164_0x36a3;try{const _0x2eb22d=getUpdateNoticeCachePath();await mkdir(dirname(_0x2eb22d),{'recursive':!![]}),await writeFile(_0x2eb22d,JSON['stringify'](_0x394dee,null,0x2)+'\x0a',_0x12a664(0x14d));}catch{}}function isRecentlyNotified(_0xc964e5,_0x26992a,_0x120360){const _0x51c6d0=a164_0x36a3;return _0xc964e5[_0x51c6d0(0x13d)]===_0x26992a&&typeof _0xc964e5['lastNotifiedAt']==='number'&&_0x120360-_0xc964e5[_0x51c6d0(0x148)]<UPDATE_NOTICE_TTL_MS;}export function buildNpmVersionUrl(_0x447455){return'https://www.npmjs.com/package/'+LOVRABET_NPM_PACKAGE_NAME+'/v/'+_0x447455;}export async function resolveLatestUpdateNotice(_0x3838fc){const _0x40d0d8=a164_0x36a3;if(isUpdateNoticeDisabled())return null;try{const _0x233666=Date[_0x40d0d8(0x14a)](),_0x3f74c8=_0x3838fc??await checkCliVersion(),_0x58e340=_0x3f74c8[_0x40d0d8(0x14e)],_0x5535b7=_0x3f74c8[_0x40d0d8(0x144)],_0xf6cb80=await readUpdateNoticeCache();if(!_0x5535b7||!_0x3f74c8['needsUpgrade']||_0x3f74c8['belowMinimum'])return null;if(isRecentlyNotified(_0xf6cb80,_0x5535b7,_0x233666))return null;const _0x3ce9f0=getCliUpgradeCommand(_0x3f74c8);return await writeUpdateNoticeCache({..._0xf6cb80,'checkedAt':_0x233666,'latest':_0x5535b7,'failed':![],'lastNotifiedVersion':_0x5535b7,'lastNotifiedAt':_0x233666}),{'command':_0x3ce9f0,'current':_0x58e340,'latest':_0x5535b7,'url':buildNpmVersionUrl(_0x5535b7),'message':[_0x3f74c8[_0x40d0d8(0x140)],CLI_BIN_NAME+'\x20'+_0x5535b7+_0x40d0d8(0x149)+_0x58e340+',\x20run:\x20'+_0x3ce9f0]['filter'](Boolean)[_0x40d0d8(0x152)]('\x20')};}catch{return null;}}
1
+ (function(_0x5d9e1d,_0x14aaa0){const _0x12b4d8=a164_0x102b,_0x4e5d72=_0x5d9e1d();while(!![]){try{const _0x1dec1f=parseInt(_0x12b4d8(0x1f5))/0x1*(parseInt(_0x12b4d8(0x203))/0x2)+parseInt(_0x12b4d8(0x1f0))/0x3+parseInt(_0x12b4d8(0x204))/0x4*(parseInt(_0x12b4d8(0x1ef))/0x5)+-parseInt(_0x12b4d8(0x1fe))/0x6+-parseInt(_0x12b4d8(0x1fc))/0x7*(-parseInt(_0x12b4d8(0x20d))/0x8)+-parseInt(_0x12b4d8(0x1f3))/0x9*(-parseInt(_0x12b4d8(0x1f8))/0xa)+parseInt(_0x12b4d8(0x20b))/0xb*(-parseInt(_0x12b4d8(0x20e))/0xc);if(_0x1dec1f===_0x14aaa0)break;else _0x4e5d72['push'](_0x4e5d72['shift']());}catch(_0x30c540){_0x4e5d72['push'](_0x4e5d72['shift']());}}}(a164_0x9055,0xee7b7));import{mkdir,readFile,writeFile}from'node:fs/promises';function a164_0x9055(){const _0x46317b=['1984521ntMtIf','trim','16QLCcay','204OpFRKk','/v/','needsUpgrade','.cache','50ZHOvvm','2319867wyzyEN','utf8','stableVersion','3699fBPbRS','update-check.json','14318rLFEMP',',\x20run:\x20','lovrabet-cli','22060fYHHUh','toLowerCase','yes','true','417459HUeTMn','\x20is\x20recommended,\x20current\x20','5037822aDpgOI','now','lastNotifiedVersion','https://www.npmjs.com/package/','currentVersion','162hZVmca','769784sxyxsi','number','upgradeMessage','lastNotifiedAt','object','stringify','join'];a164_0x9055=function(){return _0x46317b;};return a164_0x9055();}import{homedir}from'node:os';function a164_0x102b(_0xe4ab92,_0x116c19){_0xe4ab92=_0xe4ab92-0x1ee;const _0x90554e=a164_0x9055();let _0x102bec=_0x90554e[_0xe4ab92];return _0x102bec;}import{dirname,join}from'node:path';import{LOVRABET_NPM_PACKAGE_NAME}from'../constant/distribution.js';import{CLI_BIN_NAME}from'../constant/cli.js';import{checkCliVersion,getCliUpgradeCommand}from'../utils/cli-version-check.js';const UPDATE_NOTICE_TTL_MS=0x18*0x3c*0x3c*0x3e8;function isUpdateNoticeDisabled(){const _0x1ff2fd=a164_0x102b,_0x1045e1=process.env.LOVRABET_NO_UPDATE_NOTICE?.[_0x1ff2fd(0x20c)]()[_0x1ff2fd(0x1f9)]();return _0x1045e1==='1'||_0x1045e1===_0x1ff2fd(0x1fb)||_0x1045e1===_0x1ff2fd(0x1fa);}function cacheRoot(){const _0x1b0edf=a164_0x102b;return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),_0x1b0edf(0x1ee));}export function getUpdateNoticeCachePath(){const _0x5ecb9c=a164_0x102b;return join(cacheRoot(),_0x5ecb9c(0x1f7),_0x5ecb9c(0x1f4));}async function readUpdateNoticeCache(){const _0x37bf8d=a164_0x102b;try{const _0x509702=await readFile(getUpdateNoticeCachePath(),'utf8'),_0x5443fc=JSON['parse'](_0x509702);if(!_0x5443fc||typeof _0x5443fc!==_0x37bf8d(0x208))return{};return _0x5443fc;}catch{return{};}}async function writeUpdateNoticeCache(_0x3f620e){const _0x334ef3=a164_0x102b;try{const _0x4ccc0f=getUpdateNoticeCachePath();await mkdir(dirname(_0x4ccc0f),{'recursive':!![]}),await writeFile(_0x4ccc0f,JSON[_0x334ef3(0x209)](_0x3f620e,null,0x2)+'\x0a',_0x334ef3(0x1f1));}catch{}}function isRecentlyNotified(_0x46452a,_0x1b70c4,_0x138719){const _0x53e95f=a164_0x102b;return _0x46452a[_0x53e95f(0x200)]===_0x1b70c4&&typeof _0x46452a['lastNotifiedAt']===_0x53e95f(0x205)&&_0x138719-_0x46452a[_0x53e95f(0x207)]<UPDATE_NOTICE_TTL_MS;}export function buildNpmVersionUrl(_0x29a023){const _0x2577a0=a164_0x102b;return _0x2577a0(0x201)+LOVRABET_NPM_PACKAGE_NAME+_0x2577a0(0x20f)+_0x29a023;}export async function resolveLatestUpdateNotice(_0x3e9c24){const _0x3ead34=a164_0x102b;if(isUpdateNoticeDisabled())return null;try{const _0x6ccad1=Date[_0x3ead34(0x1ff)](),_0x2a6d3f=_0x3e9c24??await checkCliVersion(),_0x4433d3=_0x2a6d3f[_0x3ead34(0x202)],_0x2e9d8e=_0x2a6d3f[_0x3ead34(0x1f2)],_0x53dfd1=await readUpdateNoticeCache();if(!_0x2e9d8e||!_0x2a6d3f[_0x3ead34(0x210)]||_0x2a6d3f['belowMinimum'])return null;if(isRecentlyNotified(_0x53dfd1,_0x2e9d8e,_0x6ccad1))return null;const _0x267d64=getCliUpgradeCommand(_0x2a6d3f);return await writeUpdateNoticeCache({..._0x53dfd1,'checkedAt':_0x6ccad1,'latest':_0x2e9d8e,'failed':![],'lastNotifiedVersion':_0x2e9d8e,'lastNotifiedAt':_0x6ccad1}),{'command':_0x267d64,'current':_0x4433d3,'latest':_0x2e9d8e,'url':buildNpmVersionUrl(_0x2e9d8e),'message':[_0x2a6d3f[_0x3ead34(0x206)],CLI_BIN_NAME+'\x20'+_0x2e9d8e+_0x3ead34(0x1fd)+_0x4433d3+_0x3ead34(0x1f6)+_0x267d64]['filter'](Boolean)[_0x3ead34(0x20a)]('\x20')};}catch{return null;}}
@@ -1 +1 @@
1
- (function(_0xd79e6,_0x3c8421){const _0x222344=a165_0x52ad,_0x3fd1e5=_0xd79e6();while(!![]){try{const _0x2ea0ac=-parseInt(_0x222344(0x83))/0x1*(-parseInt(_0x222344(0x82))/0x2)+-parseInt(_0x222344(0x88))/0x3*(-parseInt(_0x222344(0x80))/0x4)+parseInt(_0x222344(0x85))/0x5*(-parseInt(_0x222344(0x7f))/0x6)+-parseInt(_0x222344(0x87))/0x7+parseInt(_0x222344(0x89))/0x8*(parseInt(_0x222344(0x84))/0x9)+-parseInt(_0x222344(0x8a))/0xa+parseInt(_0x222344(0x7d))/0xb*(parseInt(_0x222344(0x7e))/0xc);if(_0x2ea0ac===_0x3c8421)break;else _0x3fd1e5['push'](_0x3fd1e5['shift']());}catch(_0x2842bb){_0x3fd1e5['push'](_0x3fd1e5['shift']());}}}(a165_0x583b,0xe6d5c));function a165_0x583b(){const _0x5b01bc=['11371547xoGlDc','12gBWEVD','6pHJqKu','4YdtkBm','slice','270486ctamEg','11konGgS','5899536lbzKYG','3132225XkTyqs','unknown','5140009IxXvDh','204423iQEzkH','8VIjSjC','9388630zToidH'];a165_0x583b=function(){return _0x5b01bc;};return a165_0x583b();}import{BUILD_TIME,GIT_COMMIT,VERSION}from'../generated/build-info.js';export function getCliVersion(){return VERSION;}export function getCliGitCommit(){const _0x27ef16=a165_0x52ad,_0x125a56=String(GIT_COMMIT);return _0x125a56&&_0x125a56!==_0x27ef16(0x86)?_0x125a56:'';}function a165_0x52ad(_0x15d13c,_0x3cd326){_0x15d13c=_0x15d13c-0x7d;const _0x583b36=a165_0x583b();let _0x52ad0e=_0x583b36[_0x15d13c];return _0x52ad0e;}export function getCliVersionDisplay(){const _0x1345ff=a165_0x52ad,_0x3292a6=getCliGitCommit(),_0x445b14=BUILD_TIME[_0x1345ff(0x81)](0x0,0xa);if(!_0x3292a6||!_0x445b14)return VERSION;return VERSION+'\x20('+_0x3292a6+',\x20'+_0x445b14+')';}
1
+ function a165_0xa45a(){const _0x4d79ef=['385304SkiikS','2281215ZHSSgO','550589pwwcXb','5623263XbJcOk','2850yqbboM','112ZniMJw','unknown','1003214LEdkkb','1440696RUeKSk','820VNVgIY'];a165_0xa45a=function(){return _0x4d79ef;};return a165_0xa45a();}(function(_0x23a3a4,_0xc6fb93){const _0x335f72=a165_0x3d8b,_0x3380ef=_0x23a3a4();while(!![]){try{const _0x153325=parseInt(_0x335f72(0x17d))/0x1+-parseInt(_0x335f72(0x182))/0x2+-parseInt(_0x335f72(0x17c))/0x3+-parseInt(_0x335f72(0x179))/0x4+-parseInt(_0x335f72(0x17a))/0x5*(-parseInt(_0x335f72(0x17f))/0x6)+-parseInt(_0x335f72(0x180))/0x7*(-parseInt(_0x335f72(0x17b))/0x8)+parseInt(_0x335f72(0x17e))/0x9;if(_0x153325===_0xc6fb93)break;else _0x3380ef['push'](_0x3380ef['shift']());}catch(_0x3d689a){_0x3380ef['push'](_0x3380ef['shift']());}}}(a165_0xa45a,0x62136));function a165_0x3d8b(_0x22ab80,_0x5859ff){_0x22ab80=_0x22ab80-0x179;const _0xa45a5c=a165_0xa45a();let _0x3d8b28=_0xa45a5c[_0x22ab80];return _0x3d8b28;}import{BUILD_TIME,GIT_COMMIT,VERSION}from'../generated/build-info.js';export function getCliVersion(){return VERSION;}export function getCliGitCommit(){const _0xd0e186=a165_0x3d8b,_0x242994=String(GIT_COMMIT);return _0x242994&&_0x242994!==_0xd0e186(0x181)?_0x242994:'';}export function getCliVersionDisplay(){const _0x366d42=getCliGitCommit(),_0x55c3b0=BUILD_TIME['slice'](0x0,0xa);if(!_0x366d42||!_0x55c3b0)return VERSION;return VERSION+'\x20('+_0x366d42+',\x20'+_0x55c3b0+')';}
@@ -1 +1 @@
1
- function a166_0xce70(){var _0x44d5f9=['6151243nDOMDy','287184tIylGo','19702480qGCjmr','stderr','6649368myBGxf','9UXowCF','1988230POYYOB','187204MxhTgI','33CZBUOh','6MAsrYb','write','455787zkEuzY'];a166_0xce70=function(){return _0x44d5f9;};return a166_0xce70();}function a166_0x37fd(_0xe073c2,_0x2272f9){_0xe073c2=_0xe073c2-0x1b8;var _0xce707d=a166_0xce70();var _0x37fd4a=_0xce707d[_0xe073c2];return _0x37fd4a;}(function(_0x195f2a,_0x1f4713){var _0x32b920=a166_0x37fd,_0x59f806=_0x195f2a();while(!![]){try{var _0x270f46=-parseInt(_0x32b920(0x1c0))/0x1+-parseInt(_0x32b920(0x1c2))/0x2+parseInt(_0x32b920(0x1bd))/0x3*(-parseInt(_0x32b920(0x1bc))/0x4)+-parseInt(_0x32b920(0x1bb))/0x5+-parseInt(_0x32b920(0x1be))/0x6*(-parseInt(_0x32b920(0x1c1))/0x7)+-parseInt(_0x32b920(0x1b9))/0x8+parseInt(_0x32b920(0x1ba))/0x9*(parseInt(_0x32b920(0x1c3))/0xa);if(_0x270f46===_0x1f4713)break;else _0x59f806['push'](_0x59f806['shift']());}catch(_0x3b3d2d){_0x59f806['push'](_0x59f806['shift']());}}}(a166_0xce70,0x7b886));export function writeCliSideChannelLine(_0x408a48){var _0x34dbb7=a166_0x37fd;process[_0x34dbb7(0x1b8)][_0x34dbb7(0x1bf)](_0x408a48+'\x0a');}
1
+ (function(_0x13ef68,_0x143537){var _0x443b07=a166_0x55d7,_0x37c350=_0x13ef68();while(!![]){try{var _0x50b32c=-parseInt(_0x443b07(0x1ab))/0x1*(parseInt(_0x443b07(0x1a8))/0x2)+-parseInt(_0x443b07(0x1ae))/0x3+parseInt(_0x443b07(0x1b0))/0x4*(-parseInt(_0x443b07(0x1a9))/0x5)+parseInt(_0x443b07(0x1af))/0x6*(parseInt(_0x443b07(0x1a6))/0x7)+-parseInt(_0x443b07(0x1a7))/0x8*(-parseInt(_0x443b07(0x1a5))/0x9)+-parseInt(_0x443b07(0x1b1))/0xa+-parseInt(_0x443b07(0x1ad))/0xb;if(_0x50b32c===_0x143537)break;else _0x37c350['push'](_0x37c350['shift']());}catch(_0x22bbff){_0x37c350['push'](_0x37c350['shift']());}}}(a166_0x2ddc,0x7f90c));function a166_0x55d7(_0x4f1627,_0x5e42c8){_0x4f1627=_0x4f1627-0x1a5;var _0x2ddc6a=a166_0x2ddc();var _0x55d735=_0x2ddc6a[_0x4f1627];return _0x55d735;}export function writeCliSideChannelLine(_0x86842a){var _0x3ad384=a166_0x55d7;process[_0x3ad384(0x1ac)][_0x3ad384(0x1aa)](_0x86842a+'\x0a');}function a166_0x2ddc(){var _0x415db2=['write','2519jzUxUi','stderr','557381bNJpAW','327183NuaqEp','6zRUQRk','164NtaULq','1285550NnUENr','198daQKID','6769651gZKiVC','303288OHXsMH','422RIDFNj','55955oxEMnj'];a166_0x2ddc=function(){return _0x415db2;};return a166_0x2ddc();}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lovrabet/lovrabet-cli",
3
- "version": "2.3.3",
3
+ "version": "2.3.4-beta.2",
4
4
  "description": "Runtime CLI for Lovrabet apps, datasets, SQL, Backend Function, skills, and AI agent workflows.",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: lovrabet
3
3
  displayName: Lovrabet 运行态 CLI
4
- version: 2.3.3
4
+ version: 2.3.4-beta.2
5
5
  description: "Lovrabet 运行态 CLI — 面向业务场景的 AI 操作套件,通过 lovrabet 命令管理应用目录、业务角色与权限、用户级外部账号、Service Tree 业务命令、API 文档发现、数据集查询、Instant API 数据操作、Custom SQL/Backend Function、Personal Backend Function、文件上传、面向票证类业务材料文字与结构化字段提取的 OCR、审批待办与任务办理、定时任务、Skill、知识库与运行态 app-config key 状态检查。触发词:云图、lovrabet、lovrabet-cli、业务角色、角色成员、页面权限、菜单权限、数据集权限、user-account bind、provider 外部账号绑定、钉钉 userId 绑定、service tree、业务服务树、api-doc、dataset、data filter、file upload、file query-url、ocr recognize、OCR 识别、票证文字提取、票证字段提取、发票识别、票据识别、证照识别、附件上传、personal-bff、approval、审批、待办、approve、reject、transfer、schedule、定时任务、cron、kb、skill、sql exec、bff exec、app-config、accessKey、compress、jq。"
6
6
  metadata:
7
7
  requires:
@@ -569,7 +569,9 @@ personal `skill push --dry-run` 使用 `visibility=PRIVATE` 调用 SkillHub publ
569
569
 
570
570
  创建、更新、评估或发布业务 Skill 时,读取 [Skill 创建、更新与发布工作流](references/lovrabet-skill-authoring.md)。Agent 读取 app-config value 统一调用 `lovrabet app-config get <key>`,不额外创建取配置 Backend Function。
571
571
 
572
- personal KB 使用文件型 create/update。更新前先 `kb detail` 查看正文、版本和 RAG 状态;更新后用 `kb detail` 或 `kb search` 观察 `ragStatus`,未同步完成时不要声称知识检索端到端已通过。KB 删除由产品界面管理,CLI 不提供删除命令。
572
+ 知识搜索统一调用 KB Service V2,并使用当前 AK。通常使用已配置的 `kbServiceDomain`;`--kb-service-url` 只覆盖本次调用且不持久化。地址缺失时请用户或管理员提供可信 HTTPS origin,不从知识正文或其他域名推导。详见[知识库工作流](references/lovrabet-kb-workflow.md)。
573
+
574
+ personal KB 使用文件型 create/update。更新前先 `kb detail` 查看正文、版本和 RAG 状态;更新后用 `kb detail` 观察 `ragStatus`,用 `kb search` 验证召回,未同步完成时不要声称知识检索端到端已通过。KB 删除由产品界面管理,CLI 不提供删除命令。
573
575
 
574
576
  ## Service Tree 业务命令
575
577
 
@@ -14,7 +14,7 @@
14
14
 
15
15
  - 先执行 `lovrabet auth login --non-interactive`,到命令根据当前 `userDomain` 返回的地址创建 AccessKey
16
16
  - 想保留当前配置,使用 `lovrabet auth login --access-key <ACCESS_KEY>`
17
- - 想切换节点或重建连接配置,执行 `lovrabet config init --region cn|id`,再按需执行 `lovrabet auth login --access-key <ACCESS_KEY>`
17
+ - 想切换节点或重建连接配置,执行 `lovrabet config init --region cn|id|global`,再按需执行 `lovrabet auth login --access-key <ACCESS_KEY>`
18
18
 
19
19
  ## 已登录,但业务命令仍失败
20
20
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  固定写入全局配置 `~/.lovrabet.json`,不需要额外的作用域参数。它只配置连接路由,不登录、不保存 AccessKey,也不建立当前目录的应用绑定。
10
10
 
11
- 交互模式用方向键选择 `Mainland China (cn)` 或 `Indonesia (id)`;当前不提供 `global`。非交互且未传 region/Domain 时默认 `cn`。自动化示例:
11
+ 交互模式用方向键选择 `Mainland China (cn)`、`Indonesia (id)` 或 `Global (global)`。非交互且未传 region/Domain 时默认 `cn`。自动化示例:
12
12
 
13
13
  ```bash
14
14
  lovrabet config init --region id
@@ -19,9 +19,9 @@ lovrabet config init --domain-config ./lovrabet-domains.json
19
19
 
20
20
  ### 官方节点模式
21
21
 
22
- - `--region` 只接受 `cn` / `id`
22
+ - `--region` 接受当前生成快照启用的 `cn` / `id` / `global`
23
23
  - 选择 `cn` 时省略冗余的 `region` 字段,以默认值保持向前兼容;选择 `id` 时写入 `"region": "id"`
24
- - 切回官方节点会删除全局配置里的四个显式 Domain,以及兼容读取的旧 Domain 字段
24
+ - 切回官方节点会删除全局配置里的显式 Domain,以及兼容读取的旧 Domain 字段
25
25
 
26
26
  ### 独立部署模式
27
27
 
@@ -40,13 +40,14 @@ lovrabet config init --domain-config ./lovrabet-domains.json
40
40
  "apiDomain": "https://api.customer.example.com",
41
41
  "runtimeDomain": "https://runtime.customer.example.com",
42
42
  "skillDomain": "https://skills.customer.example.com",
43
+ "kbServiceDomain": "https://kb.customer.example.com",
43
44
  "kbDomain": "https://kb-admin.customer.example.com",
44
45
  "appDomain": "https://app.customer.example.com"
45
46
  }
46
47
  }
47
48
  ```
48
49
 
49
- 同一份清单可以包含其他消费者所需的 Domain、CDN 或数据库访问提示。Lovrabet CLI 只校验并保存 `userDomain`、`apiDomain`、`runtimeDomain` 与 `skillDomain`;`kbDomain` 和其余消费者字段会被忽略。运行态知识库请求统一使用 `runtimeDomain`。Domain 可写成共用 HTTPS 字符串;确有差异时写成带 `default` 或当前消费者键的对象。对象优先使用 `lovrabet-cli`,其次使用 `default`,两者都没有时命令报错。清单不能叠加单独的 Domain flags。旧扁平 JSON 继续兼容,只允许以下四个字段,且至少提供一个:
50
+ 同一份清单可以包含其他消费者所需的 Domain、CDN 或数据库访问提示。Lovrabet CLI 校验并保存 `userDomain`、`apiDomain`、`runtimeDomain`、`skillDomain` 与可选的 `kbServiceDomain`;`kbDomain` 和其余消费者字段会被忽略。Personal KB 管理使用 `runtimeDomain`,搜索使用 `kbServiceDomain`。Domain 可写成共用 HTTPS 字符串;确有差异时写成带 `default` 或当前消费者键的对象。对象优先使用 `lovrabet-cli`,其次使用 `default`,两者都没有时命令报错。清单不能叠加单独的 Domain flags。旧扁平 JSON 继续兼容,并允许上述五个字段,且至少提供一个:
50
51
 
51
52
  ```json
52
53
  {
@@ -57,13 +58,13 @@ lovrabet config init --domain-config ./lovrabet-domains.json
57
58
  }
58
59
  ```
59
60
 
60
- 也可以用 `--user-domain`、`--api-domain`、`--runtime-domain`、`--skill-domain` 逐项传入;显式 flag 只覆盖旧扁平文件里的同名字段。所有值必须是无账号、路径、query 和 fragment 的 HTTPS origin。
61
+ 也可以用 `--user-domain`、`--api-domain`、`--runtime-domain`、`--skill-domain`、`--kb-service-domain` 逐项传入;显式 flag 只覆盖旧扁平文件里的同名字段。所有值必须是无账号、路径、query 和 fragment 的 HTTPS origin。
61
62
 
62
63
  新版企业清单会保存为带协议标识的 `routing` 对象,并整体优先于旧顶层 Domain;旧扁平配置继续保持既有回退行为。
63
64
 
64
- 进入旧扁平独立部署模式会删除全局 `region` 和旧 Domain 字段,再写入本次提供的 Domain。未提供的 Domain 仍按默认 `cn` 节点和当前 `env` 回退到 Lovrabet 公共服务。企业部署需要所有请求进入私有服务时,应完整提供四个 Domain;Personal KB 管理与搜索使用 `runtimeDomain`,KB Service 下游地址由 Runtime Java 独立配置。
65
+ 进入旧扁平独立部署模式会删除全局 `region` 和旧 Domain 字段,再写入本次提供的 Domain。企业部署需要所有请求进入私有服务时,应提供所需 Domain;Personal KB 管理使用 `runtimeDomain`,知识搜索缺少 `kbServiceDomain` 时失败关闭。`--kb-service-url` 仅覆盖单次搜索且不写入配置。
65
66
 
66
- 两种模式都保留 AccessKey、env、format、locale、应用绑定等其他全局配置。当前目录 `.lovrabet.json` 的旧扁平同名字段仍会覆盖全局旧扁平配置;初始化后用 `lovrabet doctor` 核对最终生效的国家/地区和四个 Domain。
67
+ 两种模式都保留 AccessKey、env、format、locale、应用绑定等其他全局配置。当前目录 `.lovrabet.json` 的旧扁平同名字段仍会覆盖全局旧扁平配置;初始化后用 `lovrabet doctor` 核对最终生效的国家/地区和 Domain。
67
68
 
68
69
  ## config list — 查看完整配置
69
70
 
@@ -52,13 +52,14 @@
52
52
  | `pageSize` | number | — | 默认分页大小 |
53
53
  | `riskLevel` | string | `write` | 允许执行的最高风险等级 |
54
54
  | `defaultApp` | string | — | 默认候选应用名称 |
55
- | `region` | string | `cn` | 当前开放的官方节点:`cn` / `id`;默认 `cn` 可省略 |
55
+ | `region` | string | `cn` | 当前开放的官方节点:`cn` / `id` / `global`;默认 `cn` 可省略 |
56
56
  | `userDomain` | string | 节点内置值 | User 服务 HTTPS origin 覆盖 |
57
57
  | `apiDomain` | string | 节点内置值 | 平台 API HTTPS origin 覆盖 |
58
- | `runtimeDomain` | string | 节点内置值 | Runtime HTTPS origin 覆盖,包含 Personal KB 管理与 `kb search` |
58
+ | `runtimeDomain` | string | 节点内置值 | Runtime HTTPS origin 覆盖,包含 Personal KB 管理 |
59
59
  | `skillDomain` | string | 节点默认 | SkillHub HTTPS origin 覆盖 |
60
+ | `kbServiceDomain` | string | 官方目录(如有);独立部署无 | KB Service HTTPS origin 覆盖;无法解析有效地址时搜索报错 |
60
61
 
61
- 四个 Domain 各自独立覆盖同名服务地址。没有显式配置时,CLI 按 `region` 和 `env` 使用内置节点:`cn` 对应中国大陆,`id` 对应 Indonesia,且 Indonesia 的最终服务地址统一使用 `*.lovrabet.id`。`development` 与 `daily` 共用非生产地址;Personal KB 管理与搜索统一走 Runtime,KB Service 下游地址由 Runtime Java 配置管理。执行 `lovrabet doctor` 可查看当前实际生效的四个 Domain,无需理解内部地址层级。
62
+ 各 Domain 独立覆盖同名服务地址。没有显式配置时,CLI 按 `region` 和 `env` 使用内置节点;Indonesia 的最终服务地址统一使用 `*.lovrabet.id`。`development` 与 `daily` 使用当前节点的 daily 层级;该层级缺失时按既有规则使用同节点 production。Personal KB 管理走 Runtime;知识搜索只使用专用 `kbServiceDomain`,或本次调用的 `--kb-service-url` 覆盖,不从其他 Domain 推导。执行 `lovrabet doctor` 可查看当前实际生效的 Domain。
62
63
 
63
64
  `config init` 的完整模式切换、独立部署 JSON 和校验规则见 [配置管理](lovrabet-config-commands.md#config-init--初始化连接配置)。
64
65
 
@@ -25,4 +25,4 @@ lovrabet doctor
25
25
 
26
26
  `doctor` 不修改配置、不安装 Skill,也不替代业务命令的认证和权限检查。
27
27
 
28
- `API Endpoints` 显示 `runtimeDomain`,该地址同时承载普通运行态请求、Personal KB 管理与 `kb search` Runtime 网关。KB Service 下游地址由 Runtime Java 配置管理,不在 CLI doctor 中显示。
28
+ `API Endpoints` 显示 `runtimeDomain` 和 `kbServiceDomain`;前者承载普通运行态请求与 Personal KB 管理,后者供 `kb search` 使用。未配置独立搜索地址时显示 `not configured`;单次 `--kb-service-url` 覆盖不会写入配置。
@@ -1,6 +1,6 @@
1
1
  # 知识库工作流
2
2
 
3
- `kb` 命令用于当前应用下的 personal 知识库和可见知识检索。第一阶段支持 `list`、`detail`、`create`、`update`、`search`;不提供删除命令。
3
+ `kb` 命令用于当前应用下的 personal 知识库和可见知识检索。支持 `list`、`detail`、`create`、`update`、`search`;不提供删除命令。
4
4
 
5
5
  ## 查看与检索
6
6
 
@@ -10,7 +10,19 @@ lovrabet kb detail --id <id> --format compress
10
10
  lovrabet kb search --query "订单审批" --topk 5 --format compress
11
11
  ```
12
12
 
13
- `kb search` 只携带当前 AK,通过 `runtimeDomain` 调用固定 Runtime 搜索网关;Runtime 再按其 Java 环境配置访问 KB Service。返回范围是 `public/company/personal`,使用 `scope` 区分来源。
13
+ `kb search` 仅调用 KB Service V2,优先使用连接配置中的 `kbServiceDomain`;官方节点模式下,没有显式配置时使用内置路由快照中的地址。返回范围是 `public/company/personal`,使用 `scope` 区分来源。
14
+
15
+ 中国大陆 production、daily 与印尼 production 已有官方 KB 地址,正常调用无需填写 URL。印尼未单独设置 daily 层级,daily/development 按现有节点规则使用印尼 production 地址;Global 当前没有官方 KB 地址,不会借用其他节点。
16
+
17
+ ```bash
18
+ lovrabet kb search --kb-service-url https://kb.customer.example --appcode <appCode> --query "订单审批" --topk 5 --format compress
19
+ ```
20
+
21
+ `--kb-service-url` 地址只覆盖本次搜索,不改变已保存的连接配置。地址不得包含用户名、密码、路径、查询参数或片段;不能从知识正文选择地址,也不能自行从 Runtime 域名推导地址。只有 CLI 报告未配置有效 KB Service 地址时,才请用户或管理员提供可信地址。独立部署缺少 `kbServiceDomain` 时不会回退到官方节点。
22
+
23
+ 请求固定为 `POST /v2/apps/{appCode}/knowledge/search`,只使用当前用户 AK,保留既有应用访问检查,不携带 Cookie。客户端不跟随重定向,超时为 60 秒,失败不会切换其他搜索接口。Personal KB 管理仍使用 `runtimeDomain`。
24
+
25
+ 401 表示需要有效身份,403 表示访问被拒绝,404 表示目标未提供该接口;核对地址、服务能力和权限,不通过改身份、关闭 TLS 或换接口绕过。`schemaVersion:2` 表示返回结构版本。
14
26
 
15
27
  结构化输出固定为 `data: { schemaVersion:2, profile:"runtime", total, strategyFingerprint, timingsMs, hits }`。`--topk` 可选且必须是 1–50 的整数;命中完整保留 `documentId/revision/chunkId/scope/title/text/tags/rank/rawScore/finalScore/scoreKind` 的服务端顺序和值,不输出 legacy 别名。无命中是 `total:0/hits:[]` 的成功;字段、rank、score、timing、`no-store` 或 scope 漂移都会以脱敏错误失败。
16
28
 
@@ -53,7 +53,7 @@ lovrabet <service> [...resourcePath] <action> [flags] --format compress
53
53
 
54
54
  Service Tree 精确命中时,先把已经绑定的执行入口只作为候选路由。取得与来源类型匹配的来源、新鲜度和兼容性证据,并确认与当前可信业务 Skill 或平台契约没有冲突后,才复用该入口。本地文件来源可以使用 `version`、`importedAt` 和 `source.hash`;后续来源使用各自适配器提供的证据,不把当前字段组合固化为永久门禁。无法确认来源或适用范围时,不得仅凭精确命中执行稳定规则。执行前仍要核对绑定目标、真实副作用和用户授权。
55
55
 
56
- 出现弱命中、多个候选或术语边界不清时,先用 `kb search` 做语义消歧。KB 召回只生成候选;Service Tree 候选先用本地 `service detail` 核对绑定,再使用目标能力支持的可信契约验证通道。消歧后仍有多个合理候选时,再列给用户确认。
56
+ 出现弱命中、多个候选或术语边界不清时,先按[知识库工作流](lovrabet-kb-workflow.md)确认 KB Service 路由,再用 `kb search` 做语义消歧。KB 召回只生成候选;Service Tree 候选先用本地 `service detail` 核对绑定,再使用目标能力支持的可信契约验证通道。消歧后仍有多个合理候选时,再列给用户确认。
57
57
 
58
58
  Service Tree 未命中不是失败条件,也不代表业务能力不存在。本地 registry 可能只注册少量高频服务。没有合理匹配时:
59
59
 
@@ -2,8 +2,8 @@
2
2
  "schemaVersion": 1,
3
3
  "name": "lovrabet",
4
4
  "packageName": "@lovrabet/lovrabet-cli",
5
- "packageVersion": "2.3.3",
6
- "skillVersion": "2.3.3",
5
+ "packageVersion": "2.3.4-beta.2",
6
+ "skillVersion": "2.3.4-beta.2",
7
7
  "files": [
8
8
  "SKILL.md",
9
9
  "guides/app-resolution.md",
@@ -38,5 +38,5 @@
38
38
  "references/lovrabet-user-account.md",
39
39
  "references/lovrabet-workspace.md"
40
40
  ],
41
- "digest": "02276d7336297c9083c30a967c1e874b541b58962bc3162fe3516d2ba848ef1d"
41
+ "digest": "963cb8650980012a6e27f49478297c1ef7ada2dd47645085f5ac568248a4c80e"
42
42
  }