@faiber/faiber-task

中文文档
2.7.0发布于 2026/11/05TypeScriptES Module近 30 天下载 4011

api.offline.capabilities() 发现协调的离线同步后端. api.offline.apply(change, {signal}) 提交一个名称 OfflineChange 具有稳定的 UUID, 原为 UTC changed_at目标 种类和有效载荷 重试时保留确切的有效载荷.

中文使用文档
文档目录9 节
  1. 离线同步
  2. 核对清单、合作者和提醒
  3. 审查的工作空间变化
  4. 董事会、私人来源和纸条内存
  5. 可配置的反馈请求(0.24.1)
  6. 获得资助的运动和私人承认
  7. 空间奖励和节制
  8. 社区概况和对话
  9. 社区信息行动

@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. 在重试相冲突的编辑前刷新; 从不默默地覆盖新的内容 .

版本与发布记录

@faiber/faiber-task 共发布 55 个版本,首次发布于 2026/08/26;过去 12 个月发布了 55 个版本。

版本发布日期距今
2.7.0latest2026/11/059 天前
2.6.02026/11/049 天前
2.5.02026/11/049 天前
2.4.02026/11/0310 天前
2.3.02026/11/0211 天前
2.2.02026/11/0212 天前

关于 @faiber/faiber-task 的常见问题

@faiber/faiber-task 是什么?

api.offline.capabilities() 发现协调的离线同步后端. api.offline.apply(change, {signal}) 提交一个名称 OfflineChange 具有稳定的 UUID, 原为 UTC changed_at目标 种类和有效载荷 重试时保留确切的有效载荷.

如何安装 @faiber/faiber-task?

在项目目录运行 npm install @faiber/faiber-task,或使用 pnpm add / yarn add / bun add。

@faiber/faiber-task 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@faiber/faiber-task 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@faiber/faiber-task 可以商用吗?

@faiber/faiber-task 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@faiber/faiber-task 的下载量有多少?

根据 npm 官方下载统计,@faiber/faiber-task 在 2026/10/14 – 2026/11/12 这 30 天内被下载 4,011 次,日均约 134 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@faiber/faiber-task 还在维护吗?

最新版本 2.7.0 发布于 2026/11/05(9 天前);至今共发布 55 个版本,其中过去 12 个月发布了 55 个;首次发布于 2026/08/26。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。