建立 sessions
建立 sessions
Section titled “建立 sessions”SDK 建立 session handle,Core 再解析 Desktop 設定的 provider effort profile。
先選擇 workspace
Section titled “先選擇 workspace”若 application 使用自己管理的 workspace,請先透過原生 picker 讓使用者選取資料夾,再呼叫 createSession():
const folder = await pedelec.workspaceFolderPicker();if (!folder) return;
if (!folder.isEmptyFolder && !folder.hasWorkspaceConfig) { // application 自行決定是否警告使用者。}
const session = await pedelec.createSession({ workspace: { path: folder.path },});Picker 取消時回傳 null。它是 read-only snapshot,只提供根目錄是否為空的 isEmptyFolder,以及 .pedelec-workspace.json 是否為 regular file 的 hasWorkspaceConfig;不判斷資料夾是否為有效 Pedelec workspace,也不初始化內容。Core 會在 createSession() 階段套用 workspace 規則,成功初始化 custom workspace 後才建立 marker。
const session = await pedelec.createSession();沒有 input 時,SDK 只讀取 defaultProvider、驗證 availability,並使用 default effort level。
指定 effort
Section titled “指定 effort”const session = await pedelec.createSession({ effortLevel: "high" });這種 provider-independent 形式讓 application 表達意圖,而具體 model/effort mapping 由 Desktop 使用者管理。
指定 provider 與 effort
Section titled “指定 provider 與 effort”const session = await pedelec.createSession({ provider: "codex", effortLevel: "low",});Explicit provider 的 SDK 路徑不會為了解析 model args 讀取 Desktop settings;Core 收到 request 後才解析目前 profile。
Skills、workspace 與 Ollama
Section titled “Skills、workspace 與 Ollama”Effort 可和 skills、workspace 一起使用。SDK 不接受 provider model field,請在 Desktop Settings 設定 model。Ollama 選中的 profile 必須有 model;空 profile 回傳 MODEL_REQUIRED,Low/High 不會 fallback。
Metadata 與 resume
Section titled “Metadata 與 resume”新 session 與 event context 會提供 normalized effortLevel。新建立的 resumeSession(sessionId) handle 可能無法恢復 provider 或 effort metadata,但 Core 仍使用已儲存的 command snapshot。
Tool type inference 與 autoEndOnDisconnect 行為維持不變。