xcsh F5 核弹
@f5-sales-demo/xcsh-f5-core 提供规格支持的F5资源业务
对于一个节点主机。 其出口的无害环境管理和共同JS捆绑包含被钉住的CLI
规格和共享资源的执行。 他们没有外出就跑了
xcsh 可执行程序, Bun, 代理环路, 或模型提供者. 编辑提供
拥有嵌入式节点运行时间,登录,所选模式,以及批准UI.
最初的库存符合xcsh的94个索引化的CRUD资源类型. 没错
不包括在更大的API目录中的所有行动。 生成的
投影保存 CLI 的验证元数据,匹配操作
元数据,以及所有中转引用的请求/响应计划。 运行时间
在使用前检查它的SHA-256. specificationReceipt 记录上游
释放、承诺、资产散列、CLI输入散列和投影散列。 没有
网络倒置.
东道方合同
创建一个 F5Core 例如拥有工作空间。 提供四个适配器:
getContext同步返回明确激活的工作空间/文本, HTTPS API的由来,命名空间,以及单调修订. 主机必须包含 证书、环境、命名空间、激活和外部文件更改 并验证缓存状态 与它的犬科持续.getCredentials私下解决F5的证书 以获得准确的快照. 本地编辑器的证书和模型选择从未输入此接口 .approve显示已验证的计划,并用用户的 决定。 取消、 迟到或更改批准不能发送信件 .persist从解剖学角度来说,它存储了一张私人收据。 发送块前失败 行动 发出突变后失败,需要调节.
主机保留了上下文激活、持久性、监视器、环境 决议、回滚和资源视图。 核心不读取配置文件或 环境默认。 私下解决有效载荷环境变量 (b) 核准后不得取而代之的变量.
从信任的编辑器引用而不是模型中获取对话身份
参数. bind 返回不透明控件。 发现,现场描述,
验证、检查、规划和执行需要这种手柄。 变化
上下文使其无效。 秘密引用是保密的 每一个绑定,是
只在它们的原产地有约束力的情况下才予以恢复;它们永远不会持久.
import { F5Core } from '@f5-sales-demo/xcsh-f5-core';
const core = new F5Core({
getContext: currentActivatedContext,
getCredentials: resolveF5Credentials,
approve: showExactPlanApproval,
persist: persistPrivateReceipt,
});
const binding = await core.bind(editorConversationId);
const description = await core.describe(binding, 'http_loadbalancer', {
field: 'spec.more_option.custom_errors',
});
const plan = await core.plan(binding, 'create', manifests);
const result = await core.execute(binding, plan.id, cancellationSignal);
计划是不可改变和单一使用的。 整个批次在任何 写作。 批准会约束原始清单、操作、命名空间、工作空间、, 上下文修订、证书、规格散列和观测到的资源状态. 核心在运输前同步检查上下文 之后发送并核实独立回读。 需要更新/删除 一个非空的UID和资源版本。 拒绝不可改变的选择更改; 核心从不默默地删除和重新创建资源.
生产运输只进行一次尝试,没有改变方向,并给予荣誉
取消 。 反应不确定、核查失败或无法持续
发送的突变消耗了计划和报告 UNCERTAIN_MUTATION。 。 。 .
与"新读","新计划"相协调;不重放"旧审批".
F5CoreError.completed 在部分中计算独立核实的条目
操作。 由东道方提供的运输工具必须保持这种调度,不得重复
语义;是可信赖的适配器,而不是模型输入的扩展点.
可选的CLI浓缩
xcsh f5-core capabilities --json 返回协议版本1并安装
CLI的规格散列. xcsh f5-core discover --json 返回其已索引
资源清单,无证书或启动代理。 CLI广告
只有它暴露的发现增强. negotiateCapabilities 接受一个
匹配协议/规格并返回理解的能力
与随时可用的捆绑能力分开.
缺少、命令失败、输出错误和版本不兼容离开
捆接的核心可用。 CLI变异授权没有公示.
开发和释放大门
在测试前用Bun的准确版本将寄存器绑住 从 仓库根 :
bash scripts/ci-bun-install.sh
bun --cwd=packages/f5-core run test
bun --cwd=packages/f5-core run check
开发构建使用 Bun 和寄存器 TypeScript 编译器. 发表 节点入口使用预建的捆绑;其运行时间不引用 建立工具。 测试包括空目录中的纯节点执行 在路径上没有外部 CLI 或 Bun 。 合成传输证明算法和 文物行为,不是活云 或编辑专家接受.
正常的出版工作流程将这个软件包置于资源管理之后 和CLI之前。 以协调的新版本发布,使消费者得到 匹配共享资源执行。 出版、合并、制作 编辑部门接受VSIX,市场接受仍然分开 xcsh#5072和vscode-xcsh#1708的门下. 基罗通路口尚未解决; 此软件包不会绕过它,也不会选择普通的聊天作为替代.
批准项包括用于创建的确切编辑的可写入配置 并更新,以及可观察到的要删除的配置。 主机必须显示此内容 与散列和修改计划同时审查材料,然后批准.
公共无害环境管理和共同JS的申报与相同的执行相挂钩 ,可以在Node16或NodeNext模块分辨率下被消耗. 单曲 使用此软件包的源头映射, 因此新取出类型检查不 需要先建造.