ChatRequest gains an attachments field; ChatState carries a per-turn thinking mode, effort level and staged attachments (capped at 4 files / 5 MiB, attachment-only sends allowed). The chat panel grows a controls row (thinking / effort / attach) and a dedicated attachment-chip row, with hit-test and paint sharing one input-block origin. All five providers consume the knobs — Claude maps thinking onto the SDK token budget, Copilot onto reasoning_effort, the CLI / built-in transports prepend an in-band directive, the HTTP transport adds body fields; attachments spill to a private per-turn temp dir (cleaned on drop) or inline base64. Also wires op-ai-skills into the built-in provider and op-acp in as the AcpProvider chat backend.
26 lines
1 KiB
TOML
26 lines
1 KiB
TOML
[package]
|
|
name = "op-editor-core"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
description = "OpenPencil editor state — selection/tool/history/viewport on jian PenDocument"
|
|
|
|
[dependencies]
|
|
jian-ops-schema = { path = "../../vendor/jian/crates/jian-ops-schema" }
|
|
jian-core = { path = "../../vendor/jian/crates/jian-core" }
|
|
|
|
# Locale enum for the chrome UI state (ui_chrome.rs). op-i18n is
|
|
# dependency-free + wasm32-clean, so it doesn't compromise the
|
|
# wasm-clean invariant of op-editor-core.
|
|
op-i18n = { path = "../op-i18n" }
|
|
|
|
# Chat-request data shapes (ThinkingMode / EffortLevel / ChatAttachment)
|
|
# the chat sub-state carries. op-ai is dependency-free + wasm32-clean
|
|
# and never imports op-editor-core, so this edge is acyclic + safe.
|
|
op-ai = { path = "../op-ai" }
|
|
|
|
# render_backend.rs uses glam::Vec2 as Point2D (spec §5.2). Pinned to the
|
|
# same version op-editor-ui uses so both crates resolve one glam.
|
|
glam = { version = "0.29", default-features = false, features = ["std"] }
|