主序列开发器工具
@dev-mainsequence/devtools 是 MainSequence 后面的共享类型脚本包
开发者集成:浏览器登录和机器会话,寄存器和项目
操作,项目 MCP 客户端,平台代理客户端,共享的项目工具
登记册和登记册 ms-devtools 命令行。 它没有运行时间 npm 依赖和制造
没有 LLM API 调用; 开发者动作运行决定性 。 宿主的融合生活着
他们自己的寄存器 只使用这个软件包的公开 API.
我安装哪个主序列工具?
| 东道主 | 你得到的东西 | 安装 | 仓库 |
|---|---|---|---|
| VS 代码 | 一个 MainSequence 面板: 签名、 浏览寄存器和项目、 在本地设置、 打开签名终端、 运行 SDK 动作 | 安装 主要顺序 从VS代码市场,或 code --install-extension mainsequencegmbh.vscode-mainsequence | ms-vscode-扩展 |
| 代码 (桌面和CLI) | MainSequence面板(家,代码,项目,代理,工具),聊天中的代理消息,项目MCP工具, /ms 命令 | codex plugin marketplace add mainsequence-sdk/mainsequence-codex-plugin,则 codex plugin add mainsequence@mainsequence | 主序列- 编码- 插件 |
| 克劳德桌面 (代码) | MainSequence gane(家,代码,项目,代理,工具),代理对话 /ms @agent,项目MCP工具,部署 | 自定义 插件 添加市场 从寄存器添加输入 https://github.com/mainsequence-sdk/mainsequence-claude-desktop.git,安装 主要顺序 从 mainsequence-desktop | 主后序- claude- 桌面 |
| 终端或 CI | 这个 ms-devtools 命令行 | npx -p @dev-mainsequence/devtools ms-devtools --help,或 npm install -g @dev-mainsequence/devtools | 此寄存器 |
他们都需要22号或更新 并且每个后端共享一个签入 保存在操作中
系统证书存储( 登录 macOS 上的密钥链, 特勤通过
secret-tool (原始内容存档于2018-09-26). on Linux. 这个 mainsequence (毕通)并 command-center-sdk (节点)
命令行读取相同的记录, 所以在任何地方签名 在任何地方的标志。 窗口
在此软件包中没有持续存储: VS 代码扩展保存自己的会话
,而代码和 Claude 桌面插件尚未在 Windows 上支持。 每个
主机的README解释了自己的设置;指挥中心的 设置-账户-
开发工具 页面给出与部署后端 URL 相同的步骤.
这个 ms-devtools 命令行
npx -p @dev-mainsequence/devtools ms-devtools --help
ms-devtools login --backend https://api.main-sequence.app
ms-devtools auth-status --backend https://api.main-sequence.app --check --json
ms-devtools refresh-token --backend https://api.main-sequence.app
ms-devtools repositories --backend https://api.main-sequence.app --json
ms-devtools status --path "/path/to/project" --json
ms-devtools sync --path "/path/to/project"
签名
login 使用 PKCE 打开主机浏览器的授权流和回回调;
账户创建是主机流量的一部分。 登录和 auth-status 工作之前的任何一个
SDK已安装. 跑者在打开浏览器前检查商店并读取
在报告成功前保存对对。 保存的记录是 SDKs 现有的
MainSequenceCLI.auth 服务、 后端范围账户和版本 1 JSON 格式; 有
没有单独的证书记录和符号文件. refresh-token 更新已保存
机器会话; 它不替换导出到另一个 shell 的符号 . logout
删除后端的本地记录并单独报告远程撤销
已完成.
登录持续时间只要其刷新符号: 后端结束于之后的固定时间
注册(默认为5天),但经常续签. auth-status 报告说
瞬间为 sessionEndsAt 并命名为摘要。 届会一旦通过
在未与后端联系的情况下,将读出签名,每个请求都会回答“保存的”
在协调世界时结束。 再说一遍" 401意味着后端不再接受
登录( 已过期、 已撤销 或另一个后端的): devtools 刷新一次, 否则询问
为一个新的登录。 403是账户缺乏的许可: FORBIDDEN, (中文(简体) ),
没有更新,没有重试,也没有签到的快.
特意提供的 MAINSEQUENCE_ACCESS_TOKEN 与其匹配
MAINSEQUENCE_ENDPOINT 是一个进程或 CI 身份。 一个被拒绝的流程身份永远不会
回到另一个保存的身份。 运行时证书是一条单独的应用道
而不为开发者动作所接受.
项目行动
后端选择使用明确的 --backend,则 MAINSEQUENCE_ENDPOINT,基特根号
.env 端点,现有的 CLI 配置,然后是标准后端. 项目
选择验证真正的 Git 根、 附属分支、 完整的 HEAD SHA 和 Canonical 远程
身份证明 模糊的 Python/ 前端项目需要 --type python 或者说 --type vite_react。 。 。 .
| 命令 | 行为 |
|---|---|
status | 本地 Git 语境、 会话元数据以及已安装的命令能力. |
resolve | 后端 Git-context 分辨率带有身份/分支/ref/承诺验证. |
setup --uid UID --branch BRANCH --base-dir DIR [--install] | 获取已注册绑定; 重复使用/登记寄存器 SSH 密钥; 验证访问; 克隆输入 <base>/<org>/projects/<name>-<uid> (一个赤裸的) DIR 例如 mainsequence-dev 是您家目录中的文件夹, 作为 mainsequence CLI 读取; 只写一个结束点 .env;可选择安装依赖关系. 现有的退出文件夹从未被替换 . |
install | uv sync 用于 Python ; npm ci 前端项目. |
sync | 用已安装的 SDK 刷新工程的依赖文件: Python code-repository sync 运行 uv lock, (中文(简体) ), uv sync 并锁定 requirements.txt 导出( e)mainsequence 9.0.5或以后);节点 code-repository sync 刷新点 package-lock.json 运行 npm ci (单位:千美元)@dev-mainsequence/command-center-sdk (见A/CN.9/WG.III/WP.105,第0.5.13段或以后)。 没有承诺消息, 干运行, Git 命令或后端请求: 审查修改, 然后自己承诺并按下 。 已安装的 SDK 仍然具有已退休的发行同步( S)--dry-run编号 :--message 在同步帮助中报告无法运行; 运行 update-sdk。 。 。 . |
sdk-status | 孤立 Python 分布元数据加稳定源版本, 或节点 application sdk-status。源版本不能证明登记册的公布. |
update-sdk [--dry-run] | 蟒 code-repository update-sdk 或节点 application update-sdk;保留该项目现有的依赖政策. |
update-agents | Python SDK的包装 AGENTS.md 管理区块更新. |
install-skills [--dry-run] | 节点SDK的打包技能安装. Python的综合技能指挥需要MCP,在此不支持. |
env-cleanup | 删除遗留的项目证书并保留端点和无关的设置; 拒绝跟踪或并联 .env 文档. |
skills-sync | 不支持的报告:后端拥有的技能需要MainSequence MCP. |
open-folder, (中文(简体) ), signed-terminal | 被库所暴露的主机能力;终端跑车报告为不支持. |
Python 调度用途 .venv/bin/mainsequence (单位:千美元)Scripts/mainsequence.exe )),在视窗上.
节点调度执行工程安装
@dev-mainsequence/command-center-sdk/cli/command-center-sdk.mjs 与跑者节点
可执行文件 。 没有全球SDK或同源路径是倒置. 检查命令帮助
; 缺失或更老的能力产生结构化错误.
代码存储器的版本和发布标记是寄存器代码,例如 GitHub
动作工作流程;平台从Git推出,所以 sync 仅刷新
依赖文件且没有 freeze-env。对于已有的图书馆呼叫器,请同步
请求仍然携带 message 被接受,信件被忽略, a freeze-env
请求报告 UNSUPPORTED_ACTION和堕落者 sanitizeCommitMessage 导出
财务报告和审定财务报表 freezeEnv CLI 动作名称仍然保留,但没有构建命令.
若为 .env 仍然包含证书, 运行 env-cleanup 明确在SDK发送前.
它会去除犬形标志 运行时的证书 不支持的遗产标志
运行时间证书认证模式任务,包括 export 和白空间表。 这个
保存无关的应用程序设置, 保留 VS 代码扩展名中的结束点
块# BEGIN MAINSEQUENCE AUTH (managed by VS Code) . # END MAINSEQUENCE AUTH,作为
扩展写,不包括 .env 从吉特语开始,用私人语气写出来
权限。 此窗体中的文件不再写入 .
突变在 Git 常见目录中有一个寄存器锁定, 也覆盖链接
工作树。 在克隆存在之前, 设置锁定 .<folder>.mainsequence-devtools.lock 内
其犬目母目录. 取消停止子进程; 失败于
执行开始报告部分或不确定的影响。 失败的同步永远不会
自动重试或回滚。 突然处理后, 检查运行
动作在去除 stale 锁之前(mainsequence-devtools.lock 数字
目录,或命名的设置锁).
Raw SDK输出是私有的,不包含在结果或钩输出中. 进展 报告命令生命周期; 支持的结构状态元数据被过滤。 运行 SDK 当需要其详细的诊断输出时,直接在私人终端. 原始内容 证书从来不是论据、公开结果或模式上下文.
项目MCP
mcp-discover, (中文(简体) ), mcp-add, (中文(简体) ), mcp-list, (中文(简体) ), mcp-remove, (中文(简体) ), mcp-tools, (中文(简体) ), mcp-call 财务报告和审定财务报表
mcp-catalog [--refresh] 发现平台的 MCP 目录, 请记住选中的
释放、读取其工具并通过本地的 MCP 客户端引用,使用开发者
届会和短期释放证书。 连接保存于
mcp-connections.json 除了 CLI 配置( 主机可能注入)
mcpConnectionsPath) (中文(简体) ). mcp-add 存储发布的名称、存储器的名称和
其寄存器分支与连接( e)name, (中文(简体) ), display_name, (中文(简体) ),
code_repository_branch_uid),这样 mcp-list 在没有后端的情况下标签保存的连接
请求; 无法读取的标签被忽略,而不是使 MCP 不可用.
在 Codex 中这些连接的谈话用途如下:
代码插件的指南。 。 。 .
图书馆 API
import { createDevTools, createNodeHost } from '@dev-mainsequence/devtools';
const tools = createDevTools({ host: createNodeHost() });
const result = await tools.dispatch({ action: 'sync', root: '/path/to/project' });
同名调度员为图书馆,CLI和主机跑车服务. parseArguments, (中文(简体) ),
tokenizeCommand 财务报告和审定财务报表 HELP 导出后, 主机可以解析与
ms-devtools。 。 。 . HostServices 供应浏览器和进程执行,安全进度,
取消, 以及可选本地文件夹和终端操作 。 共享代码导入否
主机API. 公共类型包括: ActionRequest, (中文(简体) ), ActionResult<T>, (中文(简体) ), ProjectContext, (中文(简体) ),
ActionCapability 财务报告和审定财务报表 SessionStatus全权证书不对外开放.
createSessionService 拥有浏览器授权, 认证 HTTP, 刷新和
撤销; RepositoryClient 拥有 Canonic 后端响应和 Git 分辨率
合同; createDevTools 拥有项目动作和取消. HostAuthSession 是一个
用于同步主机SecretStorage、机器会话的选入兼容适配器
和东道国预测/移民政策 get, (中文(简体) ), save, (中文(简体) ), environment 财务报告和审定财务报表
persistence 方法是具有特权的认证桥梁,绝不能到达网页视图
状态、进度、日志、钩子输出或动作结果。 VS码扩展使用它的地方
没有本地商店可以到达; Codex 和 Claude Desktop 只使用本地持久性 .
发现和账户绑定
dispatch() 推断为会议状态、环境、代理目录、,
MCP 发现、保存连接和工具目录;导出包括 McpConnection, (中文(简体) ),
McpTool, (中文(简体) ), McpCatalog, (中文(简体) ), McpDiscoveryPage, (中文(简体) ), AgentDirectory 财务报告和审定财务报表 DiscoveryResultMap。 。 。 .
后端响应验证留在这里;主机应用程序拥有其视图状态.
const verified = await devtools.dispatch({ action: 'auth-status', backend, check: true });
if (verified.status !== 'success' || !verified.data?.username) throw new Error('Sign in first');
const scope = { backend, expectedAccount: verified.data.username, environmentUid };
const saved = await devtools.dispatch({ action: 'mcp-list', ...scope, readOnly: true });
const available = await devtools.dispatch({ action: 'mcp-discover', ...scope, enrichNames: true, limit: 20 });
mcp-list与readOnly: true读取已保存的元数据, 无需标签查看、 锁定或 连接文件写入; 没有它, 保存的没有标签的记录由 首先列出可以读取它们.mcp-discover与enrichNames: true每次解决可选寄存器名称 分支,一次最多4个,没有连接写作.mcp-environments财务报告和审定财务报表organization-environments共享一个界限listEnvironments加载器: 重复行, 更改总计, 不成熟的空页和目录 over 1万个条目被拒绝.- MCP、代理和组织项目行动接受
expectedAccount内置 校正用于请求和重试的证书、拒绝 当选中的证书在 a 期间更改时, 不同账户并丢弃回复 读取.bindSessionAccount(session, backend, expectedAccount)给出公有领域 同一合同的客户; 习惯SessionService执行可选withAccount方法,账户检查失败UNSUPPORTED_ACTION当它缺乏 一个 范围化会话无法登录、注销或更改认证 。 仍为主机 当所配置的后端或环境发生变化时,无效 stale 选择.
MCP 项目客户端
远程工具失败 MCP_TOOL_ERROR 保持消毒的MCP content 财务报告和审定财务报表
structuredContent 内 ActionResult.data,除运输和API出错;主机
保留这个结果和任何 effects 警告,电话从不重播
自动。 持续的客户再利用经核实的释放元数据、发放赠款和
它的存储器工具目录最多60秒, 不超过证书过期: a
编制 mcp-call 只发送业务 tools/call 请, mcp-tools 刷新点
明确计划,冷藏装置在进入和完成时远程核实账户,以及
温暖的呼叫在本地执行前后重读共享证书选择 .
登录、 更改证书对或保存的终点、 删除、 过期和运输
失败无效重用; 服务器仍然授权每个调用 . createDevTools()
默认拥有缓存; 每个请求创建调度器的主机通过一个不透明
createMcpConnectionCache() 处理为 mcpCache的会话适配器
selectionIdentity() 总是使用新的设置。 单独的 CLI 进程共享无缓存 .
冷却项目MCP(缩放为零 FastAPI 发布)缓慢:对照
生产CRM,第一次 mcp-call 取了53-71 s,取了7-10 s. 项目请求
有自己的预算, projectRequestTimeoutMs (违约120 s; requestTimeoutMs默认值
30 s,管辖后端请求)和a tools/call 尊重工具的广告
_meta["mainsequence.ai/timeout-seconds/v1"] 当它更大,上限为300秒。主机设置
他们的外部界限高于此。 错误消息显示哪个端点回答了哪个请求
(单位:千美元)The project MCP https://… returned HTTP 503 for tools/call crm_contacts_list.,告诉一个
超时( e)timed out after 120 s)除连接失败(failed before a response arrived (ECONNREFUSED)),并保留 JSON-RPC 错误的自己消息,被编辑.
共享项目工具登记册
两个主机插件都将每个保存的工程 MCP 连接工具作为一等工具呈现
名称: ms_<tool>_<hash> (例如 ms_crm_contacts_list_183f8138因此,一个
模式调用 crm_contacts_list 就像其他工具一样 此软件包拥有该注册
(单位:千美元)ADR 0004 数据); 插件只保留什么
具体针对他们的宿主.
projectToolName(backend, environmentUid, releaseUid, tool)数字 :ms_+ 远程名称 (外边的特征)[a-zA-Z0-9_-]改为_,切为32)+_+ 小写 六进制 FNV-1a 32-位散列backend:environment:release:tool一个远程工具 每个主机都有一个名称;上面的CRM向量是一个被冻结的测试.projectToolDefinition(connection, tool)财务报告和审定财务报表projectToolDefinitions(connection, tools)(每个连接80个,重复和已丢弃的无效工具):{ name, title, description, inputSchema, annotations }说明MainSequence <release name> [<environment>]: <remote description>一个物体图案和四个布尔提示, 默认开放世界.projectToolResult(actionResult): 主机返回转发的呼叫内容: 远程 内容块,然后使用 JSON 文本块summary, (中文(简体) ),effects, (中文(简体) ),error财务报告和审定财务报表structuredContent当调用失败, 返回结构化内容或没有块 ;isError关于任何未成功,带有远程内容的MCP_TOOL_ERROR保留了下来.readProjectToolCatalog(dispatch, { backend?, environmentUid?, previous?, signal?, budgetMs? })数字 :mcp-list(只读),然后一个mcp-tools每个已保存的连接, 一次两次, 全部 在一个预算范围内(默认为300美元)。 无法读取目录的连接 在预算用完前不读, 保留其先前的工具并保留在目录中 标记unavailable有原因的,所以一个范围 其联系是不存在的 写入空和健康的; 已删除的连接丢失其工具; 连接在 范围被结转。 连接后端的会话当其工具被验证 名为.createProjectToolCatalog({ dispatch, file?, backend?, budgetMs?, staleMs?, notify?, disabled? })数字 : 共享的盘子目录,project-tool-catalog.json旁边mcp-connections.json(单位:千美元)mainSequenceStateDirectory(env)名称该目录).list()从文件中解答 即刻,仅供主机的后端:给定的后端,或由ready()无 网络请求方式auth-status或从新鲜的事物中汲取教训,直到它实现 已知列表是空的, 绝不是后端的工具 .state()报告连接 标记unavailable在文件中,无论哪个进程标出它们.refresh()重读 在锁下,一个过程一次读目录,而另一个过程取出结果 从文件开始,返回时结束其调度器的信号;update(), (中文(简体) ),dispose()财务报告和审定财务报表notify服务一个长寿主机,如 Codex MCP 服务器。 文件有计划 和标签.- 这个
mcp-catalog动作返回对主机相同的定义、约束和状态 发送动作而不是导入:没有refresh从文档中refresh: true正在重新读取 stale 缓存, 并'force'总是,等待最多两个 时间是另一个过程的更新结束.mcp-tool-call实值mcp-call已回复 页:1projectToolResult形状.
保留主机特定内容: Codex 服务器将定义合并到它的 tools/list, (中文(简体) ),
发送 tools/list_changed 并转发 ms_* 呼叫通过 mcp-call克劳德
桌面钩子登记定义, 每次通话前询问, 转换结果
块到信件 API 块,每个动作产生一个工人.
代理人、项目、工作空间和运输
- 平台代理对话: 物剂发现,会话,
任务和持久
AgentDelivery主机聊天的协调员 . - 组织项目: 环境范围项目 列出和重复本地工作空间设置.
- 共享项目业务: 本地仓库 发现、删除、多克构建和编辑主机适配器.
- 工作空间默认和环境: 后端和 寄存器文件夹分辨率和环境范围 MCP 动作.
- 共享桌面传输: 每个用户的工人 每个聊天室使用一个进程的主机来共享HTTP连接,读取和符号更新.
A. 决 定 ADR 0001 (韩语) (共享工具), ADR 0002 (韩语) (多边协商程序) 客户端, ADR 0003 数据 (主仓库)和 ADR 0004 数据 (项目工具登记册).
发展
要求节点22或更新.
npm ci
npm run build
node dist/runner.js --help
npm run release:check
node scripts/verify-sdk-interop.cjs /path/to/mainsequence-sdk /path/to/command-center-sdk
release:check 类型检查、构建、运行测试、检查发布元数据和
文档,将 npm 归档打包到 artifacts/ 我从一个孤僻的、
消费者。 测试使用回回回固定的后端,合成的内存存储条目,
本地商店程序、安装的 CLI 固定装置和临时 Git 的备用设备
寄存器; 他们从不登录到真正的后端, 也不读取或写入用户的
证书。 浏览器测试必须允许循环网络 。 解析器,
标致器和终端跑车都有自己的套房 tests/arguments.test.cjs,从
主机跑者依赖它们.
可选的 SDK 兼容脚本检查实际 SDK 源执行
与两个方向的合成内存记录相对立,并带有一个孤立的临时Python
归家去. 它只为检查而导入 SDK 私人会话执行,并装入其
未运行 SDK 初始化器而从给定的退出中获取的依赖性 。 设定
MAINSEQUENCE_TEST_PYTHON=/path/to/sdk/.venv/bin/python 当它的CLI依赖性是
无法使用 python3。 Live OS 存储和后端刷新-旋转互操作性是一个
单独的释放检查.
释放
Npm 归档包含 dist, (中文(简体) ), README.md, (中文(简体) ), LICENSE 财务报告和审定财务报表 NOTICE; 主机适配器,
清单和市场从自己的储存库中释放出来。 要释放:设置
新版本输入 package.json 财务报告和审定财务报表 package-lock.json运行 npm run release:check,合并,
并按下标签 v<version>. 发布工作流程release.yml, GitHub 环境
npm重复检查,并通过 npm 公布经核实的档案
值得信赖的出版。 已出版的版本是不可改变的; 从未重现重建的归档
根据现有版本。 在GitHub的标签上写下释放笔记.
出版后,从注册处读取档案的完整性
(单位:千美元)npm view @dev-mainsequence/devtools@<version> dist.integrity; 当地 npm pack 已经
在主机将新版本钉入其锁文件之前.