@bryanhu/codexly 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/dist/{chunk-HHFZB7H6.js → chunk-XXAU2AQY.js} +65 -65
- package/dist/cli.js +2 -2
- package/dist/server/index.js +1 -1
- package/dist/web/.vite/manifest.json +65 -65
- package/dist/web/.vite/manifest.json.br +0 -0
- package/dist/web/.vite/manifest.json.gz +0 -0
- package/dist/web/assets/{button-group-CaIXhcq-.js → button-group-JQ4SKm_M.js} +1 -1
- package/dist/web/assets/button-group-JQ4SKm_M.js.br +0 -0
- package/dist/web/assets/button-group-JQ4SKm_M.js.gz +0 -0
- package/dist/web/assets/{context-menu-C6o4ShKC.js → context-menu-BY4fW29a.js} +1 -1
- package/dist/web/assets/context-menu-BY4fW29a.js.br +0 -0
- package/dist/web/assets/context-menu-BY4fW29a.js.gz +0 -0
- package/dist/web/assets/{file-review-dialog-Cd_FWDJj.js → file-review-dialog-CQIeVer4.js} +1 -1
- package/dist/web/assets/file-review-dialog-CQIeVer4.js.br +0 -0
- package/dist/web/assets/file-review-dialog-CQIeVer4.js.gz +0 -0
- package/dist/web/assets/{git-history-panel-CkQhJ-Tz.js → git-history-panel-cnmuCR7N.js} +1 -1
- package/dist/web/assets/git-history-panel-cnmuCR7N.js.br +0 -0
- package/dist/web/assets/git-history-panel-cnmuCR7N.js.gz +0 -0
- package/dist/web/assets/{global-settings-dialog-B9ACq0CT.js → global-settings-dialog-BtJYh2_p.js} +1 -1
- package/dist/web/assets/global-settings-dialog-BtJYh2_p.js.br +0 -0
- package/dist/web/assets/global-settings-dialog-BtJYh2_p.js.gz +0 -0
- package/dist/web/assets/index-BfZBHCrX.css +2 -0
- package/dist/web/assets/index-BfZBHCrX.css.br +0 -0
- package/dist/web/assets/index-BfZBHCrX.css.gz +0 -0
- package/dist/web/assets/index-CaTeB0Nm.js +4 -0
- package/dist/web/assets/index-CaTeB0Nm.js.br +0 -0
- package/dist/web/assets/index-CaTeB0Nm.js.gz +0 -0
- package/dist/web/assets/{installed-skills-pane-BmjTd0Qn.js → installed-skills-pane-mwXKrGXA.js} +1 -1
- package/dist/web/assets/installed-skills-pane-mwXKrGXA.js.br +0 -0
- package/dist/web/assets/installed-skills-pane-mwXKrGXA.js.gz +0 -0
- package/dist/web/assets/{lazy-message-response-Cnc-bbSf.js → lazy-message-response-Biq2ok2E.js} +2 -2
- package/dist/web/assets/lazy-message-response-Biq2ok2E.js.br +0 -0
- package/dist/web/assets/lazy-message-response-Biq2ok2E.js.gz +0 -0
- package/dist/web/assets/{mcp-management-pane-CQPXfAO3.js → mcp-management-pane-BdtuiZSq.js} +1 -1
- package/dist/web/assets/mcp-management-pane-BdtuiZSq.js.br +0 -0
- package/dist/web/assets/mcp-management-pane-BdtuiZSq.js.gz +0 -0
- package/dist/web/assets/{message-response-CamC0ebm.js → message-response-CHtn6tyl.js} +1 -1
- package/dist/web/assets/message-response-CHtn6tyl.js.br +0 -0
- package/dist/web/assets/message-response-CHtn6tyl.js.gz +0 -0
- package/dist/web/assets/{official-plugins-pane-BqGBX0cD.js → official-plugins-pane-BfNSSHYd.js} +1 -1
- package/dist/web/assets/official-plugins-pane-BfNSSHYd.js.br +0 -0
- package/dist/web/assets/official-plugins-pane-BfNSSHYd.js.gz +0 -0
- package/dist/web/assets/{project-file-popup-page-DCct78Pu.js → project-file-popup-page-CfPvJlpw.js} +1 -1
- package/dist/web/assets/project-file-popup-page-CfPvJlpw.js.br +0 -0
- package/dist/web/assets/project-file-popup-page-CfPvJlpw.js.gz +0 -0
- package/dist/web/assets/{project-source-panel-BC6YVLSp.js → project-source-panel-Cw_heTH4.js} +1 -1
- package/dist/web/assets/project-source-panel-Cw_heTH4.js.br +0 -0
- package/dist/web/assets/project-source-panel-Cw_heTH4.js.gz +0 -0
- package/dist/web/assets/{prompt-input-FNZNBIXc.js → prompt-input-C4sSOZy9.js} +1 -1
- package/dist/web/assets/prompt-input-C4sSOZy9.js.br +0 -0
- package/dist/web/assets/prompt-input-C4sSOZy9.js.gz +0 -0
- package/dist/web/assets/{prompt-input-controls-BTOpD8Y-.js → prompt-input-controls-CcVBHVXv.js} +1 -1
- package/dist/web/assets/prompt-input-controls-CcVBHVXv.js.br +0 -0
- package/dist/web/assets/prompt-input-controls-CcVBHVXv.js.gz +0 -0
- package/dist/web/assets/{scheduled-task-date-time-picker-CL9Xb-R5.js → scheduled-task-date-time-picker-DwKbR28n.js} +1 -1
- package/dist/web/assets/scheduled-task-date-time-picker-DwKbR28n.js.br +0 -0
- package/dist/web/assets/scheduled-task-date-time-picker-DwKbR28n.js.gz +0 -0
- package/dist/web/assets/scheduled-task-schedule-Cfuv_Kyf.js +1 -0
- package/dist/web/assets/scheduled-task-schedule-Cfuv_Kyf.js.br +0 -0
- package/dist/web/assets/scheduled-task-schedule-Cfuv_Kyf.js.gz +0 -0
- package/dist/web/assets/scheduled-tasks-container-CiYF44lc.js +2 -0
- package/dist/web/assets/scheduled-tasks-container-CiYF44lc.js.br +0 -0
- package/dist/web/assets/scheduled-tasks-container-CiYF44lc.js.gz +0 -0
- package/dist/web/assets/{sheet-CJD6cMoi.js → sheet-BNFRnQAh.js} +1 -1
- package/dist/web/assets/sheet-BNFRnQAh.js.br +0 -0
- package/dist/web/assets/sheet-BNFRnQAh.js.gz +0 -0
- package/dist/web/assets/{skills-market-container-B8Mss3fh.js → skills-market-container-CfaZk3xM.js} +2 -2
- package/dist/web/assets/skills-market-container-CfaZk3xM.js.br +0 -0
- package/dist/web/assets/skills-market-container-CfaZk3xM.js.gz +0 -0
- package/dist/web/assets/{third-party-marketplace-pane-BsSxaqQR.js → third-party-marketplace-pane-okgMXBqM.js} +1 -1
- package/dist/web/assets/third-party-marketplace-pane-okgMXBqM.js.br +0 -0
- package/dist/web/assets/third-party-marketplace-pane-okgMXBqM.js.gz +0 -0
- package/dist/web/assets/{workbench-composer-Co9mAWP_.js → workbench-composer-Bx73x_MF.js} +2 -2
- package/dist/web/assets/workbench-composer-Bx73x_MF.js.br +0 -0
- package/dist/web/assets/workbench-composer-Bx73x_MF.js.gz +0 -0
- package/dist/web/assets/{workbench-inspector-changes-DcJkQFAH.js → workbench-inspector-changes-DXkowHaf.js} +1 -1
- package/dist/web/assets/workbench-inspector-changes-DXkowHaf.js.br +0 -0
- package/dist/web/assets/workbench-inspector-changes-DXkowHaf.js.gz +0 -0
- package/dist/web/assets/{workbench-pet-canvas-BR5AhUVL.js → workbench-pet-canvas-BroOHYwq.js} +1 -1
- package/dist/web/assets/workbench-pet-canvas-BroOHYwq.js.br +0 -0
- package/dist/web/assets/workbench-pet-canvas-BroOHYwq.js.gz +0 -0
- package/dist/web/assets/{workbench-shell-5F-GWLMO.js → workbench-shell-DnnhILPt.js} +3 -3
- package/dist/web/assets/workbench-shell-DnnhILPt.js.br +0 -0
- package/dist/web/assets/workbench-shell-DnnhILPt.js.gz +0 -0
- package/dist/web/index.html +2 -2
- package/dist/web/index.html.br +0 -0
- package/dist/web/index.html.gz +0 -0
- package/package.json +1 -1
- package/dist/web/assets/button-group-CaIXhcq-.js.br +0 -0
- package/dist/web/assets/button-group-CaIXhcq-.js.gz +0 -0
- package/dist/web/assets/context-menu-C6o4ShKC.js.br +0 -0
- package/dist/web/assets/context-menu-C6o4ShKC.js.gz +0 -0
- package/dist/web/assets/file-review-dialog-Cd_FWDJj.js.br +0 -0
- package/dist/web/assets/file-review-dialog-Cd_FWDJj.js.gz +0 -0
- package/dist/web/assets/git-history-panel-CkQhJ-Tz.js.br +0 -0
- package/dist/web/assets/git-history-panel-CkQhJ-Tz.js.gz +0 -0
- package/dist/web/assets/global-settings-dialog-B9ACq0CT.js.br +0 -0
- package/dist/web/assets/global-settings-dialog-B9ACq0CT.js.gz +0 -0
- package/dist/web/assets/index-CergXz2m.js +0 -4
- package/dist/web/assets/index-CergXz2m.js.br +0 -0
- package/dist/web/assets/index-CergXz2m.js.gz +0 -0
- package/dist/web/assets/index-jg-dNJI1.css +0 -2
- package/dist/web/assets/index-jg-dNJI1.css.br +0 -0
- package/dist/web/assets/index-jg-dNJI1.css.gz +0 -0
- package/dist/web/assets/installed-skills-pane-BmjTd0Qn.js.br +0 -0
- package/dist/web/assets/installed-skills-pane-BmjTd0Qn.js.gz +0 -0
- package/dist/web/assets/lazy-message-response-Cnc-bbSf.js.br +0 -0
- package/dist/web/assets/lazy-message-response-Cnc-bbSf.js.gz +0 -0
- package/dist/web/assets/mcp-management-pane-CQPXfAO3.js.br +0 -0
- package/dist/web/assets/mcp-management-pane-CQPXfAO3.js.gz +0 -0
- package/dist/web/assets/message-response-CamC0ebm.js.br +0 -0
- package/dist/web/assets/message-response-CamC0ebm.js.gz +0 -0
- package/dist/web/assets/official-plugins-pane-BqGBX0cD.js.br +0 -0
- package/dist/web/assets/official-plugins-pane-BqGBX0cD.js.gz +0 -0
- package/dist/web/assets/project-file-popup-page-DCct78Pu.js.br +0 -0
- package/dist/web/assets/project-file-popup-page-DCct78Pu.js.gz +0 -0
- package/dist/web/assets/project-source-panel-BC6YVLSp.js.br +0 -0
- package/dist/web/assets/project-source-panel-BC6YVLSp.js.gz +0 -0
- package/dist/web/assets/prompt-input-FNZNBIXc.js.br +0 -0
- package/dist/web/assets/prompt-input-FNZNBIXc.js.gz +0 -0
- package/dist/web/assets/prompt-input-controls-BTOpD8Y-.js.br +0 -0
- package/dist/web/assets/prompt-input-controls-BTOpD8Y-.js.gz +0 -0
- package/dist/web/assets/scheduled-task-date-time-picker-CL9Xb-R5.js.br +0 -0
- package/dist/web/assets/scheduled-task-date-time-picker-CL9Xb-R5.js.gz +0 -0
- package/dist/web/assets/scheduled-task-schedule-DfXHCkgb.js +0 -1
- package/dist/web/assets/scheduled-task-schedule-DfXHCkgb.js.br +0 -0
- package/dist/web/assets/scheduled-task-schedule-DfXHCkgb.js.gz +0 -0
- package/dist/web/assets/scheduled-tasks-container-Bn6tqtCc.js +0 -2
- package/dist/web/assets/scheduled-tasks-container-Bn6tqtCc.js.br +0 -0
- package/dist/web/assets/scheduled-tasks-container-Bn6tqtCc.js.gz +0 -0
- package/dist/web/assets/sheet-CJD6cMoi.js.br +0 -0
- package/dist/web/assets/sheet-CJD6cMoi.js.gz +0 -0
- package/dist/web/assets/skills-market-container-B8Mss3fh.js.br +0 -0
- package/dist/web/assets/skills-market-container-B8Mss3fh.js.gz +0 -0
- package/dist/web/assets/third-party-marketplace-pane-BsSxaqQR.js.br +0 -0
- package/dist/web/assets/third-party-marketplace-pane-BsSxaqQR.js.gz +0 -0
- package/dist/web/assets/workbench-composer-Co9mAWP_.js.br +0 -0
- package/dist/web/assets/workbench-composer-Co9mAWP_.js.gz +0 -0
- package/dist/web/assets/workbench-inspector-changes-DcJkQFAH.js.br +0 -0
- package/dist/web/assets/workbench-inspector-changes-DcJkQFAH.js.gz +0 -0
- package/dist/web/assets/workbench-pet-canvas-BR5AhUVL.js.br +0 -0
- package/dist/web/assets/workbench-pet-canvas-BR5AhUVL.js.gz +0 -0
- package/dist/web/assets/workbench-shell-5F-GWLMO.js.br +0 -0
- package/dist/web/assets/workbench-shell-5F-GWLMO.js.gz +0 -0
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
- Run project or temporary Codex tasks and follow responses, commands, and file changes in real time
|
|
40
40
|
- Keep follow-up work in a persistent task queue, and edit queued messages and attachments before they run
|
|
41
41
|
- Track active work on a task board, maintain project to-dos, and schedule persistent one-time or recurring tasks
|
|
42
|
-
- Attach files and images, reference project files with `@`, answer MCP input requests, and ask asynchronous questions while a task runs
|
|
42
|
+
- Attach files and images, reference project files with `@`, answer MCP input requests, and ask or dismiss asynchronous questions while a task runs
|
|
43
43
|
- Choose the model, reasoning effort, Fast mode, approval behavior, and file access level for each task
|
|
44
44
|
- Manage installed Skills, official Plugins, MCP servers, and compatible third-party Skills from ClawHub in one extension center
|
|
45
45
|
- Organize ordered multi-root projects, archive project or temporary tasks, and permanently delete tasks when needed
|
package/README.zh-CN.md
CHANGED
|
@@ -9,7 +9,7 @@ Codexly 是一个在浏览器中使用 Codex 的本地 AI 编程工作台。它
|
|
|
9
9
|
- 运行项目任务或临时任务,实时查看回复、命令和文件变更
|
|
10
10
|
- 使用持久化任务队列安排后续工作,并在执行前编辑排队消息和附件
|
|
11
11
|
- 使用任务看板跟踪进行中的工作、维护项目待办,并创建持久化的一次性或周期定时任务
|
|
12
|
-
- 添加文件与图片、使用 `@` 引用项目文件、回答 MCP
|
|
12
|
+
- 添加文件与图片、使用 `@` 引用项目文件、回答 MCP 补充输入请求,并在任务执行期间发起或关闭异步问题
|
|
13
13
|
- 为每个任务选择模型、思考量、快速模式、审批方式和文件访问范围
|
|
14
14
|
- 在扩展中心统一管理已安装 Skills、官方 Plugins、MCP Servers,以及来自 ClawHub 的兼容第三方 Skills
|
|
15
15
|
- 组织有序的多根项目、归档项目或临时任务,并按需永久删除任务
|
|
@@ -36591,10 +36591,10 @@ var require_resolve_block_map = __commonJS({
|
|
|
36591
36591
|
let offset = bm.offset;
|
|
36592
36592
|
let commentEnd = null;
|
|
36593
36593
|
for (const collItem of bm.items) {
|
|
36594
|
-
const { start, key, sep:
|
|
36594
|
+
const { start, key, sep: sep7, value } = collItem;
|
|
36595
36595
|
const keyProps = resolveProps.resolveProps(start, {
|
|
36596
36596
|
indicator: "explicit-key-ind",
|
|
36597
|
-
next: key ??
|
|
36597
|
+
next: key ?? sep7?.[0],
|
|
36598
36598
|
offset,
|
|
36599
36599
|
onError: onError2,
|
|
36600
36600
|
parentIndent: bm.indent,
|
|
@@ -36608,7 +36608,7 @@ var require_resolve_block_map = __commonJS({
|
|
|
36608
36608
|
else if ("indent" in key && key.indent !== bm.indent)
|
|
36609
36609
|
onError2(offset, "BAD_INDENT", startColMsg);
|
|
36610
36610
|
}
|
|
36611
|
-
if (!keyProps.anchor && !keyProps.tag && !
|
|
36611
|
+
if (!keyProps.anchor && !keyProps.tag && !sep7) {
|
|
36612
36612
|
commentEnd = keyProps.end;
|
|
36613
36613
|
if (keyProps.comment) {
|
|
36614
36614
|
if (map.comment)
|
|
@@ -36632,7 +36632,7 @@ var require_resolve_block_map = __commonJS({
|
|
|
36632
36632
|
ctx.atKey = false;
|
|
36633
36633
|
if (utilMapIncludes.mapIncludes(ctx, map.items, keyNode))
|
|
36634
36634
|
onError2(keyStart, "DUPLICATE_KEY", "Map keys must be unique");
|
|
36635
|
-
const valueProps = resolveProps.resolveProps(
|
|
36635
|
+
const valueProps = resolveProps.resolveProps(sep7 ?? [], {
|
|
36636
36636
|
indicator: "map-value-ind",
|
|
36637
36637
|
next: value,
|
|
36638
36638
|
offset: keyNode.range[2],
|
|
@@ -36648,7 +36648,7 @@ var require_resolve_block_map = __commonJS({
|
|
|
36648
36648
|
if (ctx.options.strict && keyProps.start < valueProps.found.offset - 1024)
|
|
36649
36649
|
onError2(keyNode.range, "KEY_OVER_1024_CHARS", "The : indicator must be at most 1024 chars after the start of an implicit block mapping key");
|
|
36650
36650
|
}
|
|
36651
|
-
const valueNode = value ? composeNode(ctx, value, valueProps, onError2) : composeEmptyNode(ctx, offset,
|
|
36651
|
+
const valueNode = value ? composeNode(ctx, value, valueProps, onError2) : composeEmptyNode(ctx, offset, sep7, null, valueProps, onError2);
|
|
36652
36652
|
if (ctx.schema.compat)
|
|
36653
36653
|
utilFlowIndentCheck.flowIndentCheck(bm.indent, value, onError2);
|
|
36654
36654
|
offset = valueNode.range[2];
|
|
@@ -36737,7 +36737,7 @@ var require_resolve_end = __commonJS({
|
|
|
36737
36737
|
let comment = "";
|
|
36738
36738
|
if (end) {
|
|
36739
36739
|
let hasSpace = false;
|
|
36740
|
-
let
|
|
36740
|
+
let sep7 = "";
|
|
36741
36741
|
for (const token of end) {
|
|
36742
36742
|
const { source, type } = token;
|
|
36743
36743
|
switch (type) {
|
|
@@ -36751,13 +36751,13 @@ var require_resolve_end = __commonJS({
|
|
|
36751
36751
|
if (!comment)
|
|
36752
36752
|
comment = cb;
|
|
36753
36753
|
else
|
|
36754
|
-
comment +=
|
|
36755
|
-
|
|
36754
|
+
comment += sep7 + cb;
|
|
36755
|
+
sep7 = "";
|
|
36756
36756
|
break;
|
|
36757
36757
|
}
|
|
36758
36758
|
case "newline":
|
|
36759
36759
|
if (comment)
|
|
36760
|
-
|
|
36760
|
+
sep7 += source;
|
|
36761
36761
|
hasSpace = true;
|
|
36762
36762
|
break;
|
|
36763
36763
|
default:
|
|
@@ -36799,18 +36799,18 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
36799
36799
|
let offset = fc.offset + fc.start.source.length;
|
|
36800
36800
|
for (let i2 = 0; i2 < fc.items.length; ++i2) {
|
|
36801
36801
|
const collItem = fc.items[i2];
|
|
36802
|
-
const { start, key, sep:
|
|
36802
|
+
const { start, key, sep: sep7, value } = collItem;
|
|
36803
36803
|
const props = resolveProps.resolveProps(start, {
|
|
36804
36804
|
flow: fcName,
|
|
36805
36805
|
indicator: "explicit-key-ind",
|
|
36806
|
-
next: key ??
|
|
36806
|
+
next: key ?? sep7?.[0],
|
|
36807
36807
|
offset,
|
|
36808
36808
|
onError: onError2,
|
|
36809
36809
|
parentIndent: fc.indent,
|
|
36810
36810
|
startOnNewline: false
|
|
36811
36811
|
});
|
|
36812
36812
|
if (!props.found) {
|
|
36813
|
-
if (!props.anchor && !props.tag && !
|
|
36813
|
+
if (!props.anchor && !props.tag && !sep7 && !value) {
|
|
36814
36814
|
if (i2 === 0 && props.comma)
|
|
36815
36815
|
onError2(props.comma, "UNEXPECTED_TOKEN", `Unexpected , in ${fcName}`);
|
|
36816
36816
|
else if (i2 < fc.items.length - 1)
|
|
@@ -36864,8 +36864,8 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
36864
36864
|
}
|
|
36865
36865
|
}
|
|
36866
36866
|
}
|
|
36867
|
-
if (!isMap && !
|
|
36868
|
-
const valueNode = value ? composeNode(ctx, value, props, onError2) : composeEmptyNode(ctx, props.end,
|
|
36867
|
+
if (!isMap && !sep7 && !props.found) {
|
|
36868
|
+
const valueNode = value ? composeNode(ctx, value, props, onError2) : composeEmptyNode(ctx, props.end, sep7, null, props, onError2);
|
|
36869
36869
|
coll.items.push(valueNode);
|
|
36870
36870
|
offset = valueNode.range[2];
|
|
36871
36871
|
if (isBlock(value))
|
|
@@ -36877,7 +36877,7 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
36877
36877
|
if (isBlock(key))
|
|
36878
36878
|
onError2(keyNode.range, "BLOCK_IN_FLOW", blockMsg);
|
|
36879
36879
|
ctx.atKey = false;
|
|
36880
|
-
const valueProps = resolveProps.resolveProps(
|
|
36880
|
+
const valueProps = resolveProps.resolveProps(sep7 ?? [], {
|
|
36881
36881
|
flow: fcName,
|
|
36882
36882
|
indicator: "map-value-ind",
|
|
36883
36883
|
next: value,
|
|
@@ -36888,8 +36888,8 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
36888
36888
|
});
|
|
36889
36889
|
if (valueProps.found) {
|
|
36890
36890
|
if (!isMap && !props.found && ctx.options.strict) {
|
|
36891
|
-
if (
|
|
36892
|
-
for (const st of
|
|
36891
|
+
if (sep7)
|
|
36892
|
+
for (const st of sep7) {
|
|
36893
36893
|
if (st === valueProps.found)
|
|
36894
36894
|
break;
|
|
36895
36895
|
if (st.type === "newline") {
|
|
@@ -36906,7 +36906,7 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
36906
36906
|
else
|
|
36907
36907
|
onError2(valueProps.start, "MISSING_CHAR", `Missing , or : between ${fcName} items`);
|
|
36908
36908
|
}
|
|
36909
|
-
const valueNode = value ? composeNode(ctx, value, valueProps, onError2) : valueProps.found ? composeEmptyNode(ctx, valueProps.end,
|
|
36909
|
+
const valueNode = value ? composeNode(ctx, value, valueProps, onError2) : valueProps.found ? composeEmptyNode(ctx, valueProps.end, sep7, null, valueProps, onError2) : null;
|
|
36910
36910
|
if (valueNode) {
|
|
36911
36911
|
if (isBlock(value))
|
|
36912
36912
|
onError2(valueNode.range, "BLOCK_IN_FLOW", blockMsg);
|
|
@@ -37084,7 +37084,7 @@ var require_resolve_block_scalar = __commonJS({
|
|
|
37084
37084
|
chompStart = i2 + 1;
|
|
37085
37085
|
}
|
|
37086
37086
|
let value = "";
|
|
37087
|
-
let
|
|
37087
|
+
let sep7 = "";
|
|
37088
37088
|
let prevMoreIndented = false;
|
|
37089
37089
|
for (let i2 = 0; i2 < contentStart; ++i2)
|
|
37090
37090
|
value += lines[i2][0].slice(trimIndent) + "\n";
|
|
@@ -37101,24 +37101,24 @@ var require_resolve_block_scalar = __commonJS({
|
|
|
37101
37101
|
indent = "";
|
|
37102
37102
|
}
|
|
37103
37103
|
if (type === Scalar.Scalar.BLOCK_LITERAL) {
|
|
37104
|
-
value +=
|
|
37105
|
-
|
|
37104
|
+
value += sep7 + indent.slice(trimIndent) + content;
|
|
37105
|
+
sep7 = "\n";
|
|
37106
37106
|
} else if (indent.length > trimIndent || content[0] === " ") {
|
|
37107
|
-
if (
|
|
37108
|
-
|
|
37109
|
-
else if (!prevMoreIndented &&
|
|
37110
|
-
|
|
37111
|
-
value +=
|
|
37112
|
-
|
|
37107
|
+
if (sep7 === " ")
|
|
37108
|
+
sep7 = "\n";
|
|
37109
|
+
else if (!prevMoreIndented && sep7 === "\n")
|
|
37110
|
+
sep7 = "\n\n";
|
|
37111
|
+
value += sep7 + indent.slice(trimIndent) + content;
|
|
37112
|
+
sep7 = "\n";
|
|
37113
37113
|
prevMoreIndented = true;
|
|
37114
37114
|
} else if (content === "") {
|
|
37115
|
-
if (
|
|
37115
|
+
if (sep7 === "\n")
|
|
37116
37116
|
value += "\n";
|
|
37117
37117
|
else
|
|
37118
|
-
|
|
37118
|
+
sep7 = "\n";
|
|
37119
37119
|
} else {
|
|
37120
|
-
value +=
|
|
37121
|
-
|
|
37120
|
+
value += sep7 + content;
|
|
37121
|
+
sep7 = " ";
|
|
37122
37122
|
prevMoreIndented = false;
|
|
37123
37123
|
}
|
|
37124
37124
|
}
|
|
@@ -37299,25 +37299,25 @@ var require_resolve_flow_scalar = __commonJS({
|
|
|
37299
37299
|
if (!match)
|
|
37300
37300
|
return source;
|
|
37301
37301
|
let res = match[1];
|
|
37302
|
-
let
|
|
37302
|
+
let sep7 = " ";
|
|
37303
37303
|
let pos = first2.lastIndex;
|
|
37304
37304
|
line.lastIndex = pos;
|
|
37305
37305
|
while (match = line.exec(source)) {
|
|
37306
37306
|
if (match[1] === "") {
|
|
37307
|
-
if (
|
|
37308
|
-
res +=
|
|
37307
|
+
if (sep7 === "\n")
|
|
37308
|
+
res += sep7;
|
|
37309
37309
|
else
|
|
37310
|
-
|
|
37310
|
+
sep7 = "\n";
|
|
37311
37311
|
} else {
|
|
37312
|
-
res +=
|
|
37313
|
-
|
|
37312
|
+
res += sep7 + match[1];
|
|
37313
|
+
sep7 = " ";
|
|
37314
37314
|
}
|
|
37315
37315
|
pos = line.lastIndex;
|
|
37316
37316
|
}
|
|
37317
37317
|
const last2 = /[ \t]*(.*)/sy;
|
|
37318
37318
|
last2.lastIndex = pos;
|
|
37319
37319
|
match = last2.exec(source);
|
|
37320
|
-
return res +
|
|
37320
|
+
return res + sep7 + (match?.[1] ?? "");
|
|
37321
37321
|
}
|
|
37322
37322
|
function doubleQuotedValue(source, onError2) {
|
|
37323
37323
|
let res = "";
|
|
@@ -38120,14 +38120,14 @@ var require_cst_stringify = __commonJS({
|
|
|
38120
38120
|
}
|
|
38121
38121
|
}
|
|
38122
38122
|
}
|
|
38123
|
-
function stringifyItem({ start, key, sep:
|
|
38123
|
+
function stringifyItem({ start, key, sep: sep7, value }) {
|
|
38124
38124
|
let res = "";
|
|
38125
38125
|
for (const st of start)
|
|
38126
38126
|
res += st.source;
|
|
38127
38127
|
if (key)
|
|
38128
38128
|
res += stringifyToken(key);
|
|
38129
|
-
if (
|
|
38130
|
-
for (const st of
|
|
38129
|
+
if (sep7)
|
|
38130
|
+
for (const st of sep7)
|
|
38131
38131
|
res += st.source;
|
|
38132
38132
|
if (value)
|
|
38133
38133
|
res += stringifyToken(value);
|
|
@@ -39289,18 +39289,18 @@ var require_parser = __commonJS({
|
|
|
39289
39289
|
if (this.type === "map-value-ind") {
|
|
39290
39290
|
const prev = getPrevProps(this.peek(2));
|
|
39291
39291
|
const start = getFirstKeyStartProps(prev);
|
|
39292
|
-
let
|
|
39292
|
+
let sep7;
|
|
39293
39293
|
if (scalar.end) {
|
|
39294
|
-
|
|
39295
|
-
|
|
39294
|
+
sep7 = scalar.end;
|
|
39295
|
+
sep7.push(this.sourceToken);
|
|
39296
39296
|
delete scalar.end;
|
|
39297
39297
|
} else
|
|
39298
|
-
|
|
39298
|
+
sep7 = [this.sourceToken];
|
|
39299
39299
|
const map = {
|
|
39300
39300
|
type: "block-map",
|
|
39301
39301
|
offset: scalar.offset,
|
|
39302
39302
|
indent: scalar.indent,
|
|
39303
|
-
items: [{ start, key: scalar, sep:
|
|
39303
|
+
items: [{ start, key: scalar, sep: sep7 }]
|
|
39304
39304
|
};
|
|
39305
39305
|
this.onKeyLine = true;
|
|
39306
39306
|
this.stack[this.stack.length - 1] = map;
|
|
@@ -39453,15 +39453,15 @@ var require_parser = __commonJS({
|
|
|
39453
39453
|
} else if (isFlowToken(it.key) && !includesToken(it.sep, "newline")) {
|
|
39454
39454
|
const start2 = getFirstKeyStartProps(it.start);
|
|
39455
39455
|
const key = it.key;
|
|
39456
|
-
const
|
|
39457
|
-
|
|
39456
|
+
const sep7 = it.sep;
|
|
39457
|
+
sep7.push(this.sourceToken);
|
|
39458
39458
|
delete it.key;
|
|
39459
39459
|
delete it.sep;
|
|
39460
39460
|
this.stack.push({
|
|
39461
39461
|
type: "block-map",
|
|
39462
39462
|
offset: this.offset,
|
|
39463
39463
|
indent: this.indent,
|
|
39464
|
-
items: [{ start: start2, key, sep:
|
|
39464
|
+
items: [{ start: start2, key, sep: sep7 }]
|
|
39465
39465
|
});
|
|
39466
39466
|
} else if (start.length > 0) {
|
|
39467
39467
|
it.sep = it.sep.concat(start, this.sourceToken);
|
|
@@ -39655,13 +39655,13 @@ var require_parser = __commonJS({
|
|
|
39655
39655
|
const prev = getPrevProps(parent);
|
|
39656
39656
|
const start = getFirstKeyStartProps(prev);
|
|
39657
39657
|
fixFlowSeqItems(fc);
|
|
39658
|
-
const
|
|
39659
|
-
|
|
39658
|
+
const sep7 = fc.end.splice(1, fc.end.length);
|
|
39659
|
+
sep7.push(this.sourceToken);
|
|
39660
39660
|
const map = {
|
|
39661
39661
|
type: "block-map",
|
|
39662
39662
|
offset: fc.offset,
|
|
39663
39663
|
indent: fc.indent,
|
|
39664
|
-
items: [{ start, key: fc, sep:
|
|
39664
|
+
items: [{ start, key: fc, sep: sep7 }]
|
|
39665
39665
|
};
|
|
39666
39666
|
this.onKeyLine = true;
|
|
39667
39667
|
this.stack[this.stack.length - 1] = map;
|
|
@@ -47282,7 +47282,7 @@ var require_send = __commonJS({
|
|
|
47282
47282
|
var join12 = path.join;
|
|
47283
47283
|
var normalize2 = path.normalize;
|
|
47284
47284
|
var resolve8 = path.resolve;
|
|
47285
|
-
var
|
|
47285
|
+
var sep7 = path.sep;
|
|
47286
47286
|
var Readable4 = stream.Readable;
|
|
47287
47287
|
var BYTES_RANGE_REGEXP = /^ *bytes=/;
|
|
47288
47288
|
var MAX_MAXAGE = 60 * 60 * 24 * 365 * 1e3;
|
|
@@ -47359,20 +47359,20 @@ var require_send = __commonJS({
|
|
|
47359
47359
|
let parts;
|
|
47360
47360
|
if (root !== null) {
|
|
47361
47361
|
if (path2) {
|
|
47362
|
-
path2 = normalize2("." +
|
|
47362
|
+
path2 = normalize2("." + sep7 + path2);
|
|
47363
47363
|
}
|
|
47364
47364
|
if (UP_PATH_REGEXP.test(path2)) {
|
|
47365
47365
|
debug2('malicious path "%s"', path2);
|
|
47366
47366
|
return { statusCode: 403 };
|
|
47367
47367
|
}
|
|
47368
|
-
parts = path2.split(
|
|
47368
|
+
parts = path2.split(sep7);
|
|
47369
47369
|
path2 = normalize2(join12(root, path2));
|
|
47370
47370
|
} else {
|
|
47371
47371
|
if (UP_PATH_REGEXP.test(path2)) {
|
|
47372
47372
|
debug2('malicious path "%s"', path2);
|
|
47373
47373
|
return { statusCode: 403 };
|
|
47374
47374
|
}
|
|
47375
|
-
parts = normalize2(path2).split(
|
|
47375
|
+
parts = normalize2(path2).split(sep7);
|
|
47376
47376
|
path2 = resolve8(path2);
|
|
47377
47377
|
}
|
|
47378
47378
|
return { path: path2, parts };
|
|
@@ -47665,7 +47665,7 @@ var require_send = __commonJS({
|
|
|
47665
47665
|
}
|
|
47666
47666
|
async function sendFile(request2, path2, options) {
|
|
47667
47667
|
const { error, stat: stat6 } = await tryStat(path2);
|
|
47668
|
-
if (error && error.code === "ENOENT" && !extname3(path2) && path2[path2.length - 1] !==
|
|
47668
|
+
if (error && error.code === "ENOENT" && !extname3(path2) && path2[path2.length - 1] !== sep7) {
|
|
47669
47669
|
let err2 = error;
|
|
47670
47670
|
for (let i2 = 0; i2 < options.extensions.length; i2++) {
|
|
47671
47671
|
const extension = options.extensions[i2];
|
|
@@ -61599,6 +61599,7 @@ function createGitCommandExecutor(options = {}) {
|
|
|
61599
61599
|
};
|
|
61600
61600
|
if (options.binary !== void 0) {
|
|
61601
61601
|
clientOptions.binary = options.binary;
|
|
61602
|
+
clientOptions.unsafe = { allowUnsafeCustomBinary: true };
|
|
61602
61603
|
}
|
|
61603
61604
|
const git = simpleGit(clientOptions);
|
|
61604
61605
|
let failure;
|
|
@@ -63879,6 +63880,7 @@ async function readProjectFileTree(projectRoot, directoryPath) {
|
|
|
63879
63880
|
}
|
|
63880
63881
|
var MAX_PROJECT_FILE_DEPTH = 20;
|
|
63881
63882
|
var validFileName = /^(?!\.\.?$)[^/\\]{1,255}$/u;
|
|
63883
|
+
var invalidWindowsFileName = /[<>:"|?*]|[. ]$|^(?:con|prn|aux|nul|com[1-9¹²³]|lpt[1-9¹²³])(?:\.|$)/iu;
|
|
63882
63884
|
function parseProjectRelativePath(path) {
|
|
63883
63885
|
const segments = path.split("/");
|
|
63884
63886
|
if (path.startsWith("/") || path.endsWith("/") || path.includes("\\") || /^[A-Za-z]:/u.test(path) || segments.length > MAX_PROJECT_FILE_DEPTH || segments.some((segment) => segment === "" || segment === "." || segment === "..")) {
|
|
@@ -63888,10 +63890,8 @@ function parseProjectRelativePath(path) {
|
|
|
63888
63890
|
}
|
|
63889
63891
|
function assertPathInsideRoot(rootPath, targetPath) {
|
|
63890
63892
|
const pathFromRoot = relative(rootPath, targetPath);
|
|
63891
|
-
if (pathFromRoot === "" || pathFromRoot === ".." || pathFromRoot.startsWith(`..${
|
|
63892
|
-
|
|
63893
|
-
}
|
|
63894
|
-
if (pathFromRoot.startsWith("..\\") || resolve(rootPath, pathFromRoot) !== targetPath) {
|
|
63893
|
+
if (pathFromRoot === "" || pathFromRoot === ".." || pathFromRoot.startsWith(`..${sep}`) || // Windows 跨盘 relative 会返回绝对路径,而不是以 .. 开头。
|
|
63894
|
+
isAbsolute(pathFromRoot)) {
|
|
63895
63895
|
throw new TypeError("Project file path is outside the project root");
|
|
63896
63896
|
}
|
|
63897
63897
|
}
|
|
@@ -63923,7 +63923,7 @@ async function pathExists2(path) {
|
|
|
63923
63923
|
}
|
|
63924
63924
|
}
|
|
63925
63925
|
async function renameProjectFile(projectRoot, path, name) {
|
|
63926
|
-
if (!validFileName.test(name) || name.includes("\0") || name.includes("\r") || name.includes("\n")) {
|
|
63926
|
+
if (!validFileName.test(name) || name.includes("\0") || name.includes("\r") || name.includes("\n") || process.platform === "win32" && (invalidWindowsFileName.test(name) || name.split("").some((character) => character.charCodeAt(0) < 32))) {
|
|
63927
63927
|
throw new TypeError("Project file name is invalid");
|
|
63928
63928
|
}
|
|
63929
63929
|
const { absolutePath, resolvedRoot } = await resolveProjectFileTarget(projectRoot, path);
|
|
@@ -70454,9 +70454,9 @@ function padStart(item, targetLength, padString) {
|
|
|
70454
70454
|
}
|
|
70455
70455
|
return padString.slice(0, targetLength) + String(str);
|
|
70456
70456
|
}
|
|
70457
|
-
var split = function(str,
|
|
70458
|
-
var splits = str.split(
|
|
70459
|
-
return num ? splits.slice(0, num).concat([splits.slice(num).join(
|
|
70457
|
+
var split = function(str, sep7, num) {
|
|
70458
|
+
var splits = str.split(sep7);
|
|
70459
|
+
return num ? splits.slice(0, num).concat([splits.slice(num).join(sep7)]) : splits;
|
|
70460
70460
|
};
|
|
70461
70461
|
var pymod = function(a, b3) {
|
|
70462
70462
|
var r2 = a % b3;
|
package/dist/cli.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { createCodexlyServer, SqliteStateRepository, normalizeAllowedHost } from './chunk-
|
|
3
|
+
import { createCodexlyServer, SqliteStateRepository, normalizeAllowedHost } from './chunk-XXAU2AQY.js';
|
|
4
4
|
import './chunk-OVQSIEIK.js';
|
|
5
5
|
import { startCodexAppServer, locateCodexBinary, createCodexRuntimeProvider, createCodexWorkbenchPetProvider, CodexProjectRepository, checkCodexVersion } from './chunk-TVRHN6RY.js';
|
|
6
6
|
import './chunk-RNTA4MFS.js';
|
|
@@ -19,7 +19,7 @@ createRequire(import.meta.url);
|
|
|
19
19
|
|
|
20
20
|
// package.json
|
|
21
21
|
var package_default = {
|
|
22
|
-
version: "0.
|
|
22
|
+
version: "0.14.0"};
|
|
23
23
|
|
|
24
24
|
// src/npm-registry.ts
|
|
25
25
|
var MIRROR_REGISTRY = "https://registry.npmmirror.com";
|
package/dist/server/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';
|
|
2
|
-
export { AccessSessionService, AgentEventStream, GitCommitError, GitCommitReviewError, SqliteStateRepository, commitSelectedProjectChanges, createCodexlyServer, normalizeAllowedHost, readProjectGitCommitFileDiff, readProjectGitCommitFiles } from '../chunk-
|
|
2
|
+
export { AccessSessionService, AgentEventStream, GitCommitError, GitCommitReviewError, SqliteStateRepository, commitSelectedProjectChanges, createCodexlyServer, normalizeAllowedHost, readProjectGitCommitFileDiff, readProjectGitCommitFiles } from '../chunk-XXAU2AQY.js';
|
|
3
3
|
import '../chunk-OVQSIEIK.js';
|
|
4
4
|
import '../chunk-TVRHN6RY.js';
|
|
5
5
|
import '../chunk-RNTA4MFS.js';
|