@deployxai/dxc 0.1.4 → 0.1.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/dist/index.js
CHANGED
|
@@ -23293,7 +23293,7 @@ import path8 from "node:path";
|
|
|
23293
23293
|
// apps/cli/package.json
|
|
23294
23294
|
var package_default = {
|
|
23295
23295
|
name: "@dxc/cli",
|
|
23296
|
-
version: "0.1.
|
|
23296
|
+
version: "0.1.5",
|
|
23297
23297
|
private: true,
|
|
23298
23298
|
type: "module",
|
|
23299
23299
|
bin: {
|
|
@@ -30929,6 +30929,16 @@ function userFacingDraftIntent(intent) {
|
|
|
30929
30929
|
void status;
|
|
30930
30930
|
return userFacing;
|
|
30931
30931
|
}
|
|
30932
|
+
function writeAgentBrowserEvent(output, event) {
|
|
30933
|
+
output.writeStderr(
|
|
30934
|
+
`DXC_BROWSER_EVENT ${JSON.stringify({
|
|
30935
|
+
action: "open-url",
|
|
30936
|
+
...event,
|
|
30937
|
+
surface: "agent-side-panel"
|
|
30938
|
+
})}
|
|
30939
|
+
`
|
|
30940
|
+
);
|
|
30941
|
+
}
|
|
30932
30942
|
function isLoopbackHostname(hostname) {
|
|
30933
30943
|
if (hostname === "localhost" || hostname === "[::1]" || hostname === "::1") {
|
|
30934
30944
|
return true;
|
|
@@ -31874,12 +31884,25 @@ var WechatCli = class {
|
|
|
31874
31884
|
async #pollLogin(session, options, output, deviceSession) {
|
|
31875
31885
|
const opened = options.noOpen === true ? false : await this.#openExternal(session.authorizationUrl);
|
|
31876
31886
|
const action = session.purpose === "link" ? "\u5173\u8054\u4E2A\u4EBA\u5FAE\u4FE1" : session.purpose === "start" ? "\u767B\u5F55\u6216\u521B\u5EFA DxC \u5185\u5BB9\u7A7A\u95F4" : "\u767B\u5F55 DxC";
|
|
31877
|
-
if (
|
|
31878
|
-
output
|
|
31887
|
+
if (options.noOpen === true) {
|
|
31888
|
+
writeAgentBrowserEvent(output, {
|
|
31889
|
+
expiresAt: session.expiresAt,
|
|
31890
|
+
kind: "wechat-login",
|
|
31891
|
+
purpose: session.purpose,
|
|
31892
|
+
url: session.authorizationUrl
|
|
31893
|
+
});
|
|
31894
|
+
output.writeStderr(
|
|
31895
|
+
`\u8BF7\u7531\u5F53\u524D Agent \u5728\u53F3\u4FA7\u5185\u7F6E\u6D4F\u89C8\u5668\u81EA\u52A8\u6253\u5F00\u5FAE\u4FE1\u767B\u5F55\u9875\u9762\u5E76\u7B49\u5F85\u626B\u7801${action}\uFF0C\u4E0D\u8981\u5411\u7528\u6237\u5C55\u793A\u94FE\u63A5\u6216\u8981\u6C42\u7528\u6237\u70B9\u51FB\u3002
|
|
31896
|
+
`
|
|
31897
|
+
);
|
|
31898
|
+
} else if (opened) {
|
|
31899
|
+
output.writeStderr(`\u5DF2\u5728\u7CFB\u7EDF\u6D4F\u89C8\u5668\u6253\u5F00\u5FAE\u4FE1\u767B\u5F55\u9875\u9762\uFF0C\u8BF7\u626B\u7801${action}\u3002
|
|
31879
31900
|
`);
|
|
31880
31901
|
} else {
|
|
31881
|
-
output.writeStderr(
|
|
31882
|
-
|
|
31902
|
+
output.writeStderr(
|
|
31903
|
+
`\u7CFB\u7EDF\u6D4F\u89C8\u5668\u672A\u80FD\u81EA\u52A8\u6253\u5F00\u5FAE\u4FE1\u767B\u5F55\u9875\u9762\uFF0C\u8BF7\u624B\u52A8\u6253\u5F00\uFF1A${session.authorizationUrl}
|
|
31904
|
+
`
|
|
31905
|
+
);
|
|
31883
31906
|
}
|
|
31884
31907
|
const deadline = Date.now() + options.timeoutSeconds * 1e3;
|
|
31885
31908
|
while (Date.now() < deadline) {
|
|
@@ -31968,11 +31991,22 @@ var WechatCli = class {
|
|
|
31968
31991
|
}
|
|
31969
31992
|
async #pollAuthorization(baseUrl, session, deviceRefreshTokenToSave, deviceTokenToSave, options, output) {
|
|
31970
31993
|
const opened = options.noOpen === true ? false : await this.#openExternal(session.authorizationUrl);
|
|
31971
|
-
if (
|
|
31972
|
-
output
|
|
31994
|
+
if (options.noOpen === true) {
|
|
31995
|
+
writeAgentBrowserEvent(output, {
|
|
31996
|
+
expiresAt: session.expiresAt,
|
|
31997
|
+
kind: "wechat-account-binding",
|
|
31998
|
+
url: session.authorizationUrl
|
|
31999
|
+
});
|
|
32000
|
+
output.writeStderr(
|
|
32001
|
+
"\u8BF7\u7531\u5F53\u524D Agent \u5728\u53F3\u4FA7\u5185\u7F6E\u6D4F\u89C8\u5668\u81EA\u52A8\u6253\u5F00\u5FAE\u4FE1\u516C\u4F17\u53F7\u7ED1\u5B9A\u9875\u9762\u5E76\u7B49\u5F85\u516C\u4F17\u53F7\u7BA1\u7406\u5458\u626B\u7801\uFF0C\u4E0D\u8981\u5411\u7528\u6237\u5C55\u793A\u94FE\u63A5\u6216\u8981\u6C42\u7528\u6237\u70B9\u51FB\u3002\n"
|
|
32002
|
+
);
|
|
32003
|
+
} else if (opened) {
|
|
32004
|
+
output.writeStderr("\u5DF2\u5728\u7CFB\u7EDF\u6D4F\u89C8\u5668\u6253\u5F00\u5FAE\u4FE1\u5B98\u65B9\u6388\u6743\u9875\u9762\uFF0C\u8BF7\u4F7F\u7528\u516C\u4F17\u53F7\u7BA1\u7406\u5458\u5FAE\u4FE1\u626B\u7801\u786E\u8BA4\u3002\n");
|
|
31973
32005
|
} else {
|
|
31974
|
-
output.writeStderr(
|
|
31975
|
-
|
|
32006
|
+
output.writeStderr(
|
|
32007
|
+
`\u7CFB\u7EDF\u6D4F\u89C8\u5668\u672A\u80FD\u81EA\u52A8\u6253\u5F00\u5FAE\u4FE1\u516C\u4F17\u53F7\u7ED1\u5B9A\u9875\u9762\uFF0C\u8BF7\u624B\u52A8\u6253\u5F00\uFF1A${session.authorizationUrl}
|
|
32008
|
+
`
|
|
32009
|
+
);
|
|
31976
32010
|
}
|
|
31977
32011
|
const deadline = Date.now() + options.timeoutSeconds * 1e3;
|
|
31978
32012
|
while (Date.now() < deadline) {
|
|
@@ -32337,7 +32371,7 @@ function createProgram(context) {
|
|
|
32337
32371
|
const skills = program2.command("skills").description("\u5B89\u88C5 DxC \u5B98\u65B9 Skills");
|
|
32338
32372
|
const source = program2.command("source").description("\u5728\u672C\u673A\u91C7\u96C6\u53EF\u8FFD\u6EAF\u7684\u516C\u5F00\u7814\u7A76\u4FE1\u53F7");
|
|
32339
32373
|
const sourceFetch = source.command("fetch").description("\u8BFB\u53D6 RSS\u3001HTTP API \u6216\u516C\u5F00 HTML");
|
|
32340
|
-
program2.command("setup").description("\u9996\u6B21\u4F7F\u7528\uFF1A\u626B\u7801\u767B\u5F55\u6216\u6CE8\u518C\uFF0C\u5E76\u5728\u9700\u8981\u65F6\u7ED1\u5B9A\u516C\u4F17\u53F7").option("--no-open", "\u4E0D\
|
|
32374
|
+
program2.command("setup").description("\u9996\u6B21\u4F7F\u7528\uFF1A\u626B\u7801\u767B\u5F55\u6216\u6CE8\u518C\uFF0C\u5E76\u5728\u9700\u8981\u65F6\u7ED1\u5B9A\u516C\u4F17\u53F7").option("--no-open", "\u4E0D\u6253\u5F00\u7CFB\u7EDF\u6D4F\u89C8\u5668\uFF1B\u7531 Agent \u5728\u5BBF\u4E3B\u53F3\u4FA7\u5185\u7F6E\u6D4F\u89C8\u5668\u6253\u5F00\u626B\u7801\u9875").option("--server <url>", "DxC API \u5730\u5740\uFF1B\u9ED8\u8BA4\u5B98\u65B9 DxC Server").option("--timeout <seconds>", "\u6BCF\u6B21\u7B49\u5F85\u626B\u7801\u7684\u79D2\u6570", "900").action(
|
|
32341
32375
|
async (options) => runWechatAction(context, async (wechatCli) => {
|
|
32342
32376
|
await wechatCli.setup(
|
|
32343
32377
|
{
|
|
@@ -32704,7 +32738,7 @@ function createProgram(context) {
|
|
|
32704
32738
|
async (knowledgeCli) => knowledgeCli.syncQuotes(options.lexicalOnly === true)
|
|
32705
32739
|
)
|
|
32706
32740
|
);
|
|
32707
|
-
auth.command("start").description("\u626B\u7801\u767B\u5F55\uFF1B\u9996\u6B21\u4F7F\u7528\u65F6\u660E\u786E\u521B\u5EFA\u65B0\u7684 DxC \u5185\u5BB9\u7A7A\u95F4").option("--no-open", "\u4E0D\
|
|
32741
|
+
auth.command("start").description("\u626B\u7801\u767B\u5F55\uFF1B\u9996\u6B21\u4F7F\u7528\u65F6\u660E\u786E\u521B\u5EFA\u65B0\u7684 DxC \u5185\u5BB9\u7A7A\u95F4").option("--no-open", "\u4E0D\u6253\u5F00\u7CFB\u7EDF\u6D4F\u89C8\u5668\uFF1B\u7531 Agent \u5728\u5BBF\u4E3B\u53F3\u4FA7\u5185\u7F6E\u6D4F\u89C8\u5668\u6253\u5F00\u626B\u7801\u9875").option("--server <url>", "DxC API \u5730\u5740\uFF1B\u9ED8\u8BA4\u5B98\u65B9 DxC Server").option("--timeout <seconds>", "\u7B49\u5F85\u626B\u7801\u7684\u79D2\u6570", "900").action(
|
|
32708
32742
|
async (options) => runWechatAction(context, async (wechatCli) => {
|
|
32709
32743
|
await wechatCli.start(
|
|
32710
32744
|
{
|
|
@@ -32716,7 +32750,7 @@ function createProgram(context) {
|
|
|
32716
32750
|
);
|
|
32717
32751
|
})
|
|
32718
32752
|
);
|
|
32719
|
-
auth.command("link-wechat").description("\u628A\u4E2A\u4EBA\u5FAE\u4FE1\u5173\u8054\u5230\u5F53\u524D DxC \u7528\u6237").option("--no-open", "\u4E0D\
|
|
32753
|
+
auth.command("link-wechat").description("\u628A\u4E2A\u4EBA\u5FAE\u4FE1\u5173\u8054\u5230\u5F53\u524D DxC \u7528\u6237").option("--no-open", "\u4E0D\u6253\u5F00\u7CFB\u7EDF\u6D4F\u89C8\u5668\uFF1B\u7531 Agent \u5728\u5BBF\u4E3B\u53F3\u4FA7\u5185\u7F6E\u6D4F\u89C8\u5668\u6253\u5F00\u626B\u7801\u9875").option("--server <url>", "DxC API \u5730\u5740").option("--timeout <seconds>", "\u7B49\u5F85\u626B\u7801\u7684\u79D2\u6570", "900").action(
|
|
32720
32754
|
async (options) => runWechatAction(context, async (wechatCli) => {
|
|
32721
32755
|
await wechatCli.linkWechat(
|
|
32722
32756
|
{
|
|
@@ -32728,7 +32762,7 @@ function createProgram(context) {
|
|
|
32728
32762
|
);
|
|
32729
32763
|
})
|
|
32730
32764
|
);
|
|
32731
|
-
auth.command("login").description("\u5728\u5F53\u524D\u8BBE\u5907\u4F7F\u7528\u5DF2\u5173\u8054\u7684\u4E2A\u4EBA\u5FAE\u4FE1\u767B\u5F55").option("--no-open", "\u4E0D\
|
|
32765
|
+
auth.command("login").description("\u5728\u5F53\u524D\u8BBE\u5907\u4F7F\u7528\u5DF2\u5173\u8054\u7684\u4E2A\u4EBA\u5FAE\u4FE1\u767B\u5F55").option("--no-open", "\u4E0D\u6253\u5F00\u7CFB\u7EDF\u6D4F\u89C8\u5668\uFF1B\u7531 Agent \u5728\u5BBF\u4E3B\u53F3\u4FA7\u5185\u7F6E\u6D4F\u89C8\u5668\u6253\u5F00\u626B\u7801\u9875").option("--server <url>", "DxC API \u5730\u5740").option("--timeout <seconds>", "\u7B49\u5F85\u626B\u7801\u7684\u79D2\u6570", "900").action(
|
|
32732
32766
|
async (options) => runWechatAction(context, async (wechatCli) => {
|
|
32733
32767
|
await wechatCli.login(
|
|
32734
32768
|
{
|
|
@@ -32750,7 +32784,7 @@ function createProgram(context) {
|
|
|
32750
32784
|
await wechatCli.logout(context);
|
|
32751
32785
|
})
|
|
32752
32786
|
);
|
|
32753
|
-
wechat.command("connect").description("\u6253\u5F00\u5FAE\u4FE1\u7B2C\u4E09\u65B9\u5E73\u53F0\u6388\u6743\u9875\u5E76\u7B49\u5F85\u516C\u4F17\u53F7\u7ED1\u5B9A").option("--force", "\u5373\u4F7F\u5F53\u524D\u5DF2\u6709\u516C\u4F17\u53F7\uFF0C\u4E5F\u7EE7\u7EED\u65B0\u589E\u6216\u91CD\u65B0\u6388\u6743").option("--no-open", "\u4E0D\
|
|
32787
|
+
wechat.command("connect").description("\u6253\u5F00\u5FAE\u4FE1\u7B2C\u4E09\u65B9\u5E73\u53F0\u6388\u6743\u9875\u5E76\u7B49\u5F85\u516C\u4F17\u53F7\u7ED1\u5B9A").option("--force", "\u5373\u4F7F\u5F53\u524D\u5DF2\u6709\u516C\u4F17\u53F7\uFF0C\u4E5F\u7EE7\u7EED\u65B0\u589E\u6216\u91CD\u65B0\u6388\u6743").option("--no-open", "\u4E0D\u6253\u5F00\u7CFB\u7EDF\u6D4F\u89C8\u5668\uFF1B\u7531 Agent \u5728\u5BBF\u4E3B\u53F3\u4FA7\u5185\u7F6E\u6D4F\u89C8\u5668\u6253\u5F00\u626B\u7801\u9875").option("--server <url>", "DxC API \u5730\u5740").option("--timeout <seconds>", "\u7B49\u5F85\u626B\u7801\u7684\u79D2\u6570", "900").action(
|
|
32754
32788
|
async (options) => runWechatAction(context, async (wechatCli) => {
|
|
32755
32789
|
await wechatCli.connect(
|
|
32756
32790
|
{
|
package/package.json
CHANGED
|
@@ -69,8 +69,10 @@ description: DxC 图文内容工作流的唯一公开入口。用户说“写一
|
|
|
69
69
|
- 稍后导入或跳过:运行普通 `project init`,并展示返回的
|
|
70
70
|
`knowledgeBootstrap.status` 和 `recommendedCommand`;
|
|
71
71
|
- 不扫描主目录、Obsidian、云盘或浏览器。
|
|
72
|
-
6. 仅在进入云端预览或交付时,运行 `dxc setup`。个人微信登录和公众号管理员授权是两种不同扫码语义,
|
|
73
|
-
|
|
72
|
+
6. 仅在进入云端预览或交付时,运行 `dxc setup --no-open`。个人微信登录和公众号管理员授权是两种不同扫码语义,
|
|
73
|
+
不得混为一谈。读取 CLI 输出的 `DXC_BROWSER_EVENT` 后,必须由当前 Agent 在右侧
|
|
74
|
+
`agent-side-panel`(右侧内置浏览器区域)自动打开事件中的 URL;不要向用户展示 URL、
|
|
75
|
+
不要让用户点击链接。若宿主没有内置浏览器,暂停而不是切换到系统浏览器。
|
|
74
76
|
|
|
75
77
|
## 初始化历史内容记忆
|
|
76
78
|
|
|
@@ -12,9 +12,14 @@ description: 把已确认的 Markdown 文章、视觉阶段已生产的内容封
|
|
|
12
12
|
|
|
13
13
|
1. 运行 `dxc version --json`,要求 CLI `0.1.x` 且协议兼容。
|
|
14
14
|
2. 若设备尚未登录或没有公众号,取得 DxC Server 地址后运行
|
|
15
|
-
`dxc setup --server <https-url
|
|
15
|
+
`dxc setup --server <https-url> --no-open`。不要让 CLI 调起系统浏览器。读取命令输出的
|
|
16
|
+
`DXC_BROWSER_EVENT` 后,立即调用当前 Agent 宿主的内置浏览器,在右侧
|
|
17
|
+
`agent-side-panel`(右侧内置浏览器区域)打开事件中的 URL;不要在对话中展示 URL,也不
|
|
18
|
+
要让用户点击链接。该命令最多出现两次不同语义的扫码:
|
|
16
19
|
- 个人微信登录或明确注册 DxC 用户;
|
|
17
20
|
- 公众号管理员授权第三方平台的草稿能力。
|
|
21
|
+
页面打开后保持 CLI 轮询继续运行。若宿主没有右侧内置浏览器,暂停并说明当前环境无法
|
|
22
|
+
完成扫码,不要回退为系统浏览器或手动链接。
|
|
18
23
|
3. 运行 `dxc wechat accounts`。没有可用账号时停止;多个账号时向用户展示名称和
|
|
19
24
|
`accountId`,要求明确选择,不能使用“上一次账号”。
|
|
20
25
|
4. 运行 `dxc project status --directory <project> --json`,读取实际产物路径。要求正文
|