@faiber/faiber-任务
离线同步
api.offline.capabilities() 发现协调的离线同步后端.
api.offline.apply(change, {signal}) 提交一个名称 OfflineChange 拥有稳定
UUID, 最初为协调世界时 changed_at目标 种类和有效载荷 保留确切的有效载荷
在重试. OfflineSyncResult.outcome 实值 applied 或者说 superseded及其快照
包含当前授权的任务/检查列表/文档。 冲突命令是按
工作项目,按原始编辑时间,使用 UUID 绑定破解。 备注文件有效载荷
必须包含完整的Yjs状态。 域权限和验证错误仍为错误;
客户保留无意识的工作。 这些API需要任务离线迁移和
端点部署; 光是包类型无法启用服务器支持 .
为每个认证的 Faiber 任务路由输入客户端 。 任务是沙盒- 本地权限 * 项目、工作项目、短跑、范围访问赠款、报告、评论、代理提案, 和实时无效事件.
npm install @faiber/faiber-task
import { FaiberClient, TaskApi } from "@faiber/faiber-task";
const task = new TaskApi(new FaiberClient("task", {
domains: { task: process.env.FAIBER_TASK_URL! },
authMode: "bearer",
getAccessToken: async () => accessToken,
}));
const projects = await task.listProjects({ mode: "software" });
const personal = await task.ensurePersonalProject();
const shared = await task.createSharedProject({ name: "Household" });
const item = await task.createWorkItem(input, crypto.randomUUID());
await task.transitionWorkItem(item.data.data.id, item.data.data.version, { status: "in_progress" });
所有方法返回完整的 Axios 响应并接受共享请求选项,包括
AbortSignal。可变集合释放ETags; 更新接受整数版本并发送
作为 If-Match. 重新加工的工作项目必须重新使用同样的独能键. openEvents
默认情况下与获取适配器一起打开已认证的SSE无效流.
ensurePersonalProject 具有同位素,并只授予已签名的用户
访问. createSharedProject 创建一个拥有所有者补助金和
接受-要求的转让政策。 这些是通用的任务 API; 使用
现有 createProject 软件或营销项目模式的方法.
所有方法都返回完整的Axios响应. 在运输或API故障时,抓取
axios 错误并检查 error.response?.status 以及服务对策.
通过一个 AbortSignal 通过最后请求选项参数取消呼叫.
境内流离失所者证明身份和配置的全球任务许可。 任务独立执行 工作空间、团队、项目和工作项目赠款。 全球作用从不绕过当地赠款.
核对清单、合作者和提醒
projectChecklists 财务报告和审定财务报表 checklist 返回原子任务/检查列表快照。 保存为 replaceChecklist(taskId, taskVersion, {items}); 409在重试前需要重新装入. projectMembers 列出项目赠款,以及 removeProjectMember 要求项目成员管理权(所有人不能被删除). reminder, (中文(简体) ), saveReminder,以及 removeReminder 仅运行在当前用户的提醒上。 首次创建时使用0版本,之后使用返回的提醒版本. 提醒者接受未来的ISO时间戳,IANA时区,以及 once, (中文(简体) ), daily,或 monthly 重现。 任务创建接受可选 reminder 解剖论. 交付由Messer处理;这些API从来不允许访问另一个用户的收件箱. 所有操作都保留Axios响应,并通过请求选项支持取消.
审查的工作空间变化
task.workspaceAssistant 提供范围化的任务/说明查询、类别文件夹、节省的规划偏好和持久的审查建议。 查询返回一个精确 total,光标页面和检索时间。 日期范围包含在 from 独家 until· ; completed_by_me 使用记录的完成角色,包括随后重新开始的任务。 使用 owner_id 用于基于任务的清单.
const result = await task.workspaceAssistant.query({
project_id: spaceId, owner_id: signedInUserId, active_only: true,
from: tomorrowStart, until: nextDayStart, limit: 200,
});
const proposal = await task.workspaceAssistant.propose({
conversation_id: conversationId, project_id: spaceId,
request_id: crypto.randomUUID(),
operations: [{ kind: 'update', id: taskId, expected_version: currentVersion,
patch: { due_at: tomorrowStart } }],
});
// Render proposal.data.data.preview and collect the user's review first.
const applied = await task.workspaceAssistant.apply(
proposal.data.data.id, proposal.data.data.revision,
);
revise 验证已编辑的操作并产生新的修订。 在一场冲突中, refresh 重建当前记录的预览;在应用前再次审查。 对同一修订,批准是事务性的,是专有的。 所有方法都继承呼叫器认证,取消,以及Axios错误处理. 他们要求 task:access:use 加上每个业务目前的任务能力;项目所有人开具账单绝不允许访问。 初次 createWorkItem 清单和个人提醒与任务一起执行.
行政2号申诉报告: adminUserPlans({ user_ids }) 返回最多100个逗号分隔用户UUID的沙盒订阅; incomeReport({ from, to, plan?, page? }) 返回确认的购买和每日现金收入。 亚洲/德黑兰的日期包括YYYY-MM-DD,最多366天。 两者都需要经过核实的管理员角色和任务访问. 方法保留Axios的全部响应并接受取消选项.
董事会、私人来源和纸条内存
task.collaboration 曝光版本共享工作流程,私人附件,便条媒体,
进口、指数化和所有者共享津贴。 检查 config() 在提供之前
特性并使用其具体部署文件/音频上限。 阶段标识和犬科
类别在名称变化时保持稳定。 只有空间管理器编辑共享的阶段;
参与者只能转换指派的任务。 409需要更新版本和
重试移动前的更新预览.
以稳定请求创建附件保留 UUID 和 SHA-256 校验和,上传
与 uploadAttachment然后进行民意测验 attachment 直到扫描标记它干净。 装入干净
注释或使用的ID attachNoteMedia编号 :setNoteCover 与本注版本合并.
下载重检查任务权限 。 在保留原件时收取储存费
已存在;未绑定的文件保留已废弃的注释文本和附表.
startNoteImport 接受干净的私人原件; startSourceImport 接受公众
HTTP(S)页. 票价 noteImport,显示取出和出处,然后明确批准
与 applyNoteImport。一个转换会消耗一个导入;OCR和音频也会使用它们
配置的津贴。 取消并重试使用工作版本. 从不自动
应用已提取的内容. workspaceAssistant.propose 支持 import_note 与
当前导入/注解版本、附件/替换模式和可选的审查摘要
原型保持附着. 已更改的源或注释返回 409 .
searchNotes 默认到一个指定项目并接受最多9个额外项目
无障碍项目。 任务在返回 a 之前重新授权每个返回的便笺/ 版本
引经. noteIndexing 财务报告和审定财务报表 retryNoteIndexing 曝光进度并授权重试 .
新内容在索引编制过程中通过明确的注释选择仍然可以直接读取.
保存的被支持的正本被同步取出,而不更改笔记写入 .
已审查 archive_note 操作 archived: true 或者说 false他们保留内容,
文件和历史。 默认助理查询和知识搜索省略存档注释;
明确注释选择仍然检查权限 。 使用 include_archived: true 仅限
当用户请求存档记录时。 所有方法都保存 Axios 响应并接受
请求选项,包括取消信号.
内部操作需要信任的服务器证书和当前租户范围. 永远不要从浏览器中调用它们或向应用程序用户暴露服务证书.
可配置的反馈请求(0.24.1)
task.feedback.capabilities() 返回当前已核实的报告作用和准备状态。 一个新的任务实例没有政策和工作流程的预设 。 工作空间管理器在其中配置 /dashboard/settings/feedback;只存储在沙盒数据库中。 客户端不得编码角色映射或舞台计数.
使用导出 ReportContext 财务报告和审定财务报表 SubmitFeedbackRequest 类型,初始化/上载/完整的私人截图证据,然后调用 task.feedback.submit(input, crypto.randomUUID())保持相同的钥匙和身体供重试。 屏幕截图可以不屏蔽提交 . list, (中文(简体) ), detail, (中文(简体) ), decide,并授权 attachmentContent 保留服务器所有权和本地审查范围。 决定用途 expected_version; stale 版本返回 409. 只有配置的最后指派阶段才产生任务 . current_stage 包含其双语标签和行动类型。 现有报告保留政策编辑后提交的路由快照。 管理方法需要当地 workspace.manage; 政策写作使用当前版本(零初始化).
所有通话保留Axios状态/标题、经认证的饼干或无记名标志、中止信号取消和运输错误。 在中介活动中,永远不要提交隐藏的答案,证书,签名的媒体URL或私人证据.
任务来源合同包括反馈接收、审查决定和私人证据,
工作空间查询和规范的建议书批次、说明文件/进口、董事会工作流程、,
所有者合用和计划. operations 曝光每个挂载的 HTTP 操作, 包括
内部服务业务;内部计划/礼品业务需要单独的后端
服务证书,并且只能从信任的服务器调用.
在更新项目、工作项目、提醒、首选项之前, 读取当前 ETag/ 版本
或建议。 过 If-Match 生成方法的请求头; 方便方法
接受版本参数。 缺少先决条件 返回 428, 过时的修订 返回 409.
工作项目的创建和反馈提交/决定需要稳定 Idempotency-Key
信头经过复试。 删除一个工作项目返回204,没有JSON身体. 项目和
工作项目收藏端点包括 pagination 元数据, 但是这个后端针头总是
返回这些遗留收藏的无效光标;助理查询提供了真实的UUID光标.
workspaceAssistant.query 接受结构化 record_type 财务报告和审定财务报表 field_filters 仅使用
item_type: 'note'. 提案使用歧视 kind 及其全部有效载荷.
验证或坚持预览,审查后适用该修订. 应用程序重新检查
资源访问和一个交易中的预览; 冲突没有应用.
反馈请打电话 feedback.capabilities() 在获取上下文之前。 保留其
reporter_id 使用 X-Feedback-Reporter-Id 在提交和截图操作中.
409号 feedback_identity_changed 需要丢弃捕获并获得新鲜的
装订。 这个头是先决条件,从来不是认证证书. 审查和
分配既需要配置的境内流离失所者许可,也需要当地分支机构/阶段角色的授予.
屏幕截图上传为原始 PNG/JPEG/WebP 字节;一般任务附件使用 FormData。 。 。 .
私人下载使用字节响应并保存Axios响应头.
openEvents() 返回原始 SSE 流 event: invalidate 编号 : data: changed 帧,
每隔15秒保存一次 连接并获取权威快照
无效; 不提供重放光标 。 单独授权的实时用途
Sockudo 频道: 配置已封住, 而授权端点返回原始
{ auth }。SDK 曝光 HTTP 边界; 连接兼容的实时客户端
使用返回的配置。 残缺的协作功能可返回404和
未配置的实时可以返回503.
项目 settings,工作项目 custom_fields,会话/承诺 metadata 和代理人提案
payload 故意保留JSON扩展数据,因为服务商店
serde_json::Value;固定外接信封和所有已申报的嵌入模型仍然被打入.
获得资助的运动和私人承认
竞选工作使用社会职位和权利主张。 公开 运动发现没有 披露私人参与者身份或证据。 开始任务队列时, 已获得资金 保留; 验证审查排队, 以一等资产结算。 待答复 无法确认是否已经支付报酬。 再次读取任务到 观察和解。 Dox运动是私人活动,没有消费权.
稳定使用 request_id 重试时的值。 不同内容的再利用ID
返回冲突。 使用 FormData; 证据下载
要求参与者、竞选主持人或经授权的操作员访问。 这些APIs
需要部署运动支持和配置服务整合。 财务
特性被禁用,直到服务操作员提供资金和启用.
const campaigns = await task.rewards.campaigns({ view: 'public' }, { signal: controller.signal });
console.log(campaigns.status, campaigns.data.data.items);
空间奖励和节制
TaskApi.spaceRewards 与资产 dox 协调一般工作核查
分类账。 向已停用者奖励默认值 。 分配模式,每个成员500多克;
任务创建者批准另一成员完成的任务,并资助其奖励.
每个成员向空间金库管理500个模式问题;选定的主持人
审查已完成的工作。 自是严禁. 资产仍然是唯一的结余
和转移权力。 产品返回花费多克思到太空金库.
const task = new TaskApi(new FaiberClient('task', {
domains: { task: 'https://task.example.com' }, authMode: 'cookie'
}));
const signal = new AbortController().signal;
const queue = await task.spaceRewards.queue(spaceId, undefined, { signal });
const item = queue.data.data.item;
if (item) {
await task.spaceRewards.decide(spaceId, item.id, {
request_id: crypto.randomUUID(), version: item.version,
action: 'approve', amount: item.amount + 5
}, { signal });
}
const ledger = await task.spaceRewards.transactions(spaceId, {
account: 'space', direction: 'out', status: 'completed', page: 1, page_size: 20
}, { signal });
打电话者必须明确要求作出每项决定. approve 校验并锁定
任务; reject 返回到待办事宜; skip 移动到队列尾端。 数额 0
核查不付. 审查和分类路线需要现有成员,
approval.review,并选择为管理模式的主持人。 已完成的公布
和处理/失败的尝试有单独的状态过滤器;尝试没有
变动余额。 保护 request_id 以及运输失败后的有效载荷.
Handle Axios 403/404用于访问,409用于过时版本,并正常取消.
tasks() 财务报告和审定财务报表 transactions() 返回服务器 pagination; 从不将页面当作
整个收藏. read() 为老会员交易提供光标.
遗留的 Dox 配置输入在 2. 0.0: 供应中发生变化 version,明确
mode,以及 moderators,或使用 spaceRewards.configure()。 Dox 是可转移的
空间资产,不再是一个单独的得分。 现有的 do/campaign API依然存在.
integrations 揭露了演员拥有的 Faiber 同步,范围化的时间报告,
和未经审计的订阅管理,没有应用程序 UI 依赖.
社区概况和对话
api.community 揭露基于同意的个人化, 排名公开发现,
兴趣,屏蔽,交谈和做礼物。 相同的输入方法是
备查 CommunityApi他们继承了你的荣誉证书,
请求选项、中止信号和全部 Axios 响应。 公众浏览和
信息需要公众简介;礼物和助理问题需要相互
利息 此类行动不允许他人从事任何工作或笔记.
const me = await api.community.self({ signal });
const people = await api.community.people({ q: "design", page: 1 }, { signal });
await api.community.interest(people.data.data.items[0].user_id, true, { signal });
在设备上保留问卷草稿直到完成 。 提交 analyze() 与
所有答案和稳定 request_id; 重试时重用. publish() 单独
需要明确的同意和返回的版本。 简介可以保持隐私
经过分析. gift() 接受一个目录 ID , 绝不是呼叫者提供的价格.
使用服务器返回 remaining_submissions 竞选限制.
身份/许可出错使用401/403、无法访问的配置文件404和 stale 版本,相互冲突的重试,限制或缺失的配置 409. 不要推断 一个部署的服务支持这些端点 从SDK版本. 社区服务及其人工智能收费结构必须先推出 生产用途。 任务还需要其社区转发功能.
社区信息行动
CommunityApi.send(peerId, { request_id, body, reply_to }) 可以在同一个对话中引用一个消息. editMessage 财务报告和审定财务报表 deleteMessage 需要发送者的身份,一个稳定 request_id 和当前消息 version删除保留了一块墓碑,并清除了尸体和反应. reactToMessage(peerId, messageId, { emoji: '❤️', enabled: true }) 设置呼叫者的反应;重复请求不能重复。 所有方法都接受Axios选项,包括: signal,然后返回 Axios 的全部响应.
这两种情况必须保持公开和不受限制。 社会要求 social:community:messages:edit, (中文(简体) ), :delete,或 :react; 任务使用其录取许可,并向Social转发明确的行动. 访问失败返回403/404, stale 版本返回409. 在重试相冲突的编辑前刷新; 从不默默地覆盖新的内容 .