feat(web,core,server,docs,skills): avatar update tooltip, DeepSeek-first model catalog, temporary-workspace wording (#224)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -181,7 +181,7 @@ export class Agent {
|
||||
*/
|
||||
async createSession(opts: CreateSessionOptions = {}): Promise<Session> {
|
||||
// Model is validated first (before creating the Workspace, so failure leaves no
|
||||
// temp directory behind): the reference must be the complete (provider, model_id)
|
||||
// temporary workspace behind): the reference must be the complete (provider, model_id)
|
||||
// pair — the config's unique key — and must name an entry in the Project config; a
|
||||
// reference outside the config throws immediately rather than passing silently,
|
||||
// otherwise credentials, pricing, and the context window would all be unavailable.
|
||||
@@ -217,7 +217,7 @@ export class Agent {
|
||||
|
||||
// An explicit Workspace must already exist as a directory: if it
|
||||
// doesn't, throw rather than auto-create (to avoid a typo silently working in
|
||||
// the wrong location); a temp Workspace is only created when unspecified.
|
||||
// the wrong location); a temporary workspace is only created when unspecified.
|
||||
let workspaceDir: string;
|
||||
if (opts.workspaceDir) {
|
||||
workspaceDir = path.resolve(opts.workspaceDir);
|
||||
@@ -226,7 +226,7 @@ export class Agent {
|
||||
stat = await fs.stat(workspaceDir);
|
||||
} catch {
|
||||
throw new Error(
|
||||
`Workspace does not exist: ${workspaceDir}. Specify an existing directory, or omit the Workspace to use a temporary directory.`,
|
||||
`Workspace does not exist: ${workspaceDir}. Specify an existing directory, or omit the Workspace to use a temporary workspace.`,
|
||||
);
|
||||
}
|
||||
if (!stat.isDirectory()) {
|
||||
|
||||
@@ -91,7 +91,7 @@ export async function createTempWorkspace(
|
||||
await fs.mkdir(base, { recursive: true });
|
||||
// The final directory must use a non-recursive mkdir: recursive mkdir succeeds
|
||||
// silently when the directory already exists, which would put a new Session into
|
||||
// an existing temp Workspace; EEXIST means an id collision, so retry with a new id.
|
||||
// an existing temporary workspace; EEXIST means an id collision, so retry with a new id.
|
||||
for (let attempt = 0; attempt < MAX_TMP_ID_ATTEMPTS; attempt++) {
|
||||
const dir = path.join(base, `tmp-${randomUUID().slice(0, 8)}`);
|
||||
try {
|
||||
|
||||
@@ -128,7 +128,7 @@ export const DEFAULT_CHAT_THINKING_LEVELS: readonly DefaultChatThinkingLevel[] =
|
||||
* New-chat defaults (`[default_chat]`): per-Project prefill for newly created chats.
|
||||
* Every key is optional and independent:
|
||||
* - `agent_id`: the Agent preselected on the draft page (must name an existing Agent);
|
||||
* - `workspace`: the prefilled Workspace directory (absent/empty = auto temp directory);
|
||||
* - `workspace`: the prefilled Workspace directory (absent/empty = a temporary workspace);
|
||||
* - `approval_mode`: the prefilled approval mode (absent = the built-in "allow-all");
|
||||
* - `thinking_level`: fallback thinking level for Agents whose config has no explicit
|
||||
* `model.thinking_level` (see Agent's thinking-level resolution chain in agent.ts).
|
||||
|
||||
Reference in New Issue
Block a user