cueline 0.1.6 → 0.2.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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/CHANGELOG.md +50 -0
- package/README.ja.md +77 -30
- package/README.ko.md +77 -30
- package/README.md +71 -29
- package/README.zh-CN.md +77 -30
- package/README.zh-TW.md +74 -29
- package/config/routing.schema.json +3 -0
- package/dist/src/api-caller-work.js +58 -14
- package/dist/src/api-caller-work.js.map +1 -1
- package/dist/src/api-contracts.d.ts +56 -0
- package/dist/src/api-controller-handoff.d.ts +5 -1
- package/dist/src/api-controller-handoff.js +178 -38
- package/dist/src/api-controller-handoff.js.map +1 -1
- package/dist/src/api-run-verification.d.ts +3 -0
- package/dist/src/api-run-verification.js +174 -0
- package/dist/src/api-run-verification.js.map +1 -0
- package/dist/src/api-runtime-lifecycle.d.ts +6 -1
- package/dist/src/api-runtime-lifecycle.js +97 -8
- package/dist/src/api-runtime-lifecycle.js.map +1 -1
- package/dist/src/api.d.ts +26 -4
- package/dist/src/api.js +111 -40
- package/dist/src/api.js.map +1 -1
- package/dist/src/browser/browser-adapter.d.ts +41 -0
- package/dist/src/browser/codex-iab/bootstrap.d.ts +21 -0
- package/dist/src/browser/codex-iab/bootstrap.js +174 -9
- package/dist/src/browser/codex-iab/bootstrap.js.map +1 -1
- package/dist/src/browser/codex-iab/chatgpt-client.d.ts +3 -0
- package/dist/src/browser/codex-iab/chatgpt-client.js +216 -70
- package/dist/src/browser/codex-iab/chatgpt-client.js.map +1 -1
- package/dist/src/browser/codex-iab/probe.d.ts +36 -0
- package/dist/src/browser/codex-iab/probe.js +217 -0
- package/dist/src/browser/codex-iab/probe.js.map +1 -0
- package/dist/src/browser/codex-iab/recovery-evidence.d.ts +1 -1
- package/dist/src/browser/codex-iab/recovery-evidence.js +7 -10
- package/dist/src/browser/codex-iab/recovery-evidence.js.map +1 -1
- package/dist/src/browser/codex-iab/selectors.d.ts +1 -0
- package/dist/src/browser/codex-iab/selectors.js +1 -0
- package/dist/src/browser/codex-iab/selectors.js.map +1 -1
- package/dist/src/browser/codex-iab/send-button.d.ts +5 -0
- package/dist/src/browser/codex-iab/send-button.js +62 -0
- package/dist/src/browser/codex-iab/send-button.js.map +1 -0
- package/dist/src/browser/codex-iab/submission-url.js +6 -15
- package/dist/src/browser/codex-iab/submission-url.js.map +1 -1
- package/dist/src/browser/codex-iab/tab-discovery.js +45 -12
- package/dist/src/browser/codex-iab/tab-discovery.js.map +1 -1
- package/dist/src/browser/codex-iab/timing-options.d.ts +1 -0
- package/dist/src/browser/codex-iab/timing-options.js +5 -0
- package/dist/src/browser/codex-iab/timing-options.js.map +1 -0
- package/dist/src/cli/health-commands.d.ts +2 -0
- package/dist/src/cli/health-commands.js +265 -0
- package/dist/src/cli/health-commands.js.map +1 -0
- package/dist/src/cli/io.d.ts +4 -0
- package/dist/src/cli/io.js +2 -0
- package/dist/src/cli/io.js.map +1 -0
- package/dist/src/cli/main.d.ts +1 -5
- package/dist/src/cli/main.js +187 -84
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/cli/observation-commands.d.ts +2 -0
- package/dist/src/cli/observation-commands.js +350 -0
- package/dist/src/cli/observation-commands.js.map +1 -0
- package/dist/src/cli/run-status-view.d.ts +87 -0
- package/dist/src/cli/run-status-view.js +121 -0
- package/dist/src/cli/run-status-view.js.map +1 -0
- package/dist/src/core/controller-command-execution.d.ts +2 -2
- package/dist/src/core/controller-command-execution.js +82 -16
- package/dist/src/core/controller-command-execution.js.map +1 -1
- package/dist/src/core/controller-conversation-archive.d.ts +11 -0
- package/dist/src/core/controller-conversation-archive.js +109 -0
- package/dist/src/core/controller-conversation-archive.js.map +1 -0
- package/dist/src/core/controller-loop.d.ts +7 -1
- package/dist/src/core/controller-loop.js +136 -23
- package/dist/src/core/controller-loop.js.map +1 -1
- package/dist/src/core/controller-turn.d.ts +21 -3
- package/dist/src/core/controller-turn.js +182 -41
- package/dist/src/core/controller-turn.js.map +1 -1
- package/dist/src/core/controller-types.d.ts +2 -0
- package/dist/src/core/conversation-url.d.ts +3 -0
- package/dist/src/core/conversation-url.js +34 -0
- package/dist/src/core/conversation-url.js.map +1 -0
- package/dist/src/core/run-status.d.ts +17 -2
- package/dist/src/core/run-status.js +64 -25
- package/dist/src/core/run-status.js.map +1 -1
- package/dist/src/core/state-machine.d.ts +36 -1
- package/dist/src/core/state-machine.js +242 -13
- package/dist/src/core/state-machine.js.map +1 -1
- package/dist/src/core/timing.d.ts +9 -0
- package/dist/src/core/timing.js +22 -0
- package/dist/src/core/timing.js.map +1 -0
- package/dist/src/diagnostics/run-doctor.d.ts +22 -0
- package/dist/src/diagnostics/run-doctor.js +197 -0
- package/dist/src/diagnostics/run-doctor.js.map +1 -0
- package/dist/src/jobs/status.d.ts +5 -2
- package/dist/src/jobs/status.js +172 -12
- package/dist/src/jobs/status.js.map +1 -1
- package/dist/src/jobs/supervisor.js +57 -8
- package/dist/src/jobs/supervisor.js.map +1 -1
- package/dist/src/observation/run-diff.d.ts +39 -0
- package/dist/src/observation/run-diff.js +67 -0
- package/dist/src/observation/run-diff.js.map +1 -0
- package/dist/src/observation/run-graph.d.ts +17 -0
- package/dist/src/observation/run-graph.js +77 -0
- package/dist/src/observation/run-graph.js.map +1 -0
- package/dist/src/observation/run-handoff.d.ts +86 -0
- package/dist/src/observation/run-handoff.js +309 -0
- package/dist/src/observation/run-handoff.js.map +1 -0
- package/dist/src/observation/run-status-at.d.ts +41 -0
- package/dist/src/observation/run-status-at.js +65 -0
- package/dist/src/observation/run-status-at.js.map +1 -0
- package/dist/src/observation/run-timeline.d.ts +32 -0
- package/dist/src/observation/run-timeline.js +279 -0
- package/dist/src/observation/run-timeline.js.map +1 -0
- package/dist/src/observation/run-watch.d.ts +15 -0
- package/dist/src/observation/run-watch.js +82 -0
- package/dist/src/observation/run-watch.js.map +1 -0
- package/dist/src/protocol/limits.d.ts +3 -0
- package/dist/src/protocol/limits.js +4 -0
- package/dist/src/protocol/limits.js.map +1 -0
- package/dist/src/protocol/lint-command.d.ts +24 -0
- package/dist/src/protocol/lint-command.js +210 -0
- package/dist/src/protocol/lint-command.js.map +1 -0
- package/dist/src/protocol/parse-command.js +4 -0
- package/dist/src/protocol/parse-command.js.map +1 -1
- package/dist/src/protocol/types.d.ts +12 -0
- package/dist/src/protocol/validate-command.js +76 -3
- package/dist/src/protocol/validate-command.js.map +1 -1
- package/dist/src/router/config-loader.js +23 -2
- package/dist/src/router/config-loader.js.map +1 -1
- package/dist/src/router/explain.d.ts +28 -0
- package/dist/src/router/explain.js +86 -0
- package/dist/src/router/explain.js.map +1 -0
- package/dist/src/router/resolver.d.ts +2 -1
- package/dist/src/router/resolver.js +11 -6
- package/dist/src/router/resolver.js.map +1 -1
- package/dist/src/runners/process-runner.js +55 -12
- package/dist/src/runners/process-runner.js.map +1 -1
- package/dist/src/runners/runner-adapter.d.ts +2 -0
- package/dist/src/runners/runner-adapter.js.map +1 -1
- package/dist/src/state/atomic-write.d.ts +6 -0
- package/dist/src/state/atomic-write.js +43 -2
- package/dist/src/state/atomic-write.js.map +1 -1
- package/dist/src/state/cancellation.js +38 -4
- package/dist/src/state/cancellation.js.map +1 -1
- package/dist/src/state/event-log.js +5 -4
- package/dist/src/state/event-log.js.map +1 -1
- package/dist/src/state/private-directory.d.ts +5 -0
- package/dist/src/state/private-directory.js +37 -0
- package/dist/src/state/private-directory.js.map +1 -0
- package/dist/src/state/runtime-lease.js +19 -39
- package/dist/src/state/runtime-lease.js.map +1 -1
- package/dist/src/state/runtime-record-validation.d.ts +6 -0
- package/dist/src/state/runtime-record-validation.js +44 -0
- package/dist/src/state/runtime-record-validation.js.map +1 -0
- package/dist/src/state/runtime-retirement.js +58 -18
- package/dist/src/state/runtime-retirement.js.map +1 -1
- package/dist/src/state/runtime-takeover-intent.js +2 -2
- package/dist/src/state/runtime-takeover-intent.js.map +1 -1
- package/dist/src/state/store.d.ts +1 -0
- package/dist/src/state/store.js +12 -6
- package/dist/src/state/store.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/docs/architecture.md +4 -4
- package/docs/assets/README.md +3 -1
- package/docs/assets/cueline-architecture-en.svg +63 -0
- package/docs/assets/cueline-architecture-ja.svg +63 -0
- package/docs/assets/cueline-architecture-ko.svg +63 -0
- package/docs/assets/cueline-architecture-zh-CN.svg +63 -0
- package/docs/assets/cueline-architecture-zh-TW.svg +63 -0
- package/docs/assets/cueline-states-en.svg +50 -0
- package/docs/assets/cueline-states-ja.svg +48 -0
- package/docs/assets/cueline-states-ko.svg +48 -0
- package/docs/assets/cueline-states-zh-CN.svg +48 -0
- package/docs/assets/cueline-states-zh-TW.svg +48 -0
- package/docs/compatibility.md +1 -1
- package/docs/controller-protocol.md +44 -7
- package/docs/experiments/protocol-lint.md +40 -0
- package/docs/experiments/run-doctor.md +39 -0
- package/docs/experiments/run-handoff.md +39 -0
- package/docs/experiments/run-timeline.md +35 -0
- package/docs/experiments/run-watch.md +31 -0
- package/docs/multi-model-routing.md +256 -0
- package/docs/runner-contract.md +4 -3
- package/docs/state-and-recovery.md +45 -5
- package/package.json +1 -1
- package/schemas/controller-command.schema.json +89 -4
- package/skills/cueline/SKILL.md +13 -7
package/README.zh-TW.md
CHANGED
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
<p align="center">
|
|
7
7
|
<a href="https://github.com/Seraphim0916/cueline/actions/workflows/ci.yml"><img alt="ci" src="https://github.com/Seraphim0916/cueline/actions/workflows/ci.yml/badge.svg"></a>
|
|
8
|
+
<a href="https://www.npmjs.com/package/cueline"><img alt="npm" src="https://img.shields.io/npm/v/cueline"></a>
|
|
9
|
+
<a href="package.json"><img alt="node" src="https://img.shields.io/node/v/cueline"></a>
|
|
10
|
+
<a href="LICENSE"><img alt="license" src="https://img.shields.io/npm/l/cueline"></a>
|
|
8
11
|
</p>
|
|
9
12
|
|
|
10
13
|
<p align="center">
|
|
@@ -15,17 +18,31 @@
|
|
|
15
18
|
|
|
16
19
|
那個網頁碰不到你的機器,也沒有本機工具。它每一輪只吐出文字控制指令。CueLine 預設把 caller 工作保存成待辦:`advise` 是協調式交接;`work` 則必須先建立持久 claim 並正式 start,才能開始修改。只有雙重明確授權 `process` executor 時,才會啟動已註冊的本機工作行程。
|
|
17
20
|
|
|
21
|
+
<img alt="CueLine 架構:ChatGPT 網頁對話每輪發出一道文字指令,CueLine 驗證並記錄,目前的 Codex 執行獲准的本機工作。" src="docs/assets/cueline-architecture-zh-TW.svg" width="100%">
|
|
22
|
+
|
|
18
23
|
CueLine 是獨立實作,**沒有任何 runtime npm 相依套件**,也不是 Omnilane 或 GPT Relay 的包裝層。
|
|
19
24
|
|
|
25
|
+
## 最新版本:0.2.0
|
|
26
|
+
|
|
27
|
+
- 新增四個唯讀可觀測性指令,並強化「確認未送出」的提交恢復;輸出維持 fail-closed 去敏感資訊,路由解釋也只發生在程序啟動前。
|
|
28
|
+
- 新增安全的 run 清單、doctor、watch、timeline、handoff、完整性驗證、協定 lint、瀏覽器診斷與 inspect 證據分頁。
|
|
29
|
+
- 強化分頁/按鈕證據、指令與路由上限、原子 job 狀態、私有持久資料、workdir 身分、runtime/取消紀錄,以及 CLI 去敏感資訊。
|
|
30
|
+
- 新增選用的 `complete` 後精確對話封存:點擊前有持久 fence,Pro 又開始回答或換頁就拒絕,進入含糊狀態後絕不重點。
|
|
31
|
+
- 完成 479/479 測試與一次可丟棄的真實 ChatGPT Web Pro 驗收;主控自然完成、只封存一次,原本使用者對話完全未動。
|
|
32
|
+
|
|
33
|
+
完整內容請看 [changelog](CHANGELOG.md#020---2026-07-16) 或版本化的 [v0.2.0 release](https://github.com/Seraphim0916/cueline/releases/tag/v0.2.0)。
|
|
34
|
+
|
|
20
35
|
## 一次執行實際上怎麼跑
|
|
21
36
|
|
|
22
37
|
<img alt="Caller-first CueLine 執行:ChatGPT 下文字命令,目前的 Codex 做本機唯讀查驗,CueLine 回送有界證據直到 complete。" src="docs/assets/cueline-loop-zh-TW.svg" width="100%">
|
|
23
38
|
|
|
24
39
|
每一輪:CueLine 先把自己「即將問什麼」寫進紀錄,送出一份觀測(observation)到對話裡,之後再讀回**恰好一個** `<CueLineControl>` 封包。主控端從五個動作裡挑一個——`dispatch`、`wait`、`inspect`、`complete`、`blocked`——封包以外的任何文字都不會被執行。指令若寫錯 run、寫錯輪次,或工作定義有問題,會被退回去做有次數上限的修正,而不是靠猜。迴圈會在單次可靠送出後以 `awaiting_controller` 暫停,也會停在 caller 交接、`complete`、`blocked` 或輪數用完(預設 12 輪)。
|
|
25
40
|
|
|
41
|
+
主控指令另有 fail-closed 資源上限:每個封包 131,072 字元、每次 dispatch 最多 64 個工作、每次 wait 或 inspect 最多 256 個明確 job ID。這些檢查發生在註冊工作或啟動行程之前。
|
|
42
|
+
|
|
26
43
|
非預設的 `maxRounds` 會在建立 run 時固定,並跨所有無 owner 的暫停累計主控總輪數。之後續跑通常省略它、沿用持久值;若傳入不同數字,CueLine 會拒絕,不會偷偷重設或放寬預算。
|
|
27
44
|
|
|
28
|
-
`startCueLineRun` 與 `runCueLine` 都預設使用 `caller` executor。使用內建瀏覽器時,CueLine 只送一次、保存精確對話 URL,然後回傳 `awaiting_controller` 並釋放 runtime lease,不會讓單一工具呼叫卡著等 Pro 思考。之後的 `continueCueLineRun` 只做一次唯讀觀測;若仍未完成,就再次回傳 `awaiting_controller`,絕不重送。`advise` 派工回傳 `awaiting_caller`,沒有副作用 claim,需協調單一 session。`work` 派工回傳 `awaiting_caller_work`,在目前 Codex 呼叫 `claimCueLineCallerJob` 與 `startCueLineCallerJob` 前,絕對尚未開始本機修改。claim 綁定 run、job、task hash、絕對 workdir、caller identity 與 fencing token
|
|
45
|
+
`startCueLineRun` 與 `runCueLine` 都預設使用 `caller` executor。使用內建瀏覽器時,CueLine 只送一次、保存精確對話 URL,然後回傳 `awaiting_controller` 並釋放 runtime lease,不會讓單一工具呼叫卡著等 Pro 思考。之後的 `continueCueLineRun` 只做一次唯讀觀測;若仍未完成,就再次回傳 `awaiting_controller`,絕不重送。`advise` 派工回傳 `awaiting_caller`,沒有副作用 claim,需協調單一 session。`work` 派工回傳 `awaiting_caller_work`,在目前 Codex 呼叫 `claimCueLineCallerJob` 與 `startCueLineCallerJob` 前,絕對尚未開始本機修改。claim 綁定 run、job、task hash、絕對 workdir、canonical 目錄身分、caller identity 與 fencing token;本機工作只能使用它回傳的 `resolvedWorkdir`。已開始的工作不會自動重試,claim 逾期則成為 `ambiguous`。Pro 只提出與審查文字指令,沒有親自使用本機工具。
|
|
29
46
|
|
|
30
47
|
Process 模式必須同時指定 `executor: "process"` 與 `allowProcessExecution: true`,非終態續跑也要再次傳入第二道授權。內建 route 另加 `--ignore-user-config`,不讓隱藏 worker 載入使用者設定的 MCP server 或其命令參數。通道(lane)必須啟用、候選項必須在任何程序啟動**之前**就確認可用、`argv[0]` 必須早已由路由設定註冊。沒有任何東西會經過 shell。唯讀工作預設全域與每 lane 最多同時 2 個;只要批次包含 `work` 就維持串行。狀態會顯示解析後 runner、PID、phase、最後進度時間,以及安全辨識到的 model/provider。
|
|
31
48
|
|
|
@@ -33,6 +50,12 @@ Process 模式必須同時指定 `executor: "process"` 與 `allowProcessExecutio
|
|
|
33
50
|
|
|
34
51
|
這是允許清單(allow-list),不是沙箱。已註冊的工作行程擁有跟 CueLine 行程本身相同的權限;`advise` 對應 Codex 的唯讀沙箱、`work` 對應 `workspace-write`,但你註冊了什麼,就等於你授權了什麼。
|
|
35
52
|
|
|
53
|
+
## 執行狀態
|
|
54
|
+
|
|
55
|
+
<img alt="CueLine 執行狀態:ready、awaiting_controller、awaiting_caller、awaiting_caller_work、complete、blocked、cancelled,以及每個狀態的意義。" src="docs/assets/cueline-states-zh-TW.svg" width="100%">
|
|
56
|
+
|
|
57
|
+
`cueline run status <run-id> --json` 回報持久狀態與 `safeNextAction`;`cueline run doctor <run-id> --json` 把同一份快照轉成穩定的 finding 代碼與一個安全的下一步。任何含糊情境——可能已送出的點擊、逾期的已啟動 claim、人工附件送出——CueLine 都會停下來要求明確 reconcile,而不是重送。完整恢復契約見 [state and recovery](docs/state-and-recovery.md)。
|
|
58
|
+
|
|
36
59
|
## 主控端必須是 Pro 模型
|
|
37
60
|
|
|
38
61
|
除非輸入框的模型選單顯示 `Pro`,否則 CueLine 拒絕送出。對話若停在別的模型,CueLine 會先把輸入框切成 `Pro`——這是它唯一被允許做的模型切換。在一次已驗證的實機執行中,它把 Instant 切成 Pro,回應回來的是 `gpt-5-6-pro`。
|
|
@@ -48,15 +71,15 @@ ChatGPT Pro 訂閱方案與「選定的 Pro 模型」是兩回事。帳號或個
|
|
|
48
71
|
從 npm registry 安裝:
|
|
49
72
|
|
|
50
73
|
```bash
|
|
51
|
-
npm install -g cueline@0.
|
|
74
|
+
npm install -g cueline@0.2.0
|
|
52
75
|
cueline install
|
|
53
76
|
cueline doctor
|
|
54
77
|
```
|
|
55
78
|
|
|
56
|
-
作為備援,也可以安裝 [v0.
|
|
79
|
+
作為備援,也可以安裝 [v0.2.0 release](https://github.com/Seraphim0916/cueline/releases/tag/v0.2.0) 上的打包 tarball,該 release 同時附上它的 `.sha256` 校驗碼:
|
|
57
80
|
|
|
58
81
|
```bash
|
|
59
|
-
npm install -g https://github.com/Seraphim0916/cueline/releases/download/v0.
|
|
82
|
+
npm install -g https://github.com/Seraphim0916/cueline/releases/download/v0.2.0/cueline-0.2.0.tgz
|
|
60
83
|
cueline install
|
|
61
84
|
cueline doctor
|
|
62
85
|
```
|
|
@@ -79,7 +102,7 @@ cueline doctor
|
|
|
79
102
|
接著,在 Codex 裡:
|
|
80
103
|
|
|
81
104
|
1. 用 Codex 的內建瀏覽器開啟 `https://chatgpt.com` 並登入。
|
|
82
|
-
2.
|
|
105
|
+
2. 讓你要當主控的那個對話保持選取狀態——該頁面就是主控端。若沒有已選取的分頁、且同時有多個相符的 ChatGPT 分頁,CueLine 會回傳 `IAB_CHATGPT_TAB_AMBIGUOUS`,而不是擅自挑第一個。它的輸入框必須停在 `Pro` 模型;若不是,CueLine 會替你選成 `Pro`,否則就拒絕送出。
|
|
83
106
|
3. 請 Codex 用 CueLine 處理這件事:*「用 CueLine,讓那個開著的 ChatGPT Pro 對話來指揮這項任務。」*
|
|
84
107
|
4. 留著回傳的 `runId`。中斷的執行要續跑,就靠它。
|
|
85
108
|
|
|
@@ -101,6 +124,7 @@ import {
|
|
|
101
124
|
let result = await runCueLine({
|
|
102
125
|
request: "Inspect the repository, delegate an implementation plan, and report the evidence.",
|
|
103
126
|
browser: createCodexIabAdapter({ browser: globalThis.browser }),
|
|
127
|
+
// 選填並明確啟用:archiveControllerConversationOnComplete: true,
|
|
104
128
|
// 選填:conversationUrl、routingConfig / routingConfigPath、home、cwd、
|
|
105
129
|
// runTimeoutMs、signal,以及各工作/預設期限。
|
|
106
130
|
}); // 預設 executor: "caller"
|
|
@@ -128,7 +152,7 @@ while (["awaiting_controller", "awaiting_caller", "awaiting_caller_work"].includ
|
|
|
128
152
|
fencingToken: claim.fencingToken,
|
|
129
153
|
};
|
|
130
154
|
await startCueLineCallerJob(result.runId, job.jobId, proof);
|
|
131
|
-
const stdout = await executeExactLocalWork(job.spec.task, claim.
|
|
155
|
+
const stdout = await executeExactLocalWork(job.spec.task, claim.resolvedWorkdir, {
|
|
132
156
|
heartbeat: () => heartbeatCueLineCallerJob(result.runId, job.jobId, proof),
|
|
133
157
|
});
|
|
134
158
|
await submitCueLineCallerJobResult(
|
|
@@ -147,22 +171,31 @@ if (result.status === "complete") {
|
|
|
147
171
|
}
|
|
148
172
|
```
|
|
149
173
|
|
|
174
|
+
`archiveControllerConversationOnComplete` 預設為 `false`,並在建立 run 時固定。啟用後,CueLine 會先把 `complete` 寫進持久紀錄,再於 Pro 未回答時封存那一個精確對話。點擊 fence 前能證明尚未點擊的失敗可以重試;fence 後只要逾時、重開、換頁或缺少完成證據,就標成 `ambiguous` 且永不再點。`blocked` 與 `cancelled` 一律保留原對話。
|
|
175
|
+
|
|
150
176
|
若回傳 `awaiting_controller`,代表同一個精確 request 已送出、但 Pro 回覆尚未被觀測;稍後續跑只會唯讀觀測,不會重送。`awaiting_caller` 交接 `advise`;`awaiting_caller_work` 則必須依序 claim、start、執行、heartbeat 與帶 claim proof 提交結果。Pro 網頁從未直接使用本機工具。
|
|
151
177
|
|
|
178
|
+
`listCueLineRuns()` 是唯讀且已去敏感資訊的 run 清單,可用來找回持久化的 run ID;它不包含主控文字、對話網址、工作內容或 worker 輸出。
|
|
179
|
+
|
|
180
|
+
`verifyCueLineRun(runId)` 是唯讀完整性檢查,會核對建立 marker、event replay 與 authority fence、選用 snapshot、runtime lease 和 job status 證據;只回傳穩定 finding,不回傳持久 run 內容。
|
|
181
|
+
|
|
152
182
|
在 Codex 的 runtime 裡,import `cueline api path` 印出的那個絕對路徑模組——那就是你安裝的那份套件建置出來的 API。
|
|
153
183
|
|
|
154
|
-
`startCueLineRun` 只建立持久 run 並回傳 `ready`;`runCueLine` 會建立並推進到持久 controller 觀測暫停、caller 交接或終態。續跑前先執行 `cueline run status <run-id> --json`。單一正常送出、非人工、具精確 URL、無 job/pending command/取消的 stale caller observer 可被 fencing 後唯讀恢復;其他 stale 狀態仍須正式接管。`caller_work_pending`、`caller_work_claimed`、`caller_work_running` 分別只允許 `claim_caller_work`、`start_caller_work`、`continue_caller_work`,主控的 `dispatch` 本身不代表本機工作已開始。
|
|
184
|
+
`startCueLineRun` 只建立持久 run 並回傳 `ready`;`runCueLine` 會建立並推進到持久 controller 觀測暫停、caller 交接或終態。續跑前先執行 `cueline run status <run-id> --json`。單一正常送出、非人工、具精確 URL、無 job/pending command/取消的 stale caller observer 可被 fencing 後唯讀恢復;其他 stale 狀態仍須正式接管。`caller_work_pending`、`caller_work_claimed`、`caller_work_running` 分別只允許 `claim_caller_work`、`start_caller_work`、`continue_caller_work`,主控的 `dispatch` 本身不代表本機工作已開始。CLI 的 `run status` 只輸出交接所需 metadata,不包含 task 內文、caller 身分、task hash、workdir 或 runtime owner ID;完成正式 claim 後,API 才會把精確 task 與 workdir 交給獲授權的 caller。
|
|
155
185
|
|
|
156
186
|
## CLI
|
|
157
187
|
|
|
158
|
-
CLI
|
|
188
|
+
CLI 不驅動瀏覽器。執行寫入狀態的命令前,先用 `cueline help` 核對完整參數。
|
|
159
189
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
190
|
+
| 分組 | 命令 | 效果 |
|
|
191
|
+
| --- | --- | --- |
|
|
192
|
+
| 檢視 | `doctor` · `routing` · `jobs` · `runs` · `run status` · `run doctor` · `run watch` · `run timeline` · `run verify` · `run handoff` · `protocol lint` · `api path` · `config path` | 唯讀 |
|
|
193
|
+
| 安裝 | `install` · `uninstall` | 只建立或移除套件擁有的 skill 連結 |
|
|
194
|
+
| 恢復 | `run reconcile` · `run takeover` · `run reconcile-runtime` · `run cancel` / `run stop` · `job cancel` | 追加稽核證據或修改持久 run/job 狀態 |
|
|
163
195
|
|
|
196
|
+
```console
|
|
164
197
|
$ cueline doctor
|
|
165
|
-
CueLine 0.
|
|
198
|
+
CueLine 0.2.0
|
|
166
199
|
status ok
|
|
167
200
|
node 22.14.0 ok
|
|
168
201
|
config /usr/local/lib/node_modules/cueline/config/routing.default.json valid
|
|
@@ -171,40 +204,41 @@ caller_ready yes
|
|
|
171
204
|
caller_lanes 1
|
|
172
205
|
process_available_lanes 1
|
|
173
206
|
|
|
174
|
-
$ cueline api path
|
|
175
|
-
/usr/local/lib/node_modules/cueline/dist/src/api.js
|
|
176
|
-
|
|
177
207
|
$ cueline routing
|
|
178
208
|
default codex-default available
|
|
179
209
|
|
|
180
|
-
$ cueline jobs
|
|
181
|
-
No jobs.
|
|
182
|
-
|
|
183
210
|
$ cueline run status run_... --json
|
|
184
211
|
{"status":"running","executor":"caller","phase":"caller_jobs_pending","runtime":{"ownership":"missing"},...}
|
|
185
212
|
|
|
186
|
-
$ cueline run
|
|
187
|
-
{"
|
|
213
|
+
$ cueline run doctor run_... --json
|
|
214
|
+
{"outcome":"action_required","phase":"caller_jobs_pending","nextAction":"execute_caller_jobs",...}
|
|
215
|
+
|
|
216
|
+
$ cueline run reconcile run_... --request-id msg_... --manual-send-confirmed --conversation-url https://chatgpt.com/c/...
|
|
217
|
+
run_...\tmsg_...\tconfirmed
|
|
188
218
|
|
|
189
219
|
$ cueline run cancel run_...
|
|
190
220
|
run_... requested affected_jobs=0
|
|
191
|
-
|
|
192
|
-
$ cueline config path
|
|
193
|
-
/usr/local/lib/node_modules/cueline/config/routing.default.json
|
|
194
|
-
|
|
195
|
-
$ cueline uninstall
|
|
196
|
-
CueLine skill removed: /Users/you/.codex/skills/cueline
|
|
197
221
|
```
|
|
198
222
|
|
|
199
223
|
Node 版本太舊、或沒有任何已啟用的 caller 通道時,`cueline doctor` 會以非零狀態結束。`process_available_lanes` 可以是 0 而不影響 caller 模式;只有明確選用 process executor 前才需要用 `cueline routing` 檢查 process 可用性。`cueline api path` 印出的就是 skill 會 import 的模組,所以用打包安裝時完全不需要 clone 原始碼。`cueline help` 會列出每個命令的精確語法,包括 `--json` 與人工 reconcile 的必要確認參數。
|
|
200
224
|
|
|
225
|
+
實驗性的診斷命令各有專屬文件:
|
|
226
|
+
|
|
227
|
+
| 命令 | 用途 | 文件 |
|
|
228
|
+
| --- | --- | --- |
|
|
229
|
+
| `run doctor` | 把 run 快照轉成穩定 finding 代碼、有界證據與一個安全下一步,不寫入任何狀態 | [run-doctor](docs/experiments/run-doctor.md) |
|
|
230
|
+
| `run watch` | 以持久事件序號為游標,做有界、不佔 lease 的觀察 | [run-watch](docs/experiments/run-watch.md) |
|
|
231
|
+
| `protocol lint` | 離線驗證 Pro 封包,一次回報所有已知的契約修正 | [protocol-lint](docs/experiments/protocol-lint.md) |
|
|
232
|
+
| `run handoff` | 產出帶精確身分與絕對路徑的安全重啟包 | [run-handoff](docs/experiments/run-handoff.md) |
|
|
233
|
+
| `run timeline` | 去敏感、游標分頁的稽核視圖,不含原始事件內容 | [run-timeline](docs/experiments/run-timeline.md) |
|
|
234
|
+
|
|
201
235
|
只有 `run status` 明確顯示 stale owner 時才能用 `run takeover`。新鮮的 active heartbeat 會被拒絕;命令回傳 `next: continue` 或 `next: reconcile_runtime`,請照該值行動,不要自行猜測。
|
|
202
236
|
|
|
203
237
|
## 設定
|
|
204
238
|
|
|
205
239
|
`CUELINE_CONFIG` 用來指定路由設定檔;`CUELINE_HOME` 用來搬動本機狀態(預設 `~/.cueline`)。
|
|
206
240
|
|
|
207
|
-
Caller 模式不會啟動路由行程。只有同時選擇 `executor: "process"` 與 `allowProcessExecution: true` 時,內建的 `default` 通道才會以 `codex-default` 執行隔離的 `codex exec --ignore-user-config`;`advise` 用 `read-only`、`work` 用 `workspace-write
|
|
241
|
+
Caller 模式不會啟動路由行程。只有同時選擇 `executor: "process"` 與 `allowProcessExecution: true` 時,內建的 `default` 通道才會以 `codex-default` 執行隔離的 `codex exec --ignore-user-config`;`advise` 用 `read-only`、`work` 用 `workspace-write`。要註冊不同的 process worker,複製 [`config/routing.default.json`](config/routing.default.json)、加入你的候選項,再把 `CUELINE_CONFIG` 指過去。
|
|
208
242
|
|
|
209
243
|
狀態放在 `CUELINE_HOME` 底下:
|
|
210
244
|
|
|
@@ -222,6 +256,8 @@ jobs/<job-id>.json 每個工作的執行證據
|
|
|
222
256
|
|
|
223
257
|
續跑只會接回完全相同的對話網址。ChatGPT 把長文字自動轉成附件時,CueLine 會辨識 `attachment_ready`,且最多只點一次;模糊點擊一律記為 `possibly_sent`,絕不補點或重送。只有實際可見、啟用且可操作的 Stop 按鈕才表示 Pro 仍在回答;隱藏殘留按鈕不會擋住完成回覆。若操作者手動送出附件,用 `cueline run reconcile RUN_ID --request-id REQUEST_ID --manual-send-confirmed` 寫入正式確認;之後仍須通過完全相同的 conversation、Pro 證據與 protocol/run/round/request identity 才能唯讀接回。
|
|
224
258
|
|
|
259
|
+
Pro 回答時絕不要打斷它,也不要用 `Answer now`、`Respond now`、`Stop` 或任何等效的加速控制。Pro 沒有本機工具,也不預設知道 repository 佈局或本機路徑。Caller 證據必須包含精確的代碼/錯誤識別字、相關程式碼摘錄與絕對本機路徑,並明確詢問 Pro 是否還需要更多本機證據。
|
|
260
|
+
|
|
225
261
|
送給主控的工作證據優先採用成功且非空的 stdout,全體共用 12,000 字元上限;完整 stdout/stderr 仍保留在本機 job status。若 Pro 接受 `inspect(job_ids)`,下一輪會先替指定 job 保留證據預算,再處理無關工作。
|
|
226
262
|
|
|
227
263
|
## 驗證
|
|
@@ -239,13 +275,22 @@ npm pack --dry-run
|
|
|
239
275
|
|
|
240
276
|
## 0.1 的限制
|
|
241
277
|
|
|
242
|
-
只支援文字控制命令。一次執行只對應一個對話。選成 `Pro` 是 CueLine 唯一會做的模型切換。支援 ChatGPT 自動把長文字轉成附件,但不支援主動上傳檔案、圖片、Deep Research、Projects 或 Apps。Caller `work` 必須經過明確 claim/start,長工作需 heartbeat;process 執行則要雙重明確授權。任何模糊送出或已啟動工作都不會被自動重試。
|
|
278
|
+
只支援文字控制命令。一次執行只對應一個對話。選成 `Pro` 是 CueLine 唯一會做的模型切換。支援 ChatGPT 自動把長文字轉成附件,但不支援主動上傳檔案、圖片、Deep Research、Projects 或 Apps。Caller `work` 必須經過明確 claim/start,長工作需 heartbeat;process 執行則要雙重明確授權。任何模糊送出或已啟動工作都不會被自動重試。macOS 是主要桌面目標、Linux 是 CI 目標;Windows 未驗證。adapter 依賴目前的 ChatGPT 網頁 UI,UI 改版會被明確浮現,絕不變成捏造的答案。
|
|
243
279
|
|
|
244
280
|
完整矩陣見 [compatibility](docs/compatibility.md)。
|
|
245
281
|
|
|
246
282
|
## 文件
|
|
247
283
|
|
|
248
|
-
|
|
284
|
+
| 文件 | 內容 |
|
|
285
|
+
| --- | --- |
|
|
286
|
+
| [architecture](docs/architecture.md) | 各元件如何組合、信任邊界在哪裡 |
|
|
287
|
+
| [controller protocol](docs/controller-protocol.md) | `<CueLineControl>` 封包、五個動作與修正規則 |
|
|
288
|
+
| [runner contract](docs/runner-contract.md) | 已註冊的 process worker 必須做與不得做的事 |
|
|
289
|
+
| [state and recovery](docs/state-and-recovery.md) | 持久狀態佈局、ownership 與每一條恢復路徑 |
|
|
290
|
+
| [compatibility](docs/compatibility.md) | 支援的平台、runtime 與 UI 假設 |
|
|
291
|
+
| [provenance](docs/provenance.md) | 設計從哪裡來、它不是什麼 |
|
|
292
|
+
|
|
293
|
+
(以上皆為英文)
|
|
249
294
|
|
|
250
295
|
## 開發
|
|
251
296
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
|
-
import { stat } from "node:fs/promises";
|
|
2
|
+
import { realpath, stat } from "node:fs/promises";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { CueLineError } from "./core/errors.js";
|
|
5
5
|
import { jobSpecHash } from "./core/ids.js";
|
|
@@ -47,13 +47,41 @@ function callerWorkJob(store, jobId) {
|
|
|
47
47
|
}
|
|
48
48
|
return job;
|
|
49
49
|
}
|
|
50
|
-
async function
|
|
51
|
-
const
|
|
50
|
+
async function inspectWorkdir(workdir) {
|
|
51
|
+
const resolvedPath = await realpath(workdir).catch((error) => {
|
|
52
|
+
throw new CueLineError("CALLER_WORKDIR_UNAVAILABLE", `Caller workdir '${workdir}' is unavailable.`, { cause: error });
|
|
53
|
+
});
|
|
54
|
+
const metadata = await stat(resolvedPath).catch((error) => {
|
|
52
55
|
throw new CueLineError("CALLER_WORKDIR_UNAVAILABLE", `Caller workdir '${workdir}' is unavailable.`, { cause: error });
|
|
53
56
|
});
|
|
54
57
|
if (!metadata.isDirectory()) {
|
|
55
58
|
throw new CueLineError("CALLER_WORKDIR_UNAVAILABLE", `Caller workdir '${workdir}' is not a directory.`);
|
|
56
59
|
}
|
|
60
|
+
return {
|
|
61
|
+
resolvedPath,
|
|
62
|
+
device: String(metadata.dev),
|
|
63
|
+
inode: String(metadata.ino),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function sameWorkdirIdentity(left, right) {
|
|
67
|
+
return (left.resolvedPath === right.resolvedPath &&
|
|
68
|
+
left.device === right.device &&
|
|
69
|
+
left.inode === right.inode);
|
|
70
|
+
}
|
|
71
|
+
async function assertClaimedWorkdir(claim) {
|
|
72
|
+
if (claim.workdirIdentity === undefined) {
|
|
73
|
+
throw new CueLineError("CALLER_WORKDIR_IDENTITY_REQUIRED", `Caller work claim '${claim.claimId}' predates directory pinning; reclaim it with the same caller before starting local work.`);
|
|
74
|
+
}
|
|
75
|
+
const observed = await inspectWorkdir(claim.workdir);
|
|
76
|
+
if (!sameWorkdirIdentity(observed, claim.workdirIdentity)) {
|
|
77
|
+
throw new CueLineError("CALLER_WORKDIR_IDENTITY_MISMATCH", `Caller workdir '${claim.workdir}' no longer identifies the directory pinned by claim '${claim.claimId}'.`, {
|
|
78
|
+
details: {
|
|
79
|
+
expected_resolved_path: claim.workdirIdentity.resolvedPath,
|
|
80
|
+
observed_resolved_path: observed.resolvedPath,
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
return observed;
|
|
57
85
|
}
|
|
58
86
|
function claimExpired(claim, now) {
|
|
59
87
|
const expiresAt = Date.parse(claim.expiresAt);
|
|
@@ -77,6 +105,9 @@ function expiration(now, ttlMs) {
|
|
|
77
105
|
async function writeClaimJobStatus(home, store, job, status, timestamp, error) {
|
|
78
106
|
const statusStore = new JobStatusStore(home);
|
|
79
107
|
const existing = await statusStore.read(job.jobId);
|
|
108
|
+
const startedAt = status === "running" && existing?.status !== "running"
|
|
109
|
+
? timestamp
|
|
110
|
+
: (existing?.startedAt ?? timestamp);
|
|
80
111
|
const next = {
|
|
81
112
|
jobId: job.jobId,
|
|
82
113
|
runId: store.runId,
|
|
@@ -85,7 +116,7 @@ async function writeClaimJobStatus(home, store, job, status, timestamp, error) {
|
|
|
85
116
|
mode: job.spec.mode,
|
|
86
117
|
execution: "foreground",
|
|
87
118
|
status,
|
|
88
|
-
startedAt
|
|
119
|
+
startedAt,
|
|
89
120
|
...(status === "ambiguous" ? { finishedAt: timestamp } : {}),
|
|
90
121
|
...(error === undefined ? {} : { error }),
|
|
91
122
|
};
|
|
@@ -111,13 +142,13 @@ async function persistStartedClaimAmbiguous(store, job, claim, home, now) {
|
|
|
111
142
|
await writeClaimJobStatus(home, store, job, "ambiguous", now.toISOString(), reason);
|
|
112
143
|
return reason;
|
|
113
144
|
}
|
|
114
|
-
async function releaseExpiredUnstartedClaim(store, job, claim, home, now) {
|
|
145
|
+
async function releaseExpiredUnstartedClaim(store, job, claim, home, now, reason = "expired_before_start") {
|
|
115
146
|
await store.append("caller_work_claim_released", {
|
|
116
147
|
job_id: job.jobId,
|
|
117
148
|
claim_id: claim.claimId,
|
|
118
149
|
fencing_token: claim.fencingToken,
|
|
119
150
|
caller_id: claim.callerId,
|
|
120
|
-
reason
|
|
151
|
+
reason,
|
|
121
152
|
released_at: now.toISOString(),
|
|
122
153
|
});
|
|
123
154
|
await writeClaimJobStatus(home, store, job, "pending", now.toISOString());
|
|
@@ -154,6 +185,7 @@ function claimResult(runId, job, claim, outcome) {
|
|
|
154
185
|
task: job.spec.task,
|
|
155
186
|
taskHash: claim.taskHash,
|
|
156
187
|
workdir: claim.workdir,
|
|
188
|
+
resolvedWorkdir: claim.workdirIdentity?.resolvedPath ?? claim.workdir,
|
|
157
189
|
claimId: claim.claimId,
|
|
158
190
|
callerId: claim.callerId,
|
|
159
191
|
fencingToken: claim.fencingToken,
|
|
@@ -203,21 +235,29 @@ export async function claimCueLineCallerJob(runId, jobId, options) {
|
|
|
203
235
|
if (existing !== null && existing !== undefined) {
|
|
204
236
|
if (!claimExpired(existing, currentTime)) {
|
|
205
237
|
if (existing.callerId === options.callerId) {
|
|
206
|
-
|
|
238
|
+
if (existing.workdirIdentity !== undefined || existing.startedAt !== null) {
|
|
239
|
+
return claimResult(runId, job, existing, "already_claimed");
|
|
240
|
+
}
|
|
241
|
+
await releaseExpiredUnstartedClaim(store, job, existing, home, currentTime, "identity_upgrade_before_start");
|
|
242
|
+
job = callerWorkJob(store, jobId);
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
throw new CueLineError("CALLER_WORK_ALREADY_CLAIMED", `Caller work job '${jobId}' already has an active claim.`, { details: { job_id: jobId, expires_at: existing.expiresAt } });
|
|
207
246
|
}
|
|
208
|
-
throw new CueLineError("CALLER_WORK_ALREADY_CLAIMED", `Caller work job '${jobId}' already has an active claim.`, { details: { job_id: jobId, expires_at: existing.expiresAt } });
|
|
209
247
|
}
|
|
210
|
-
|
|
211
|
-
|
|
248
|
+
else {
|
|
249
|
+
if (existing.startedAt !== null) {
|
|
250
|
+
await markStartedClaimAmbiguous(store, job, existing, home, currentTime);
|
|
251
|
+
}
|
|
252
|
+
await releaseExpiredUnstartedClaim(store, job, existing, home, currentTime);
|
|
253
|
+
job = callerWorkJob(store, jobId);
|
|
212
254
|
}
|
|
213
|
-
await releaseExpiredUnstartedClaim(store, job, existing, home, currentTime);
|
|
214
|
-
job = callerWorkJob(store, jobId);
|
|
215
255
|
}
|
|
216
256
|
if (job.status !== "pending") {
|
|
217
257
|
throw new CueLineError("CALLER_WORK_CLAIM_STATE_INVALID", `Caller work job '${jobId}' is running without an active claim and cannot be reclaimed safely.`);
|
|
218
258
|
}
|
|
219
259
|
const workdir = job.spec.workdir;
|
|
220
|
-
await
|
|
260
|
+
const workdirIdentity = await inspectWorkdir(workdir);
|
|
221
261
|
const timestamp = currentTime.toISOString();
|
|
222
262
|
const fencingToken = (job.callerWork?.nextFencingToken ?? 0) + 1;
|
|
223
263
|
const claim = {
|
|
@@ -225,6 +265,7 @@ export async function claimCueLineCallerJob(runId, jobId, options) {
|
|
|
225
265
|
callerId: options.callerId,
|
|
226
266
|
taskHash: jobSpecHash(job.spec),
|
|
227
267
|
workdir,
|
|
268
|
+
workdirIdentity,
|
|
228
269
|
fencingToken,
|
|
229
270
|
claimedAt: timestamp,
|
|
230
271
|
heartbeatAt: timestamp,
|
|
@@ -261,7 +302,7 @@ export async function startCueLineCallerJob(runId, jobId, proof, options = {}) {
|
|
|
261
302
|
expiresAt: claim.expiresAt,
|
|
262
303
|
};
|
|
263
304
|
}
|
|
264
|
-
await
|
|
305
|
+
await assertClaimedWorkdir(claim);
|
|
265
306
|
const timestamp = currentTime.toISOString();
|
|
266
307
|
const expiresAt = expiration(currentTime, claim.ttlMs);
|
|
267
308
|
await store.append("caller_work_started", {
|
|
@@ -271,6 +312,9 @@ export async function startCueLineCallerJob(runId, jobId, proof, options = {}) {
|
|
|
271
312
|
fencing_token: claim.fencingToken,
|
|
272
313
|
task_hash: claim.taskHash,
|
|
273
314
|
workdir: claim.workdir,
|
|
315
|
+
...(claim.workdirIdentity === undefined
|
|
316
|
+
? {}
|
|
317
|
+
: { workdir_identity: claim.workdirIdentity }),
|
|
274
318
|
started_at: timestamp,
|
|
275
319
|
expires_at: expiresAt,
|
|
276
320
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-caller-work.js","sourceRoot":"","sources":["../../src/api-caller-work.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api-caller-work.js","sourceRoot":"","sources":["../../src/api-caller-work.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { BrowserAdapter } from "./browser/browser-adapter.js";
|
|
2
2
|
import type { CodexIabAdapterOptions } from "./browser/codex-iab/chatgpt-client.js";
|
|
3
|
+
import type { CueLineRunStatusSummary } from "./core/run-status.js";
|
|
3
4
|
import type { RoutingConfig } from "./router/types.js";
|
|
4
5
|
import type { JobResultStatus } from "./runners/runner-adapter.js";
|
|
5
6
|
export interface CueLineRuntimeOptions {
|
|
@@ -23,11 +24,57 @@ export interface CueLineRuntimeOptions {
|
|
|
23
24
|
allowProcessExecution?: boolean;
|
|
24
25
|
maxConcurrency?: number;
|
|
25
26
|
laneConcurrency?: Readonly<Record<string, number>>;
|
|
27
|
+
/** Opt in to archiving the exact ChatGPT controller conversation after a durable complete. */
|
|
28
|
+
archiveControllerConversationOnComplete?: boolean;
|
|
26
29
|
}
|
|
27
30
|
export interface StartCueLineRunOptions extends CueLineRuntimeOptions {
|
|
28
31
|
request: string;
|
|
29
32
|
runId?: string;
|
|
30
33
|
}
|
|
34
|
+
export type CueLineRunListEntry = {
|
|
35
|
+
runId: string;
|
|
36
|
+
readable: true;
|
|
37
|
+
status: CueLineRunStatusSummary["status"];
|
|
38
|
+
executor: CueLineRunStatusSummary["executor"];
|
|
39
|
+
phase: CueLineRunStatusSummary["phase"];
|
|
40
|
+
round: number;
|
|
41
|
+
pendingTurns: number;
|
|
42
|
+
activeJobs: number;
|
|
43
|
+
runtimeOwnership: CueLineRunStatusSummary["runtime"]["ownership"];
|
|
44
|
+
safeNextAction: CueLineRunStatusSummary["safeNextAction"];
|
|
45
|
+
lastEventSequence: number;
|
|
46
|
+
lastEventAt: string;
|
|
47
|
+
} | {
|
|
48
|
+
runId: string;
|
|
49
|
+
readable: false;
|
|
50
|
+
errorCode: string;
|
|
51
|
+
};
|
|
52
|
+
export type CueLineRunVerificationOutcome = "verified" | "degraded" | "unreadable";
|
|
53
|
+
export interface CueLineRunVerificationFinding {
|
|
54
|
+
code: string;
|
|
55
|
+
severity: "warning" | "error";
|
|
56
|
+
surface: "marker" | "events" | "snapshot" | "runtime" | "jobs";
|
|
57
|
+
message: string;
|
|
58
|
+
}
|
|
59
|
+
export interface CueLineRunVerificationReport {
|
|
60
|
+
runId: string;
|
|
61
|
+
outcome: CueLineRunVerificationOutcome;
|
|
62
|
+
marker: "valid" | "missing" | "invalid";
|
|
63
|
+
eventLog: {
|
|
64
|
+
readable: true;
|
|
65
|
+
totalEvents: number;
|
|
66
|
+
authoritativeEvents: number;
|
|
67
|
+
lastSequence: number;
|
|
68
|
+
} | {
|
|
69
|
+
readable: false;
|
|
70
|
+
totalEvents: 0;
|
|
71
|
+
authoritativeEvents: 0;
|
|
72
|
+
lastSequence: null;
|
|
73
|
+
};
|
|
74
|
+
snapshot: "missing" | "valid" | "stale" | "invalid";
|
|
75
|
+
runtimeOwnership: "missing" | "active" | "stale" | "released" | "invalid";
|
|
76
|
+
findings: CueLineRunVerificationFinding[];
|
|
77
|
+
}
|
|
31
78
|
export interface ContinueCueLineRunOptions extends CueLineRuntimeOptions {
|
|
32
79
|
runId: string;
|
|
33
80
|
reconcileRequestId?: string;
|
|
@@ -40,6 +87,13 @@ export interface ManualControllerSubmissionConfirmation {
|
|
|
40
87
|
conversationUrl: string;
|
|
41
88
|
outcome: "confirmed" | "already_confirmed";
|
|
42
89
|
}
|
|
90
|
+
export interface ControllerNotSentConfirmation {
|
|
91
|
+
runId: string;
|
|
92
|
+
requestId: string;
|
|
93
|
+
conversationUrl: string;
|
|
94
|
+
promptHash: string;
|
|
95
|
+
outcome: "confirmed" | "already_confirmed";
|
|
96
|
+
}
|
|
43
97
|
export interface CueLineCallerJobResultInput {
|
|
44
98
|
status: JobResultStatus;
|
|
45
99
|
stdout?: string;
|
|
@@ -71,6 +125,8 @@ export interface CueLineCallerWorkClaimResult extends CueLineCallerWorkClaimProo
|
|
|
71
125
|
task: string;
|
|
72
126
|
taskHash: string;
|
|
73
127
|
workdir: string;
|
|
128
|
+
/** Canonical directory pinned by the durable claim; execute work only here. */
|
|
129
|
+
resolvedWorkdir: string;
|
|
74
130
|
claimedAt: string;
|
|
75
131
|
heartbeatAt: string;
|
|
76
132
|
expiresAt: string;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import type { CueLineCallerJobSubmissionOptions, CueLineCallerJobResultInput, CueLineCallerJobSubmissionResult, CueLineRuntimeOptions, ManualControllerSubmissionConfirmation } from "./api-contracts.js";
|
|
1
|
+
import type { CueLineCallerJobSubmissionOptions, CueLineCallerJobResultInput, CueLineCallerJobSubmissionResult, ControllerNotSentConfirmation, CueLineRuntimeOptions, ManualControllerSubmissionConfirmation } from "./api-contracts.js";
|
|
2
2
|
export declare function confirmManualControllerSubmission(runId: string, options: Pick<CueLineRuntimeOptions, "home" | "environment" | "now"> & {
|
|
3
3
|
requestId: string;
|
|
4
4
|
conversationUrl?: string;
|
|
5
5
|
}): Promise<ManualControllerSubmissionConfirmation>;
|
|
6
|
+
export declare function confirmControllerTurnNotSent(runId: string, options: Pick<CueLineRuntimeOptions, "home" | "environment" | "now"> & {
|
|
7
|
+
requestId: string;
|
|
8
|
+
conversationUrl?: string;
|
|
9
|
+
}): Promise<ControllerNotSentConfirmation>;
|
|
6
10
|
export declare function submitCueLineCallerJobResult(runId: string, jobId: string, input: CueLineCallerJobResultInput, options?: CueLineCallerJobSubmissionOptions): Promise<CueLineCallerJobSubmissionResult>;
|