定时任务: - 管理员可查看/编辑/删除/触发全部用户的定时任务(新增 /api/scheduled-tasks/admin/* 接口与管理页) - 卡死任务恢复:单次执行超 30 分钟超时重试(最多 3 次),耗尽后标记 failed;看门狗回收服务重启遗留的「执行中」任务 会话分享: - 新增「只读链接」分享模式,生成公开免登录的只读对话快照页(/share/:code) - 公开接口 /api/public/shares/* 提供对话快照与图片附件 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
29 lines
877 B
TypeScript
29 lines
877 B
TypeScript
import type { BaseStream } from "@langchain/langgraph-sdk/react";
|
|
import { createContext, useContext } from "react";
|
|
|
|
import type { AgentThreadState } from "@/core/threads";
|
|
|
|
export interface ThreadContextType {
|
|
thread: BaseStream<AgentThreadState>;
|
|
isMock?: boolean;
|
|
/**
|
|
* When set, the conversation is rendered from a public read-only share.
|
|
* Artifact/image URLs then resolve to the unauthenticated
|
|
* `/api/public/shares/{code}/files/...` endpoint instead of the
|
|
* auth-gated thread artifact route.
|
|
*/
|
|
publicShareCode?: string;
|
|
}
|
|
|
|
export const ThreadContext = createContext<ThreadContextType | undefined>(
|
|
undefined,
|
|
);
|
|
|
|
export function useThread() {
|
|
const context = useContext(ThreadContext);
|
|
if (context === undefined) {
|
|
throw new Error("useThread must be used within a ThreadContext");
|
|
}
|
|
return context;
|
|
}
|