@x-otto/cli 0.0.1-alpha.42 → 0.0.1-alpha.44
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 +13 -6
- package/dist/build-id-D_JURZdd.js +3 -0
- package/dist/build-id-D_JURZdd.js.map +1 -0
- package/dist/bundled-extensions/plugin-otto-wire-protocols/plugin-dist/meta.json +1 -1
- package/dist/bundled-extensions/plugin-otto-wire-protocols/plugin-dist/plugin.cjs +2 -1
- package/dist/bundled-extensions/plugin-otto-wire-protocols/src/openai-responses.ts +5 -1
- package/dist/{command-dispatcher-yqVwk7Gk.js → command-dispatcher-Dxj41r5P.js} +14 -14
- package/dist/command-dispatcher-Dxj41r5P.js.map +1 -0
- package/dist/config-migration-DatflIxs.js.map +1 -1
- package/dist/create-host-app-DG58-vRA.js +2 -0
- package/dist/{daemon-base-YOWgYYN7.js → daemon-base-Y1XI61JY.js} +1 -1
- package/dist/{daemon-base-YOWgYYN7.js.map → daemon-base-Y1XI61JY.js.map} +1 -1
- package/dist/{doctor-CuNvDmyA.js → doctor-DXBLkbkP.js} +9 -9
- package/dist/doctor-DXBLkbkP.js.map +1 -0
- package/dist/{doctor-attach-_zeIJewx.js → doctor-attach-DEMuyBOk.js} +2 -2
- package/dist/{doctor-attach-_zeIJewx.js.map → doctor-attach-DEMuyBOk.js.map} +1 -1
- package/dist/{doctor-cdp-K_mIFRfA.js → doctor-cdp-CnJUVNOB.js} +1 -1
- package/dist/{doctor-cdp-K_mIFRfA.js.map → doctor-cdp-CnJUVNOB.js.map} +1 -1
- package/dist/{doctor-heap-Rr2nNvcw.js → doctor-heap-Eu3LZj-F.js} +2 -2
- package/dist/{doctor-heap-Rr2nNvcw.js.map → doctor-heap-Eu3LZj-F.js.map} +1 -1
- package/dist/{doctor-ps-OL3FGQYu.js → doctor-ps-JBgCH77n.js} +2 -2
- package/dist/{doctor-ps-OL3FGQYu.js.map → doctor-ps-JBgCH77n.js.map} +1 -1
- package/dist/export-trajectory-D-BcH0Wt.js +14 -0
- package/dist/export-trajectory-D-BcH0Wt.js.map +1 -0
- package/dist/extension-CTyrcdT1.js +2 -0
- package/dist/{extension-1-lxuerZ.js → extension-DVEml5IN.js} +35 -34
- package/dist/{extension-1-lxuerZ.js.map → extension-DVEml5IN.js.map} +1 -1
- package/dist/{feedback-CYxO8zho.js → feedback-CYFY2MC4.js} +2 -2
- package/dist/{feedback-CYxO8zho.js.map → feedback-CYFY2MC4.js.map} +1 -1
- package/dist/feedback-D7Po4mlE.js +2 -0
- package/dist/{feishu-setup-B6ETf-8Y.js → feishu-setup-5ZoxtH0J.js} +1 -1
- package/dist/{feishu-setup-B6ETf-8Y.js.map → feishu-setup-5ZoxtH0J.js.map} +1 -1
- package/dist/{ftue-doctor-recovery-DeAf8jVo.js → ftue-doctor-recovery-8FeDBFOc.js} +1 -1
- package/dist/{ftue-doctor-recovery-DeAf8jVo.js.map → ftue-doctor-recovery-8FeDBFOc.js.map} +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/dist/install-DlVJRHRT.js.map +1 -1
- package/dist/{mcp-DbTYT7hB.js → mcp-Cm4-OhXI.js} +1 -1
- package/dist/{mcp-DbTYT7hB.js.map → mcp-Cm4-OhXI.js.map} +1 -1
- package/dist/mcp-server-Dpza3yn2.js +5 -0
- package/dist/mcp-server-Dpza3yn2.js.map +1 -0
- package/dist/{migrate-boDXhEyV.js → migrate-RlBJqJnB.js} +1 -1
- package/dist/{migrate-boDXhEyV.js.map → migrate-RlBJqJnB.js.map} +1 -1
- package/dist/{observe-CZ96Vre9.js → observe-Dxfud-t7.js} +1 -1
- package/dist/{observe-CZ96Vre9.js.map → observe-Dxfud-t7.js.map} +1 -1
- package/dist/parse-cli-BSJEQtBo.js +3 -0
- package/dist/parse-cli-BSJEQtBo.js.map +1 -0
- package/dist/{persistence-CpwMgSMe.js → persistence-CRFhOYx6.js} +2 -2
- package/dist/{persistence-CpwMgSMe.js.map → persistence-CRFhOYx6.js.map} +1 -1
- package/dist/{plugin-assembly-check-C2TephMb.js → plugin-assembly-check-DEozmcJ7.js} +1 -1
- package/dist/{plugin-assembly-check-C2TephMb.js.map → plugin-assembly-check-DEozmcJ7.js.map} +1 -1
- package/dist/proxy-evg7ZvoD.js.map +1 -1
- package/dist/{ps-DKrluEuy.js → ps-DiKCLKbs.js} +1 -1
- package/dist/{ps-DKrluEuy.js.map → ps-DiKCLKbs.js.map} +1 -1
- package/dist/{run-attach-CvGCWF_i.js → run-attach-DDpMk2_N.js} +1 -1
- package/dist/{run-attach-CvGCWF_i.js.map → run-attach-DDpMk2_N.js.map} +1 -1
- package/dist/{serve-DbBDYdoC.js → serve-Ke0nwN9Y.js} +2 -2
- package/dist/{serve-DbBDYdoC.js.map → serve-Ke0nwN9Y.js.map} +1 -1
- package/dist/{version-BmdAi4pI.js → version-BKPdYoHG.js} +2 -2
- package/dist/{version-BmdAi4pI.js.map → version-BKPdYoHG.js.map} +1 -1
- package/package.json +11 -11
- package/dist/build-id-CGCF2QT6.js +0 -3
- package/dist/build-id-CGCF2QT6.js.map +0 -1
- package/dist/command-dispatcher-yqVwk7Gk.js.map +0 -1
- package/dist/create-host-app-DXII2WTM.js +0 -2
- package/dist/doctor-CuNvDmyA.js.map +0 -1
- package/dist/extension-DWGIIBc6.js +0 -2
- package/dist/feedback-CvjPT9wO.js +0 -2
- package/dist/parse-cli--eliQ1xw.js +0 -3
- package/dist/parse-cli--eliQ1xw.js.map +0 -1
package/README.md
CHANGED
|
@@ -28,7 +28,9 @@ otto config # configuration migration
|
|
|
28
28
|
otto auth # credential management
|
|
29
29
|
otto extension # plugin management (install / list / update / remove / trust)
|
|
30
30
|
otto serve # start HTTP/WS service
|
|
31
|
+
otto daemon # daemon mode
|
|
31
32
|
otto persistenced # standalone persistence storage service
|
|
33
|
+
otto persistence # local/remote persistence control
|
|
32
34
|
otto observe # observation panel
|
|
33
35
|
otto debug # debug panel
|
|
34
36
|
otto time-travel # time travel (checkpoints / restore / fork / replay)
|
|
@@ -48,16 +50,20 @@ otto feedback # feedback management
|
|
|
48
50
|
| `-m` / `--model` | Specify model |
|
|
49
51
|
| `-c` / `--config` | Config file path |
|
|
50
52
|
| `-d` / `--project` | Working directory |
|
|
51
|
-
|
|
|
53
|
+
| `--verbose` | Verbose logging |
|
|
52
54
|
| `-q` / `--quiet` | Error-level logging only |
|
|
53
|
-
| `--continue` | Resume
|
|
55
|
+
| `--continue` | Resume a session |
|
|
56
|
+
| `--attach` | Attach TUI to a running `otto serve` session (`--attach <sessionId>`) |
|
|
54
57
|
| `--inspect[=port]` | Enable debugging (default 9229) |
|
|
55
58
|
| `--max-tool-turns` | Max tool calls per turn |
|
|
56
59
|
| `--max-tool-turn-extensions` | Number of compaction-and-continue extensions after hitting the cap |
|
|
60
|
+
| `--prompt-token-budget` / `--prompt-time-budget` / `--session-cost-budget` | Per-prompt / per-session budget caps |
|
|
61
|
+
| `--shadow` | Run in shadow mode (`OTTO_SHADOW`) |
|
|
57
62
|
| `--session-url` | Remote persistence URL |
|
|
58
63
|
| `--session-token` | Remote persistence bearer token |
|
|
59
64
|
| `--id` | Explicit workspace ID |
|
|
60
|
-
| `--help` /
|
|
65
|
+
| `--help` / `-h` | Show help |
|
|
66
|
+
| `--version` / `-v` | Show version |
|
|
61
67
|
|
|
62
68
|
## Installation
|
|
63
69
|
|
|
@@ -89,7 +95,7 @@ pnpm --global link packages/cli
|
|
|
89
95
|
|
|
90
96
|
```
|
|
91
97
|
bin/
|
|
92
|
-
otto
|
|
98
|
+
otto.js # binary entry point (#!/usr/bin/env node)
|
|
93
99
|
src/
|
|
94
100
|
cli.ts # main execution entry (SUB_COMMANDS registry)
|
|
95
101
|
parse-cli.ts # argument parsing (parseCLI)
|
|
@@ -97,11 +103,12 @@ src/
|
|
|
97
103
|
index.ts # top-level execution + runCli export
|
|
98
104
|
auth-command.ts # auth subcommand
|
|
99
105
|
build-id.ts # build metadata
|
|
100
|
-
|
|
106
|
+
command-dispatcher.ts # command dispatch helpers
|
|
107
|
+
commands/ # subcommand modules (~103 files incl. interactive/ subdirs)
|
|
101
108
|
i18n/ # internationalization types
|
|
102
109
|
modes/ # run-mode helpers
|
|
103
110
|
session-contract/ # session contract
|
|
104
|
-
tests/ #
|
|
111
|
+
tests/ # 210 test files
|
|
105
112
|
```
|
|
106
113
|
|
|
107
114
|
## Development Commands
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-id-D_JURZdd.js","names":[],"sources":["../src/build-id.ts"],"sourcesContent":["// auto-generated by scripts/gen-build-id.mjs — DO NOT EDIT\nexport const BUILD_ID = 5104\nexport const BUILD_BRANCH = 'dev'\nexport const BUILD_HASH = 'e2879c422'\n"],"mappings":";AACA,MAAa,EAAW,KAEX,EAAa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"apiVersion":1,"compilerVersion":"0.1.0-alpha.6","sourceHash":"
|
|
1
|
+
{"apiVersion":1,"compilerVersion":"0.1.0-alpha.6","sourceHash":"28b4f7c10707642654e4b86f54be95e11a6544869c1be666c36bf9beb7b40133"}
|
|
@@ -17619,7 +17619,8 @@ function dispatchResponsesSSEEvent(type, data, state) {
|
|
|
17619
17619
|
}
|
|
17620
17620
|
const hasTool = [...state.blocks.values()].some((b3) => b3.kind === "tool_call");
|
|
17621
17621
|
if (type === "response.incomplete") {
|
|
17622
|
-
|
|
17622
|
+
const reason = response?.incomplete_details?.reason;
|
|
17623
|
+
state.stopReason = reason === "content_filter" ? "refusal" : "max_tokens";
|
|
17623
17624
|
} else {
|
|
17624
17625
|
state.stopReason = hasTool ? "tool_use" : "end_turn";
|
|
17625
17626
|
}
|
|
@@ -318,7 +318,11 @@ function dispatchResponsesSSEEvent(
|
|
|
318
318
|
}
|
|
319
319
|
const hasTool = [...state.blocks.values()].some((b) => b.kind === 'tool_call')
|
|
320
320
|
if (type === 'response.incomplete') {
|
|
321
|
-
|
|
321
|
+
// 08-14 review A1:不再无条件映射 max_tokens——读 incomplete_details.reason 区分截断根因。
|
|
322
|
+
// OpenAI Responses 的 incomplete 可能因 max_output_tokens(真截断,走引擎续写/升档路径)
|
|
323
|
+
// 或 content_filter(内容过滤,应映射 refusal 让引擎干净终止,而非误走"触顶重试"白烧一轮)。
|
|
324
|
+
const reason = (response?.incomplete_details as Record<string, unknown> | undefined)?.reason
|
|
325
|
+
state.stopReason = reason === 'content_filter' ? 'refusal' : 'max_tokens'
|
|
322
326
|
} else {
|
|
323
327
|
state.stopReason = hasTool ? 'tool_use' : 'end_turn'
|
|
324
328
|
}
|