mirror of
https://github.com/hansjone/netxops.git
synced 2026-10-15 20:35:52 +08:00
Fix Netx Ops tools missing on DSH 0.2 and public-preset publish.
Stop waiting on removed settingsScope so the host can publish a connection, harden skill frontmatter for CRLF, and auto-save capability public toggles so other presets actually get netx__* tools (0.1.50). Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
a313dd0eae
commit
d4f2459eb2
18 changed files with 567 additions and 178 deletions
|
|
@ -2397,6 +2397,16 @@ class NetxopsCardController {
|
|||
}
|
||||
inject() {
|
||||
const actions = this.form.actions();
|
||||
const capabilityFields = new Set([
|
||||
"groupOpsInPreset",
|
||||
"groupOpsPublic",
|
||||
"groupTopologyInPreset",
|
||||
"groupTopologyPublic",
|
||||
"groupBizMonitorInPreset",
|
||||
"groupBizMonitorPublic",
|
||||
"groupKbInPreset",
|
||||
"groupKbPublic"
|
||||
]);
|
||||
return {
|
||||
hooks: { netxopsCard: this.store },
|
||||
...actions,
|
||||
|
|
@ -2404,6 +2414,8 @@ class NetxopsCardController {
|
|||
actions.edit(field, text);
|
||||
if (field === "kbRoot")
|
||||
this.refreshKbPreview();
|
||||
if (capabilityFields.has(field))
|
||||
this.form.save();
|
||||
},
|
||||
discard: () => {
|
||||
actions.discard();
|
||||
|
|
@ -2413,6 +2425,8 @@ class NetxopsCardController {
|
|||
actions.resetField(field);
|
||||
if (field === "kbRoot")
|
||||
this.refreshKbPreview();
|
||||
if (capabilityFields.has(field))
|
||||
this.form.save();
|
||||
},
|
||||
exportAllSessions: () => {
|
||||
this.exportAllSessions();
|
||||
|
|
@ -2492,7 +2506,7 @@ var en = {
|
|||
groupBizMonitor: "bizMonitor",
|
||||
groupKb: "Knowledge skills",
|
||||
groupInPreset: "In Netx Ops preset",
|
||||
groupPublic: "Publish to other presets",
|
||||
groupPublic: "Publish to other presets (auto-saves; new sessions)",
|
||||
kbRoot: "Package root",
|
||||
kbRootHint: "Folder with MANIFEST.json (operator-subset v1.0). Browse auto-saves. Pack skills load from paths.skills/_skills and paths.localSkills when hasSkills.",
|
||||
kbBrowse: "Browse…",
|
||||
|
|
@ -2570,7 +2584,7 @@ var zh = {
|
|||
groupBizMonitor: "bizMonitor",
|
||||
groupKb: "知识库技能",
|
||||
groupInPreset: "在 Netx Ops 预设中启用",
|
||||
groupPublic: "对其他预设公开",
|
||||
groupPublic: "对其他预设公开(勾选后自动保存;新会话生效)",
|
||||
kbRoot: "知识包根目录",
|
||||
kbRootHint: "含 MANIFEST.json 的运营商子集包(v1.0)。浏览选目录后会自动保存;hasSkills 时加载 paths.skills/_skills 与 paths.localSkills。",
|
||||
kbBrowse: "浏览…",
|
||||
|
|
@ -2865,16 +2879,19 @@ function apply(ctx) {
|
|||
formsCtx.logger?.warn?.("netxops: configForms present but no get/whileServed match for %s", candidates.join(","));
|
||||
}
|
||||
});
|
||||
ctx.inject(["settingsScope"], (scopeCtx) => {
|
||||
const binder = scopeCtx.settingsScope;
|
||||
if (!binder || typeof binder.bind !== "function") {
|
||||
scopeCtx.logger?.warn?.("netxops: settingsScope present but .bind missing");
|
||||
return;
|
||||
try {
|
||||
const getter = ctx.get;
|
||||
if (typeof getter === "function" && getter.call(ctx, "configForms") === undefined) {
|
||||
const binder = getter.call(ctx, "settingsScope");
|
||||
if (binder && typeof binder.bind === "function") {
|
||||
ctx.logger?.info?.("netxops: attach form via settingsScope (legacy one-shot)");
|
||||
deferred.attach(binder.bind({ namespace: NETXOPS_NS }));
|
||||
ensureExtras();
|
||||
}
|
||||
}
|
||||
scopeCtx.logger?.info?.("netxops: attach form via settingsScope");
|
||||
deferred.attach(binder.bind({ namespace: NETXOPS_NS }));
|
||||
ensureExtras();
|
||||
});
|
||||
} catch (error) {
|
||||
ctx.logger?.warn?.("netxops: legacy settingsScope probe failed: %s", error);
|
||||
}
|
||||
}
|
||||
function wireOptionalServices(ctx, card) {
|
||||
const soft = (deps, run, label) => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue